Files

84 lines
2.8 KiB
C#
Raw Permalink Normal View History

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;
}
//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
}
}