using System; namespace GmRelay.Shared.Features.Sessions.CreateSession.Wizard; public sealed class WizardDraft { public Guid Id { get; set; } /// /// Stable string id of the chat/guild/channel this draft lives in. /// Stored as TEXT to fit both Telegram's long chat ids /// and Discord's snowflakes. /// public string ChatId { get; set; } = string.Empty; /// /// Optional thread/topic id within the chat. Telegram's /// message_thread_id, Discord's thread snowflake, null /// when the chat has no sub-thread concept. /// public string? MessageThreadId { get; set; } /// /// Platform-specific user id of the wizard owner. Telegram uses /// long, Discord uses snowflakes — both fit in a string. /// public string OwnerId { get; set; } = string.Empty; /// /// Which messenger platform owns this draft. Defaults to /// "Telegram" for backward compatibility with pre-V032 rows. /// public string Platform { get; set; } = "Telegram"; public string Step { get; set; } = string.Empty; public string PayloadJson { get; set; } = "{}"; /// /// Id of the message that the wizard last edited. Stored as /// TEXT to fit both Telegram's int32 ids and Discord's /// 64-bit snowflakes. /// public string? DraftMessageId { get; set; } public DateTime CreatedAt { get; set; } public DateTime UpdatedAt { get; set; } public DateTime ExpiresAt { get; set; } }