dbd90ee52a
Player-service play-session tracker (floor + 3-bucket classify), SharePopover share tracker with debounce, sendBeacon interop, proxied rate-limited POST api/event/{play,share}, append-only event logs + incremental play_counter with server-side release resolution. Migration authored, not applied. No anonId, no read surface.
20 lines
598 B
C#
20 lines
598 B
C#
using DeepDrftModels.Enums;
|
|
|
|
namespace DeepDrftModels.DTOs;
|
|
|
|
/// <summary>
|
|
/// Wire payload for <c>POST api/event/share</c> (Phase 16 §2.2 / §4.3). The popover knows the target
|
|
/// and channel at the point of the action, so the payload is self-describing — no server-side resolution.
|
|
/// <see cref="AnonId"/> is reserved for wave 16.3 and stays null in wave 16.1.
|
|
/// </summary>
|
|
public class ShareEventDto
|
|
{
|
|
public ShareTargetType TargetType { get; set; }
|
|
|
|
public string? TargetKey { get; set; }
|
|
|
|
public ShareChannel Channel { get; set; }
|
|
|
|
public string? AnonId { get; set; }
|
|
}
|