Add MCDO (#31)
* rudimentary charadata first impl * update submodule * update properly * some fixes etc * add cascade and some other fixes * most of charadata impl * dotnet 9 * net9 and migration to k4os * bum papi --------- Co-authored-by: Stanley Dimant <root.darkarchon@outlook.com>
This commit is contained in:
@@ -45,37 +45,84 @@ public class MareDbContext : DbContext
|
||||
public DbSet<UserProfileData> UserProfileData { get; set; }
|
||||
public DbSet<UserProfileDataReport> UserProfileReports { get; set; }
|
||||
public DbSet<User> Users { get; set; }
|
||||
public DbSet<CharaData> CharaData { get; set; }
|
||||
public DbSet<CharaDataFile> CharaDataFiles { get; set; }
|
||||
public DbSet<CharaDataFileSwap> CharaDataFileSwaps { get; set; }
|
||||
public DbSet<CharaDataOriginalFile> CharaDataOriginalFiles { get; set; }
|
||||
public DbSet<CharaDataPose> CharaDataPoses { get; set; }
|
||||
public DbSet<CharaDataAllowance> CharaDataAllowances { get; set; }
|
||||
|
||||
protected override void OnModelCreating(ModelBuilder modelBuilder)
|
||||
protected override void OnModelCreating(ModelBuilder mb)
|
||||
{
|
||||
modelBuilder.Entity<Auth>().ToTable("auth");
|
||||
modelBuilder.Entity<User>().ToTable("users");
|
||||
modelBuilder.Entity<FileCache>().ToTable("file_caches");
|
||||
modelBuilder.Entity<FileCache>().HasIndex(c => c.UploaderUID);
|
||||
modelBuilder.Entity<ClientPair>().ToTable("client_pairs");
|
||||
modelBuilder.Entity<ClientPair>().HasKey(u => new { u.UserUID, u.OtherUserUID });
|
||||
modelBuilder.Entity<ClientPair>().HasIndex(c => c.UserUID);
|
||||
modelBuilder.Entity<ClientPair>().HasIndex(c => c.OtherUserUID);
|
||||
modelBuilder.Entity<ForbiddenUploadEntry>().ToTable("forbidden_upload_entries");
|
||||
modelBuilder.Entity<Banned>().ToTable("banned_users");
|
||||
modelBuilder.Entity<LodeStoneAuth>().ToTable("lodestone_auth");
|
||||
modelBuilder.Entity<BannedRegistrations>().ToTable("banned_registrations");
|
||||
modelBuilder.Entity<Group>().ToTable("groups");
|
||||
modelBuilder.Entity<Group>().HasIndex(c => c.OwnerUID);
|
||||
modelBuilder.Entity<GroupPair>().ToTable("group_pairs");
|
||||
modelBuilder.Entity<GroupPair>().HasKey(u => new { u.GroupGID, u.GroupUserUID });
|
||||
modelBuilder.Entity<GroupPair>().HasIndex(c => c.GroupUserUID);
|
||||
modelBuilder.Entity<GroupPair>().HasIndex(c => c.GroupGID);
|
||||
modelBuilder.Entity<GroupBan>().ToTable("group_bans");
|
||||
modelBuilder.Entity<GroupBan>().HasKey(u => new { u.GroupGID, u.BannedUserUID });
|
||||
modelBuilder.Entity<GroupBan>().HasIndex(c => c.BannedUserUID);
|
||||
modelBuilder.Entity<GroupBan>().HasIndex(c => c.GroupGID);
|
||||
modelBuilder.Entity<GroupTempInvite>().ToTable("group_temp_invites");
|
||||
modelBuilder.Entity<GroupTempInvite>().HasKey(u => new { u.GroupGID, u.Invite });
|
||||
modelBuilder.Entity<GroupTempInvite>().HasIndex(c => c.GroupGID);
|
||||
modelBuilder.Entity<GroupTempInvite>().HasIndex(c => c.Invite);
|
||||
modelBuilder.Entity<UserProfileData>().ToTable("user_profile_data");
|
||||
modelBuilder.Entity<UserProfileData>().HasKey(c => c.UserUID);
|
||||
modelBuilder.Entity<UserProfileDataReport>().ToTable("user_profile_data_reports");
|
||||
mb.Entity<Auth>().ToTable("auth");
|
||||
mb.Entity<User>().ToTable("users");
|
||||
mb.Entity<FileCache>().ToTable("file_caches");
|
||||
mb.Entity<FileCache>().HasIndex(c => c.UploaderUID);
|
||||
mb.Entity<ClientPair>().ToTable("client_pairs");
|
||||
mb.Entity<ClientPair>().HasKey(u => new { u.UserUID, u.OtherUserUID });
|
||||
mb.Entity<ClientPair>().HasIndex(c => c.UserUID);
|
||||
mb.Entity<ClientPair>().HasIndex(c => c.OtherUserUID);
|
||||
mb.Entity<ForbiddenUploadEntry>().ToTable("forbidden_upload_entries");
|
||||
mb.Entity<Banned>().ToTable("banned_users");
|
||||
mb.Entity<LodeStoneAuth>().ToTable("lodestone_auth");
|
||||
mb.Entity<BannedRegistrations>().ToTable("banned_registrations");
|
||||
mb.Entity<Group>().ToTable("groups");
|
||||
mb.Entity<Group>().HasIndex(c => c.OwnerUID);
|
||||
mb.Entity<GroupPair>().ToTable("group_pairs");
|
||||
mb.Entity<GroupPair>().HasKey(u => new { u.GroupGID, u.GroupUserUID });
|
||||
mb.Entity<GroupPair>().HasIndex(c => c.GroupUserUID);
|
||||
mb.Entity<GroupPair>().HasIndex(c => c.GroupGID);
|
||||
mb.Entity<GroupBan>().ToTable("group_bans");
|
||||
mb.Entity<GroupBan>().HasKey(u => new { u.GroupGID, u.BannedUserUID });
|
||||
mb.Entity<GroupBan>().HasIndex(c => c.BannedUserUID);
|
||||
mb.Entity<GroupBan>().HasIndex(c => c.GroupGID);
|
||||
mb.Entity<GroupTempInvite>().ToTable("group_temp_invites");
|
||||
mb.Entity<GroupTempInvite>().HasKey(u => new { u.GroupGID, u.Invite });
|
||||
mb.Entity<GroupTempInvite>().HasIndex(c => c.GroupGID);
|
||||
mb.Entity<GroupTempInvite>().HasIndex(c => c.Invite);
|
||||
mb.Entity<UserProfileData>().ToTable("user_profile_data");
|
||||
mb.Entity<UserProfileData>().HasKey(c => c.UserUID);
|
||||
mb.Entity<UserProfileDataReport>().ToTable("user_profile_data_reports");
|
||||
mb.Entity<CharaData>().ToTable("chara_data");
|
||||
mb.Entity<CharaData>()
|
||||
.HasMany(p => p.Poses)
|
||||
.WithOne(c => c.Parent)
|
||||
.HasForeignKey(c => new { c.ParentId, c.ParentUploaderUID });
|
||||
mb.Entity<CharaData>()
|
||||
.HasMany(p => p.Files)
|
||||
.WithOne(c => c.Parent)
|
||||
.HasForeignKey(c => new { c.ParentId, c.ParentUploaderUID });
|
||||
mb.Entity<CharaData>()
|
||||
.HasMany(p => p.OriginalFiles)
|
||||
.WithOne(p => p.Parent)
|
||||
.HasForeignKey(p => new { p.ParentId, p.ParentUploaderUID });
|
||||
mb.Entity<CharaData>()
|
||||
.HasMany(p => p.AllowedIndividiuals)
|
||||
.WithOne(p => p.Parent)
|
||||
.HasForeignKey(p => new { p.ParentId, p.ParentUploaderUID });
|
||||
mb.Entity<CharaData>()
|
||||
.HasMany(p => p.FileSwaps)
|
||||
.WithOne(p => p.Parent)
|
||||
.HasForeignKey(p => new { p.ParentId, p.ParentUploaderUID });
|
||||
mb.Entity<CharaData>().HasKey(p => new { p.Id, p.UploaderUID });
|
||||
mb.Entity<CharaData>().HasIndex(p => p.UploaderUID);
|
||||
mb.Entity<CharaData>().HasIndex(p => p.Id);
|
||||
mb.Entity<CharaDataFile>().ToTable("chara_data_files");
|
||||
mb.Entity<CharaDataFile>().HasKey(c => new { c.ParentId, c.ParentUploaderUID, c.GamePath });
|
||||
mb.Entity<CharaDataFile>().HasIndex(c => c.ParentId);
|
||||
mb.Entity<CharaDataFile>().HasOne(f => f.FileCache).WithMany().HasForeignKey(f => f.FileCacheHash).OnDelete(DeleteBehavior.Cascade);
|
||||
mb.Entity<CharaDataFileSwap>().ToTable("chara_data_file_swaps");
|
||||
mb.Entity<CharaDataFileSwap>().HasKey(c => new { c.ParentId, c.ParentUploaderUID, c.GamePath });
|
||||
mb.Entity<CharaDataFileSwap>().HasIndex(c => c.ParentId);
|
||||
mb.Entity<CharaDataPose>().ToTable("chara_data_poses");
|
||||
mb.Entity<CharaDataPose>().Property(p => p.Id).ValueGeneratedOnAdd();
|
||||
mb.Entity<CharaDataPose>().HasKey(c => new { c.ParentId, c.ParentUploaderUID, c.Id });
|
||||
mb.Entity<CharaDataPose>().HasIndex(c => c.ParentId);
|
||||
mb.Entity<CharaDataOriginalFile>().ToTable("chara_data_orig_files");
|
||||
mb.Entity<CharaDataOriginalFile>().HasKey(c => new { c.ParentId, c.ParentUploaderUID, c.GamePath });
|
||||
mb.Entity<CharaDataOriginalFile>().HasIndex(c => c.ParentId);
|
||||
mb.Entity<CharaDataAllowance>().ToTable("chara_data_allowance");
|
||||
mb.Entity<CharaDataAllowance>().HasKey(c => new { c.ParentId, c.ParentUploaderUID, c.AllowedUserUID });
|
||||
mb.Entity<CharaDataAllowance>().HasIndex(c => c.ParentId);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user