37 lines
1.2 KiB
C#
37 lines
1.2 KiB
C#
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<string> 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<string> Options { get; set; } = new();
|
||
|
|
public int ExpiresIn { get; set; }
|
||
|
|
public bool Multiple { get; set; }
|
||
|
|
public bool HideTotals { get; set; }
|
||
|
|
}
|
||
|
|
}
|