using System.Text.Json.Serialization;
namespace decePubClient.Models.Mastodon;
/// A persona's list of accounts it follows (Mastodon's List): read as its own feed, and when exclusive kept out of
/// the home feed. Lists are the persona's own; PrivaPub never federates them.
public class MastodonList
{
public string Id { get; set; }
public string Title { get; set; }
public ListRepliesPolicy RepliesPolicy { get; set; } = ListRepliesPolicy.List;
public bool Exclusive { get; set; }
}
/// Which replies a list's feed shows besides its members' replies to themselves and to the persona.
[JsonConverter(typeof(JsonStringEnumConverter))]
public enum ListRepliesPolicy
{
/// Replies to any account the persona follows.
[JsonStringEnumMemberName("followed")] Followed,
/// Replies to the list's members.
[JsonStringEnumMemberName("list")] List,
[JsonStringEnumMemberName("none")] None
}
public class ListAccountsForm
{
public List AccountIds { get; set; } = [];
}