// using System; using DeluxeNET.Data; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; using Microsoft.EntityFrameworkCore.Metadata; using Microsoft.EntityFrameworkCore.Migrations; using Microsoft.EntityFrameworkCore.Storage.ValueConversion; #nullable disable namespace DeluxeNET.Migrations { [DbContext(typeof(AppDbContext))] [Migration("20260503101145_FixedHeartbeatAndRoomInstances")] partial class FixedHeartbeatAndRoomInstances { /// protected override void BuildTargetModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 modelBuilder .HasAnnotation("ProductVersion", "9.0.11") .HasAnnotation("Relational:MaxIdentifierLength", 64); MySqlModelBuilderExtensions.AutoIncrementColumns(modelBuilder); modelBuilder.Entity("DeluxeNET.Data.CachedLogin", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("bigint") .HasAnnotation("Relational:JsonPropertyName", "Id"); MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); b.Property("accountId") .HasColumnType("bigint") .HasAnnotation("Relational:JsonPropertyName", "accountId"); b.Property("lastLoginTime") .HasColumnType("datetime(6)") .HasAnnotation("Relational:JsonPropertyName", "lastLoginTime"); b.Property("platform") .HasColumnType("int") .HasAnnotation("Relational:JsonPropertyName", "platform"); b.Property("platformId") .IsRequired() .HasColumnType("longtext") .HasAnnotation("Relational:JsonPropertyName", "platformId"); b.Property("requirePassword") .HasColumnType("tinyint(1)") .HasAnnotation("Relational:JsonPropertyName", "requirePassword"); b.HasKey("Id"); b.ToTable("CachedLogins"); }); modelBuilder.Entity("DeluxeNET.Data.Heartbeat", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("bigint"); MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); b.Property("AppVersion") .IsRequired() .HasColumnType("longtext"); b.Property("DeviceClass") .HasColumnType("int"); b.Property("IsOnline") .HasColumnType("tinyint(1)"); b.Property("LastOnline") .HasColumnType("datetime(6)"); b.Property("Platform") .HasColumnType("int"); b.Property("PlayerId") .HasColumnType("bigint"); b.Property("RoomInstanceId") .HasColumnType("bigint"); b.Property("StatusVisibility") .HasColumnType("int"); b.Property("VrMovementMode") .HasColumnType("int"); b.HasKey("Id"); b.HasIndex("RoomInstanceId"); b.ToTable("Heartbeats"); }); modelBuilder.Entity("DeluxeNET.Data.Room", b => { b.Property("RoomId") .ValueGeneratedOnAdd() .HasColumnType("bigint") .HasAnnotation("Relational:JsonPropertyName", "RoomId"); MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("RoomId")); b.Property("Accessibility") .HasColumnType("int") .HasAnnotation("Relational:JsonPropertyName", "Accessibility"); b.Property("CloningAllowed") .HasColumnType("tinyint(1)") .HasAnnotation("Relational:JsonPropertyName", "CloningAllowed"); b.Property("CreatedAt") .HasColumnType("datetime(6)") .HasAnnotation("Relational:JsonPropertyName", "CreatedAt"); b.Property("CreatorAccountId") .HasColumnType("int") .HasAnnotation("Relational:JsonPropertyName", "CreatorAccountId"); b.Property("CustomWarning") .IsRequired() .HasColumnType("longtext") .HasAnnotation("Relational:JsonPropertyName", "CustomWarning"); b.Property("Description") .IsRequired() .HasColumnType("longtext") .HasAnnotation("Relational:JsonPropertyName", "Description"); b.Property("DisableMicAutoMute") .HasColumnType("tinyint(1)") .HasAnnotation("Relational:JsonPropertyName", "DisableMicAutoMute"); b.Property("DisableRoomComments") .HasColumnType("tinyint(1)") .HasAnnotation("Relational:JsonPropertyName", "DisableRoomComments"); b.Property("EncryptVoiceChat") .HasColumnType("tinyint(1)") .HasAnnotation("Relational:JsonPropertyName", "EncryptVoiceChat"); b.Property("ImageName") .IsRequired() .HasColumnType("longtext") .HasAnnotation("Relational:JsonPropertyName", "ImageName"); b.Property("IsDeveloperOwned") .HasColumnType("tinyint(1)") .HasAnnotation("Relational:JsonPropertyName", "IsDeveloperOwned"); b.Property("IsDorm") .HasColumnType("tinyint(1)") .HasAnnotation("Relational:JsonPropertyName", "IsDorm"); b.Property("IsRRO") .HasColumnType("tinyint(1)") .HasAnnotation("Relational:JsonPropertyName", "IsRRO"); b.Property("LoadScreenLocked") .HasColumnType("tinyint(1)") .HasAnnotation("Relational:JsonPropertyName", "LoadScreenLocked"); b.Property("MaxPlayerCalculationMode") .HasColumnType("int") .HasAnnotation("Relational:JsonPropertyName", "MaxPlayerCalculationMode"); b.Property("MaxPlayers") .HasColumnType("int") .HasAnnotation("Relational:JsonPropertyName", "MaxPlayers"); b.Property("MinLevel") .HasColumnType("int") .HasAnnotation("Relational:JsonPropertyName", "MinLevel"); b.Property("Name") .IsRequired() .HasColumnType("longtext") .HasAnnotation("Relational:JsonPropertyName", "Name"); b.Property("State") .HasColumnType("int") .HasAnnotation("Relational:JsonPropertyName", "State"); b.Property("SupportsJuniors") .HasColumnType("tinyint(1)") .HasAnnotation("Relational:JsonPropertyName", "SupportsJuniors"); b.Property("SupportsLevelVoting") .HasColumnType("tinyint(1)") .HasAnnotation("Relational:JsonPropertyName", "SupportsLevelVoting"); b.Property("SupportsMobile") .HasColumnType("tinyint(1)") .HasAnnotation("Relational:JsonPropertyName", "SupportsMobile"); b.Property("SupportsQuest2") .HasColumnType("tinyint(1)") .HasAnnotation("Relational:JsonPropertyName", "SupportsQuest2"); b.Property("SupportsScreens") .HasColumnType("tinyint(1)") .HasAnnotation("Relational:JsonPropertyName", "SupportsScreens"); b.Property("SupportsTeleportVR") .HasColumnType("tinyint(1)") .HasAnnotation("Relational:JsonPropertyName", "SupportsTeleportVR"); b.Property("SupportsVRLow") .HasColumnType("tinyint(1)") .HasAnnotation("Relational:JsonPropertyName", "SupportsVRLow"); b.Property("SupportsWalkVR") .HasColumnType("tinyint(1)") .HasAnnotation("Relational:JsonPropertyName", "SupportsWalkVR"); b.PrimitiveCollection("Tags") .IsRequired() .HasColumnType("longtext") .HasAnnotation("Relational:JsonPropertyName", "Tags"); b.Property("Version") .HasColumnType("int") .HasAnnotation("Relational:JsonPropertyName", "Version"); b.Property("WarningMask") .HasColumnType("int") .HasAnnotation("Relational:JsonPropertyName", "WarningMask"); b.HasKey("RoomId"); b.ToTable("Rooms"); }); modelBuilder.Entity("DeluxeNET.Data.RoomInstance", b => { b.Property("RoomInstanceId") .ValueGeneratedOnAdd() .HasColumnType("bigint"); MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("RoomInstanceId")); b.Property("IsFull") .HasColumnType("tinyint(1)"); b.Property("IsInProgress") .HasColumnType("tinyint(1)"); b.Property("IsPrivate") .HasColumnType("tinyint(1)"); b.Property("Location") .IsRequired() .HasColumnType("longtext"); b.Property("MatchmakingPolicy") .HasColumnType("int"); b.Property("MaxCapacity") .HasColumnType("int"); b.Property("Name") .IsRequired() .HasColumnType("varchar(255)"); b.Property("PhotonRegion") .IsRequired() .HasColumnType("longtext"); b.Property("PhotonRegionId") .IsRequired() .HasColumnType("longtext"); b.Property("PhotonRoomId") .IsRequired() .HasColumnType("longtext"); b.Property("RoomId") .HasColumnType("bigint"); b.Property("RoomInstanceType") .HasColumnType("int"); b.Property("SubRoomId") .HasColumnType("bigint"); b.HasKey("RoomInstanceId"); b.HasIndex("Name"); b.ToTable("RoomInstances"); }); modelBuilder.Entity("DeluxeNET.Data.RoomRole", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("bigint"); MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); b.Property("AccountId") .HasColumnType("int") .HasAnnotation("Relational:JsonPropertyName", "AccountId"); b.Property("InvitedRole") .HasColumnType("int") .HasAnnotation("Relational:JsonPropertyName", "InvitedRole"); b.Property("Role") .HasColumnType("int") .HasAnnotation("Relational:JsonPropertyName", "Role"); b.Property("RoomId") .HasColumnType("bigint") .HasAnnotation("Relational:JsonPropertyName", "RoomId"); b.HasKey("Id"); b.HasIndex("RoomId"); b.ToTable("RoomRoles"); b.HasAnnotation("Relational:JsonPropertyName", "Roles"); }); modelBuilder.Entity("DeluxeNET.Data.RoomStats", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("bigint"); MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); b.Property("CheerCount") .HasColumnType("int") .HasAnnotation("Relational:JsonPropertyName", "CheerCount"); b.Property("FavoriteCount") .HasColumnType("int") .HasAnnotation("Relational:JsonPropertyName", "FavoriteCount"); b.Property("RoomId") .HasColumnType("bigint") .HasAnnotation("Relational:JsonPropertyName", "RoomId"); b.Property("VisitCount") .HasColumnType("int") .HasAnnotation("Relational:JsonPropertyName", "VisitCount"); b.Property("VisitorCount") .HasColumnType("int") .HasAnnotation("Relational:JsonPropertyName", "VisitorCount"); b.HasKey("Id"); b.HasIndex("RoomId") .IsUnique(); b.ToTable("RoomStats"); b.HasAnnotation("Relational:JsonPropertyName", "Stats"); }); modelBuilder.Entity("DeluxeNET.Data.SubRoom", b => { b.Property("SubRoomId") .ValueGeneratedOnAdd() .HasColumnType("int") .HasAnnotation("Relational:JsonPropertyName", "SubRoomId"); MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("SubRoomId")); b.Property("Accessibility") .HasColumnType("int") .HasAnnotation("Relational:JsonPropertyName", "Accessibility"); b.Property("IsSandbox") .HasColumnType("tinyint(1)") .HasAnnotation("Relational:JsonPropertyName", "IsSandbox"); b.Property("MaxPlayers") .HasColumnType("int") .HasAnnotation("Relational:JsonPropertyName", "MaxPlayers"); b.Property("Name") .IsRequired() .HasColumnType("longtext") .HasAnnotation("Relational:JsonPropertyName", "Name"); b.Property("RoomId") .HasColumnType("bigint") .HasAnnotation("Relational:JsonPropertyName", "RoomId"); b.Property("UnitySceneId") .IsRequired() .HasColumnType("longtext") .HasAnnotation("Relational:JsonPropertyName", "UnitySceneId"); b.HasKey("SubRoomId"); b.HasIndex("RoomId"); b.ToTable("SubRooms"); b.HasAnnotation("Relational:JsonPropertyName", "SubRooms"); }); modelBuilder.Entity("DeluxeNET.Data.SubRoomSave", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("bigint"); MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); b.Property("CreatedAt") .HasColumnType("datetime(6)") .HasAnnotation("Relational:JsonPropertyName", "CreatedAt"); b.Property("DataBlob") .IsRequired() .HasColumnType("longtext") .HasAnnotation("Relational:JsonPropertyName", "DataBlob"); b.Property("Description") .IsRequired() .HasColumnType("longtext") .HasAnnotation("Relational:JsonPropertyName", "Description"); b.Property("RoomId") .HasColumnType("bigint") .HasAnnotation("Relational:JsonPropertyName", "RoomId"); b.Property("SavedByAccountId") .HasColumnType("int") .HasAnnotation("Relational:JsonPropertyName", "SavedByAccountId"); b.Property("SubRoomDataSaveId") .HasColumnType("int") .HasAnnotation("Relational:JsonPropertyName", "SubRoomDataSaveId"); b.Property("SubRoomId") .HasColumnType("int") .HasAnnotation("Relational:JsonPropertyName", "SubRoomId"); b.Property("SubRoomId1") .HasColumnType("int"); b.Property("UnityAssetId") .IsRequired() .HasColumnType("longtext") .HasAnnotation("Relational:JsonPropertyName", "UnityAssetId"); b.HasKey("Id"); b.HasIndex("RoomId"); b.HasIndex("SubRoomId") .IsUnique(); b.HasIndex("SubRoomId1"); b.ToTable("SubRoomSaves"); b.HasAnnotation("Relational:JsonPropertyName", "CurrentSave"); }); modelBuilder.Entity("DeluxeNET.Data.account", b => { b.Property("accountId") .ValueGeneratedOnAdd() .HasColumnType("bigint") .HasAnnotation("Relational:JsonPropertyName", "accountId"); MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("accountId")); b.Property("bannerImage") .IsRequired() .HasColumnType("longtext") .HasAnnotation("Relational:JsonPropertyName", "bannerImage"); b.Property("bio") .IsRequired() .HasColumnType("longtext") .HasAnnotation("Relational:JsonPropertyName", "bio"); b.Property("createdAt") .HasColumnType("datetime(6)") .HasAnnotation("Relational:JsonPropertyName", "createdAt"); b.Property("displayName") .IsRequired() .HasColumnType("longtext") .HasAnnotation("Relational:JsonPropertyName", "displayName"); b.Property("identityFlags") .HasColumnType("int") .HasAnnotation("Relational:JsonPropertyName", "identityFlags"); b.Property("isJunior") .HasColumnType("tinyint(1)") .HasAnnotation("Relational:JsonPropertyName", "isJunior"); b.Property("isMetaPlatformBlocked") .HasColumnType("tinyint(1)") .HasAnnotation("Relational:JsonPropertyName", "isMetaPlatformBlocked"); b.Property("personalPronouns") .HasColumnType("int") .HasAnnotation("Relational:JsonPropertyName", "personalPronouns"); b.Property("platforms") .HasColumnType("int") .HasAnnotation("Relational:JsonPropertyName", "platforms"); b.Property("profileImage") .IsRequired() .HasColumnType("longtext") .HasAnnotation("Relational:JsonPropertyName", "profileImage"); b.Property("username") .IsRequired() .HasColumnType("longtext") .HasAnnotation("Relational:JsonPropertyName", "username"); b.HasKey("accountId"); b.ToTable("Accounts"); }); modelBuilder.Entity("DeluxeNET.Data.avatar", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("bigint") .HasAnnotation("Relational:JsonPropertyName", "Id"); MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); b.Property("FaceFeatures") .IsRequired() .HasColumnType("longtext") .HasAnnotation("Relational:JsonPropertyName", "FaceFeatures"); b.Property("HairColor") .IsRequired() .HasColumnType("longtext") .HasAnnotation("Relational:JsonPropertyName", "HairColor"); b.Property("OutfitSelections") .IsRequired() .HasColumnType("longtext") .HasAnnotation("Relational:JsonPropertyName", "OutfitSelections"); b.Property("SkinColor") .IsRequired() .HasColumnType("longtext") .HasAnnotation("Relational:JsonPropertyName", "SkinColor"); b.Property("accountId") .HasColumnType("bigint") .HasAnnotation("Relational:JsonPropertyName", "accountId"); b.HasKey("Id"); b.ToTable("Avatars"); }); modelBuilder.Entity("DeluxeNET.Data.progression", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("bigint") .HasAnnotation("Relational:JsonPropertyName", "Id"); MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); b.Property("Level") .HasColumnType("int") .HasAnnotation("Relational:JsonPropertyName", "Level"); b.Property("PlayerId") .HasColumnType("bigint") .HasAnnotation("Relational:JsonPropertyName", "PlayerId"); b.Property("XP") .HasColumnType("int") .HasAnnotation("Relational:JsonPropertyName", "XP"); b.HasKey("Id"); b.ToTable("Progressions"); }); modelBuilder.Entity("DeluxeNET.Data.reputation", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("bigint") .HasAnnotation("Relational:JsonPropertyName", "Id"); MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); b.Property("CheerCreative") .HasColumnType("int") .HasAnnotation("Relational:JsonPropertyName", "CheerCreative"); b.Property("CheerCredit") .HasColumnType("int") .HasAnnotation("Relational:JsonPropertyName", "CheerCredit"); b.Property("CheerGeneral") .HasColumnType("int") .HasAnnotation("Relational:JsonPropertyName", "CheerGeneral"); b.Property("CheerGreatHost") .HasColumnType("int") .HasAnnotation("Relational:JsonPropertyName", "CheerGreatHost"); b.Property("CheerHelpful") .HasColumnType("int") .HasAnnotation("Relational:JsonPropertyName", "CheerHelpful"); b.Property("CheerSportsman") .HasColumnType("int") .HasAnnotation("Relational:JsonPropertyName", "CheerSportsman"); b.Property("IsCheerful") .HasColumnType("tinyint(1)") .HasAnnotation("Relational:JsonPropertyName", "IsCheerful"); b.Property("Noteriety") .HasColumnType("float") .HasAnnotation("Relational:JsonPropertyName", "Noteriety"); b.Property("SelectedCheer") .HasColumnType("int") .HasAnnotation("Relational:JsonPropertyName", "SelectedCheer"); b.Property("accountId") .HasColumnType("bigint") .HasAnnotation("Relational:JsonPropertyName", "accountId"); b.HasKey("Id"); b.ToTable("Reputations"); }); modelBuilder.Entity("DeluxeNET.Data.setting", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("bigint") .HasAnnotation("Relational:JsonPropertyName", "Id"); MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); b.Property("Key") .IsRequired() .HasColumnType("longtext") .HasAnnotation("Relational:JsonPropertyName", "Key"); b.Property("Value") .IsRequired() .HasColumnType("longtext") .HasAnnotation("Relational:JsonPropertyName", "Value"); b.Property("accountId") .HasColumnType("bigint") .HasAnnotation("Relational:JsonPropertyName", "accountId"); b.HasKey("Id"); b.ToTable("Settings"); }); modelBuilder.Entity("DeluxeNET.Data.Heartbeat", b => { b.HasOne("DeluxeNET.Data.RoomInstance", "RoomInstance") .WithMany("Heartbeats") .HasForeignKey("RoomInstanceId") .OnDelete(DeleteBehavior.SetNull); b.Navigation("RoomInstance"); }); modelBuilder.Entity("DeluxeNET.Data.RoomRole", b => { b.HasOne("DeluxeNET.Data.Room", "Room") .WithMany("Roles") .HasForeignKey("RoomId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Room"); }); modelBuilder.Entity("DeluxeNET.Data.RoomStats", b => { b.HasOne("DeluxeNET.Data.Room", "Room") .WithOne("Stats") .HasForeignKey("DeluxeNET.Data.RoomStats", "RoomId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Room"); }); modelBuilder.Entity("DeluxeNET.Data.SubRoom", b => { b.HasOne("DeluxeNET.Data.Room", "Room") .WithMany("SubRooms") .HasForeignKey("RoomId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Room"); }); modelBuilder.Entity("DeluxeNET.Data.SubRoomSave", b => { b.HasOne("DeluxeNET.Data.Room", "Room") .WithMany() .HasForeignKey("RoomId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("DeluxeNET.Data.SubRoom", "SubRoom") .WithOne("CurrentSave") .HasForeignKey("DeluxeNET.Data.SubRoomSave", "SubRoomId") .OnDelete(DeleteBehavior.Restrict) .IsRequired(); b.HasOne("DeluxeNET.Data.SubRoom", null) .WithMany("SubRoomSaves") .HasForeignKey("SubRoomId1"); b.Navigation("Room"); b.Navigation("SubRoom"); }); modelBuilder.Entity("DeluxeNET.Data.Room", b => { b.Navigation("Roles"); b.Navigation("Stats") .IsRequired(); b.Navigation("SubRooms"); }); modelBuilder.Entity("DeluxeNET.Data.RoomInstance", b => { b.Navigation("Heartbeats"); }); modelBuilder.Entity("DeluxeNET.Data.SubRoom", b => { b.Navigation("CurrentSave") .IsRequired(); b.Navigation("SubRoomSaves"); }); #pragma warning restore 612, 618 } } }