Build / Build (push) Successful in 1m3s
A singleton ServerSettings (title, descriptions, contact, thumbnail, privacy policy, terms, rules, relays, media overrides, PublishActivity), cached by InstanceSettings and read by the instance API, NodeInfo, the instance actor, the web pages and the mailer; its defaults are the old literals, so nothing changes until an administrator edits. /clientapi/admin/settings (and /thumbnail), /announcements, /relays for administrators; /clientapi/moderator/log, the staff's log (AdminAction, written by domain blocks, backups, settings and the CLI; no IP, never a root paired with its personas). The Mastodon API's rules, extended description, privacy policy, terms of service, domain blocks (Published, Obfuscate), announcements (dismiss, reactions, streaming) and activity (only when published). Reports carry rule ids. Media overrides clamped to hard caps. Relays named by the settings reconcile next to the configured ones. Verified: interop.sh instance accounts relay with mastodon, relay, aoderelay and mailpit, 119 passed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WpVCoDeM1qUTRp4fXQdfof
86 lines
3.0 KiB
C#
86 lines
3.0 KiB
C#
using MongoDB.Entities;
|
|
|
|
namespace PrivaPub.Models.Social
|
|
{
|
|
public class Block : Entity
|
|
{
|
|
public string AvatarId { get; set; }
|
|
public string TargetAccountId { get; set; }
|
|
public string TargetActorURI { get; set; }
|
|
public DateTime CreatedAt { get; set; } = DateTime.UtcNow;
|
|
}
|
|
|
|
//a remote account that blocked one of our personas (an inbound Block): its posts and notifications are hidden from the
|
|
//persona, the follows between them are gone, and the relationship says blocked_by, until it sends Undo{Block}
|
|
public class BlockedBy : Entity
|
|
{
|
|
public string AvatarId { get; set; }
|
|
public string ActorURI { get; set; }
|
|
public string AccountId { get; set; }//the blocker's ForeignAvatar.ID
|
|
public string ActivityURI { get; set; }
|
|
public DateTime CreatedAt { get; set; } = DateTime.UtcNow;
|
|
}
|
|
|
|
//a post an account elsewhere features (its `featured` collection, Add and Remove), shown first on its profile here;
|
|
//the lowest Position first
|
|
public class RemoteFeatured : Entity
|
|
{
|
|
public string ActorURI { get; set; }
|
|
public string ObjectURI { get; set; }
|
|
public string PostId { get; set; }
|
|
public int Position { get; set; }
|
|
public DateTime CreatedAt { get; set; } = DateTime.UtcNow;
|
|
}
|
|
|
|
public class Mute : Entity
|
|
{
|
|
public string AvatarId { get; set; }
|
|
public string TargetAccountId { get; set; }
|
|
public string TargetActorURI { get; set; }
|
|
public bool HideNotifications { get; set; } = true;
|
|
public DateTime? ExpiresAt { get; set; }
|
|
public DateTime CreatedAt { get; set; } = DateTime.UtcNow;
|
|
}
|
|
|
|
public class AccountDomainBlock : Entity
|
|
{
|
|
public string AvatarId { get; set; }
|
|
public string Domain { get; set; }
|
|
public DateTime CreatedAt { get; set; } = DateTime.UtcNow;
|
|
}
|
|
|
|
public class Bookmark : Entity
|
|
{
|
|
public string AvatarId { get; set; }
|
|
public string PostId { get; set; }
|
|
public DateTime CreatedAt { get; set; } = DateTime.UtcNow;
|
|
}
|
|
|
|
public class Pin : Entity
|
|
{
|
|
public string AvatarId { get; set; }
|
|
public string PostId { get; set; }
|
|
public DateTime CreatedAt { get; set; } = DateTime.UtcNow;
|
|
}
|
|
|
|
public class Report : Entity
|
|
{
|
|
public string ReporterAvatarId { get; set; }
|
|
public string ReporterActorURI { get; set; }
|
|
public string TargetAccountId { get; set; }
|
|
public string TargetActorURI { get; set; }
|
|
public List<string> PostIds { get; set; } = new();
|
|
public List<string> ObjectURIs { get; set; } = new();
|
|
public string Category { get; set; } = "other";
|
|
public List<string> RuleIds { get; set; } = new();//the server's rules it says were broken (ServerSettings.Rules, deleted ones too)
|
|
public string Comment { get; set; }
|
|
public bool Forwarded { get; set; }
|
|
public bool IsResolved { get; set; }
|
|
public string ResolvedBy { get; set; }
|
|
public DateTime CreatedAt { get; set; } = DateTime.UtcNow;
|
|
public DateTime? ResolvedAt { get; set; }
|
|
public DateTime? RemoteResolvedAt { get; set; }//the server holding the reported content says it dealt with it (Lemmy's Resolve{Flag})
|
|
public string RemoteResolvedBy { get; set; }
|
|
}
|
|
}
|