⚗️ Activity pub

This commit is contained in:
2025-12-28 18:08:35 +08:00
parent f06d93a348
commit 2471fa2e75
27 changed files with 6506 additions and 9 deletions

View File

@@ -48,6 +48,13 @@ public class AppDatabase(
public DbSet<StickerPack> StickerPacks { get; set; } = null!;
public DbSet<StickerPackOwnership> StickerPackOwnerships { get; set; } = null!;
public DbSet<SnFediverseInstance> FediverseInstances { get; set; } = null!;
public DbSet<SnFediverseActor> FediverseActors { get; set; } = null!;
public DbSet<SnFediverseContent> FediverseContents { get; set; } = null!;
public DbSet<SnFediverseActivity> FediverseActivities { get; set; } = null!;
public DbSet<SnFediverseRelationship> FediverseRelationships { get; set; } = null!;
public DbSet<SnFediverseReaction> FediverseReactions { get; set; } = null!;
public DbSet<WebArticle> WebArticles { get; set; } = null!;
public DbSet<WebFeed> WebFeeds { get; set; } = null!;
public DbSet<WebFeedSubscription> WebFeedSubscriptions { get; set; } = null!;
@@ -142,6 +149,56 @@ public class AppDatabase(
.HasIndex(a => a.Url)
.IsUnique();
modelBuilder.Entity<SnFediverseActor>()
.HasOne(a => a.Instance)
.WithMany(i => i.Actors)
.HasForeignKey(a => a.InstanceId)
.OnDelete(DeleteBehavior.Cascade);
modelBuilder.Entity<SnFediverseContent>()
.HasOne(c => c.Actor)
.WithMany(a => a.Contents)
.HasForeignKey(c => c.ActorId)
.OnDelete(DeleteBehavior.Cascade);
modelBuilder.Entity<SnFediverseContent>()
.HasOne(c => c.Instance)
.WithMany(i => i.Contents)
.HasForeignKey(c => c.InstanceId)
.OnDelete(DeleteBehavior.Cascade);
modelBuilder.Entity<SnFediverseActivity>()
.HasOne(a => a.Actor)
.WithMany(actor => actor.Activities)
.HasForeignKey(a => a.ActorId)
.OnDelete(DeleteBehavior.Cascade);
modelBuilder.Entity<SnFediverseActivity>()
.HasOne(a => a.Content)
.WithMany(c => c.Activities)
.HasForeignKey(a => a.ContentId)
.OnDelete(DeleteBehavior.Cascade);
modelBuilder.Entity<SnFediverseRelationship>()
.HasOne(r => r.Actor)
.WithMany(a => a.FollowingRelationships)
.HasForeignKey(r => r.ActorId)
.OnDelete(DeleteBehavior.Cascade);
modelBuilder.Entity<SnFediverseRelationship>()
.HasOne(r => r.TargetActor)
.WithMany(a => a.FollowerRelationships)
.HasForeignKey(r => r.TargetActorId)
.OnDelete(DeleteBehavior.Cascade);
modelBuilder.Entity<SnFediverseReaction>()
.HasOne(r => r.Content)
.WithMany(c => c.Reactions)
.HasForeignKey(r => r.ContentId)
.OnDelete(DeleteBehavior.Cascade);
modelBuilder.Entity<SnFediverseReaction>()
.HasOne(r => r.Actor)
.WithMany()
.HasForeignKey(r => r.ActorId)
.OnDelete(DeleteBehavior.Cascade);
modelBuilder.ApplySoftDeleteFilters();
}