//
using System;
using DeluxeNET.Data;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Metadata;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
#nullable disable
namespace DeluxeNET.Migrations
{
[DbContext(typeof(AppDbContext))]
partial class AppDbContextModelSnapshot : ModelSnapshot
{
protected override void BuildModel(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
}
}
}