using System.Text.Json.Serialization; namespace DeepDrftModels.Enums; /// /// The channel a share was performed through (Phase 16 §1b). Today both originate from /// SharePopover's clipboard actions; a future native/Web-Share button would add a channel /// without reshaping the metric. Serialized as its string name on the wire. /// [JsonConverter(typeof(JsonStringEnumConverter))] public enum ShareChannel { /// Copy-link — the canonical track or release URL placed on the clipboard. Link, /// Copy-embed — the <iframe> snippet for the single-track FramePlayer. Embed } /// /// What a share targets (Phase 16 §1b). Tracks and releases are both shareable; the popover knows /// which it is at the point of the action, so no server-side resolution is needed for shares. /// Serialized as its string name on the wire. /// [JsonConverter(typeof(JsonStringEnumConverter))] public enum ShareTargetType { /// The share targets a single track, addressed by its vault EntryKey. Track, /// The share targets a release, addressed by its public EntryKey. Release }