2026-10-01 12:13:57 +02:00
|
|
|
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;
|
|
|
|
|
}
|
|
|
|
|
|
2026-10-04 23:49:15 +02:00
|
|
|
//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;
|
|
|
|
|
}
|
|
|
|
|
|
2026-10-05 22:48:57 +02:00
|
|
|
//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;
|
|
|
|
|
}
|
|
|
|
|
|
2026-10-01 12:13:57 +02:00
|
|
|
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 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; }
|
2026-10-07 21:10:58 +02:00
|
|
|
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; }
|
2026-10-01 12:13:57 +02:00
|
|
|
}
|
|
|
|
|
}
|