using MongoDB.Entities; namespace PrivaPub.Models.Social { //a post a persona wrote to be published later (Mastodon's scheduled statuses, owner decision 2026-10-04): what it //asked for, kept as it asked, published by a PublishScheduled job at ScheduledAt. Nothing leaves before then. public class ScheduledStatus : Entity { public string AvatarId { get; set; } public DateTime ScheduledAt { get; set; } public ScheduledParams Params { get; set; } = new(); public DateTime CreatedAt { get; set; } = DateTime.UtcNow; } public class ScheduledParams { public string Text { get; set; } public string SpoilerText { get; set; } public bool Sensitive { get; set; } public string Visibility { get; set; }//public, unlisted, private, direct public string InReplyToId { get; set; } public string Language { get; set; } public List MediaIds { get; set; } = new(); public ScheduledPoll Poll { get; set; } public string QuotedStatusId { get; set; } public string QuotePolicy { get; set; } public string Idempotency { get; set; } } public class ScheduledPoll { public List Options { get; set; } = new(); public int ExpiresIn { get; set; } public bool Multiple { get; set; } public bool HideTotals { get; set; } } }