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; } 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 PostIds { get; set; } = new(); public List ObjectURIs { get; set; } = new(); public string Category { get; set; } = "other"; 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; } } }