From e2536dd21083428c5f752e2df2730d9ddbd2e65c Mon Sep 17 00:00:00 2001 From: Pat Hartl Date: Mon, 3 Feb 2025 02:35:40 -0600 Subject: [PATCH] Regenerate MySQL/PostgreSQL migrations Ref #168 --- .../LANCommander.Server.Data.MySQL.csproj | 4 + .../20241024041842_InitialSeed.Designer.cs | 2647 ---------------- .../20241031054715_AddLibraries.Designer.cs | 2738 ----------------- .../Migrations/20241031054715_AddLibraries.cs | 106 - .../20250120232846_FixCompanyForeignKeys.cs | 78 - ...250203083220_InitialMigration.Designer.cs} | 69 +- ....cs => 20250203083220_InitialMigration.cs} | 157 +- .../DatabaseContextModelSnapshot.cs | 65 + ...LANCommander.Server.Data.PostgreSQL.csproj | 4 + .../20241024040259_InitialSeed.Designer.cs | 2647 ---------------- .../20241031054754_AddLibraries.Designer.cs | 2738 ----------------- .../Migrations/20241031054754_AddLibraries.cs | 104 - .../20250120222926_FixCompanyForeignKeys.cs | 78 - ...250203083412_InitialMigration.Designer.cs} | 69 +- ....cs => 20250203083412_InitialMigration.cs} | 152 +- .../DatabaseContextModelSnapshot.cs | 65 + 16 files changed, 565 insertions(+), 11156 deletions(-) delete mode 100644 LANCommander.Server.Data.MySQL/Migrations/20241024041842_InitialSeed.Designer.cs delete mode 100644 LANCommander.Server.Data.MySQL/Migrations/20241031054715_AddLibraries.Designer.cs delete mode 100644 LANCommander.Server.Data.MySQL/Migrations/20241031054715_AddLibraries.cs delete mode 100644 LANCommander.Server.Data.MySQL/Migrations/20250120232846_FixCompanyForeignKeys.cs rename LANCommander.Server.Data.MySQL/Migrations/{20250120232846_FixCompanyForeignKeys.Designer.cs => 20250203083220_InitialMigration.Designer.cs} (97%) rename LANCommander.Server.Data.MySQL/Migrations/{20241024041842_InitialSeed.cs => 20250203083220_InitialMigration.cs} (94%) delete mode 100644 LANCommander.Server.Data.PostgreSQL/Migrations/20241024040259_InitialSeed.Designer.cs delete mode 100644 LANCommander.Server.Data.PostgreSQL/Migrations/20241031054754_AddLibraries.Designer.cs delete mode 100644 LANCommander.Server.Data.PostgreSQL/Migrations/20241031054754_AddLibraries.cs delete mode 100644 LANCommander.Server.Data.PostgreSQL/Migrations/20250120222926_FixCompanyForeignKeys.cs rename LANCommander.Server.Data.PostgreSQL/Migrations/{20250120222926_FixCompanyForeignKeys.Designer.cs => 20250203083412_InitialMigration.Designer.cs} (97%) rename LANCommander.Server.Data.PostgreSQL/Migrations/{20241024040259_InitialSeed.cs => 20250203083412_InitialMigration.cs} (94%) diff --git a/LANCommander.Server.Data.MySQL/LANCommander.Server.Data.MySQL.csproj b/LANCommander.Server.Data.MySQL/LANCommander.Server.Data.MySQL.csproj index aeade9ec..3b2c9b3d 100644 --- a/LANCommander.Server.Data.MySQL/LANCommander.Server.Data.MySQL.csproj +++ b/LANCommander.Server.Data.MySQL/LANCommander.Server.Data.MySQL.csproj @@ -15,4 +15,8 @@ + + + + diff --git a/LANCommander.Server.Data.MySQL/Migrations/20241024041842_InitialSeed.Designer.cs b/LANCommander.Server.Data.MySQL/Migrations/20241024041842_InitialSeed.Designer.cs deleted file mode 100644 index 54e63387..00000000 --- a/LANCommander.Server.Data.MySQL/Migrations/20241024041842_InitialSeed.Designer.cs +++ /dev/null @@ -1,2647 +0,0 @@ -// -using System; -using LANCommander.Server.Data; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.EntityFrameworkCore.Metadata; -using Microsoft.EntityFrameworkCore.Migrations; -using Microsoft.EntityFrameworkCore.Storage.ValueConversion; - -#nullable disable - -namespace LANCommander.Server.Data.MySQL.Migrations -{ - [DbContext(typeof(DatabaseContext))] - [Migration("20241024041842_InitialSeed")] - partial class InitialSeed - { - /// - protected override void BuildTargetModel(ModelBuilder modelBuilder) - { -#pragma warning disable 612, 618 - modelBuilder - .HasAnnotation("ProductVersion", "8.0.10") - .HasAnnotation("Relational:MaxIdentifierLength", 64); - - MySqlModelBuilderExtensions.AutoIncrementColumns(modelBuilder); - - modelBuilder.Entity("CategoryGame", b => - { - b.Property("CategoriesId") - .HasColumnType("char(36)"); - - b.Property("GamesId") - .HasColumnType("char(36)"); - - b.HasKey("CategoriesId", "GamesId"); - - b.HasIndex("GamesId"); - - b.ToTable("CategoryGame"); - }); - - modelBuilder.Entity("CollectionGame", b => - { - b.Property("CollectionId") - .HasColumnType("char(36)"); - - b.Property("GameId") - .HasColumnType("char(36)"); - - b.HasKey("CollectionId", "GameId"); - - b.HasIndex("GameId"); - - b.ToTable("CollectionGame"); - }); - - modelBuilder.Entity("GameDeveloper", b => - { - b.Property("DeveloperId") - .HasColumnType("char(36)"); - - b.Property("GameId") - .HasColumnType("char(36)"); - - b.HasKey("DeveloperId", "GameId"); - - b.HasIndex("GameId"); - - b.ToTable("GameDeveloper"); - }); - - modelBuilder.Entity("GameGenre", b => - { - b.Property("GamesId") - .HasColumnType("char(36)"); - - b.Property("GenresId") - .HasColumnType("char(36)"); - - b.HasKey("GamesId", "GenresId"); - - b.HasIndex("GenresId"); - - b.ToTable("GameGenre"); - }); - - modelBuilder.Entity("GamePlatform", b => - { - b.Property("GamesId") - .HasColumnType("char(36)"); - - b.Property("PlatformsId") - .HasColumnType("char(36)"); - - b.HasKey("GamesId", "PlatformsId"); - - b.HasIndex("PlatformsId"); - - b.ToTable("GamePlatform"); - }); - - modelBuilder.Entity("GamePublisher", b => - { - b.Property("GameId") - .HasColumnType("char(36)"); - - b.Property("PublisherId") - .HasColumnType("char(36)"); - - b.HasKey("GameId", "PublisherId"); - - b.HasIndex("PublisherId"); - - b.ToTable("GamePublisher"); - }); - - modelBuilder.Entity("GameRedistributable", b => - { - b.Property("GameId") - .HasColumnType("char(36)"); - - b.Property("RedistributableId") - .HasColumnType("char(36)"); - - b.HasKey("GameId", "RedistributableId"); - - b.HasIndex("RedistributableId"); - - b.ToTable("GameRedistributable"); - }); - - modelBuilder.Entity("GameTag", b => - { - b.Property("GamesId") - .HasColumnType("char(36)"); - - b.Property("TagsId") - .HasColumnType("char(36)"); - - b.HasKey("GamesId", "TagsId"); - - b.HasIndex("TagsId"); - - b.ToTable("GameTag"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Action", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("char(36)"); - - b.Property("Arguments") - .HasColumnType("longtext"); - - b.Property("CreatedById") - .HasColumnType("char(36)"); - - b.Property("CreatedOn") - .HasColumnType("datetime(6)"); - - b.Property("GameId") - .HasColumnType("char(36)"); - - b.Property("Name") - .IsRequired() - .HasColumnType("longtext"); - - b.Property("Path") - .HasColumnType("longtext"); - - b.Property("PrimaryAction") - .HasColumnType("tinyint(1)"); - - b.Property("ServerId") - .HasColumnType("char(36)"); - - b.Property("SortOrder") - .HasColumnType("int"); - - b.Property("UpdatedById") - .HasColumnType("char(36)"); - - b.Property("UpdatedOn") - .HasColumnType("datetime(6)"); - - b.Property("WorkingDirectory") - .HasColumnType("longtext"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("GameId"); - - b.HasIndex("ServerId"); - - b.HasIndex("UpdatedById"); - - b.ToTable("Actions"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Archive", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("char(36)"); - - b.Property("Changelog") - .HasColumnType("longtext"); - - b.Property("CompressedSize") - .HasColumnType("bigint"); - - b.Property("CreatedById") - .HasColumnType("char(36)"); - - b.Property("CreatedOn") - .HasColumnType("datetime(6)"); - - b.Property("GameId") - .HasColumnType("char(36)"); - - b.Property("LastVersionId") - .HasColumnType("char(36)"); - - b.Property("ObjectKey") - .IsRequired() - .HasColumnType("longtext"); - - b.Property("RedistributableId") - .HasColumnType("char(36)"); - - b.Property("StorageLocationId") - .HasColumnType("char(36)"); - - b.Property("UncompressedSize") - .HasColumnType("bigint"); - - b.Property("UpdatedById") - .HasColumnType("char(36)"); - - b.Property("UpdatedOn") - .HasColumnType("datetime(6)"); - - b.Property("Version") - .IsRequired() - .HasColumnType("longtext"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("GameId"); - - b.HasIndex("LastVersionId"); - - b.HasIndex("RedistributableId"); - - b.HasIndex("StorageLocationId"); - - b.HasIndex("UpdatedById"); - - b.ToTable("Archive"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Category", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("char(36)"); - - b.Property("CreatedById") - .HasColumnType("char(36)"); - - b.Property("CreatedOn") - .HasColumnType("datetime(6)"); - - b.Property("Name") - .IsRequired() - .HasColumnType("longtext"); - - b.Property("ParentId") - .HasColumnType("char(36)"); - - b.Property("UpdatedById") - .HasColumnType("char(36)"); - - b.Property("UpdatedOn") - .HasColumnType("datetime(6)"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("ParentId"); - - b.HasIndex("UpdatedById"); - - b.ToTable("Categories"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Collection", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("char(36)"); - - b.Property("CreatedById") - .HasColumnType("char(36)"); - - b.Property("CreatedOn") - .HasColumnType("datetime(6)"); - - b.Property("Name") - .IsRequired() - .HasColumnType("longtext"); - - b.Property("UpdatedById") - .HasColumnType("char(36)"); - - b.Property("UpdatedOn") - .HasColumnType("datetime(6)"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("UpdatedById"); - - b.ToTable("Collections"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Company", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("char(36)"); - - b.Property("CreatedById") - .HasColumnType("char(36)"); - - b.Property("CreatedOn") - .HasColumnType("datetime(6)"); - - b.Property("Name") - .IsRequired() - .HasColumnType("longtext"); - - b.Property("UpdatedById") - .HasColumnType("char(36)"); - - b.Property("UpdatedOn") - .HasColumnType("datetime(6)"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("UpdatedById"); - - b.ToTable("Companies"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Engine", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("char(36)"); - - b.Property("CreatedById") - .HasColumnType("char(36)"); - - b.Property("CreatedOn") - .HasColumnType("datetime(6)"); - - b.Property("Name") - .IsRequired() - .HasColumnType("longtext"); - - b.Property("UpdatedById") - .HasColumnType("char(36)"); - - b.Property("UpdatedOn") - .HasColumnType("datetime(6)"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("UpdatedById"); - - b.ToTable("Engines"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Game", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("char(36)"); - - b.Property("BaseGameId") - .HasColumnType("char(36)"); - - b.Property("CreatedById") - .HasColumnType("char(36)"); - - b.Property("CreatedOn") - .HasColumnType("datetime(6)"); - - b.Property("Description") - .HasColumnType("longtext"); - - b.Property("DirectoryName") - .HasColumnType("longtext"); - - b.Property("EngineId") - .HasColumnType("char(36)"); - - b.Property("IGDBId") - .HasColumnType("bigint"); - - b.Property("KeyAllocationMethod") - .HasColumnType("int"); - - b.Property("Notes") - .HasColumnType("longtext"); - - b.Property("ReleasedOn") - .HasColumnType("datetime(6)"); - - b.Property("Singleplayer") - .HasColumnType("tinyint(1)"); - - b.Property("SortTitle") - .HasColumnType("longtext"); - - b.Property("Title") - .IsRequired() - .HasColumnType("longtext"); - - b.Property("Type") - .HasColumnType("int"); - - b.Property("UpdatedById") - .HasColumnType("char(36)"); - - b.Property("UpdatedOn") - .HasColumnType("datetime(6)"); - - b.Property("ValidKeyRegex") - .HasColumnType("longtext"); - - b.HasKey("Id"); - - b.HasIndex("BaseGameId"); - - b.HasIndex("CreatedById"); - - b.HasIndex("EngineId"); - - b.HasIndex("UpdatedById"); - - b.ToTable("Games"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.GameSave", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("char(36)"); - - b.Property("CreatedById") - .HasColumnType("char(36)"); - - b.Property("CreatedOn") - .HasColumnType("datetime(6)"); - - b.Property("GameId") - .HasColumnType("char(36)"); - - b.Property("Size") - .HasColumnType("bigint"); - - b.Property("StorageLocationId") - .HasColumnType("char(36)"); - - b.Property("UpdatedById") - .HasColumnType("char(36)"); - - b.Property("UpdatedOn") - .HasColumnType("datetime(6)"); - - b.Property("UserId") - .HasColumnType("char(36)"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("GameId"); - - b.HasIndex("StorageLocationId"); - - b.HasIndex("UpdatedById"); - - b.HasIndex("UserId"); - - b.ToTable("GameSaves"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Genre", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("char(36)"); - - b.Property("CreatedById") - .HasColumnType("char(36)"); - - b.Property("CreatedOn") - .HasColumnType("datetime(6)"); - - b.Property("Name") - .IsRequired() - .HasColumnType("longtext"); - - b.Property("UpdatedById") - .HasColumnType("char(36)"); - - b.Property("UpdatedOn") - .HasColumnType("datetime(6)"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("UpdatedById"); - - b.ToTable("Genres"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Issue", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("char(36)"); - - b.Property("CreatedById") - .HasColumnType("char(36)"); - - b.Property("CreatedOn") - .HasColumnType("datetime(6)"); - - b.Property("Description") - .IsRequired() - .HasColumnType("longtext"); - - b.Property("GameId") - .HasColumnType("char(36)"); - - b.Property("ResolvedById") - .HasColumnType("char(36)"); - - b.Property("ResolvedOn") - .HasColumnType("datetime(6)"); - - b.Property("UpdatedById") - .HasColumnType("char(36)"); - - b.Property("UpdatedOn") - .HasColumnType("datetime(6)"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("GameId"); - - b.HasIndex("ResolvedById"); - - b.HasIndex("UpdatedById"); - - b.ToTable("Issues"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Key", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("char(36)"); - - b.Property("AllocationMethod") - .HasColumnType("int"); - - b.Property("ClaimedByComputerName") - .HasMaxLength(255) - .HasColumnType("varchar(255)"); - - b.Property("ClaimedByIpv4Address") - .HasMaxLength(15) - .HasColumnType("varchar(15)"); - - b.Property("ClaimedByMacAddress") - .HasMaxLength(17) - .HasColumnType("varchar(17)"); - - b.Property("ClaimedByUserId") - .HasColumnType("char(36)"); - - b.Property("ClaimedOn") - .HasColumnType("datetime(6)"); - - b.Property("CreatedById") - .HasColumnType("char(36)"); - - b.Property("CreatedOn") - .HasColumnType("datetime(6)"); - - b.Property("GameId") - .HasColumnType("char(36)"); - - b.Property("UpdatedById") - .HasColumnType("char(36)"); - - b.Property("UpdatedOn") - .HasColumnType("datetime(6)"); - - b.Property("Value") - .IsRequired() - .HasMaxLength(255) - .HasColumnType("varchar(255)"); - - b.HasKey("Id"); - - b.HasIndex("ClaimedByUserId"); - - b.HasIndex("CreatedById"); - - b.HasIndex("GameId"); - - b.HasIndex("UpdatedById"); - - b.ToTable("Keys"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Media", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("char(36)"); - - b.Property("Crc32") - .IsRequired() - .HasMaxLength(8) - .HasColumnType("varchar(8)"); - - b.Property("CreatedById") - .HasColumnType("char(36)"); - - b.Property("CreatedOn") - .HasColumnType("datetime(6)"); - - b.Property("FileId") - .HasColumnType("char(36)"); - - b.Property("GameId") - .HasColumnType("char(36)"); - - b.Property("MimeType") - .HasMaxLength(255) - .HasColumnType("varchar(255)"); - - b.Property("Name") - .HasMaxLength(64) - .HasColumnType("varchar(64)"); - - b.Property("SourceUrl") - .HasMaxLength(2048) - .HasColumnType("varchar(2048)"); - - b.Property("StorageLocationId") - .HasColumnType("char(36)"); - - b.Property("ThumbnailId") - .HasColumnType("char(36)"); - - b.Property("Type") - .HasColumnType("int"); - - b.Property("UpdatedById") - .HasColumnType("char(36)"); - - b.Property("UpdatedOn") - .HasColumnType("datetime(6)"); - - b.Property("UserId") - .HasColumnType("char(36)"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("GameId"); - - b.HasIndex("StorageLocationId"); - - b.HasIndex("ThumbnailId") - .IsUnique(); - - b.HasIndex("UpdatedById"); - - b.HasIndex("UserId"); - - b.ToTable("Media"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.MultiplayerMode", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("char(36)"); - - b.Property("CreatedById") - .HasColumnType("char(36)"); - - b.Property("CreatedOn") - .HasColumnType("datetime(6)"); - - b.Property("Description") - .HasColumnType("longtext"); - - b.Property("GameId") - .IsRequired() - .HasColumnType("char(36)"); - - b.Property("MaxPlayers") - .HasColumnType("int"); - - b.Property("MinPlayers") - .HasColumnType("int"); - - b.Property("NetworkProtocol") - .HasColumnType("int"); - - b.Property("Spectators") - .HasColumnType("int"); - - b.Property("Type") - .HasColumnType("int"); - - b.Property("UpdatedById") - .HasColumnType("char(36)"); - - b.Property("UpdatedOn") - .HasColumnType("datetime(6)"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("GameId"); - - b.HasIndex("UpdatedById"); - - b.ToTable("MultiplayerModes"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Page", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("char(36)"); - - b.Property("Contents") - .IsRequired() - .HasColumnType("longtext"); - - b.Property("CreatedById") - .HasColumnType("char(36)"); - - b.Property("CreatedOn") - .HasColumnType("datetime(6)"); - - b.Property("ParentId") - .HasColumnType("char(36)"); - - b.Property("Route") - .IsRequired() - .HasMaxLength(2048) - .HasColumnType("varchar(2048)"); - - b.Property("Slug") - .IsRequired() - .HasMaxLength(256) - .HasColumnType("varchar(256)"); - - b.Property("SortOrder") - .HasColumnType("int"); - - b.Property("Title") - .IsRequired() - .HasMaxLength(256) - .HasColumnType("varchar(256)"); - - b.Property("UpdatedById") - .HasColumnType("char(36)"); - - b.Property("UpdatedOn") - .HasColumnType("datetime(6)"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("ParentId"); - - b.HasIndex("UpdatedById"); - - b.ToTable("Pages"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Platform", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("char(36)"); - - b.Property("CreatedById") - .HasColumnType("char(36)"); - - b.Property("CreatedOn") - .HasColumnType("datetime(6)"); - - b.Property("Name") - .IsRequired() - .HasColumnType("longtext"); - - b.Property("UpdatedById") - .HasColumnType("char(36)"); - - b.Property("UpdatedOn") - .HasColumnType("datetime(6)"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("UpdatedById"); - - b.ToTable("Platforms"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.PlaySession", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("char(36)"); - - b.Property("CreatedById") - .HasColumnType("char(36)"); - - b.Property("CreatedOn") - .HasColumnType("datetime(6)"); - - b.Property("End") - .HasColumnType("datetime(6)"); - - b.Property("GameId") - .HasColumnType("char(36)"); - - b.Property("Start") - .HasColumnType("datetime(6)"); - - b.Property("UpdatedById") - .HasColumnType("char(36)"); - - b.Property("UpdatedOn") - .HasColumnType("datetime(6)"); - - b.Property("UserId") - .HasColumnType("char(36)"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("GameId"); - - b.HasIndex("UpdatedById"); - - b.HasIndex("UserId"); - - b.ToTable("PlaySessions"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Redistributable", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("char(36)"); - - b.Property("CreatedById") - .HasColumnType("char(36)"); - - b.Property("CreatedOn") - .HasColumnType("datetime(6)"); - - b.Property("Description") - .HasColumnType("longtext"); - - b.Property("Name") - .IsRequired() - .HasColumnType("longtext"); - - b.Property("Notes") - .HasColumnType("longtext"); - - b.Property("UpdatedById") - .HasColumnType("char(36)"); - - b.Property("UpdatedOn") - .HasColumnType("datetime(6)"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("UpdatedById"); - - b.ToTable("Redistributables"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Role", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("char(36)"); - - b.Property("ConcurrencyStamp") - .IsConcurrencyToken() - .HasColumnType("longtext"); - - b.Property("CreatedById") - .HasColumnType("char(36)"); - - b.Property("CreatedOn") - .HasColumnType("datetime(6)"); - - b.Property("Name") - .HasMaxLength(256) - .HasColumnType("varchar(256)"); - - b.Property("NormalizedName") - .HasMaxLength(256) - .HasColumnType("varchar(256)"); - - b.Property("UpdatedById") - .HasColumnType("char(36)"); - - b.Property("UpdatedOn") - .HasColumnType("datetime(6)"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("NormalizedName") - .IsUnique() - .HasDatabaseName("RoleNameIndex"); - - b.HasIndex("UpdatedById"); - - b.ToTable("Roles", (string)null); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.SavePath", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("char(36)"); - - b.Property("CreatedById") - .HasColumnType("char(36)"); - - b.Property("CreatedOn") - .HasColumnType("datetime(6)"); - - b.Property("GameId") - .HasColumnType("char(36)"); - - b.Property("IsRegex") - .HasColumnType("tinyint(1)"); - - b.Property("Path") - .IsRequired() - .HasColumnType("longtext"); - - b.Property("Type") - .HasColumnType("int"); - - b.Property("UpdatedById") - .HasColumnType("char(36)"); - - b.Property("UpdatedOn") - .HasColumnType("datetime(6)"); - - b.Property("WorkingDirectory") - .HasColumnType("longtext"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("GameId"); - - b.HasIndex("UpdatedById"); - - b.ToTable("SavePaths"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Script", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("char(36)"); - - b.Property("Contents") - .IsRequired() - .HasColumnType("longtext"); - - b.Property("CreatedById") - .HasColumnType("char(36)"); - - b.Property("CreatedOn") - .HasColumnType("datetime(6)"); - - b.Property("Description") - .HasColumnType("longtext"); - - b.Property("GameId") - .HasColumnType("char(36)"); - - b.Property("Name") - .IsRequired() - .HasColumnType("longtext"); - - b.Property("RedistributableId") - .HasColumnType("char(36)"); - - b.Property("RequiresAdmin") - .HasColumnType("tinyint(1)"); - - b.Property("ServerId") - .HasColumnType("char(36)"); - - b.Property("Type") - .HasColumnType("int"); - - b.Property("UpdatedById") - .HasColumnType("char(36)"); - - b.Property("UpdatedOn") - .HasColumnType("datetime(6)"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("GameId"); - - b.HasIndex("RedistributableId"); - - b.HasIndex("ServerId"); - - b.HasIndex("UpdatedById"); - - b.ToTable("Scripts"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Server", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("char(36)"); - - b.Property("Arguments") - .IsRequired() - .HasColumnType("longtext"); - - b.Property("Autostart") - .HasColumnType("tinyint(1)"); - - b.Property("AutostartDelay") - .HasColumnType("int"); - - b.Property("AutostartMethod") - .HasColumnType("int"); - - b.Property("CreatedById") - .HasColumnType("char(36)"); - - b.Property("CreatedOn") - .HasColumnType("datetime(6)"); - - b.Property("GameId") - .HasColumnType("char(36)"); - - b.Property("Host") - .IsRequired() - .HasColumnType("longtext"); - - b.Property("Name") - .IsRequired() - .HasColumnType("longtext"); - - b.Property("OnStartScriptPath") - .IsRequired() - .HasColumnType("longtext"); - - b.Property("OnStopScriptPath") - .IsRequired() - .HasColumnType("longtext"); - - b.Property("Path") - .IsRequired() - .HasColumnType("longtext"); - - b.Property("Port") - .HasColumnType("int"); - - b.Property("ProcessTerminationMethod") - .HasColumnType("int"); - - b.Property("UpdatedById") - .HasColumnType("char(36)"); - - b.Property("UpdatedOn") - .HasColumnType("datetime(6)"); - - b.Property("UseShellExecute") - .HasColumnType("tinyint(1)"); - - b.Property("WorkingDirectory") - .IsRequired() - .HasColumnType("longtext"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("GameId"); - - b.HasIndex("UpdatedById"); - - b.ToTable("Servers"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.ServerConsole", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("char(36)"); - - b.Property("CreatedById") - .HasColumnType("char(36)"); - - b.Property("CreatedOn") - .HasColumnType("datetime(6)"); - - b.Property("Host") - .IsRequired() - .HasColumnType("longtext"); - - b.Property("Name") - .IsRequired() - .HasColumnType("longtext"); - - b.Property("Password") - .IsRequired() - .HasColumnType("longtext"); - - b.Property("Path") - .IsRequired() - .HasColumnType("longtext"); - - b.Property("Port") - .HasColumnType("int"); - - b.Property("ServerId") - .IsRequired() - .HasColumnType("char(36)"); - - b.Property("ServerId1") - .HasColumnType("char(36)"); - - b.Property("Type") - .HasColumnType("int"); - - b.Property("UpdatedById") - .HasColumnType("char(36)"); - - b.Property("UpdatedOn") - .HasColumnType("datetime(6)"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("ServerId"); - - b.HasIndex("ServerId1"); - - b.HasIndex("UpdatedById"); - - b.ToTable("ServerConsoles"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.ServerHttpPath", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("char(36)"); - - b.Property("CreatedById") - .HasColumnType("char(36)"); - - b.Property("CreatedOn") - .HasColumnType("datetime(6)"); - - b.Property("LocalPath") - .IsRequired() - .HasColumnType("longtext"); - - b.Property("Path") - .IsRequired() - .HasColumnType("longtext"); - - b.Property("ServerId") - .HasColumnType("char(36)"); - - b.Property("ServerId1") - .HasColumnType("char(36)"); - - b.Property("UpdatedById") - .HasColumnType("char(36)"); - - b.Property("UpdatedOn") - .HasColumnType("datetime(6)"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("ServerId"); - - b.HasIndex("ServerId1"); - - b.HasIndex("UpdatedById"); - - b.ToTable("ServerHttpPath"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.StorageLocation", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("char(36)"); - - b.Property("CreatedById") - .HasColumnType("char(36)"); - - b.Property("CreatedOn") - .HasColumnType("datetime(6)"); - - b.Property("Default") - .HasColumnType("tinyint(1)"); - - b.Property("Path") - .IsRequired() - .HasColumnType("longtext"); - - b.Property("Type") - .HasColumnType("int"); - - b.Property("UpdatedById") - .HasColumnType("char(36)"); - - b.Property("UpdatedOn") - .HasColumnType("datetime(6)"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("UpdatedById"); - - b.ToTable("StorageLocations"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Tag", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("char(36)"); - - b.Property("CreatedById") - .HasColumnType("char(36)"); - - b.Property("CreatedOn") - .HasColumnType("datetime(6)"); - - b.Property("Name") - .IsRequired() - .HasColumnType("longtext"); - - b.Property("UpdatedById") - .HasColumnType("char(36)"); - - b.Property("UpdatedOn") - .HasColumnType("datetime(6)"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("UpdatedById"); - - b.ToTable("Tags"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.User", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("char(36)"); - - b.Property("AccessFailedCount") - .HasColumnType("int"); - - b.Property("Alias") - .HasColumnType("longtext"); - - b.Property("Approved") - .HasColumnType("tinyint(1)"); - - b.Property("ApprovedOn") - .HasColumnType("datetime(6)"); - - b.Property("ConcurrencyStamp") - .IsConcurrencyToken() - .HasColumnType("longtext"); - - b.Property("CreatedById") - .HasColumnType("char(36)"); - - b.Property("CreatedOn") - .HasColumnType("datetime(6)"); - - b.Property("Email") - .HasMaxLength(256) - .HasColumnType("varchar(256)"); - - b.Property("EmailConfirmed") - .HasColumnType("tinyint(1)"); - - b.Property("LockoutEnabled") - .HasColumnType("tinyint(1)"); - - b.Property("LockoutEnd") - .HasColumnType("datetime(6)"); - - b.Property("NormalizedEmail") - .HasMaxLength(256) - .HasColumnType("varchar(256)"); - - b.Property("NormalizedUserName") - .HasMaxLength(256) - .HasColumnType("varchar(256)"); - - b.Property("PasswordHash") - .HasColumnType("longtext"); - - b.Property("PhoneNumber") - .HasColumnType("longtext"); - - b.Property("PhoneNumberConfirmed") - .HasColumnType("tinyint(1)"); - - b.Property("RefreshToken") - .HasColumnType("longtext"); - - b.Property("RefreshTokenExpiration") - .HasColumnType("datetime(6)"); - - b.Property("SecurityStamp") - .HasColumnType("longtext"); - - b.Property("TwoFactorEnabled") - .HasColumnType("tinyint(1)"); - - b.Property("UpdatedById") - .HasColumnType("char(36)"); - - b.Property("UpdatedOn") - .HasColumnType("datetime(6)"); - - b.Property("UserName") - .HasMaxLength(256) - .HasColumnType("varchar(256)"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("NormalizedEmail") - .HasDatabaseName("EmailIndex"); - - b.HasIndex("NormalizedUserName") - .IsUnique() - .HasDatabaseName("UserNameIndex"); - - b.HasIndex("UpdatedById"); - - b.ToTable("Users", (string)null); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.UserCustomField", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("char(36)"); - - b.Property("CreatedById") - .HasColumnType("char(36)"); - - b.Property("CreatedOn") - .HasColumnType("datetime(6)"); - - b.Property("Name") - .IsRequired() - .HasMaxLength(64) - .HasColumnType("varchar(64)"); - - b.Property("UpdatedById") - .HasColumnType("char(36)"); - - b.Property("UpdatedOn") - .HasColumnType("datetime(6)"); - - b.Property("UserId") - .IsRequired() - .HasColumnType("char(36)"); - - b.Property("Value") - .IsRequired() - .HasMaxLength(1024) - .HasColumnType("varchar(1024)"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("UpdatedById"); - - b.HasIndex("UserId"); - - b.ToTable("UserCustomField"); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("ClaimType") - .HasColumnType("longtext"); - - b.Property("ClaimValue") - .HasColumnType("longtext"); - - b.Property("RoleId") - .HasColumnType("char(36)"); - - b.HasKey("Id"); - - b.HasIndex("RoleId"); - - b.ToTable("RoleClaims", (string)null); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("ClaimType") - .HasColumnType("longtext"); - - b.Property("ClaimValue") - .HasColumnType("longtext"); - - b.Property("UserId") - .HasColumnType("char(36)"); - - b.HasKey("Id"); - - b.HasIndex("UserId"); - - b.ToTable("UserClaims", (string)null); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => - { - b.Property("LoginProvider") - .HasColumnType("varchar(255)"); - - b.Property("ProviderKey") - .HasColumnType("varchar(255)"); - - b.Property("ProviderDisplayName") - .HasColumnType("longtext"); - - b.Property("UserId") - .HasColumnType("char(36)"); - - b.HasKey("LoginProvider", "ProviderKey"); - - b.HasIndex("UserId"); - - b.ToTable("UserLogins", (string)null); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b => - { - b.Property("UserId") - .HasColumnType("char(36)"); - - b.Property("RoleId") - .HasColumnType("char(36)"); - - b.HasKey("UserId", "RoleId"); - - b.HasIndex("RoleId"); - - b.ToTable("UserRoles", (string)null); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => - { - b.Property("UserId") - .HasColumnType("char(36)"); - - b.Property("LoginProvider") - .HasColumnType("varchar(255)"); - - b.Property("Name") - .HasColumnType("varchar(255)"); - - b.Property("Value") - .HasColumnType("longtext"); - - b.HasKey("UserId", "LoginProvider", "Name"); - - b.ToTable("UserTokens", (string)null); - }); - - modelBuilder.Entity("PageGame", b => - { - b.Property("GameId") - .HasColumnType("char(36)"); - - b.Property("PageId") - .HasColumnType("char(36)"); - - b.HasKey("GameId", "PageId"); - - b.HasIndex("PageId"); - - b.ToTable("PageGame"); - }); - - modelBuilder.Entity("PageRedistributable", b => - { - b.Property("PageId") - .HasColumnType("char(36)"); - - b.Property("RedistributableId") - .HasColumnType("char(36)"); - - b.HasKey("PageId", "RedistributableId"); - - b.HasIndex("RedistributableId"); - - b.ToTable("PageRedistributable"); - }); - - modelBuilder.Entity("PageServer", b => - { - b.Property("PageId") - .HasColumnType("char(36)"); - - b.Property("ServerId") - .HasColumnType("char(36)"); - - b.HasKey("PageId", "ServerId"); - - b.HasIndex("ServerId"); - - b.ToTable("PageServer"); - }); - - modelBuilder.Entity("RoleCollection", b => - { - b.Property("CollectionId") - .HasColumnType("char(36)"); - - b.Property("RoleId") - .HasColumnType("char(36)"); - - b.HasKey("CollectionId", "RoleId"); - - b.HasIndex("RoleId"); - - b.ToTable("RoleCollection"); - }); - - modelBuilder.Entity("CategoryGame", b => - { - b.HasOne("LANCommander.Server.Data.Models.Category", null) - .WithMany() - .HasForeignKey("CategoriesId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("LANCommander.Server.Data.Models.Game", null) - .WithMany() - .HasForeignKey("GamesId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("CollectionGame", b => - { - b.HasOne("LANCommander.Server.Data.Models.Collection", null) - .WithMany() - .HasForeignKey("CollectionId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("LANCommander.Server.Data.Models.Game", null) - .WithMany() - .HasForeignKey("GameId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("GameDeveloper", b => - { - b.HasOne("LANCommander.Server.Data.Models.Company", null) - .WithMany() - .HasForeignKey("DeveloperId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("LANCommander.Server.Data.Models.Game", null) - .WithMany() - .HasForeignKey("GameId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("GameGenre", b => - { - b.HasOne("LANCommander.Server.Data.Models.Game", null) - .WithMany() - .HasForeignKey("GamesId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("LANCommander.Server.Data.Models.Genre", null) - .WithMany() - .HasForeignKey("GenresId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("GamePlatform", b => - { - b.HasOne("LANCommander.Server.Data.Models.Game", null) - .WithMany() - .HasForeignKey("GamesId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("LANCommander.Server.Data.Models.Platform", null) - .WithMany() - .HasForeignKey("PlatformsId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("GamePublisher", b => - { - b.HasOne("LANCommander.Server.Data.Models.Game", null) - .WithMany() - .HasForeignKey("GameId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("LANCommander.Server.Data.Models.Company", null) - .WithMany() - .HasForeignKey("PublisherId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("GameRedistributable", b => - { - b.HasOne("LANCommander.Server.Data.Models.Game", null) - .WithMany() - .HasForeignKey("GameId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("LANCommander.Server.Data.Models.Redistributable", null) - .WithMany() - .HasForeignKey("RedistributableId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("GameTag", b => - { - b.HasOne("LANCommander.Server.Data.Models.Game", null) - .WithMany() - .HasForeignKey("GamesId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("LANCommander.Server.Data.Models.Tag", null) - .WithMany() - .HasForeignKey("TagsId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Action", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.Game", "Game") - .WithMany("Actions") - .HasForeignKey("GameId") - .OnDelete(DeleteBehavior.Cascade); - - b.HasOne("LANCommander.Server.Data.Models.Server", "Server") - .WithMany("Actions") - .HasForeignKey("ServerId") - .OnDelete(DeleteBehavior.Cascade); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.Navigation("CreatedBy"); - - b.Navigation("Game"); - - b.Navigation("Server"); - - b.Navigation("UpdatedBy"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Archive", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.Game", "Game") - .WithMany("Archives") - .HasForeignKey("GameId") - .OnDelete(DeleteBehavior.Cascade); - - b.HasOne("LANCommander.Server.Data.Models.Archive", "LastVersion") - .WithMany() - .HasForeignKey("LastVersionId"); - - b.HasOne("LANCommander.Server.Data.Models.Redistributable", "Redistributable") - .WithMany("Archives") - .HasForeignKey("RedistributableId") - .OnDelete(DeleteBehavior.Cascade); - - b.HasOne("LANCommander.Server.Data.Models.StorageLocation", "StorageLocation") - .WithMany("Archives") - .HasForeignKey("StorageLocationId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.Navigation("CreatedBy"); - - b.Navigation("Game"); - - b.Navigation("LastVersion"); - - b.Navigation("Redistributable"); - - b.Navigation("StorageLocation"); - - b.Navigation("UpdatedBy"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Category", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.Category", "Parent") - .WithMany("Children") - .HasForeignKey("ParentId"); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.Navigation("CreatedBy"); - - b.Navigation("Parent"); - - b.Navigation("UpdatedBy"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Collection", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.Navigation("CreatedBy"); - - b.Navigation("UpdatedBy"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Company", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.Navigation("CreatedBy"); - - b.Navigation("UpdatedBy"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Engine", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById"); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById"); - - b.Navigation("CreatedBy"); - - b.Navigation("UpdatedBy"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Game", b => - { - b.HasOne("LANCommander.Server.Data.Models.Game", "BaseGame") - .WithMany("DependentGames") - .HasForeignKey("BaseGameId") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.Engine", "Engine") - .WithMany("Games") - .HasForeignKey("EngineId") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.Navigation("BaseGame"); - - b.Navigation("CreatedBy"); - - b.Navigation("Engine"); - - b.Navigation("UpdatedBy"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.GameSave", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.Game", "Game") - .WithMany("GameSaves") - .HasForeignKey("GameId") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.StorageLocation", "StorageLocation") - .WithMany("GameSaves") - .HasForeignKey("StorageLocationId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.User", "User") - .WithMany("GameSaves") - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("CreatedBy"); - - b.Navigation("Game"); - - b.Navigation("StorageLocation"); - - b.Navigation("UpdatedBy"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Genre", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.Navigation("CreatedBy"); - - b.Navigation("UpdatedBy"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Issue", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.Game", "Game") - .WithMany("Issues") - .HasForeignKey("GameId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("LANCommander.Server.Data.Models.User", "ResolvedBy") - .WithMany() - .HasForeignKey("ResolvedById"); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.Navigation("CreatedBy"); - - b.Navigation("Game"); - - b.Navigation("ResolvedBy"); - - b.Navigation("UpdatedBy"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Key", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "ClaimedByUser") - .WithMany() - .HasForeignKey("ClaimedByUserId"); - - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.Game", "Game") - .WithMany("Keys") - .HasForeignKey("GameId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.Navigation("ClaimedByUser"); - - b.Navigation("CreatedBy"); - - b.Navigation("Game"); - - b.Navigation("UpdatedBy"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Media", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.Game", "Game") - .WithMany("Media") - .HasForeignKey("GameId") - .OnDelete(DeleteBehavior.Cascade); - - b.HasOne("LANCommander.Server.Data.Models.StorageLocation", "StorageLocation") - .WithMany("Media") - .HasForeignKey("StorageLocationId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("LANCommander.Server.Data.Models.Media", "Thumbnail") - .WithOne("Parent") - .HasForeignKey("LANCommander.Server.Data.Models.Media", "ThumbnailId") - .OnDelete(DeleteBehavior.Cascade); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.User", "User") - .WithMany("Media") - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade); - - b.Navigation("CreatedBy"); - - b.Navigation("Game"); - - b.Navigation("StorageLocation"); - - b.Navigation("Thumbnail"); - - b.Navigation("UpdatedBy"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.MultiplayerMode", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.Game", "Game") - .WithMany("MultiplayerModes") - .HasForeignKey("GameId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.Navigation("CreatedBy"); - - b.Navigation("Game"); - - b.Navigation("UpdatedBy"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Page", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.Page", "Parent") - .WithMany("Children") - .HasForeignKey("ParentId") - .OnDelete(DeleteBehavior.Cascade); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.Navigation("CreatedBy"); - - b.Navigation("Parent"); - - b.Navigation("UpdatedBy"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Platform", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.Navigation("CreatedBy"); - - b.Navigation("UpdatedBy"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.PlaySession", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.Game", "Game") - .WithMany("PlaySessions") - .HasForeignKey("GameId") - .OnDelete(DeleteBehavior.Cascade); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.User", "User") - .WithMany("PlaySessions") - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("CreatedBy"); - - b.Navigation("Game"); - - b.Navigation("UpdatedBy"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Redistributable", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.Navigation("CreatedBy"); - - b.Navigation("UpdatedBy"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Role", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.Navigation("CreatedBy"); - - b.Navigation("UpdatedBy"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.SavePath", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.Game", "Game") - .WithMany("SavePaths") - .HasForeignKey("GameId") - .OnDelete(DeleteBehavior.Cascade); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.Navigation("CreatedBy"); - - b.Navigation("Game"); - - b.Navigation("UpdatedBy"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Script", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.Game", "Game") - .WithMany("Scripts") - .HasForeignKey("GameId") - .OnDelete(DeleteBehavior.Cascade); - - b.HasOne("LANCommander.Server.Data.Models.Redistributable", "Redistributable") - .WithMany("Scripts") - .HasForeignKey("RedistributableId") - .OnDelete(DeleteBehavior.Cascade); - - b.HasOne("LANCommander.Server.Data.Models.Server", "Server") - .WithMany("Scripts") - .HasForeignKey("ServerId") - .OnDelete(DeleteBehavior.Cascade); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.Navigation("CreatedBy"); - - b.Navigation("Game"); - - b.Navigation("Redistributable"); - - b.Navigation("Server"); - - b.Navigation("UpdatedBy"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Server", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.Game", "Game") - .WithMany("Servers") - .HasForeignKey("GameId") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.Navigation("CreatedBy"); - - b.Navigation("Game"); - - b.Navigation("UpdatedBy"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.ServerConsole", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.Server", "Server") - .WithMany() - .HasForeignKey("ServerId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("LANCommander.Server.Data.Models.Server", null) - .WithMany("ServerConsoles") - .HasForeignKey("ServerId1"); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.Navigation("CreatedBy"); - - b.Navigation("Server"); - - b.Navigation("UpdatedBy"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.ServerHttpPath", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.Server", "Server") - .WithMany() - .HasForeignKey("ServerId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("LANCommander.Server.Data.Models.Server", null) - .WithMany("HttpPaths") - .HasForeignKey("ServerId1"); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.Navigation("CreatedBy"); - - b.Navigation("Server"); - - b.Navigation("UpdatedBy"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.StorageLocation", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById"); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById"); - - b.Navigation("CreatedBy"); - - b.Navigation("UpdatedBy"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Tag", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.Navigation("CreatedBy"); - - b.Navigation("UpdatedBy"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.User", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.Navigation("CreatedBy"); - - b.Navigation("UpdatedBy"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.UserCustomField", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.User", "User") - .WithMany("CustomFields") - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("CreatedBy"); - - b.Navigation("UpdatedBy"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => - { - b.HasOne("LANCommander.Server.Data.Models.Role", null) - .WithMany() - .HasForeignKey("RoleId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", null) - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", null) - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b => - { - b.HasOne("LANCommander.Server.Data.Models.Role", null) - .WithMany() - .HasForeignKey("RoleId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("LANCommander.Server.Data.Models.User", null) - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", null) - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("PageGame", b => - { - b.HasOne("LANCommander.Server.Data.Models.Game", null) - .WithMany() - .HasForeignKey("GameId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("LANCommander.Server.Data.Models.Page", null) - .WithMany() - .HasForeignKey("PageId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("PageRedistributable", b => - { - b.HasOne("LANCommander.Server.Data.Models.Page", null) - .WithMany() - .HasForeignKey("PageId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("LANCommander.Server.Data.Models.Redistributable", null) - .WithMany() - .HasForeignKey("RedistributableId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("PageServer", b => - { - b.HasOne("LANCommander.Server.Data.Models.Page", null) - .WithMany() - .HasForeignKey("PageId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("LANCommander.Server.Data.Models.Server", null) - .WithMany() - .HasForeignKey("ServerId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("RoleCollection", b => - { - b.HasOne("LANCommander.Server.Data.Models.Collection", null) - .WithMany() - .HasForeignKey("CollectionId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("LANCommander.Server.Data.Models.Role", null) - .WithMany() - .HasForeignKey("RoleId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Category", b => - { - b.Navigation("Children"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Engine", b => - { - b.Navigation("Games"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Game", b => - { - b.Navigation("Actions"); - - b.Navigation("Archives"); - - b.Navigation("DependentGames"); - - b.Navigation("GameSaves"); - - b.Navigation("Issues"); - - b.Navigation("Keys"); - - b.Navigation("Media"); - - b.Navigation("MultiplayerModes"); - - b.Navigation("PlaySessions"); - - b.Navigation("SavePaths"); - - b.Navigation("Scripts"); - - b.Navigation("Servers"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Media", b => - { - b.Navigation("Parent"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Page", b => - { - b.Navigation("Children"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Redistributable", b => - { - b.Navigation("Archives"); - - b.Navigation("Scripts"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Server", b => - { - b.Navigation("Actions"); - - b.Navigation("HttpPaths"); - - b.Navigation("Scripts"); - - b.Navigation("ServerConsoles"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.StorageLocation", b => - { - b.Navigation("Archives"); - - b.Navigation("GameSaves"); - - b.Navigation("Media"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.User", b => - { - b.Navigation("CustomFields"); - - b.Navigation("GameSaves"); - - b.Navigation("Media"); - - b.Navigation("PlaySessions"); - }); -#pragma warning restore 612, 618 - } - } -} diff --git a/LANCommander.Server.Data.MySQL/Migrations/20241031054715_AddLibraries.Designer.cs b/LANCommander.Server.Data.MySQL/Migrations/20241031054715_AddLibraries.Designer.cs deleted file mode 100644 index 0ef3ebe2..00000000 --- a/LANCommander.Server.Data.MySQL/Migrations/20241031054715_AddLibraries.Designer.cs +++ /dev/null @@ -1,2738 +0,0 @@ -// -using System; -using LANCommander.Server.Data; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.EntityFrameworkCore.Metadata; -using Microsoft.EntityFrameworkCore.Migrations; -using Microsoft.EntityFrameworkCore.Storage.ValueConversion; - -#nullable disable - -namespace LANCommander.Server.Data.MySQL.Migrations -{ - [DbContext(typeof(DatabaseContext))] - [Migration("20241031054715_AddLibraries")] - partial class AddLibraries - { - /// - protected override void BuildTargetModel(ModelBuilder modelBuilder) - { -#pragma warning disable 612, 618 - modelBuilder - .HasAnnotation("ProductVersion", "8.0.10") - .HasAnnotation("Relational:MaxIdentifierLength", 64); - - MySqlModelBuilderExtensions.AutoIncrementColumns(modelBuilder); - - modelBuilder.Entity("CategoryGame", b => - { - b.Property("CategoriesId") - .HasColumnType("char(36)"); - - b.Property("GamesId") - .HasColumnType("char(36)"); - - b.HasKey("CategoriesId", "GamesId"); - - b.HasIndex("GamesId"); - - b.ToTable("CategoryGame"); - }); - - modelBuilder.Entity("CollectionGame", b => - { - b.Property("CollectionId") - .HasColumnType("char(36)"); - - b.Property("GameId") - .HasColumnType("char(36)"); - - b.HasKey("CollectionId", "GameId"); - - b.HasIndex("GameId"); - - b.ToTable("CollectionGame"); - }); - - modelBuilder.Entity("GameDeveloper", b => - { - b.Property("DeveloperId") - .HasColumnType("char(36)"); - - b.Property("GameId") - .HasColumnType("char(36)"); - - b.HasKey("DeveloperId", "GameId"); - - b.HasIndex("GameId"); - - b.ToTable("GameDeveloper"); - }); - - modelBuilder.Entity("GameGenre", b => - { - b.Property("GamesId") - .HasColumnType("char(36)"); - - b.Property("GenresId") - .HasColumnType("char(36)"); - - b.HasKey("GamesId", "GenresId"); - - b.HasIndex("GenresId"); - - b.ToTable("GameGenre"); - }); - - modelBuilder.Entity("GamePlatform", b => - { - b.Property("GamesId") - .HasColumnType("char(36)"); - - b.Property("PlatformsId") - .HasColumnType("char(36)"); - - b.HasKey("GamesId", "PlatformsId"); - - b.HasIndex("PlatformsId"); - - b.ToTable("GamePlatform"); - }); - - modelBuilder.Entity("GamePublisher", b => - { - b.Property("GameId") - .HasColumnType("char(36)"); - - b.Property("PublisherId") - .HasColumnType("char(36)"); - - b.HasKey("GameId", "PublisherId"); - - b.HasIndex("PublisherId"); - - b.ToTable("GamePublisher"); - }); - - modelBuilder.Entity("GameRedistributable", b => - { - b.Property("GameId") - .HasColumnType("char(36)"); - - b.Property("RedistributableId") - .HasColumnType("char(36)"); - - b.HasKey("GameId", "RedistributableId"); - - b.HasIndex("RedistributableId"); - - b.ToTable("GameRedistributable"); - }); - - modelBuilder.Entity("GameTag", b => - { - b.Property("GamesId") - .HasColumnType("char(36)"); - - b.Property("TagsId") - .HasColumnType("char(36)"); - - b.HasKey("GamesId", "TagsId"); - - b.HasIndex("TagsId"); - - b.ToTable("GameTag"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Action", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("char(36)"); - - b.Property("Arguments") - .HasColumnType("longtext"); - - b.Property("CreatedById") - .HasColumnType("char(36)"); - - b.Property("CreatedOn") - .HasColumnType("datetime(6)"); - - b.Property("GameId") - .HasColumnType("char(36)"); - - b.Property("Name") - .IsRequired() - .HasColumnType("longtext"); - - b.Property("Path") - .HasColumnType("longtext"); - - b.Property("PrimaryAction") - .HasColumnType("tinyint(1)"); - - b.Property("ServerId") - .HasColumnType("char(36)"); - - b.Property("SortOrder") - .HasColumnType("int"); - - b.Property("UpdatedById") - .HasColumnType("char(36)"); - - b.Property("UpdatedOn") - .HasColumnType("datetime(6)"); - - b.Property("WorkingDirectory") - .HasColumnType("longtext"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("GameId"); - - b.HasIndex("ServerId"); - - b.HasIndex("UpdatedById"); - - b.ToTable("Actions"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Archive", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("char(36)"); - - b.Property("Changelog") - .HasColumnType("longtext"); - - b.Property("CompressedSize") - .HasColumnType("bigint"); - - b.Property("CreatedById") - .HasColumnType("char(36)"); - - b.Property("CreatedOn") - .HasColumnType("datetime(6)"); - - b.Property("GameId") - .HasColumnType("char(36)"); - - b.Property("LastVersionId") - .HasColumnType("char(36)"); - - b.Property("ObjectKey") - .IsRequired() - .HasColumnType("longtext"); - - b.Property("RedistributableId") - .HasColumnType("char(36)"); - - b.Property("StorageLocationId") - .HasColumnType("char(36)"); - - b.Property("UncompressedSize") - .HasColumnType("bigint"); - - b.Property("UpdatedById") - .HasColumnType("char(36)"); - - b.Property("UpdatedOn") - .HasColumnType("datetime(6)"); - - b.Property("Version") - .IsRequired() - .HasColumnType("longtext"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("GameId"); - - b.HasIndex("LastVersionId"); - - b.HasIndex("RedistributableId"); - - b.HasIndex("StorageLocationId"); - - b.HasIndex("UpdatedById"); - - b.ToTable("Archive"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Category", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("char(36)"); - - b.Property("CreatedById") - .HasColumnType("char(36)"); - - b.Property("CreatedOn") - .HasColumnType("datetime(6)"); - - b.Property("Name") - .IsRequired() - .HasColumnType("longtext"); - - b.Property("ParentId") - .HasColumnType("char(36)"); - - b.Property("UpdatedById") - .HasColumnType("char(36)"); - - b.Property("UpdatedOn") - .HasColumnType("datetime(6)"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("ParentId"); - - b.HasIndex("UpdatedById"); - - b.ToTable("Categories"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Collection", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("char(36)"); - - b.Property("CreatedById") - .HasColumnType("char(36)"); - - b.Property("CreatedOn") - .HasColumnType("datetime(6)"); - - b.Property("Name") - .IsRequired() - .HasColumnType("longtext"); - - b.Property("UpdatedById") - .HasColumnType("char(36)"); - - b.Property("UpdatedOn") - .HasColumnType("datetime(6)"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("UpdatedById"); - - b.ToTable("Collections"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Company", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("char(36)"); - - b.Property("CreatedById") - .HasColumnType("char(36)"); - - b.Property("CreatedOn") - .HasColumnType("datetime(6)"); - - b.Property("Name") - .IsRequired() - .HasColumnType("longtext"); - - b.Property("UpdatedById") - .HasColumnType("char(36)"); - - b.Property("UpdatedOn") - .HasColumnType("datetime(6)"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("UpdatedById"); - - b.ToTable("Companies"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Engine", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("char(36)"); - - b.Property("CreatedById") - .HasColumnType("char(36)"); - - b.Property("CreatedOn") - .HasColumnType("datetime(6)"); - - b.Property("Name") - .IsRequired() - .HasColumnType("longtext"); - - b.Property("UpdatedById") - .HasColumnType("char(36)"); - - b.Property("UpdatedOn") - .HasColumnType("datetime(6)"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("UpdatedById"); - - b.ToTable("Engines"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Game", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("char(36)"); - - b.Property("BaseGameId") - .HasColumnType("char(36)"); - - b.Property("CreatedById") - .HasColumnType("char(36)"); - - b.Property("CreatedOn") - .HasColumnType("datetime(6)"); - - b.Property("Description") - .HasColumnType("longtext"); - - b.Property("DirectoryName") - .HasColumnType("longtext"); - - b.Property("EngineId") - .HasColumnType("char(36)"); - - b.Property("IGDBId") - .HasColumnType("bigint"); - - b.Property("KeyAllocationMethod") - .HasColumnType("int"); - - b.Property("Notes") - .HasColumnType("longtext"); - - b.Property("ReleasedOn") - .HasColumnType("datetime(6)"); - - b.Property("Singleplayer") - .HasColumnType("tinyint(1)"); - - b.Property("SortTitle") - .HasColumnType("longtext"); - - b.Property("Title") - .IsRequired() - .HasColumnType("longtext"); - - b.Property("Type") - .HasColumnType("int"); - - b.Property("UpdatedById") - .HasColumnType("char(36)"); - - b.Property("UpdatedOn") - .HasColumnType("datetime(6)"); - - b.Property("ValidKeyRegex") - .HasColumnType("longtext"); - - b.HasKey("Id"); - - b.HasIndex("BaseGameId"); - - b.HasIndex("CreatedById"); - - b.HasIndex("EngineId"); - - b.HasIndex("UpdatedById"); - - b.ToTable("Games"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.GameSave", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("char(36)"); - - b.Property("CreatedById") - .HasColumnType("char(36)"); - - b.Property("CreatedOn") - .HasColumnType("datetime(6)"); - - b.Property("GameId") - .HasColumnType("char(36)"); - - b.Property("Size") - .HasColumnType("bigint"); - - b.Property("StorageLocationId") - .HasColumnType("char(36)"); - - b.Property("UpdatedById") - .HasColumnType("char(36)"); - - b.Property("UpdatedOn") - .HasColumnType("datetime(6)"); - - b.Property("UserId") - .HasColumnType("char(36)"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("GameId"); - - b.HasIndex("StorageLocationId"); - - b.HasIndex("UpdatedById"); - - b.HasIndex("UserId"); - - b.ToTable("GameSaves"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Genre", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("char(36)"); - - b.Property("CreatedById") - .HasColumnType("char(36)"); - - b.Property("CreatedOn") - .HasColumnType("datetime(6)"); - - b.Property("Name") - .IsRequired() - .HasColumnType("longtext"); - - b.Property("UpdatedById") - .HasColumnType("char(36)"); - - b.Property("UpdatedOn") - .HasColumnType("datetime(6)"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("UpdatedById"); - - b.ToTable("Genres"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Issue", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("char(36)"); - - b.Property("CreatedById") - .HasColumnType("char(36)"); - - b.Property("CreatedOn") - .HasColumnType("datetime(6)"); - - b.Property("Description") - .IsRequired() - .HasColumnType("longtext"); - - b.Property("GameId") - .HasColumnType("char(36)"); - - b.Property("ResolvedById") - .HasColumnType("char(36)"); - - b.Property("ResolvedOn") - .HasColumnType("datetime(6)"); - - b.Property("UpdatedById") - .HasColumnType("char(36)"); - - b.Property("UpdatedOn") - .HasColumnType("datetime(6)"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("GameId"); - - b.HasIndex("ResolvedById"); - - b.HasIndex("UpdatedById"); - - b.ToTable("Issues"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Key", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("char(36)"); - - b.Property("AllocationMethod") - .HasColumnType("int"); - - b.Property("ClaimedByComputerName") - .HasMaxLength(255) - .HasColumnType("varchar(255)"); - - b.Property("ClaimedByIpv4Address") - .HasMaxLength(15) - .HasColumnType("varchar(15)"); - - b.Property("ClaimedByMacAddress") - .HasMaxLength(17) - .HasColumnType("varchar(17)"); - - b.Property("ClaimedByUserId") - .HasColumnType("char(36)"); - - b.Property("ClaimedOn") - .HasColumnType("datetime(6)"); - - b.Property("CreatedById") - .HasColumnType("char(36)"); - - b.Property("CreatedOn") - .HasColumnType("datetime(6)"); - - b.Property("GameId") - .HasColumnType("char(36)"); - - b.Property("UpdatedById") - .HasColumnType("char(36)"); - - b.Property("UpdatedOn") - .HasColumnType("datetime(6)"); - - b.Property("Value") - .IsRequired() - .HasMaxLength(255) - .HasColumnType("varchar(255)"); - - b.HasKey("Id"); - - b.HasIndex("ClaimedByUserId"); - - b.HasIndex("CreatedById"); - - b.HasIndex("GameId"); - - b.HasIndex("UpdatedById"); - - b.ToTable("Keys"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Library", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("char(36)"); - - b.Property("CreatedById") - .HasColumnType("char(36)"); - - b.Property("CreatedOn") - .HasColumnType("datetime(6)"); - - b.Property("UpdatedById") - .HasColumnType("char(36)"); - - b.Property("UpdatedOn") - .HasColumnType("datetime(6)"); - - b.Property("UserId") - .HasColumnType("char(36)"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("UpdatedById"); - - b.HasIndex("UserId") - .IsUnique(); - - b.ToTable("Libraries"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Media", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("char(36)"); - - b.Property("Crc32") - .IsRequired() - .HasMaxLength(8) - .HasColumnType("varchar(8)"); - - b.Property("CreatedById") - .HasColumnType("char(36)"); - - b.Property("CreatedOn") - .HasColumnType("datetime(6)"); - - b.Property("FileId") - .HasColumnType("char(36)"); - - b.Property("GameId") - .HasColumnType("char(36)"); - - b.Property("MimeType") - .HasMaxLength(255) - .HasColumnType("varchar(255)"); - - b.Property("Name") - .HasMaxLength(64) - .HasColumnType("varchar(64)"); - - b.Property("SourceUrl") - .HasMaxLength(2048) - .HasColumnType("varchar(2048)"); - - b.Property("StorageLocationId") - .HasColumnType("char(36)"); - - b.Property("ThumbnailId") - .HasColumnType("char(36)"); - - b.Property("Type") - .HasColumnType("int"); - - b.Property("UpdatedById") - .HasColumnType("char(36)"); - - b.Property("UpdatedOn") - .HasColumnType("datetime(6)"); - - b.Property("UserId") - .HasColumnType("char(36)"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("GameId"); - - b.HasIndex("StorageLocationId"); - - b.HasIndex("ThumbnailId") - .IsUnique(); - - b.HasIndex("UpdatedById"); - - b.HasIndex("UserId"); - - b.ToTable("Media"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.MultiplayerMode", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("char(36)"); - - b.Property("CreatedById") - .HasColumnType("char(36)"); - - b.Property("CreatedOn") - .HasColumnType("datetime(6)"); - - b.Property("Description") - .HasColumnType("longtext"); - - b.Property("GameId") - .IsRequired() - .HasColumnType("char(36)"); - - b.Property("MaxPlayers") - .HasColumnType("int"); - - b.Property("MinPlayers") - .HasColumnType("int"); - - b.Property("NetworkProtocol") - .HasColumnType("int"); - - b.Property("Spectators") - .HasColumnType("int"); - - b.Property("Type") - .HasColumnType("int"); - - b.Property("UpdatedById") - .HasColumnType("char(36)"); - - b.Property("UpdatedOn") - .HasColumnType("datetime(6)"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("GameId"); - - b.HasIndex("UpdatedById"); - - b.ToTable("MultiplayerModes"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Page", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("char(36)"); - - b.Property("Contents") - .IsRequired() - .HasColumnType("longtext"); - - b.Property("CreatedById") - .HasColumnType("char(36)"); - - b.Property("CreatedOn") - .HasColumnType("datetime(6)"); - - b.Property("ParentId") - .HasColumnType("char(36)"); - - b.Property("Route") - .IsRequired() - .HasMaxLength(2048) - .HasColumnType("varchar(2048)"); - - b.Property("Slug") - .IsRequired() - .HasMaxLength(256) - .HasColumnType("varchar(256)"); - - b.Property("SortOrder") - .HasColumnType("int"); - - b.Property("Title") - .IsRequired() - .HasMaxLength(256) - .HasColumnType("varchar(256)"); - - b.Property("UpdatedById") - .HasColumnType("char(36)"); - - b.Property("UpdatedOn") - .HasColumnType("datetime(6)"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("ParentId"); - - b.HasIndex("UpdatedById"); - - b.ToTable("Pages"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Platform", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("char(36)"); - - b.Property("CreatedById") - .HasColumnType("char(36)"); - - b.Property("CreatedOn") - .HasColumnType("datetime(6)"); - - b.Property("Name") - .IsRequired() - .HasColumnType("longtext"); - - b.Property("UpdatedById") - .HasColumnType("char(36)"); - - b.Property("UpdatedOn") - .HasColumnType("datetime(6)"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("UpdatedById"); - - b.ToTable("Platforms"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.PlaySession", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("char(36)"); - - b.Property("CreatedById") - .HasColumnType("char(36)"); - - b.Property("CreatedOn") - .HasColumnType("datetime(6)"); - - b.Property("End") - .HasColumnType("datetime(6)"); - - b.Property("GameId") - .HasColumnType("char(36)"); - - b.Property("Start") - .HasColumnType("datetime(6)"); - - b.Property("UpdatedById") - .HasColumnType("char(36)"); - - b.Property("UpdatedOn") - .HasColumnType("datetime(6)"); - - b.Property("UserId") - .HasColumnType("char(36)"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("GameId"); - - b.HasIndex("UpdatedById"); - - b.HasIndex("UserId"); - - b.ToTable("PlaySessions"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Redistributable", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("char(36)"); - - b.Property("CreatedById") - .HasColumnType("char(36)"); - - b.Property("CreatedOn") - .HasColumnType("datetime(6)"); - - b.Property("Description") - .HasColumnType("longtext"); - - b.Property("Name") - .IsRequired() - .HasColumnType("longtext"); - - b.Property("Notes") - .HasColumnType("longtext"); - - b.Property("UpdatedById") - .HasColumnType("char(36)"); - - b.Property("UpdatedOn") - .HasColumnType("datetime(6)"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("UpdatedById"); - - b.ToTable("Redistributables"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Role", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("char(36)"); - - b.Property("ConcurrencyStamp") - .IsConcurrencyToken() - .HasColumnType("longtext"); - - b.Property("CreatedById") - .HasColumnType("char(36)"); - - b.Property("CreatedOn") - .HasColumnType("datetime(6)"); - - b.Property("Name") - .HasMaxLength(256) - .HasColumnType("varchar(256)"); - - b.Property("NormalizedName") - .HasMaxLength(256) - .HasColumnType("varchar(256)"); - - b.Property("UpdatedById") - .HasColumnType("char(36)"); - - b.Property("UpdatedOn") - .HasColumnType("datetime(6)"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("NormalizedName") - .IsUnique() - .HasDatabaseName("RoleNameIndex"); - - b.HasIndex("UpdatedById"); - - b.ToTable("Roles", (string)null); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.SavePath", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("char(36)"); - - b.Property("CreatedById") - .HasColumnType("char(36)"); - - b.Property("CreatedOn") - .HasColumnType("datetime(6)"); - - b.Property("GameId") - .HasColumnType("char(36)"); - - b.Property("IsRegex") - .HasColumnType("tinyint(1)"); - - b.Property("Path") - .IsRequired() - .HasColumnType("longtext"); - - b.Property("Type") - .HasColumnType("int"); - - b.Property("UpdatedById") - .HasColumnType("char(36)"); - - b.Property("UpdatedOn") - .HasColumnType("datetime(6)"); - - b.Property("WorkingDirectory") - .HasColumnType("longtext"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("GameId"); - - b.HasIndex("UpdatedById"); - - b.ToTable("SavePaths"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Script", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("char(36)"); - - b.Property("Contents") - .IsRequired() - .HasColumnType("longtext"); - - b.Property("CreatedById") - .HasColumnType("char(36)"); - - b.Property("CreatedOn") - .HasColumnType("datetime(6)"); - - b.Property("Description") - .HasColumnType("longtext"); - - b.Property("GameId") - .HasColumnType("char(36)"); - - b.Property("Name") - .IsRequired() - .HasColumnType("longtext"); - - b.Property("RedistributableId") - .HasColumnType("char(36)"); - - b.Property("RequiresAdmin") - .HasColumnType("tinyint(1)"); - - b.Property("ServerId") - .HasColumnType("char(36)"); - - b.Property("Type") - .HasColumnType("int"); - - b.Property("UpdatedById") - .HasColumnType("char(36)"); - - b.Property("UpdatedOn") - .HasColumnType("datetime(6)"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("GameId"); - - b.HasIndex("RedistributableId"); - - b.HasIndex("ServerId"); - - b.HasIndex("UpdatedById"); - - b.ToTable("Scripts"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Server", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("char(36)"); - - b.Property("Arguments") - .IsRequired() - .HasColumnType("longtext"); - - b.Property("Autostart") - .HasColumnType("tinyint(1)"); - - b.Property("AutostartDelay") - .HasColumnType("int"); - - b.Property("AutostartMethod") - .HasColumnType("int"); - - b.Property("CreatedById") - .HasColumnType("char(36)"); - - b.Property("CreatedOn") - .HasColumnType("datetime(6)"); - - b.Property("GameId") - .HasColumnType("char(36)"); - - b.Property("Host") - .IsRequired() - .HasColumnType("longtext"); - - b.Property("Name") - .IsRequired() - .HasColumnType("longtext"); - - b.Property("OnStartScriptPath") - .IsRequired() - .HasColumnType("longtext"); - - b.Property("OnStopScriptPath") - .IsRequired() - .HasColumnType("longtext"); - - b.Property("Path") - .IsRequired() - .HasColumnType("longtext"); - - b.Property("Port") - .HasColumnType("int"); - - b.Property("ProcessTerminationMethod") - .HasColumnType("int"); - - b.Property("UpdatedById") - .HasColumnType("char(36)"); - - b.Property("UpdatedOn") - .HasColumnType("datetime(6)"); - - b.Property("UseShellExecute") - .HasColumnType("tinyint(1)"); - - b.Property("WorkingDirectory") - .IsRequired() - .HasColumnType("longtext"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("GameId"); - - b.HasIndex("UpdatedById"); - - b.ToTable("Servers"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.ServerConsole", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("char(36)"); - - b.Property("CreatedById") - .HasColumnType("char(36)"); - - b.Property("CreatedOn") - .HasColumnType("datetime(6)"); - - b.Property("Host") - .IsRequired() - .HasColumnType("longtext"); - - b.Property("Name") - .IsRequired() - .HasColumnType("longtext"); - - b.Property("Password") - .IsRequired() - .HasColumnType("longtext"); - - b.Property("Path") - .IsRequired() - .HasColumnType("longtext"); - - b.Property("Port") - .HasColumnType("int"); - - b.Property("ServerId") - .IsRequired() - .HasColumnType("char(36)"); - - b.Property("ServerId1") - .HasColumnType("char(36)"); - - b.Property("Type") - .HasColumnType("int"); - - b.Property("UpdatedById") - .HasColumnType("char(36)"); - - b.Property("UpdatedOn") - .HasColumnType("datetime(6)"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("ServerId"); - - b.HasIndex("ServerId1"); - - b.HasIndex("UpdatedById"); - - b.ToTable("ServerConsoles"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.ServerHttpPath", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("char(36)"); - - b.Property("CreatedById") - .HasColumnType("char(36)"); - - b.Property("CreatedOn") - .HasColumnType("datetime(6)"); - - b.Property("LocalPath") - .IsRequired() - .HasColumnType("longtext"); - - b.Property("Path") - .IsRequired() - .HasColumnType("longtext"); - - b.Property("ServerId") - .HasColumnType("char(36)"); - - b.Property("ServerId1") - .HasColumnType("char(36)"); - - b.Property("UpdatedById") - .HasColumnType("char(36)"); - - b.Property("UpdatedOn") - .HasColumnType("datetime(6)"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("ServerId"); - - b.HasIndex("ServerId1"); - - b.HasIndex("UpdatedById"); - - b.ToTable("ServerHttpPath"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.StorageLocation", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("char(36)"); - - b.Property("CreatedById") - .HasColumnType("char(36)"); - - b.Property("CreatedOn") - .HasColumnType("datetime(6)"); - - b.Property("Default") - .HasColumnType("tinyint(1)"); - - b.Property("Path") - .IsRequired() - .HasColumnType("longtext"); - - b.Property("Type") - .HasColumnType("int"); - - b.Property("UpdatedById") - .HasColumnType("char(36)"); - - b.Property("UpdatedOn") - .HasColumnType("datetime(6)"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("UpdatedById"); - - b.ToTable("StorageLocations"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Tag", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("char(36)"); - - b.Property("CreatedById") - .HasColumnType("char(36)"); - - b.Property("CreatedOn") - .HasColumnType("datetime(6)"); - - b.Property("Name") - .IsRequired() - .HasColumnType("longtext"); - - b.Property("UpdatedById") - .HasColumnType("char(36)"); - - b.Property("UpdatedOn") - .HasColumnType("datetime(6)"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("UpdatedById"); - - b.ToTable("Tags"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.User", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("char(36)"); - - b.Property("AccessFailedCount") - .HasColumnType("int"); - - b.Property("Alias") - .HasColumnType("longtext"); - - b.Property("Approved") - .HasColumnType("tinyint(1)"); - - b.Property("ApprovedOn") - .HasColumnType("datetime(6)"); - - b.Property("ConcurrencyStamp") - .IsConcurrencyToken() - .HasColumnType("longtext"); - - b.Property("CreatedById") - .HasColumnType("char(36)"); - - b.Property("CreatedOn") - .HasColumnType("datetime(6)"); - - b.Property("Email") - .HasMaxLength(256) - .HasColumnType("varchar(256)"); - - b.Property("EmailConfirmed") - .HasColumnType("tinyint(1)"); - - b.Property("LockoutEnabled") - .HasColumnType("tinyint(1)"); - - b.Property("LockoutEnd") - .HasColumnType("datetime(6)"); - - b.Property("NormalizedEmail") - .HasMaxLength(256) - .HasColumnType("varchar(256)"); - - b.Property("NormalizedUserName") - .HasMaxLength(256) - .HasColumnType("varchar(256)"); - - b.Property("PasswordHash") - .HasColumnType("longtext"); - - b.Property("PhoneNumber") - .HasColumnType("longtext"); - - b.Property("PhoneNumberConfirmed") - .HasColumnType("tinyint(1)"); - - b.Property("RefreshToken") - .HasColumnType("longtext"); - - b.Property("RefreshTokenExpiration") - .HasColumnType("datetime(6)"); - - b.Property("SecurityStamp") - .HasColumnType("longtext"); - - b.Property("TwoFactorEnabled") - .HasColumnType("tinyint(1)"); - - b.Property("UpdatedById") - .HasColumnType("char(36)"); - - b.Property("UpdatedOn") - .HasColumnType("datetime(6)"); - - b.Property("UserName") - .HasMaxLength(256) - .HasColumnType("varchar(256)"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("NormalizedEmail") - .HasDatabaseName("EmailIndex"); - - b.HasIndex("NormalizedUserName") - .IsUnique() - .HasDatabaseName("UserNameIndex"); - - b.HasIndex("UpdatedById"); - - b.ToTable("Users", (string)null); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.UserCustomField", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("char(36)"); - - b.Property("CreatedById") - .HasColumnType("char(36)"); - - b.Property("CreatedOn") - .HasColumnType("datetime(6)"); - - b.Property("Name") - .IsRequired() - .HasMaxLength(64) - .HasColumnType("varchar(64)"); - - b.Property("UpdatedById") - .HasColumnType("char(36)"); - - b.Property("UpdatedOn") - .HasColumnType("datetime(6)"); - - b.Property("UserId") - .IsRequired() - .HasColumnType("char(36)"); - - b.Property("Value") - .IsRequired() - .HasMaxLength(1024) - .HasColumnType("varchar(1024)"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("UpdatedById"); - - b.HasIndex("UserId"); - - b.ToTable("UserCustomField"); - }); - - modelBuilder.Entity("LibraryGame", b => - { - b.Property("GameId") - .HasColumnType("char(36)"); - - b.Property("LibraryId") - .HasColumnType("char(36)"); - - b.HasKey("GameId", "LibraryId"); - - b.HasIndex("LibraryId"); - - b.ToTable("LibraryGame"); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("ClaimType") - .HasColumnType("longtext"); - - b.Property("ClaimValue") - .HasColumnType("longtext"); - - b.Property("RoleId") - .HasColumnType("char(36)"); - - b.HasKey("Id"); - - b.HasIndex("RoleId"); - - b.ToTable("RoleClaims", (string)null); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("ClaimType") - .HasColumnType("longtext"); - - b.Property("ClaimValue") - .HasColumnType("longtext"); - - b.Property("UserId") - .HasColumnType("char(36)"); - - b.HasKey("Id"); - - b.HasIndex("UserId"); - - b.ToTable("UserClaims", (string)null); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => - { - b.Property("LoginProvider") - .HasColumnType("varchar(255)"); - - b.Property("ProviderKey") - .HasColumnType("varchar(255)"); - - b.Property("ProviderDisplayName") - .HasColumnType("longtext"); - - b.Property("UserId") - .HasColumnType("char(36)"); - - b.HasKey("LoginProvider", "ProviderKey"); - - b.HasIndex("UserId"); - - b.ToTable("UserLogins", (string)null); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b => - { - b.Property("UserId") - .HasColumnType("char(36)"); - - b.Property("RoleId") - .HasColumnType("char(36)"); - - b.HasKey("UserId", "RoleId"); - - b.HasIndex("RoleId"); - - b.ToTable("UserRoles", (string)null); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => - { - b.Property("UserId") - .HasColumnType("char(36)"); - - b.Property("LoginProvider") - .HasColumnType("varchar(255)"); - - b.Property("Name") - .HasColumnType("varchar(255)"); - - b.Property("Value") - .HasColumnType("longtext"); - - b.HasKey("UserId", "LoginProvider", "Name"); - - b.ToTable("UserTokens", (string)null); - }); - - modelBuilder.Entity("PageGame", b => - { - b.Property("GameId") - .HasColumnType("char(36)"); - - b.Property("PageId") - .HasColumnType("char(36)"); - - b.HasKey("GameId", "PageId"); - - b.HasIndex("PageId"); - - b.ToTable("PageGame"); - }); - - modelBuilder.Entity("PageRedistributable", b => - { - b.Property("PageId") - .HasColumnType("char(36)"); - - b.Property("RedistributableId") - .HasColumnType("char(36)"); - - b.HasKey("PageId", "RedistributableId"); - - b.HasIndex("RedistributableId"); - - b.ToTable("PageRedistributable"); - }); - - modelBuilder.Entity("PageServer", b => - { - b.Property("PageId") - .HasColumnType("char(36)"); - - b.Property("ServerId") - .HasColumnType("char(36)"); - - b.HasKey("PageId", "ServerId"); - - b.HasIndex("ServerId"); - - b.ToTable("PageServer"); - }); - - modelBuilder.Entity("RoleCollection", b => - { - b.Property("CollectionId") - .HasColumnType("char(36)"); - - b.Property("RoleId") - .HasColumnType("char(36)"); - - b.HasKey("CollectionId", "RoleId"); - - b.HasIndex("RoleId"); - - b.ToTable("RoleCollection"); - }); - - modelBuilder.Entity("CategoryGame", b => - { - b.HasOne("LANCommander.Server.Data.Models.Category", null) - .WithMany() - .HasForeignKey("CategoriesId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("LANCommander.Server.Data.Models.Game", null) - .WithMany() - .HasForeignKey("GamesId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("CollectionGame", b => - { - b.HasOne("LANCommander.Server.Data.Models.Collection", null) - .WithMany() - .HasForeignKey("CollectionId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("LANCommander.Server.Data.Models.Game", null) - .WithMany() - .HasForeignKey("GameId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("GameDeveloper", b => - { - b.HasOne("LANCommander.Server.Data.Models.Company", null) - .WithMany() - .HasForeignKey("DeveloperId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("LANCommander.Server.Data.Models.Game", null) - .WithMany() - .HasForeignKey("GameId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("GameGenre", b => - { - b.HasOne("LANCommander.Server.Data.Models.Game", null) - .WithMany() - .HasForeignKey("GamesId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("LANCommander.Server.Data.Models.Genre", null) - .WithMany() - .HasForeignKey("GenresId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("GamePlatform", b => - { - b.HasOne("LANCommander.Server.Data.Models.Game", null) - .WithMany() - .HasForeignKey("GamesId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("LANCommander.Server.Data.Models.Platform", null) - .WithMany() - .HasForeignKey("PlatformsId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("GamePublisher", b => - { - b.HasOne("LANCommander.Server.Data.Models.Game", null) - .WithMany() - .HasForeignKey("GameId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("LANCommander.Server.Data.Models.Company", null) - .WithMany() - .HasForeignKey("PublisherId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("GameRedistributable", b => - { - b.HasOne("LANCommander.Server.Data.Models.Game", null) - .WithMany() - .HasForeignKey("GameId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("LANCommander.Server.Data.Models.Redistributable", null) - .WithMany() - .HasForeignKey("RedistributableId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("GameTag", b => - { - b.HasOne("LANCommander.Server.Data.Models.Game", null) - .WithMany() - .HasForeignKey("GamesId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("LANCommander.Server.Data.Models.Tag", null) - .WithMany() - .HasForeignKey("TagsId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Action", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.Game", "Game") - .WithMany("Actions") - .HasForeignKey("GameId") - .OnDelete(DeleteBehavior.Cascade); - - b.HasOne("LANCommander.Server.Data.Models.Server", "Server") - .WithMany("Actions") - .HasForeignKey("ServerId") - .OnDelete(DeleteBehavior.Cascade); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.Navigation("CreatedBy"); - - b.Navigation("Game"); - - b.Navigation("Server"); - - b.Navigation("UpdatedBy"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Archive", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.Game", "Game") - .WithMany("Archives") - .HasForeignKey("GameId") - .OnDelete(DeleteBehavior.Cascade); - - b.HasOne("LANCommander.Server.Data.Models.Archive", "LastVersion") - .WithMany() - .HasForeignKey("LastVersionId"); - - b.HasOne("LANCommander.Server.Data.Models.Redistributable", "Redistributable") - .WithMany("Archives") - .HasForeignKey("RedistributableId") - .OnDelete(DeleteBehavior.Cascade); - - b.HasOne("LANCommander.Server.Data.Models.StorageLocation", "StorageLocation") - .WithMany("Archives") - .HasForeignKey("StorageLocationId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.Navigation("CreatedBy"); - - b.Navigation("Game"); - - b.Navigation("LastVersion"); - - b.Navigation("Redistributable"); - - b.Navigation("StorageLocation"); - - b.Navigation("UpdatedBy"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Category", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.Category", "Parent") - .WithMany("Children") - .HasForeignKey("ParentId"); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.Navigation("CreatedBy"); - - b.Navigation("Parent"); - - b.Navigation("UpdatedBy"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Collection", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.Navigation("CreatedBy"); - - b.Navigation("UpdatedBy"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Company", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.Navigation("CreatedBy"); - - b.Navigation("UpdatedBy"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Engine", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById"); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById"); - - b.Navigation("CreatedBy"); - - b.Navigation("UpdatedBy"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Game", b => - { - b.HasOne("LANCommander.Server.Data.Models.Game", "BaseGame") - .WithMany("DependentGames") - .HasForeignKey("BaseGameId") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.Engine", "Engine") - .WithMany("Games") - .HasForeignKey("EngineId") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.Navigation("BaseGame"); - - b.Navigation("CreatedBy"); - - b.Navigation("Engine"); - - b.Navigation("UpdatedBy"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.GameSave", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.Game", "Game") - .WithMany("GameSaves") - .HasForeignKey("GameId") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.StorageLocation", "StorageLocation") - .WithMany("GameSaves") - .HasForeignKey("StorageLocationId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.User", "User") - .WithMany("GameSaves") - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("CreatedBy"); - - b.Navigation("Game"); - - b.Navigation("StorageLocation"); - - b.Navigation("UpdatedBy"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Genre", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.Navigation("CreatedBy"); - - b.Navigation("UpdatedBy"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Issue", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.Game", "Game") - .WithMany("Issues") - .HasForeignKey("GameId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("LANCommander.Server.Data.Models.User", "ResolvedBy") - .WithMany() - .HasForeignKey("ResolvedById"); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.Navigation("CreatedBy"); - - b.Navigation("Game"); - - b.Navigation("ResolvedBy"); - - b.Navigation("UpdatedBy"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Key", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "ClaimedByUser") - .WithMany() - .HasForeignKey("ClaimedByUserId"); - - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.Game", "Game") - .WithMany("Keys") - .HasForeignKey("GameId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.Navigation("ClaimedByUser"); - - b.Navigation("CreatedBy"); - - b.Navigation("Game"); - - b.Navigation("UpdatedBy"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Library", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.User", "User") - .WithOne("Library") - .HasForeignKey("LANCommander.Server.Data.Models.Library", "UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("CreatedBy"); - - b.Navigation("UpdatedBy"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Media", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.Game", "Game") - .WithMany("Media") - .HasForeignKey("GameId") - .OnDelete(DeleteBehavior.Cascade); - - b.HasOne("LANCommander.Server.Data.Models.StorageLocation", "StorageLocation") - .WithMany("Media") - .HasForeignKey("StorageLocationId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("LANCommander.Server.Data.Models.Media", "Thumbnail") - .WithOne("Parent") - .HasForeignKey("LANCommander.Server.Data.Models.Media", "ThumbnailId") - .OnDelete(DeleteBehavior.Cascade); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.User", "User") - .WithMany("Media") - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade); - - b.Navigation("CreatedBy"); - - b.Navigation("Game"); - - b.Navigation("StorageLocation"); - - b.Navigation("Thumbnail"); - - b.Navigation("UpdatedBy"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.MultiplayerMode", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.Game", "Game") - .WithMany("MultiplayerModes") - .HasForeignKey("GameId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.Navigation("CreatedBy"); - - b.Navigation("Game"); - - b.Navigation("UpdatedBy"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Page", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.Page", "Parent") - .WithMany("Children") - .HasForeignKey("ParentId") - .OnDelete(DeleteBehavior.Cascade); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.Navigation("CreatedBy"); - - b.Navigation("Parent"); - - b.Navigation("UpdatedBy"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Platform", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.Navigation("CreatedBy"); - - b.Navigation("UpdatedBy"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.PlaySession", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.Game", "Game") - .WithMany("PlaySessions") - .HasForeignKey("GameId") - .OnDelete(DeleteBehavior.Cascade); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.User", "User") - .WithMany("PlaySessions") - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("CreatedBy"); - - b.Navigation("Game"); - - b.Navigation("UpdatedBy"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Redistributable", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.Navigation("CreatedBy"); - - b.Navigation("UpdatedBy"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Role", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.Navigation("CreatedBy"); - - b.Navigation("UpdatedBy"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.SavePath", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.Game", "Game") - .WithMany("SavePaths") - .HasForeignKey("GameId") - .OnDelete(DeleteBehavior.Cascade); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.Navigation("CreatedBy"); - - b.Navigation("Game"); - - b.Navigation("UpdatedBy"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Script", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.Game", "Game") - .WithMany("Scripts") - .HasForeignKey("GameId") - .OnDelete(DeleteBehavior.Cascade); - - b.HasOne("LANCommander.Server.Data.Models.Redistributable", "Redistributable") - .WithMany("Scripts") - .HasForeignKey("RedistributableId") - .OnDelete(DeleteBehavior.Cascade); - - b.HasOne("LANCommander.Server.Data.Models.Server", "Server") - .WithMany("Scripts") - .HasForeignKey("ServerId") - .OnDelete(DeleteBehavior.Cascade); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.Navigation("CreatedBy"); - - b.Navigation("Game"); - - b.Navigation("Redistributable"); - - b.Navigation("Server"); - - b.Navigation("UpdatedBy"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Server", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.Game", "Game") - .WithMany("Servers") - .HasForeignKey("GameId") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.Navigation("CreatedBy"); - - b.Navigation("Game"); - - b.Navigation("UpdatedBy"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.ServerConsole", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.Server", "Server") - .WithMany() - .HasForeignKey("ServerId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("LANCommander.Server.Data.Models.Server", null) - .WithMany("ServerConsoles") - .HasForeignKey("ServerId1"); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.Navigation("CreatedBy"); - - b.Navigation("Server"); - - b.Navigation("UpdatedBy"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.ServerHttpPath", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.Server", "Server") - .WithMany() - .HasForeignKey("ServerId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("LANCommander.Server.Data.Models.Server", null) - .WithMany("HttpPaths") - .HasForeignKey("ServerId1"); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.Navigation("CreatedBy"); - - b.Navigation("Server"); - - b.Navigation("UpdatedBy"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.StorageLocation", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById"); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById"); - - b.Navigation("CreatedBy"); - - b.Navigation("UpdatedBy"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Tag", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.Navigation("CreatedBy"); - - b.Navigation("UpdatedBy"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.User", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.Navigation("CreatedBy"); - - b.Navigation("UpdatedBy"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.UserCustomField", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.User", "User") - .WithMany("CustomFields") - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("CreatedBy"); - - b.Navigation("UpdatedBy"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("LibraryGame", b => - { - b.HasOne("LANCommander.Server.Data.Models.Game", null) - .WithMany() - .HasForeignKey("GameId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("LANCommander.Server.Data.Models.Library", null) - .WithMany() - .HasForeignKey("LibraryId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => - { - b.HasOne("LANCommander.Server.Data.Models.Role", null) - .WithMany() - .HasForeignKey("RoleId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", null) - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", null) - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b => - { - b.HasOne("LANCommander.Server.Data.Models.Role", null) - .WithMany() - .HasForeignKey("RoleId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("LANCommander.Server.Data.Models.User", null) - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", null) - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("PageGame", b => - { - b.HasOne("LANCommander.Server.Data.Models.Game", null) - .WithMany() - .HasForeignKey("GameId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("LANCommander.Server.Data.Models.Page", null) - .WithMany() - .HasForeignKey("PageId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("PageRedistributable", b => - { - b.HasOne("LANCommander.Server.Data.Models.Page", null) - .WithMany() - .HasForeignKey("PageId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("LANCommander.Server.Data.Models.Redistributable", null) - .WithMany() - .HasForeignKey("RedistributableId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("PageServer", b => - { - b.HasOne("LANCommander.Server.Data.Models.Page", null) - .WithMany() - .HasForeignKey("PageId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("LANCommander.Server.Data.Models.Server", null) - .WithMany() - .HasForeignKey("ServerId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("RoleCollection", b => - { - b.HasOne("LANCommander.Server.Data.Models.Collection", null) - .WithMany() - .HasForeignKey("CollectionId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("LANCommander.Server.Data.Models.Role", null) - .WithMany() - .HasForeignKey("RoleId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Category", b => - { - b.Navigation("Children"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Engine", b => - { - b.Navigation("Games"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Game", b => - { - b.Navigation("Actions"); - - b.Navigation("Archives"); - - b.Navigation("DependentGames"); - - b.Navigation("GameSaves"); - - b.Navigation("Issues"); - - b.Navigation("Keys"); - - b.Navigation("Media"); - - b.Navigation("MultiplayerModes"); - - b.Navigation("PlaySessions"); - - b.Navigation("SavePaths"); - - b.Navigation("Scripts"); - - b.Navigation("Servers"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Media", b => - { - b.Navigation("Parent"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Page", b => - { - b.Navigation("Children"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Redistributable", b => - { - b.Navigation("Archives"); - - b.Navigation("Scripts"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Server", b => - { - b.Navigation("Actions"); - - b.Navigation("HttpPaths"); - - b.Navigation("Scripts"); - - b.Navigation("ServerConsoles"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.StorageLocation", b => - { - b.Navigation("Archives"); - - b.Navigation("GameSaves"); - - b.Navigation("Media"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.User", b => - { - b.Navigation("CustomFields"); - - b.Navigation("GameSaves"); - - b.Navigation("Library") - .IsRequired(); - - b.Navigation("Media"); - - b.Navigation("PlaySessions"); - }); -#pragma warning restore 612, 618 - } - } -} diff --git a/LANCommander.Server.Data.MySQL/Migrations/20241031054715_AddLibraries.cs b/LANCommander.Server.Data.MySQL/Migrations/20241031054715_AddLibraries.cs deleted file mode 100644 index c26d86f9..00000000 --- a/LANCommander.Server.Data.MySQL/Migrations/20241031054715_AddLibraries.cs +++ /dev/null @@ -1,106 +0,0 @@ -using System; -using Microsoft.EntityFrameworkCore.Migrations; - -#nullable disable - -namespace LANCommander.Server.Data.MySQL.Migrations -{ - /// - public partial class AddLibraries : Migration - { - /// - protected override void Up(MigrationBuilder migrationBuilder) - { - migrationBuilder.CreateTable( - name: "Libraries", - columns: table => new - { - Id = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci"), - UserId = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci"), - CreatedOn = table.Column(type: "datetime(6)", nullable: false), - CreatedById = table.Column(type: "char(36)", nullable: true, collation: "ascii_general_ci"), - UpdatedOn = table.Column(type: "datetime(6)", nullable: false), - UpdatedById = table.Column(type: "char(36)", nullable: true, collation: "ascii_general_ci") - }, - constraints: table => - { - table.PrimaryKey("PK_Libraries", x => x.Id); - table.ForeignKey( - name: "FK_Libraries_Users_CreatedById", - column: x => x.CreatedById, - principalTable: "Users", - principalColumn: "Id", - onDelete: ReferentialAction.SetNull); - table.ForeignKey( - name: "FK_Libraries_Users_UpdatedById", - column: x => x.UpdatedById, - principalTable: "Users", - principalColumn: "Id", - onDelete: ReferentialAction.SetNull); - table.ForeignKey( - name: "FK_Libraries_Users_UserId", - column: x => x.UserId, - principalTable: "Users", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }) - .Annotation("MySql:CharSet", "utf8mb4"); - - migrationBuilder.CreateTable( - name: "LibraryGame", - columns: table => new - { - GameId = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci"), - LibraryId = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci") - }, - constraints: table => - { - table.PrimaryKey("PK_LibraryGame", x => new { x.GameId, x.LibraryId }); - table.ForeignKey( - name: "FK_LibraryGame_Games_GameId", - column: x => x.GameId, - principalTable: "Games", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - table.ForeignKey( - name: "FK_LibraryGame_Libraries_LibraryId", - column: x => x.LibraryId, - principalTable: "Libraries", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }) - .Annotation("MySql:CharSet", "utf8mb4"); - - migrationBuilder.CreateIndex( - name: "IX_Libraries_CreatedById", - table: "Libraries", - column: "CreatedById"); - - migrationBuilder.CreateIndex( - name: "IX_Libraries_UpdatedById", - table: "Libraries", - column: "UpdatedById"); - - migrationBuilder.CreateIndex( - name: "IX_Libraries_UserId", - table: "Libraries", - column: "UserId", - unique: true); - - migrationBuilder.CreateIndex( - name: "IX_LibraryGame_LibraryId", - table: "LibraryGame", - column: "LibraryId"); - } - - /// - protected override void Down(MigrationBuilder migrationBuilder) - { - migrationBuilder.DropTable( - name: "LibraryGame"); - - migrationBuilder.DropTable( - name: "Libraries"); - } - } -} diff --git a/LANCommander.Server.Data.MySQL/Migrations/20250120232846_FixCompanyForeignKeys.cs b/LANCommander.Server.Data.MySQL/Migrations/20250120232846_FixCompanyForeignKeys.cs deleted file mode 100644 index 5c94e859..00000000 --- a/LANCommander.Server.Data.MySQL/Migrations/20250120232846_FixCompanyForeignKeys.cs +++ /dev/null @@ -1,78 +0,0 @@ -using Microsoft.EntityFrameworkCore.Migrations; - -#nullable disable - -namespace LANCommander.Server.Data.MySQL.Migrations -{ - /// - public partial class FixCompanyForeignKeys : Migration - { - /// - protected override void Up(MigrationBuilder migrationBuilder) - { - migrationBuilder.DropForeignKey( - name: "FK_Media_StorageLocations_StorageLocationId", - table: "Media"); - - migrationBuilder.DropPrimaryKey( - name: "PK_GameDeveloper", - table: "GameDeveloper"); - - migrationBuilder.DropIndex( - name: "IX_GameDeveloper_GameId", - table: "GameDeveloper"); - - migrationBuilder.AddPrimaryKey( - name: "PK_GameDeveloper", - table: "GameDeveloper", - columns: new[] { "GameId", "DeveloperId" }); - - migrationBuilder.CreateIndex( - name: "IX_GameDeveloper_DeveloperId", - table: "GameDeveloper", - column: "DeveloperId"); - - migrationBuilder.AddForeignKey( - name: "FK_Media_StorageLocations_StorageLocationId", - table: "Media", - column: "StorageLocationId", - principalTable: "StorageLocations", - principalColumn: "Id", - onDelete: ReferentialAction.SetNull); - } - - /// - protected override void Down(MigrationBuilder migrationBuilder) - { - migrationBuilder.DropForeignKey( - name: "FK_Media_StorageLocations_StorageLocationId", - table: "Media"); - - migrationBuilder.DropPrimaryKey( - name: "PK_GameDeveloper", - table: "GameDeveloper"); - - migrationBuilder.DropIndex( - name: "IX_GameDeveloper_DeveloperId", - table: "GameDeveloper"); - - migrationBuilder.AddPrimaryKey( - name: "PK_GameDeveloper", - table: "GameDeveloper", - columns: new[] { "DeveloperId", "GameId" }); - - migrationBuilder.CreateIndex( - name: "IX_GameDeveloper_GameId", - table: "GameDeveloper", - column: "GameId"); - - migrationBuilder.AddForeignKey( - name: "FK_Media_StorageLocations_StorageLocationId", - table: "Media", - column: "StorageLocationId", - principalTable: "StorageLocations", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - } - } -} diff --git a/LANCommander.Server.Data.MySQL/Migrations/20250120232846_FixCompanyForeignKeys.Designer.cs b/LANCommander.Server.Data.MySQL/Migrations/20250203083220_InitialMigration.Designer.cs similarity index 97% rename from LANCommander.Server.Data.MySQL/Migrations/20250120232846_FixCompanyForeignKeys.Designer.cs rename to LANCommander.Server.Data.MySQL/Migrations/20250203083220_InitialMigration.Designer.cs index 5e1c7560..e4cbff22 100644 --- a/LANCommander.Server.Data.MySQL/Migrations/20250120232846_FixCompanyForeignKeys.Designer.cs +++ b/LANCommander.Server.Data.MySQL/Migrations/20250203083220_InitialMigration.Designer.cs @@ -12,8 +12,8 @@ using Microsoft.EntityFrameworkCore.Storage.ValueConversion; namespace LANCommander.Server.Data.MySQL.Migrations { [DbContext(typeof(DatabaseContext))] - [Migration("20250120232846_FixCompanyForeignKeys")] - partial class FixCompanyForeignKeys + [Migration("20250203083220_InitialMigration")] + partial class InitialMigration { /// protected override void BuildTargetModel(ModelBuilder modelBuilder) @@ -465,6 +465,48 @@ namespace LANCommander.Server.Data.MySQL.Migrations b.ToTable("Games"); }); + modelBuilder.Entity("LANCommander.Server.Data.Models.GameCustomField", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)"); + + b.Property("CreatedById") + .HasColumnType("char(36)"); + + b.Property("CreatedOn") + .HasColumnType("datetime(6)"); + + b.Property("GameId") + .HasColumnType("char(36)"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(64) + .HasColumnType("varchar(64)"); + + b.Property("UpdatedById") + .HasColumnType("char(36)"); + + b.Property("UpdatedOn") + .HasColumnType("datetime(6)"); + + b.Property("Value") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("varchar(1024)"); + + b.HasKey("Id"); + + b.HasIndex("CreatedById"); + + b.HasIndex("GameId"); + + b.HasIndex("UpdatedById"); + + b.ToTable("GameCustomField"); + }); + modelBuilder.Entity("LANCommander.Server.Data.Models.GameSave", b => { b.Property("Id") @@ -1979,6 +2021,27 @@ namespace LANCommander.Server.Data.MySQL.Migrations b.Navigation("UpdatedBy"); }); + modelBuilder.Entity("LANCommander.Server.Data.Models.GameCustomField", b => + { + b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") + .WithMany() + .HasForeignKey("CreatedById"); + + b.HasOne("LANCommander.Server.Data.Models.Game", "Game") + .WithMany("CustomFields") + .HasForeignKey("GameId"); + + b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") + .WithMany() + .HasForeignKey("UpdatedById"); + + b.Navigation("CreatedBy"); + + b.Navigation("Game"); + + b.Navigation("UpdatedBy"); + }); + modelBuilder.Entity("LANCommander.Server.Data.Models.GameSave", b => { b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") @@ -2661,6 +2724,8 @@ namespace LANCommander.Server.Data.MySQL.Migrations b.Navigation("Archives"); + b.Navigation("CustomFields"); + b.Navigation("DependentGames"); b.Navigation("GameSaves"); diff --git a/LANCommander.Server.Data.MySQL/Migrations/20241024041842_InitialSeed.cs b/LANCommander.Server.Data.MySQL/Migrations/20250203083220_InitialMigration.cs similarity index 94% rename from LANCommander.Server.Data.MySQL/Migrations/20241024041842_InitialSeed.cs rename to LANCommander.Server.Data.MySQL/Migrations/20250203083220_InitialMigration.cs index 4d9aac32..e70d261a 100644 --- a/LANCommander.Server.Data.MySQL/Migrations/20241024041842_InitialSeed.cs +++ b/LANCommander.Server.Data.MySQL/Migrations/20250203083220_InitialMigration.cs @@ -7,7 +7,7 @@ using Microsoft.EntityFrameworkCore.Migrations; namespace LANCommander.Server.Data.MySQL.Migrations { /// - public partial class InitialSeed : Migration + public partial class InitialMigration : Migration { /// protected override void Up(MigrationBuilder migrationBuilder) @@ -226,6 +226,41 @@ namespace LANCommander.Server.Data.MySQL.Migrations }) .Annotation("MySql:CharSet", "utf8mb4"); + migrationBuilder.CreateTable( + name: "Libraries", + columns: table => new + { + Id = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci"), + UserId = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci"), + CreatedOn = table.Column(type: "datetime(6)", nullable: false), + CreatedById = table.Column(type: "char(36)", nullable: true, collation: "ascii_general_ci"), + UpdatedOn = table.Column(type: "datetime(6)", nullable: false), + UpdatedById = table.Column(type: "char(36)", nullable: true, collation: "ascii_general_ci") + }, + constraints: table => + { + table.PrimaryKey("PK_Libraries", x => x.Id); + table.ForeignKey( + name: "FK_Libraries_Users_CreatedById", + column: x => x.CreatedById, + principalTable: "Users", + principalColumn: "Id", + onDelete: ReferentialAction.SetNull); + table.ForeignKey( + name: "FK_Libraries_Users_UpdatedById", + column: x => x.UpdatedById, + principalTable: "Users", + principalColumn: "Id", + onDelete: ReferentialAction.SetNull); + table.ForeignKey( + name: "FK_Libraries_Users_UserId", + column: x => x.UserId, + principalTable: "Users", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }) + .Annotation("MySql:CharSet", "utf8mb4"); + migrationBuilder.CreateTable( name: "Pages", columns: table => new @@ -811,15 +846,51 @@ namespace LANCommander.Server.Data.MySQL.Migrations .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( - name: "GameDeveloper", + name: "GameCustomField", columns: table => new { - DeveloperId = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci"), - GameId = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci") + Id = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci"), + Name = table.Column(type: "varchar(64)", maxLength: 64, nullable: false) + .Annotation("MySql:CharSet", "utf8mb4"), + Value = table.Column(type: "varchar(1024)", maxLength: 1024, nullable: false) + .Annotation("MySql:CharSet", "utf8mb4"), + GameId = table.Column(type: "char(36)", nullable: true, collation: "ascii_general_ci"), + CreatedOn = table.Column(type: "datetime(6)", nullable: false), + CreatedById = table.Column(type: "char(36)", nullable: true, collation: "ascii_general_ci"), + UpdatedOn = table.Column(type: "datetime(6)", nullable: false), + UpdatedById = table.Column(type: "char(36)", nullable: true, collation: "ascii_general_ci") }, constraints: table => { - table.PrimaryKey("PK_GameDeveloper", x => new { x.DeveloperId, x.GameId }); + table.PrimaryKey("PK_GameCustomField", x => x.Id); + table.ForeignKey( + name: "FK_GameCustomField_Games_GameId", + column: x => x.GameId, + principalTable: "Games", + principalColumn: "Id"); + table.ForeignKey( + name: "FK_GameCustomField_Users_CreatedById", + column: x => x.CreatedById, + principalTable: "Users", + principalColumn: "Id"); + table.ForeignKey( + name: "FK_GameCustomField_Users_UpdatedById", + column: x => x.UpdatedById, + principalTable: "Users", + principalColumn: "Id"); + }) + .Annotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.CreateTable( + name: "GameDeveloper", + columns: table => new + { + GameId = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci"), + DeveloperId = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci") + }, + constraints: table => + { + table.PrimaryKey("PK_GameDeveloper", x => new { x.GameId, x.DeveloperId }); table.ForeignKey( name: "FK_GameDeveloper_Companies_DeveloperId", column: x => x.DeveloperId, @@ -1105,6 +1176,31 @@ namespace LANCommander.Server.Data.MySQL.Migrations }) .Annotation("MySql:CharSet", "utf8mb4"); + migrationBuilder.CreateTable( + name: "LibraryGame", + columns: table => new + { + GameId = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci"), + LibraryId = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci") + }, + constraints: table => + { + table.PrimaryKey("PK_LibraryGame", x => new { x.GameId, x.LibraryId }); + table.ForeignKey( + name: "FK_LibraryGame_Games_GameId", + column: x => x.GameId, + principalTable: "Games", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_LibraryGame_Libraries_LibraryId", + column: x => x.LibraryId, + principalTable: "Libraries", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }) + .Annotation("MySql:CharSet", "utf8mb4"); + migrationBuilder.CreateTable( name: "Media", columns: table => new @@ -1149,7 +1245,7 @@ namespace LANCommander.Server.Data.MySQL.Migrations column: x => x.StorageLocationId, principalTable: "StorageLocations", principalColumn: "Id", - onDelete: ReferentialAction.Cascade); + onDelete: ReferentialAction.SetNull); table.ForeignKey( name: "FK_Media_Users_CreatedById", column: x => x.CreatedById, @@ -1714,10 +1810,25 @@ namespace LANCommander.Server.Data.MySQL.Migrations column: "UpdatedById"); migrationBuilder.CreateIndex( - name: "IX_GameDeveloper_GameId", - table: "GameDeveloper", + name: "IX_GameCustomField_CreatedById", + table: "GameCustomField", + column: "CreatedById"); + + migrationBuilder.CreateIndex( + name: "IX_GameCustomField_GameId", + table: "GameCustomField", column: "GameId"); + migrationBuilder.CreateIndex( + name: "IX_GameCustomField_UpdatedById", + table: "GameCustomField", + column: "UpdatedById"); + + migrationBuilder.CreateIndex( + name: "IX_GameDeveloper_DeveloperId", + table: "GameDeveloper", + column: "DeveloperId"); + migrationBuilder.CreateIndex( name: "IX_GameGenre_GenresId", table: "GameGenre", @@ -1838,6 +1949,27 @@ namespace LANCommander.Server.Data.MySQL.Migrations table: "Keys", column: "UpdatedById"); + migrationBuilder.CreateIndex( + name: "IX_Libraries_CreatedById", + table: "Libraries", + column: "CreatedById"); + + migrationBuilder.CreateIndex( + name: "IX_Libraries_UpdatedById", + table: "Libraries", + column: "UpdatedById"); + + migrationBuilder.CreateIndex( + name: "IX_Libraries_UserId", + table: "Libraries", + column: "UserId", + unique: true); + + migrationBuilder.CreateIndex( + name: "IX_LibraryGame_LibraryId", + table: "LibraryGame", + column: "LibraryId"); + migrationBuilder.CreateIndex( name: "IX_Media_CreatedById", table: "Media", @@ -2162,6 +2294,9 @@ namespace LANCommander.Server.Data.MySQL.Migrations migrationBuilder.DropTable( name: "CollectionGame"); + migrationBuilder.DropTable( + name: "GameCustomField"); + migrationBuilder.DropTable( name: "GameDeveloper"); @@ -2189,6 +2324,9 @@ namespace LANCommander.Server.Data.MySQL.Migrations migrationBuilder.DropTable( name: "Keys"); + migrationBuilder.DropTable( + name: "LibraryGame"); + migrationBuilder.DropTable( name: "Media"); @@ -2255,6 +2393,9 @@ namespace LANCommander.Server.Data.MySQL.Migrations migrationBuilder.DropTable( name: "Tags"); + migrationBuilder.DropTable( + name: "Libraries"); + migrationBuilder.DropTable( name: "StorageLocations"); diff --git a/LANCommander.Server.Data.MySQL/Migrations/DatabaseContextModelSnapshot.cs b/LANCommander.Server.Data.MySQL/Migrations/DatabaseContextModelSnapshot.cs index 4414fe15..cfe70325 100644 --- a/LANCommander.Server.Data.MySQL/Migrations/DatabaseContextModelSnapshot.cs +++ b/LANCommander.Server.Data.MySQL/Migrations/DatabaseContextModelSnapshot.cs @@ -462,6 +462,48 @@ namespace LANCommander.Server.Data.MySQL.Migrations b.ToTable("Games"); }); + modelBuilder.Entity("LANCommander.Server.Data.Models.GameCustomField", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)"); + + b.Property("CreatedById") + .HasColumnType("char(36)"); + + b.Property("CreatedOn") + .HasColumnType("datetime(6)"); + + b.Property("GameId") + .HasColumnType("char(36)"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(64) + .HasColumnType("varchar(64)"); + + b.Property("UpdatedById") + .HasColumnType("char(36)"); + + b.Property("UpdatedOn") + .HasColumnType("datetime(6)"); + + b.Property("Value") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("varchar(1024)"); + + b.HasKey("Id"); + + b.HasIndex("CreatedById"); + + b.HasIndex("GameId"); + + b.HasIndex("UpdatedById"); + + b.ToTable("GameCustomField"); + }); + modelBuilder.Entity("LANCommander.Server.Data.Models.GameSave", b => { b.Property("Id") @@ -1976,6 +2018,27 @@ namespace LANCommander.Server.Data.MySQL.Migrations b.Navigation("UpdatedBy"); }); + modelBuilder.Entity("LANCommander.Server.Data.Models.GameCustomField", b => + { + b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") + .WithMany() + .HasForeignKey("CreatedById"); + + b.HasOne("LANCommander.Server.Data.Models.Game", "Game") + .WithMany("CustomFields") + .HasForeignKey("GameId"); + + b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") + .WithMany() + .HasForeignKey("UpdatedById"); + + b.Navigation("CreatedBy"); + + b.Navigation("Game"); + + b.Navigation("UpdatedBy"); + }); + modelBuilder.Entity("LANCommander.Server.Data.Models.GameSave", b => { b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") @@ -2658,6 +2721,8 @@ namespace LANCommander.Server.Data.MySQL.Migrations b.Navigation("Archives"); + b.Navigation("CustomFields"); + b.Navigation("DependentGames"); b.Navigation("GameSaves"); diff --git a/LANCommander.Server.Data.PostgreSQL/LANCommander.Server.Data.PostgreSQL.csproj b/LANCommander.Server.Data.PostgreSQL/LANCommander.Server.Data.PostgreSQL.csproj index 7031ab28..022aedb3 100644 --- a/LANCommander.Server.Data.PostgreSQL/LANCommander.Server.Data.PostgreSQL.csproj +++ b/LANCommander.Server.Data.PostgreSQL/LANCommander.Server.Data.PostgreSQL.csproj @@ -15,4 +15,8 @@ + + + + diff --git a/LANCommander.Server.Data.PostgreSQL/Migrations/20241024040259_InitialSeed.Designer.cs b/LANCommander.Server.Data.PostgreSQL/Migrations/20241024040259_InitialSeed.Designer.cs deleted file mode 100644 index 595eee9a..00000000 --- a/LANCommander.Server.Data.PostgreSQL/Migrations/20241024040259_InitialSeed.Designer.cs +++ /dev/null @@ -1,2647 +0,0 @@ -// -using System; -using LANCommander.Server.Data; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.EntityFrameworkCore.Migrations; -using Microsoft.EntityFrameworkCore.Storage.ValueConversion; -using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; - -#nullable disable - -namespace LANCommander.Server.Data.PostgreSQL.Migrations -{ - [DbContext(typeof(DatabaseContext))] - [Migration("20241024040259_InitialSeed")] - partial class InitialSeed - { - /// - protected override void BuildTargetModel(ModelBuilder modelBuilder) - { -#pragma warning disable 612, 618 - modelBuilder - .HasAnnotation("ProductVersion", "8.0.10") - .HasAnnotation("Relational:MaxIdentifierLength", 63); - - NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder); - - modelBuilder.Entity("CategoryGame", b => - { - b.Property("CategoriesId") - .HasColumnType("uuid"); - - b.Property("GamesId") - .HasColumnType("uuid"); - - b.HasKey("CategoriesId", "GamesId"); - - b.HasIndex("GamesId"); - - b.ToTable("CategoryGame"); - }); - - modelBuilder.Entity("CollectionGame", b => - { - b.Property("CollectionId") - .HasColumnType("uuid"); - - b.Property("GameId") - .HasColumnType("uuid"); - - b.HasKey("CollectionId", "GameId"); - - b.HasIndex("GameId"); - - b.ToTable("CollectionGame"); - }); - - modelBuilder.Entity("GameDeveloper", b => - { - b.Property("DeveloperId") - .HasColumnType("uuid"); - - b.Property("GameId") - .HasColumnType("uuid"); - - b.HasKey("DeveloperId", "GameId"); - - b.HasIndex("GameId"); - - b.ToTable("GameDeveloper"); - }); - - modelBuilder.Entity("GameGenre", b => - { - b.Property("GamesId") - .HasColumnType("uuid"); - - b.Property("GenresId") - .HasColumnType("uuid"); - - b.HasKey("GamesId", "GenresId"); - - b.HasIndex("GenresId"); - - b.ToTable("GameGenre"); - }); - - modelBuilder.Entity("GamePlatform", b => - { - b.Property("GamesId") - .HasColumnType("uuid"); - - b.Property("PlatformsId") - .HasColumnType("uuid"); - - b.HasKey("GamesId", "PlatformsId"); - - b.HasIndex("PlatformsId"); - - b.ToTable("GamePlatform"); - }); - - modelBuilder.Entity("GamePublisher", b => - { - b.Property("GameId") - .HasColumnType("uuid"); - - b.Property("PublisherId") - .HasColumnType("uuid"); - - b.HasKey("GameId", "PublisherId"); - - b.HasIndex("PublisherId"); - - b.ToTable("GamePublisher"); - }); - - modelBuilder.Entity("GameRedistributable", b => - { - b.Property("GameId") - .HasColumnType("uuid"); - - b.Property("RedistributableId") - .HasColumnType("uuid"); - - b.HasKey("GameId", "RedistributableId"); - - b.HasIndex("RedistributableId"); - - b.ToTable("GameRedistributable"); - }); - - modelBuilder.Entity("GameTag", b => - { - b.Property("GamesId") - .HasColumnType("uuid"); - - b.Property("TagsId") - .HasColumnType("uuid"); - - b.HasKey("GamesId", "TagsId"); - - b.HasIndex("TagsId"); - - b.ToTable("GameTag"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Action", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uuid"); - - b.Property("Arguments") - .HasColumnType("text"); - - b.Property("CreatedById") - .HasColumnType("uuid"); - - b.Property("CreatedOn") - .HasColumnType("timestamp with time zone"); - - b.Property("GameId") - .HasColumnType("uuid"); - - b.Property("Name") - .IsRequired() - .HasColumnType("text"); - - b.Property("Path") - .HasColumnType("text"); - - b.Property("PrimaryAction") - .HasColumnType("boolean"); - - b.Property("ServerId") - .HasColumnType("uuid"); - - b.Property("SortOrder") - .HasColumnType("integer"); - - b.Property("UpdatedById") - .HasColumnType("uuid"); - - b.Property("UpdatedOn") - .HasColumnType("timestamp with time zone"); - - b.Property("WorkingDirectory") - .HasColumnType("text"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("GameId"); - - b.HasIndex("ServerId"); - - b.HasIndex("UpdatedById"); - - b.ToTable("Actions"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Archive", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uuid"); - - b.Property("Changelog") - .HasColumnType("text"); - - b.Property("CompressedSize") - .HasColumnType("bigint"); - - b.Property("CreatedById") - .HasColumnType("uuid"); - - b.Property("CreatedOn") - .HasColumnType("timestamp with time zone"); - - b.Property("GameId") - .HasColumnType("uuid"); - - b.Property("LastVersionId") - .HasColumnType("uuid"); - - b.Property("ObjectKey") - .IsRequired() - .HasColumnType("text"); - - b.Property("RedistributableId") - .HasColumnType("uuid"); - - b.Property("StorageLocationId") - .HasColumnType("uuid"); - - b.Property("UncompressedSize") - .HasColumnType("bigint"); - - b.Property("UpdatedById") - .HasColumnType("uuid"); - - b.Property("UpdatedOn") - .HasColumnType("timestamp with time zone"); - - b.Property("Version") - .IsRequired() - .HasColumnType("text"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("GameId"); - - b.HasIndex("LastVersionId"); - - b.HasIndex("RedistributableId"); - - b.HasIndex("StorageLocationId"); - - b.HasIndex("UpdatedById"); - - b.ToTable("Archive"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Category", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uuid"); - - b.Property("CreatedById") - .HasColumnType("uuid"); - - b.Property("CreatedOn") - .HasColumnType("timestamp with time zone"); - - b.Property("Name") - .IsRequired() - .HasColumnType("text"); - - b.Property("ParentId") - .HasColumnType("uuid"); - - b.Property("UpdatedById") - .HasColumnType("uuid"); - - b.Property("UpdatedOn") - .HasColumnType("timestamp with time zone"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("ParentId"); - - b.HasIndex("UpdatedById"); - - b.ToTable("Categories"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Collection", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uuid"); - - b.Property("CreatedById") - .HasColumnType("uuid"); - - b.Property("CreatedOn") - .HasColumnType("timestamp with time zone"); - - b.Property("Name") - .IsRequired() - .HasColumnType("text"); - - b.Property("UpdatedById") - .HasColumnType("uuid"); - - b.Property("UpdatedOn") - .HasColumnType("timestamp with time zone"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("UpdatedById"); - - b.ToTable("Collections"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Company", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uuid"); - - b.Property("CreatedById") - .HasColumnType("uuid"); - - b.Property("CreatedOn") - .HasColumnType("timestamp with time zone"); - - b.Property("Name") - .IsRequired() - .HasColumnType("text"); - - b.Property("UpdatedById") - .HasColumnType("uuid"); - - b.Property("UpdatedOn") - .HasColumnType("timestamp with time zone"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("UpdatedById"); - - b.ToTable("Companies"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Engine", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uuid"); - - b.Property("CreatedById") - .HasColumnType("uuid"); - - b.Property("CreatedOn") - .HasColumnType("timestamp with time zone"); - - b.Property("Name") - .IsRequired() - .HasColumnType("text"); - - b.Property("UpdatedById") - .HasColumnType("uuid"); - - b.Property("UpdatedOn") - .HasColumnType("timestamp with time zone"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("UpdatedById"); - - b.ToTable("Engines"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Game", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uuid"); - - b.Property("BaseGameId") - .HasColumnType("uuid"); - - b.Property("CreatedById") - .HasColumnType("uuid"); - - b.Property("CreatedOn") - .HasColumnType("timestamp with time zone"); - - b.Property("Description") - .HasColumnType("text"); - - b.Property("DirectoryName") - .HasColumnType("text"); - - b.Property("EngineId") - .HasColumnType("uuid"); - - b.Property("IGDBId") - .HasColumnType("bigint"); - - b.Property("KeyAllocationMethod") - .HasColumnType("integer"); - - b.Property("Notes") - .HasColumnType("text"); - - b.Property("ReleasedOn") - .HasColumnType("timestamp with time zone"); - - b.Property("Singleplayer") - .HasColumnType("boolean"); - - b.Property("SortTitle") - .HasColumnType("text"); - - b.Property("Title") - .IsRequired() - .HasColumnType("text"); - - b.Property("Type") - .HasColumnType("integer"); - - b.Property("UpdatedById") - .HasColumnType("uuid"); - - b.Property("UpdatedOn") - .HasColumnType("timestamp with time zone"); - - b.Property("ValidKeyRegex") - .HasColumnType("text"); - - b.HasKey("Id"); - - b.HasIndex("BaseGameId"); - - b.HasIndex("CreatedById"); - - b.HasIndex("EngineId"); - - b.HasIndex("UpdatedById"); - - b.ToTable("Games"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.GameSave", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uuid"); - - b.Property("CreatedById") - .HasColumnType("uuid"); - - b.Property("CreatedOn") - .HasColumnType("timestamp with time zone"); - - b.Property("GameId") - .HasColumnType("uuid"); - - b.Property("Size") - .HasColumnType("bigint"); - - b.Property("StorageLocationId") - .HasColumnType("uuid"); - - b.Property("UpdatedById") - .HasColumnType("uuid"); - - b.Property("UpdatedOn") - .HasColumnType("timestamp with time zone"); - - b.Property("UserId") - .HasColumnType("uuid"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("GameId"); - - b.HasIndex("StorageLocationId"); - - b.HasIndex("UpdatedById"); - - b.HasIndex("UserId"); - - b.ToTable("GameSaves"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Genre", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uuid"); - - b.Property("CreatedById") - .HasColumnType("uuid"); - - b.Property("CreatedOn") - .HasColumnType("timestamp with time zone"); - - b.Property("Name") - .IsRequired() - .HasColumnType("text"); - - b.Property("UpdatedById") - .HasColumnType("uuid"); - - b.Property("UpdatedOn") - .HasColumnType("timestamp with time zone"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("UpdatedById"); - - b.ToTable("Genres"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Issue", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uuid"); - - b.Property("CreatedById") - .HasColumnType("uuid"); - - b.Property("CreatedOn") - .HasColumnType("timestamp with time zone"); - - b.Property("Description") - .IsRequired() - .HasColumnType("text"); - - b.Property("GameId") - .HasColumnType("uuid"); - - b.Property("ResolvedById") - .HasColumnType("uuid"); - - b.Property("ResolvedOn") - .HasColumnType("timestamp with time zone"); - - b.Property("UpdatedById") - .HasColumnType("uuid"); - - b.Property("UpdatedOn") - .HasColumnType("timestamp with time zone"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("GameId"); - - b.HasIndex("ResolvedById"); - - b.HasIndex("UpdatedById"); - - b.ToTable("Issues"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Key", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uuid"); - - b.Property("AllocationMethod") - .HasColumnType("integer"); - - b.Property("ClaimedByComputerName") - .HasMaxLength(255) - .HasColumnType("character varying(255)"); - - b.Property("ClaimedByIpv4Address") - .HasMaxLength(15) - .HasColumnType("character varying(15)"); - - b.Property("ClaimedByMacAddress") - .HasMaxLength(17) - .HasColumnType("character varying(17)"); - - b.Property("ClaimedByUserId") - .HasColumnType("uuid"); - - b.Property("ClaimedOn") - .HasColumnType("timestamp with time zone"); - - b.Property("CreatedById") - .HasColumnType("uuid"); - - b.Property("CreatedOn") - .HasColumnType("timestamp with time zone"); - - b.Property("GameId") - .HasColumnType("uuid"); - - b.Property("UpdatedById") - .HasColumnType("uuid"); - - b.Property("UpdatedOn") - .HasColumnType("timestamp with time zone"); - - b.Property("Value") - .IsRequired() - .HasMaxLength(255) - .HasColumnType("character varying(255)"); - - b.HasKey("Id"); - - b.HasIndex("ClaimedByUserId"); - - b.HasIndex("CreatedById"); - - b.HasIndex("GameId"); - - b.HasIndex("UpdatedById"); - - b.ToTable("Keys"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Media", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uuid"); - - b.Property("Crc32") - .IsRequired() - .HasMaxLength(8) - .HasColumnType("character varying(8)"); - - b.Property("CreatedById") - .HasColumnType("uuid"); - - b.Property("CreatedOn") - .HasColumnType("timestamp with time zone"); - - b.Property("FileId") - .HasColumnType("uuid"); - - b.Property("GameId") - .HasColumnType("uuid"); - - b.Property("MimeType") - .HasMaxLength(255) - .HasColumnType("character varying(255)"); - - b.Property("Name") - .HasMaxLength(64) - .HasColumnType("character varying(64)"); - - b.Property("SourceUrl") - .HasMaxLength(2048) - .HasColumnType("character varying(2048)"); - - b.Property("StorageLocationId") - .HasColumnType("uuid"); - - b.Property("ThumbnailId") - .HasColumnType("uuid"); - - b.Property("Type") - .HasColumnType("integer"); - - b.Property("UpdatedById") - .HasColumnType("uuid"); - - b.Property("UpdatedOn") - .HasColumnType("timestamp with time zone"); - - b.Property("UserId") - .HasColumnType("uuid"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("GameId"); - - b.HasIndex("StorageLocationId"); - - b.HasIndex("ThumbnailId") - .IsUnique(); - - b.HasIndex("UpdatedById"); - - b.HasIndex("UserId"); - - b.ToTable("Media"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.MultiplayerMode", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uuid"); - - b.Property("CreatedById") - .HasColumnType("uuid"); - - b.Property("CreatedOn") - .HasColumnType("timestamp with time zone"); - - b.Property("Description") - .HasColumnType("text"); - - b.Property("GameId") - .IsRequired() - .HasColumnType("uuid"); - - b.Property("MaxPlayers") - .HasColumnType("integer"); - - b.Property("MinPlayers") - .HasColumnType("integer"); - - b.Property("NetworkProtocol") - .HasColumnType("integer"); - - b.Property("Spectators") - .HasColumnType("integer"); - - b.Property("Type") - .HasColumnType("integer"); - - b.Property("UpdatedById") - .HasColumnType("uuid"); - - b.Property("UpdatedOn") - .HasColumnType("timestamp with time zone"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("GameId"); - - b.HasIndex("UpdatedById"); - - b.ToTable("MultiplayerModes"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Page", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uuid"); - - b.Property("Contents") - .IsRequired() - .HasColumnType("text"); - - b.Property("CreatedById") - .HasColumnType("uuid"); - - b.Property("CreatedOn") - .HasColumnType("timestamp with time zone"); - - b.Property("ParentId") - .HasColumnType("uuid"); - - b.Property("Route") - .IsRequired() - .HasMaxLength(2048) - .HasColumnType("character varying(2048)"); - - b.Property("Slug") - .IsRequired() - .HasMaxLength(256) - .HasColumnType("character varying(256)"); - - b.Property("SortOrder") - .HasColumnType("integer"); - - b.Property("Title") - .IsRequired() - .HasMaxLength(256) - .HasColumnType("character varying(256)"); - - b.Property("UpdatedById") - .HasColumnType("uuid"); - - b.Property("UpdatedOn") - .HasColumnType("timestamp with time zone"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("ParentId"); - - b.HasIndex("UpdatedById"); - - b.ToTable("Pages"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Platform", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uuid"); - - b.Property("CreatedById") - .HasColumnType("uuid"); - - b.Property("CreatedOn") - .HasColumnType("timestamp with time zone"); - - b.Property("Name") - .IsRequired() - .HasColumnType("text"); - - b.Property("UpdatedById") - .HasColumnType("uuid"); - - b.Property("UpdatedOn") - .HasColumnType("timestamp with time zone"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("UpdatedById"); - - b.ToTable("Platforms"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.PlaySession", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uuid"); - - b.Property("CreatedById") - .HasColumnType("uuid"); - - b.Property("CreatedOn") - .HasColumnType("timestamp with time zone"); - - b.Property("End") - .HasColumnType("timestamp with time zone"); - - b.Property("GameId") - .HasColumnType("uuid"); - - b.Property("Start") - .HasColumnType("timestamp with time zone"); - - b.Property("UpdatedById") - .HasColumnType("uuid"); - - b.Property("UpdatedOn") - .HasColumnType("timestamp with time zone"); - - b.Property("UserId") - .HasColumnType("uuid"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("GameId"); - - b.HasIndex("UpdatedById"); - - b.HasIndex("UserId"); - - b.ToTable("PlaySessions"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Redistributable", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uuid"); - - b.Property("CreatedById") - .HasColumnType("uuid"); - - b.Property("CreatedOn") - .HasColumnType("timestamp with time zone"); - - b.Property("Description") - .HasColumnType("text"); - - b.Property("Name") - .IsRequired() - .HasColumnType("text"); - - b.Property("Notes") - .HasColumnType("text"); - - b.Property("UpdatedById") - .HasColumnType("uuid"); - - b.Property("UpdatedOn") - .HasColumnType("timestamp with time zone"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("UpdatedById"); - - b.ToTable("Redistributables"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Role", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uuid"); - - b.Property("ConcurrencyStamp") - .IsConcurrencyToken() - .HasColumnType("text"); - - b.Property("CreatedById") - .HasColumnType("uuid"); - - b.Property("CreatedOn") - .HasColumnType("timestamp with time zone"); - - b.Property("Name") - .HasMaxLength(256) - .HasColumnType("character varying(256)"); - - b.Property("NormalizedName") - .HasMaxLength(256) - .HasColumnType("character varying(256)"); - - b.Property("UpdatedById") - .HasColumnType("uuid"); - - b.Property("UpdatedOn") - .HasColumnType("timestamp with time zone"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("NormalizedName") - .IsUnique() - .HasDatabaseName("RoleNameIndex"); - - b.HasIndex("UpdatedById"); - - b.ToTable("Roles", (string)null); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.SavePath", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uuid"); - - b.Property("CreatedById") - .HasColumnType("uuid"); - - b.Property("CreatedOn") - .HasColumnType("timestamp with time zone"); - - b.Property("GameId") - .HasColumnType("uuid"); - - b.Property("IsRegex") - .HasColumnType("boolean"); - - b.Property("Path") - .IsRequired() - .HasColumnType("text"); - - b.Property("Type") - .HasColumnType("integer"); - - b.Property("UpdatedById") - .HasColumnType("uuid"); - - b.Property("UpdatedOn") - .HasColumnType("timestamp with time zone"); - - b.Property("WorkingDirectory") - .HasColumnType("text"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("GameId"); - - b.HasIndex("UpdatedById"); - - b.ToTable("SavePaths"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Script", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uuid"); - - b.Property("Contents") - .IsRequired() - .HasColumnType("text"); - - b.Property("CreatedById") - .HasColumnType("uuid"); - - b.Property("CreatedOn") - .HasColumnType("timestamp with time zone"); - - b.Property("Description") - .HasColumnType("text"); - - b.Property("GameId") - .HasColumnType("uuid"); - - b.Property("Name") - .IsRequired() - .HasColumnType("text"); - - b.Property("RedistributableId") - .HasColumnType("uuid"); - - b.Property("RequiresAdmin") - .HasColumnType("boolean"); - - b.Property("ServerId") - .HasColumnType("uuid"); - - b.Property("Type") - .HasColumnType("integer"); - - b.Property("UpdatedById") - .HasColumnType("uuid"); - - b.Property("UpdatedOn") - .HasColumnType("timestamp with time zone"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("GameId"); - - b.HasIndex("RedistributableId"); - - b.HasIndex("ServerId"); - - b.HasIndex("UpdatedById"); - - b.ToTable("Scripts"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Server", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uuid"); - - b.Property("Arguments") - .IsRequired() - .HasColumnType("text"); - - b.Property("Autostart") - .HasColumnType("boolean"); - - b.Property("AutostartDelay") - .HasColumnType("integer"); - - b.Property("AutostartMethod") - .HasColumnType("integer"); - - b.Property("CreatedById") - .HasColumnType("uuid"); - - b.Property("CreatedOn") - .HasColumnType("timestamp with time zone"); - - b.Property("GameId") - .HasColumnType("uuid"); - - b.Property("Host") - .IsRequired() - .HasColumnType("text"); - - b.Property("Name") - .IsRequired() - .HasColumnType("text"); - - b.Property("OnStartScriptPath") - .IsRequired() - .HasColumnType("text"); - - b.Property("OnStopScriptPath") - .IsRequired() - .HasColumnType("text"); - - b.Property("Path") - .IsRequired() - .HasColumnType("text"); - - b.Property("Port") - .HasColumnType("integer"); - - b.Property("ProcessTerminationMethod") - .HasColumnType("integer"); - - b.Property("UpdatedById") - .HasColumnType("uuid"); - - b.Property("UpdatedOn") - .HasColumnType("timestamp with time zone"); - - b.Property("UseShellExecute") - .HasColumnType("boolean"); - - b.Property("WorkingDirectory") - .IsRequired() - .HasColumnType("text"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("GameId"); - - b.HasIndex("UpdatedById"); - - b.ToTable("Servers"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.ServerConsole", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uuid"); - - b.Property("CreatedById") - .HasColumnType("uuid"); - - b.Property("CreatedOn") - .HasColumnType("timestamp with time zone"); - - b.Property("Host") - .IsRequired() - .HasColumnType("text"); - - b.Property("Name") - .IsRequired() - .HasColumnType("text"); - - b.Property("Password") - .IsRequired() - .HasColumnType("text"); - - b.Property("Path") - .IsRequired() - .HasColumnType("text"); - - b.Property("Port") - .HasColumnType("integer"); - - b.Property("ServerId") - .IsRequired() - .HasColumnType("uuid"); - - b.Property("ServerId1") - .HasColumnType("uuid"); - - b.Property("Type") - .HasColumnType("integer"); - - b.Property("UpdatedById") - .HasColumnType("uuid"); - - b.Property("UpdatedOn") - .HasColumnType("timestamp with time zone"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("ServerId"); - - b.HasIndex("ServerId1"); - - b.HasIndex("UpdatedById"); - - b.ToTable("ServerConsoles"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.ServerHttpPath", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uuid"); - - b.Property("CreatedById") - .HasColumnType("uuid"); - - b.Property("CreatedOn") - .HasColumnType("timestamp with time zone"); - - b.Property("LocalPath") - .IsRequired() - .HasColumnType("text"); - - b.Property("Path") - .IsRequired() - .HasColumnType("text"); - - b.Property("ServerId") - .HasColumnType("uuid"); - - b.Property("ServerId1") - .HasColumnType("uuid"); - - b.Property("UpdatedById") - .HasColumnType("uuid"); - - b.Property("UpdatedOn") - .HasColumnType("timestamp with time zone"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("ServerId"); - - b.HasIndex("ServerId1"); - - b.HasIndex("UpdatedById"); - - b.ToTable("ServerHttpPath"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.StorageLocation", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uuid"); - - b.Property("CreatedById") - .HasColumnType("uuid"); - - b.Property("CreatedOn") - .HasColumnType("timestamp with time zone"); - - b.Property("Default") - .HasColumnType("boolean"); - - b.Property("Path") - .IsRequired() - .HasColumnType("text"); - - b.Property("Type") - .HasColumnType("integer"); - - b.Property("UpdatedById") - .HasColumnType("uuid"); - - b.Property("UpdatedOn") - .HasColumnType("timestamp with time zone"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("UpdatedById"); - - b.ToTable("StorageLocations"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Tag", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uuid"); - - b.Property("CreatedById") - .HasColumnType("uuid"); - - b.Property("CreatedOn") - .HasColumnType("timestamp with time zone"); - - b.Property("Name") - .IsRequired() - .HasColumnType("text"); - - b.Property("UpdatedById") - .HasColumnType("uuid"); - - b.Property("UpdatedOn") - .HasColumnType("timestamp with time zone"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("UpdatedById"); - - b.ToTable("Tags"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.User", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uuid"); - - b.Property("AccessFailedCount") - .HasColumnType("integer"); - - b.Property("Alias") - .HasColumnType("text"); - - b.Property("Approved") - .HasColumnType("boolean"); - - b.Property("ApprovedOn") - .HasColumnType("timestamp with time zone"); - - b.Property("ConcurrencyStamp") - .IsConcurrencyToken() - .HasColumnType("text"); - - b.Property("CreatedById") - .HasColumnType("uuid"); - - b.Property("CreatedOn") - .HasColumnType("timestamp with time zone"); - - b.Property("Email") - .HasMaxLength(256) - .HasColumnType("character varying(256)"); - - b.Property("EmailConfirmed") - .HasColumnType("boolean"); - - b.Property("LockoutEnabled") - .HasColumnType("boolean"); - - b.Property("LockoutEnd") - .HasColumnType("timestamp with time zone"); - - b.Property("NormalizedEmail") - .HasMaxLength(256) - .HasColumnType("character varying(256)"); - - b.Property("NormalizedUserName") - .HasMaxLength(256) - .HasColumnType("character varying(256)"); - - b.Property("PasswordHash") - .HasColumnType("text"); - - b.Property("PhoneNumber") - .HasColumnType("text"); - - b.Property("PhoneNumberConfirmed") - .HasColumnType("boolean"); - - b.Property("RefreshToken") - .HasColumnType("text"); - - b.Property("RefreshTokenExpiration") - .HasColumnType("timestamp with time zone"); - - b.Property("SecurityStamp") - .HasColumnType("text"); - - b.Property("TwoFactorEnabled") - .HasColumnType("boolean"); - - b.Property("UpdatedById") - .HasColumnType("uuid"); - - b.Property("UpdatedOn") - .HasColumnType("timestamp with time zone"); - - b.Property("UserName") - .HasMaxLength(256) - .HasColumnType("character varying(256)"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("NormalizedEmail") - .HasDatabaseName("EmailIndex"); - - b.HasIndex("NormalizedUserName") - .IsUnique() - .HasDatabaseName("UserNameIndex"); - - b.HasIndex("UpdatedById"); - - b.ToTable("Users", (string)null); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.UserCustomField", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uuid"); - - b.Property("CreatedById") - .HasColumnType("uuid"); - - b.Property("CreatedOn") - .HasColumnType("timestamp with time zone"); - - b.Property("Name") - .IsRequired() - .HasMaxLength(64) - .HasColumnType("character varying(64)"); - - b.Property("UpdatedById") - .HasColumnType("uuid"); - - b.Property("UpdatedOn") - .HasColumnType("timestamp with time zone"); - - b.Property("UserId") - .IsRequired() - .HasColumnType("uuid"); - - b.Property("Value") - .IsRequired() - .HasMaxLength(1024) - .HasColumnType("character varying(1024)"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("UpdatedById"); - - b.HasIndex("UserId"); - - b.ToTable("UserCustomField"); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("ClaimType") - .HasColumnType("text"); - - b.Property("ClaimValue") - .HasColumnType("text"); - - b.Property("RoleId") - .HasColumnType("uuid"); - - b.HasKey("Id"); - - b.HasIndex("RoleId"); - - b.ToTable("RoleClaims", (string)null); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("ClaimType") - .HasColumnType("text"); - - b.Property("ClaimValue") - .HasColumnType("text"); - - b.Property("UserId") - .HasColumnType("uuid"); - - b.HasKey("Id"); - - b.HasIndex("UserId"); - - b.ToTable("UserClaims", (string)null); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => - { - b.Property("LoginProvider") - .HasColumnType("text"); - - b.Property("ProviderKey") - .HasColumnType("text"); - - b.Property("ProviderDisplayName") - .HasColumnType("text"); - - b.Property("UserId") - .HasColumnType("uuid"); - - b.HasKey("LoginProvider", "ProviderKey"); - - b.HasIndex("UserId"); - - b.ToTable("UserLogins", (string)null); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b => - { - b.Property("UserId") - .HasColumnType("uuid"); - - b.Property("RoleId") - .HasColumnType("uuid"); - - b.HasKey("UserId", "RoleId"); - - b.HasIndex("RoleId"); - - b.ToTable("UserRoles", (string)null); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => - { - b.Property("UserId") - .HasColumnType("uuid"); - - b.Property("LoginProvider") - .HasColumnType("text"); - - b.Property("Name") - .HasColumnType("text"); - - b.Property("Value") - .HasColumnType("text"); - - b.HasKey("UserId", "LoginProvider", "Name"); - - b.ToTable("UserTokens", (string)null); - }); - - modelBuilder.Entity("PageGame", b => - { - b.Property("GameId") - .HasColumnType("uuid"); - - b.Property("PageId") - .HasColumnType("uuid"); - - b.HasKey("GameId", "PageId"); - - b.HasIndex("PageId"); - - b.ToTable("PageGame"); - }); - - modelBuilder.Entity("PageRedistributable", b => - { - b.Property("PageId") - .HasColumnType("uuid"); - - b.Property("RedistributableId") - .HasColumnType("uuid"); - - b.HasKey("PageId", "RedistributableId"); - - b.HasIndex("RedistributableId"); - - b.ToTable("PageRedistributable"); - }); - - modelBuilder.Entity("PageServer", b => - { - b.Property("PageId") - .HasColumnType("uuid"); - - b.Property("ServerId") - .HasColumnType("uuid"); - - b.HasKey("PageId", "ServerId"); - - b.HasIndex("ServerId"); - - b.ToTable("PageServer"); - }); - - modelBuilder.Entity("RoleCollection", b => - { - b.Property("CollectionId") - .HasColumnType("uuid"); - - b.Property("RoleId") - .HasColumnType("uuid"); - - b.HasKey("CollectionId", "RoleId"); - - b.HasIndex("RoleId"); - - b.ToTable("RoleCollection"); - }); - - modelBuilder.Entity("CategoryGame", b => - { - b.HasOne("LANCommander.Server.Data.Models.Category", null) - .WithMany() - .HasForeignKey("CategoriesId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("LANCommander.Server.Data.Models.Game", null) - .WithMany() - .HasForeignKey("GamesId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("CollectionGame", b => - { - b.HasOne("LANCommander.Server.Data.Models.Collection", null) - .WithMany() - .HasForeignKey("CollectionId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("LANCommander.Server.Data.Models.Game", null) - .WithMany() - .HasForeignKey("GameId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("GameDeveloper", b => - { - b.HasOne("LANCommander.Server.Data.Models.Company", null) - .WithMany() - .HasForeignKey("DeveloperId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("LANCommander.Server.Data.Models.Game", null) - .WithMany() - .HasForeignKey("GameId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("GameGenre", b => - { - b.HasOne("LANCommander.Server.Data.Models.Game", null) - .WithMany() - .HasForeignKey("GamesId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("LANCommander.Server.Data.Models.Genre", null) - .WithMany() - .HasForeignKey("GenresId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("GamePlatform", b => - { - b.HasOne("LANCommander.Server.Data.Models.Game", null) - .WithMany() - .HasForeignKey("GamesId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("LANCommander.Server.Data.Models.Platform", null) - .WithMany() - .HasForeignKey("PlatformsId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("GamePublisher", b => - { - b.HasOne("LANCommander.Server.Data.Models.Game", null) - .WithMany() - .HasForeignKey("GameId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("LANCommander.Server.Data.Models.Company", null) - .WithMany() - .HasForeignKey("PublisherId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("GameRedistributable", b => - { - b.HasOne("LANCommander.Server.Data.Models.Game", null) - .WithMany() - .HasForeignKey("GameId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("LANCommander.Server.Data.Models.Redistributable", null) - .WithMany() - .HasForeignKey("RedistributableId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("GameTag", b => - { - b.HasOne("LANCommander.Server.Data.Models.Game", null) - .WithMany() - .HasForeignKey("GamesId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("LANCommander.Server.Data.Models.Tag", null) - .WithMany() - .HasForeignKey("TagsId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Action", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.Game", "Game") - .WithMany("Actions") - .HasForeignKey("GameId") - .OnDelete(DeleteBehavior.Cascade); - - b.HasOne("LANCommander.Server.Data.Models.Server", "Server") - .WithMany("Actions") - .HasForeignKey("ServerId") - .OnDelete(DeleteBehavior.Cascade); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.Navigation("CreatedBy"); - - b.Navigation("Game"); - - b.Navigation("Server"); - - b.Navigation("UpdatedBy"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Archive", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.Game", "Game") - .WithMany("Archives") - .HasForeignKey("GameId") - .OnDelete(DeleteBehavior.Cascade); - - b.HasOne("LANCommander.Server.Data.Models.Archive", "LastVersion") - .WithMany() - .HasForeignKey("LastVersionId"); - - b.HasOne("LANCommander.Server.Data.Models.Redistributable", "Redistributable") - .WithMany("Archives") - .HasForeignKey("RedistributableId") - .OnDelete(DeleteBehavior.Cascade); - - b.HasOne("LANCommander.Server.Data.Models.StorageLocation", "StorageLocation") - .WithMany("Archives") - .HasForeignKey("StorageLocationId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.Navigation("CreatedBy"); - - b.Navigation("Game"); - - b.Navigation("LastVersion"); - - b.Navigation("Redistributable"); - - b.Navigation("StorageLocation"); - - b.Navigation("UpdatedBy"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Category", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.Category", "Parent") - .WithMany("Children") - .HasForeignKey("ParentId"); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.Navigation("CreatedBy"); - - b.Navigation("Parent"); - - b.Navigation("UpdatedBy"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Collection", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.Navigation("CreatedBy"); - - b.Navigation("UpdatedBy"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Company", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.Navigation("CreatedBy"); - - b.Navigation("UpdatedBy"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Engine", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById"); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById"); - - b.Navigation("CreatedBy"); - - b.Navigation("UpdatedBy"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Game", b => - { - b.HasOne("LANCommander.Server.Data.Models.Game", "BaseGame") - .WithMany("DependentGames") - .HasForeignKey("BaseGameId") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.Engine", "Engine") - .WithMany("Games") - .HasForeignKey("EngineId") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.Navigation("BaseGame"); - - b.Navigation("CreatedBy"); - - b.Navigation("Engine"); - - b.Navigation("UpdatedBy"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.GameSave", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.Game", "Game") - .WithMany("GameSaves") - .HasForeignKey("GameId") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.StorageLocation", "StorageLocation") - .WithMany("GameSaves") - .HasForeignKey("StorageLocationId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.User", "User") - .WithMany("GameSaves") - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("CreatedBy"); - - b.Navigation("Game"); - - b.Navigation("StorageLocation"); - - b.Navigation("UpdatedBy"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Genre", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.Navigation("CreatedBy"); - - b.Navigation("UpdatedBy"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Issue", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.Game", "Game") - .WithMany("Issues") - .HasForeignKey("GameId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("LANCommander.Server.Data.Models.User", "ResolvedBy") - .WithMany() - .HasForeignKey("ResolvedById"); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.Navigation("CreatedBy"); - - b.Navigation("Game"); - - b.Navigation("ResolvedBy"); - - b.Navigation("UpdatedBy"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Key", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "ClaimedByUser") - .WithMany() - .HasForeignKey("ClaimedByUserId"); - - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.Game", "Game") - .WithMany("Keys") - .HasForeignKey("GameId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.Navigation("ClaimedByUser"); - - b.Navigation("CreatedBy"); - - b.Navigation("Game"); - - b.Navigation("UpdatedBy"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Media", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.Game", "Game") - .WithMany("Media") - .HasForeignKey("GameId") - .OnDelete(DeleteBehavior.Cascade); - - b.HasOne("LANCommander.Server.Data.Models.StorageLocation", "StorageLocation") - .WithMany("Media") - .HasForeignKey("StorageLocationId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("LANCommander.Server.Data.Models.Media", "Thumbnail") - .WithOne("Parent") - .HasForeignKey("LANCommander.Server.Data.Models.Media", "ThumbnailId") - .OnDelete(DeleteBehavior.Cascade); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.User", "User") - .WithMany("Media") - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade); - - b.Navigation("CreatedBy"); - - b.Navigation("Game"); - - b.Navigation("StorageLocation"); - - b.Navigation("Thumbnail"); - - b.Navigation("UpdatedBy"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.MultiplayerMode", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.Game", "Game") - .WithMany("MultiplayerModes") - .HasForeignKey("GameId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.Navigation("CreatedBy"); - - b.Navigation("Game"); - - b.Navigation("UpdatedBy"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Page", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.Page", "Parent") - .WithMany("Children") - .HasForeignKey("ParentId") - .OnDelete(DeleteBehavior.Cascade); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.Navigation("CreatedBy"); - - b.Navigation("Parent"); - - b.Navigation("UpdatedBy"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Platform", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.Navigation("CreatedBy"); - - b.Navigation("UpdatedBy"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.PlaySession", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.Game", "Game") - .WithMany("PlaySessions") - .HasForeignKey("GameId") - .OnDelete(DeleteBehavior.Cascade); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.User", "User") - .WithMany("PlaySessions") - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("CreatedBy"); - - b.Navigation("Game"); - - b.Navigation("UpdatedBy"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Redistributable", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.Navigation("CreatedBy"); - - b.Navigation("UpdatedBy"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Role", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.Navigation("CreatedBy"); - - b.Navigation("UpdatedBy"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.SavePath", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.Game", "Game") - .WithMany("SavePaths") - .HasForeignKey("GameId") - .OnDelete(DeleteBehavior.Cascade); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.Navigation("CreatedBy"); - - b.Navigation("Game"); - - b.Navigation("UpdatedBy"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Script", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.Game", "Game") - .WithMany("Scripts") - .HasForeignKey("GameId") - .OnDelete(DeleteBehavior.Cascade); - - b.HasOne("LANCommander.Server.Data.Models.Redistributable", "Redistributable") - .WithMany("Scripts") - .HasForeignKey("RedistributableId") - .OnDelete(DeleteBehavior.Cascade); - - b.HasOne("LANCommander.Server.Data.Models.Server", "Server") - .WithMany("Scripts") - .HasForeignKey("ServerId") - .OnDelete(DeleteBehavior.Cascade); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.Navigation("CreatedBy"); - - b.Navigation("Game"); - - b.Navigation("Redistributable"); - - b.Navigation("Server"); - - b.Navigation("UpdatedBy"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Server", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.Game", "Game") - .WithMany("Servers") - .HasForeignKey("GameId") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.Navigation("CreatedBy"); - - b.Navigation("Game"); - - b.Navigation("UpdatedBy"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.ServerConsole", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.Server", "Server") - .WithMany() - .HasForeignKey("ServerId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("LANCommander.Server.Data.Models.Server", null) - .WithMany("ServerConsoles") - .HasForeignKey("ServerId1"); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.Navigation("CreatedBy"); - - b.Navigation("Server"); - - b.Navigation("UpdatedBy"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.ServerHttpPath", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.Server", "Server") - .WithMany() - .HasForeignKey("ServerId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("LANCommander.Server.Data.Models.Server", null) - .WithMany("HttpPaths") - .HasForeignKey("ServerId1"); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.Navigation("CreatedBy"); - - b.Navigation("Server"); - - b.Navigation("UpdatedBy"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.StorageLocation", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById"); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById"); - - b.Navigation("CreatedBy"); - - b.Navigation("UpdatedBy"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Tag", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.Navigation("CreatedBy"); - - b.Navigation("UpdatedBy"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.User", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.Navigation("CreatedBy"); - - b.Navigation("UpdatedBy"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.UserCustomField", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.User", "User") - .WithMany("CustomFields") - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("CreatedBy"); - - b.Navigation("UpdatedBy"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => - { - b.HasOne("LANCommander.Server.Data.Models.Role", null) - .WithMany() - .HasForeignKey("RoleId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", null) - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", null) - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b => - { - b.HasOne("LANCommander.Server.Data.Models.Role", null) - .WithMany() - .HasForeignKey("RoleId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("LANCommander.Server.Data.Models.User", null) - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", null) - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("PageGame", b => - { - b.HasOne("LANCommander.Server.Data.Models.Game", null) - .WithMany() - .HasForeignKey("GameId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("LANCommander.Server.Data.Models.Page", null) - .WithMany() - .HasForeignKey("PageId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("PageRedistributable", b => - { - b.HasOne("LANCommander.Server.Data.Models.Page", null) - .WithMany() - .HasForeignKey("PageId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("LANCommander.Server.Data.Models.Redistributable", null) - .WithMany() - .HasForeignKey("RedistributableId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("PageServer", b => - { - b.HasOne("LANCommander.Server.Data.Models.Page", null) - .WithMany() - .HasForeignKey("PageId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("LANCommander.Server.Data.Models.Server", null) - .WithMany() - .HasForeignKey("ServerId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("RoleCollection", b => - { - b.HasOne("LANCommander.Server.Data.Models.Collection", null) - .WithMany() - .HasForeignKey("CollectionId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("LANCommander.Server.Data.Models.Role", null) - .WithMany() - .HasForeignKey("RoleId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Category", b => - { - b.Navigation("Children"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Engine", b => - { - b.Navigation("Games"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Game", b => - { - b.Navigation("Actions"); - - b.Navigation("Archives"); - - b.Navigation("DependentGames"); - - b.Navigation("GameSaves"); - - b.Navigation("Issues"); - - b.Navigation("Keys"); - - b.Navigation("Media"); - - b.Navigation("MultiplayerModes"); - - b.Navigation("PlaySessions"); - - b.Navigation("SavePaths"); - - b.Navigation("Scripts"); - - b.Navigation("Servers"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Media", b => - { - b.Navigation("Parent"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Page", b => - { - b.Navigation("Children"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Redistributable", b => - { - b.Navigation("Archives"); - - b.Navigation("Scripts"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Server", b => - { - b.Navigation("Actions"); - - b.Navigation("HttpPaths"); - - b.Navigation("Scripts"); - - b.Navigation("ServerConsoles"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.StorageLocation", b => - { - b.Navigation("Archives"); - - b.Navigation("GameSaves"); - - b.Navigation("Media"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.User", b => - { - b.Navigation("CustomFields"); - - b.Navigation("GameSaves"); - - b.Navigation("Media"); - - b.Navigation("PlaySessions"); - }); -#pragma warning restore 612, 618 - } - } -} diff --git a/LANCommander.Server.Data.PostgreSQL/Migrations/20241031054754_AddLibraries.Designer.cs b/LANCommander.Server.Data.PostgreSQL/Migrations/20241031054754_AddLibraries.Designer.cs deleted file mode 100644 index 6048e3fa..00000000 --- a/LANCommander.Server.Data.PostgreSQL/Migrations/20241031054754_AddLibraries.Designer.cs +++ /dev/null @@ -1,2738 +0,0 @@ -// -using System; -using LANCommander.Server.Data; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.EntityFrameworkCore.Migrations; -using Microsoft.EntityFrameworkCore.Storage.ValueConversion; -using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; - -#nullable disable - -namespace LANCommander.Server.Data.PostgreSQL.Migrations -{ - [DbContext(typeof(DatabaseContext))] - [Migration("20241031054754_AddLibraries")] - partial class AddLibraries - { - /// - protected override void BuildTargetModel(ModelBuilder modelBuilder) - { -#pragma warning disable 612, 618 - modelBuilder - .HasAnnotation("ProductVersion", "8.0.10") - .HasAnnotation("Relational:MaxIdentifierLength", 63); - - NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder); - - modelBuilder.Entity("CategoryGame", b => - { - b.Property("CategoriesId") - .HasColumnType("uuid"); - - b.Property("GamesId") - .HasColumnType("uuid"); - - b.HasKey("CategoriesId", "GamesId"); - - b.HasIndex("GamesId"); - - b.ToTable("CategoryGame"); - }); - - modelBuilder.Entity("CollectionGame", b => - { - b.Property("CollectionId") - .HasColumnType("uuid"); - - b.Property("GameId") - .HasColumnType("uuid"); - - b.HasKey("CollectionId", "GameId"); - - b.HasIndex("GameId"); - - b.ToTable("CollectionGame"); - }); - - modelBuilder.Entity("GameDeveloper", b => - { - b.Property("DeveloperId") - .HasColumnType("uuid"); - - b.Property("GameId") - .HasColumnType("uuid"); - - b.HasKey("DeveloperId", "GameId"); - - b.HasIndex("GameId"); - - b.ToTable("GameDeveloper"); - }); - - modelBuilder.Entity("GameGenre", b => - { - b.Property("GamesId") - .HasColumnType("uuid"); - - b.Property("GenresId") - .HasColumnType("uuid"); - - b.HasKey("GamesId", "GenresId"); - - b.HasIndex("GenresId"); - - b.ToTable("GameGenre"); - }); - - modelBuilder.Entity("GamePlatform", b => - { - b.Property("GamesId") - .HasColumnType("uuid"); - - b.Property("PlatformsId") - .HasColumnType("uuid"); - - b.HasKey("GamesId", "PlatformsId"); - - b.HasIndex("PlatformsId"); - - b.ToTable("GamePlatform"); - }); - - modelBuilder.Entity("GamePublisher", b => - { - b.Property("GameId") - .HasColumnType("uuid"); - - b.Property("PublisherId") - .HasColumnType("uuid"); - - b.HasKey("GameId", "PublisherId"); - - b.HasIndex("PublisherId"); - - b.ToTable("GamePublisher"); - }); - - modelBuilder.Entity("GameRedistributable", b => - { - b.Property("GameId") - .HasColumnType("uuid"); - - b.Property("RedistributableId") - .HasColumnType("uuid"); - - b.HasKey("GameId", "RedistributableId"); - - b.HasIndex("RedistributableId"); - - b.ToTable("GameRedistributable"); - }); - - modelBuilder.Entity("GameTag", b => - { - b.Property("GamesId") - .HasColumnType("uuid"); - - b.Property("TagsId") - .HasColumnType("uuid"); - - b.HasKey("GamesId", "TagsId"); - - b.HasIndex("TagsId"); - - b.ToTable("GameTag"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Action", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uuid"); - - b.Property("Arguments") - .HasColumnType("text"); - - b.Property("CreatedById") - .HasColumnType("uuid"); - - b.Property("CreatedOn") - .HasColumnType("timestamp with time zone"); - - b.Property("GameId") - .HasColumnType("uuid"); - - b.Property("Name") - .IsRequired() - .HasColumnType("text"); - - b.Property("Path") - .HasColumnType("text"); - - b.Property("PrimaryAction") - .HasColumnType("boolean"); - - b.Property("ServerId") - .HasColumnType("uuid"); - - b.Property("SortOrder") - .HasColumnType("integer"); - - b.Property("UpdatedById") - .HasColumnType("uuid"); - - b.Property("UpdatedOn") - .HasColumnType("timestamp with time zone"); - - b.Property("WorkingDirectory") - .HasColumnType("text"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("GameId"); - - b.HasIndex("ServerId"); - - b.HasIndex("UpdatedById"); - - b.ToTable("Actions"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Archive", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uuid"); - - b.Property("Changelog") - .HasColumnType("text"); - - b.Property("CompressedSize") - .HasColumnType("bigint"); - - b.Property("CreatedById") - .HasColumnType("uuid"); - - b.Property("CreatedOn") - .HasColumnType("timestamp with time zone"); - - b.Property("GameId") - .HasColumnType("uuid"); - - b.Property("LastVersionId") - .HasColumnType("uuid"); - - b.Property("ObjectKey") - .IsRequired() - .HasColumnType("text"); - - b.Property("RedistributableId") - .HasColumnType("uuid"); - - b.Property("StorageLocationId") - .HasColumnType("uuid"); - - b.Property("UncompressedSize") - .HasColumnType("bigint"); - - b.Property("UpdatedById") - .HasColumnType("uuid"); - - b.Property("UpdatedOn") - .HasColumnType("timestamp with time zone"); - - b.Property("Version") - .IsRequired() - .HasColumnType("text"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("GameId"); - - b.HasIndex("LastVersionId"); - - b.HasIndex("RedistributableId"); - - b.HasIndex("StorageLocationId"); - - b.HasIndex("UpdatedById"); - - b.ToTable("Archive"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Category", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uuid"); - - b.Property("CreatedById") - .HasColumnType("uuid"); - - b.Property("CreatedOn") - .HasColumnType("timestamp with time zone"); - - b.Property("Name") - .IsRequired() - .HasColumnType("text"); - - b.Property("ParentId") - .HasColumnType("uuid"); - - b.Property("UpdatedById") - .HasColumnType("uuid"); - - b.Property("UpdatedOn") - .HasColumnType("timestamp with time zone"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("ParentId"); - - b.HasIndex("UpdatedById"); - - b.ToTable("Categories"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Collection", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uuid"); - - b.Property("CreatedById") - .HasColumnType("uuid"); - - b.Property("CreatedOn") - .HasColumnType("timestamp with time zone"); - - b.Property("Name") - .IsRequired() - .HasColumnType("text"); - - b.Property("UpdatedById") - .HasColumnType("uuid"); - - b.Property("UpdatedOn") - .HasColumnType("timestamp with time zone"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("UpdatedById"); - - b.ToTable("Collections"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Company", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uuid"); - - b.Property("CreatedById") - .HasColumnType("uuid"); - - b.Property("CreatedOn") - .HasColumnType("timestamp with time zone"); - - b.Property("Name") - .IsRequired() - .HasColumnType("text"); - - b.Property("UpdatedById") - .HasColumnType("uuid"); - - b.Property("UpdatedOn") - .HasColumnType("timestamp with time zone"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("UpdatedById"); - - b.ToTable("Companies"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Engine", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uuid"); - - b.Property("CreatedById") - .HasColumnType("uuid"); - - b.Property("CreatedOn") - .HasColumnType("timestamp with time zone"); - - b.Property("Name") - .IsRequired() - .HasColumnType("text"); - - b.Property("UpdatedById") - .HasColumnType("uuid"); - - b.Property("UpdatedOn") - .HasColumnType("timestamp with time zone"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("UpdatedById"); - - b.ToTable("Engines"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Game", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uuid"); - - b.Property("BaseGameId") - .HasColumnType("uuid"); - - b.Property("CreatedById") - .HasColumnType("uuid"); - - b.Property("CreatedOn") - .HasColumnType("timestamp with time zone"); - - b.Property("Description") - .HasColumnType("text"); - - b.Property("DirectoryName") - .HasColumnType("text"); - - b.Property("EngineId") - .HasColumnType("uuid"); - - b.Property("IGDBId") - .HasColumnType("bigint"); - - b.Property("KeyAllocationMethod") - .HasColumnType("integer"); - - b.Property("Notes") - .HasColumnType("text"); - - b.Property("ReleasedOn") - .HasColumnType("timestamp with time zone"); - - b.Property("Singleplayer") - .HasColumnType("boolean"); - - b.Property("SortTitle") - .HasColumnType("text"); - - b.Property("Title") - .IsRequired() - .HasColumnType("text"); - - b.Property("Type") - .HasColumnType("integer"); - - b.Property("UpdatedById") - .HasColumnType("uuid"); - - b.Property("UpdatedOn") - .HasColumnType("timestamp with time zone"); - - b.Property("ValidKeyRegex") - .HasColumnType("text"); - - b.HasKey("Id"); - - b.HasIndex("BaseGameId"); - - b.HasIndex("CreatedById"); - - b.HasIndex("EngineId"); - - b.HasIndex("UpdatedById"); - - b.ToTable("Games"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.GameSave", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uuid"); - - b.Property("CreatedById") - .HasColumnType("uuid"); - - b.Property("CreatedOn") - .HasColumnType("timestamp with time zone"); - - b.Property("GameId") - .HasColumnType("uuid"); - - b.Property("Size") - .HasColumnType("bigint"); - - b.Property("StorageLocationId") - .HasColumnType("uuid"); - - b.Property("UpdatedById") - .HasColumnType("uuid"); - - b.Property("UpdatedOn") - .HasColumnType("timestamp with time zone"); - - b.Property("UserId") - .HasColumnType("uuid"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("GameId"); - - b.HasIndex("StorageLocationId"); - - b.HasIndex("UpdatedById"); - - b.HasIndex("UserId"); - - b.ToTable("GameSaves"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Genre", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uuid"); - - b.Property("CreatedById") - .HasColumnType("uuid"); - - b.Property("CreatedOn") - .HasColumnType("timestamp with time zone"); - - b.Property("Name") - .IsRequired() - .HasColumnType("text"); - - b.Property("UpdatedById") - .HasColumnType("uuid"); - - b.Property("UpdatedOn") - .HasColumnType("timestamp with time zone"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("UpdatedById"); - - b.ToTable("Genres"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Issue", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uuid"); - - b.Property("CreatedById") - .HasColumnType("uuid"); - - b.Property("CreatedOn") - .HasColumnType("timestamp with time zone"); - - b.Property("Description") - .IsRequired() - .HasColumnType("text"); - - b.Property("GameId") - .HasColumnType("uuid"); - - b.Property("ResolvedById") - .HasColumnType("uuid"); - - b.Property("ResolvedOn") - .HasColumnType("timestamp with time zone"); - - b.Property("UpdatedById") - .HasColumnType("uuid"); - - b.Property("UpdatedOn") - .HasColumnType("timestamp with time zone"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("GameId"); - - b.HasIndex("ResolvedById"); - - b.HasIndex("UpdatedById"); - - b.ToTable("Issues"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Key", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uuid"); - - b.Property("AllocationMethod") - .HasColumnType("integer"); - - b.Property("ClaimedByComputerName") - .HasMaxLength(255) - .HasColumnType("character varying(255)"); - - b.Property("ClaimedByIpv4Address") - .HasMaxLength(15) - .HasColumnType("character varying(15)"); - - b.Property("ClaimedByMacAddress") - .HasMaxLength(17) - .HasColumnType("character varying(17)"); - - b.Property("ClaimedByUserId") - .HasColumnType("uuid"); - - b.Property("ClaimedOn") - .HasColumnType("timestamp with time zone"); - - b.Property("CreatedById") - .HasColumnType("uuid"); - - b.Property("CreatedOn") - .HasColumnType("timestamp with time zone"); - - b.Property("GameId") - .HasColumnType("uuid"); - - b.Property("UpdatedById") - .HasColumnType("uuid"); - - b.Property("UpdatedOn") - .HasColumnType("timestamp with time zone"); - - b.Property("Value") - .IsRequired() - .HasMaxLength(255) - .HasColumnType("character varying(255)"); - - b.HasKey("Id"); - - b.HasIndex("ClaimedByUserId"); - - b.HasIndex("CreatedById"); - - b.HasIndex("GameId"); - - b.HasIndex("UpdatedById"); - - b.ToTable("Keys"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Library", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uuid"); - - b.Property("CreatedById") - .HasColumnType("uuid"); - - b.Property("CreatedOn") - .HasColumnType("timestamp with time zone"); - - b.Property("UpdatedById") - .HasColumnType("uuid"); - - b.Property("UpdatedOn") - .HasColumnType("timestamp with time zone"); - - b.Property("UserId") - .HasColumnType("uuid"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("UpdatedById"); - - b.HasIndex("UserId") - .IsUnique(); - - b.ToTable("Libraries"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Media", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uuid"); - - b.Property("Crc32") - .IsRequired() - .HasMaxLength(8) - .HasColumnType("character varying(8)"); - - b.Property("CreatedById") - .HasColumnType("uuid"); - - b.Property("CreatedOn") - .HasColumnType("timestamp with time zone"); - - b.Property("FileId") - .HasColumnType("uuid"); - - b.Property("GameId") - .HasColumnType("uuid"); - - b.Property("MimeType") - .HasMaxLength(255) - .HasColumnType("character varying(255)"); - - b.Property("Name") - .HasMaxLength(64) - .HasColumnType("character varying(64)"); - - b.Property("SourceUrl") - .HasMaxLength(2048) - .HasColumnType("character varying(2048)"); - - b.Property("StorageLocationId") - .HasColumnType("uuid"); - - b.Property("ThumbnailId") - .HasColumnType("uuid"); - - b.Property("Type") - .HasColumnType("integer"); - - b.Property("UpdatedById") - .HasColumnType("uuid"); - - b.Property("UpdatedOn") - .HasColumnType("timestamp with time zone"); - - b.Property("UserId") - .HasColumnType("uuid"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("GameId"); - - b.HasIndex("StorageLocationId"); - - b.HasIndex("ThumbnailId") - .IsUnique(); - - b.HasIndex("UpdatedById"); - - b.HasIndex("UserId"); - - b.ToTable("Media"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.MultiplayerMode", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uuid"); - - b.Property("CreatedById") - .HasColumnType("uuid"); - - b.Property("CreatedOn") - .HasColumnType("timestamp with time zone"); - - b.Property("Description") - .HasColumnType("text"); - - b.Property("GameId") - .IsRequired() - .HasColumnType("uuid"); - - b.Property("MaxPlayers") - .HasColumnType("integer"); - - b.Property("MinPlayers") - .HasColumnType("integer"); - - b.Property("NetworkProtocol") - .HasColumnType("integer"); - - b.Property("Spectators") - .HasColumnType("integer"); - - b.Property("Type") - .HasColumnType("integer"); - - b.Property("UpdatedById") - .HasColumnType("uuid"); - - b.Property("UpdatedOn") - .HasColumnType("timestamp with time zone"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("GameId"); - - b.HasIndex("UpdatedById"); - - b.ToTable("MultiplayerModes"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Page", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uuid"); - - b.Property("Contents") - .IsRequired() - .HasColumnType("text"); - - b.Property("CreatedById") - .HasColumnType("uuid"); - - b.Property("CreatedOn") - .HasColumnType("timestamp with time zone"); - - b.Property("ParentId") - .HasColumnType("uuid"); - - b.Property("Route") - .IsRequired() - .HasMaxLength(2048) - .HasColumnType("character varying(2048)"); - - b.Property("Slug") - .IsRequired() - .HasMaxLength(256) - .HasColumnType("character varying(256)"); - - b.Property("SortOrder") - .HasColumnType("integer"); - - b.Property("Title") - .IsRequired() - .HasMaxLength(256) - .HasColumnType("character varying(256)"); - - b.Property("UpdatedById") - .HasColumnType("uuid"); - - b.Property("UpdatedOn") - .HasColumnType("timestamp with time zone"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("ParentId"); - - b.HasIndex("UpdatedById"); - - b.ToTable("Pages"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Platform", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uuid"); - - b.Property("CreatedById") - .HasColumnType("uuid"); - - b.Property("CreatedOn") - .HasColumnType("timestamp with time zone"); - - b.Property("Name") - .IsRequired() - .HasColumnType("text"); - - b.Property("UpdatedById") - .HasColumnType("uuid"); - - b.Property("UpdatedOn") - .HasColumnType("timestamp with time zone"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("UpdatedById"); - - b.ToTable("Platforms"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.PlaySession", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uuid"); - - b.Property("CreatedById") - .HasColumnType("uuid"); - - b.Property("CreatedOn") - .HasColumnType("timestamp with time zone"); - - b.Property("End") - .HasColumnType("timestamp with time zone"); - - b.Property("GameId") - .HasColumnType("uuid"); - - b.Property("Start") - .HasColumnType("timestamp with time zone"); - - b.Property("UpdatedById") - .HasColumnType("uuid"); - - b.Property("UpdatedOn") - .HasColumnType("timestamp with time zone"); - - b.Property("UserId") - .HasColumnType("uuid"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("GameId"); - - b.HasIndex("UpdatedById"); - - b.HasIndex("UserId"); - - b.ToTable("PlaySessions"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Redistributable", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uuid"); - - b.Property("CreatedById") - .HasColumnType("uuid"); - - b.Property("CreatedOn") - .HasColumnType("timestamp with time zone"); - - b.Property("Description") - .HasColumnType("text"); - - b.Property("Name") - .IsRequired() - .HasColumnType("text"); - - b.Property("Notes") - .HasColumnType("text"); - - b.Property("UpdatedById") - .HasColumnType("uuid"); - - b.Property("UpdatedOn") - .HasColumnType("timestamp with time zone"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("UpdatedById"); - - b.ToTable("Redistributables"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Role", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uuid"); - - b.Property("ConcurrencyStamp") - .IsConcurrencyToken() - .HasColumnType("text"); - - b.Property("CreatedById") - .HasColumnType("uuid"); - - b.Property("CreatedOn") - .HasColumnType("timestamp with time zone"); - - b.Property("Name") - .HasMaxLength(256) - .HasColumnType("character varying(256)"); - - b.Property("NormalizedName") - .HasMaxLength(256) - .HasColumnType("character varying(256)"); - - b.Property("UpdatedById") - .HasColumnType("uuid"); - - b.Property("UpdatedOn") - .HasColumnType("timestamp with time zone"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("NormalizedName") - .IsUnique() - .HasDatabaseName("RoleNameIndex"); - - b.HasIndex("UpdatedById"); - - b.ToTable("Roles", (string)null); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.SavePath", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uuid"); - - b.Property("CreatedById") - .HasColumnType("uuid"); - - b.Property("CreatedOn") - .HasColumnType("timestamp with time zone"); - - b.Property("GameId") - .HasColumnType("uuid"); - - b.Property("IsRegex") - .HasColumnType("boolean"); - - b.Property("Path") - .IsRequired() - .HasColumnType("text"); - - b.Property("Type") - .HasColumnType("integer"); - - b.Property("UpdatedById") - .HasColumnType("uuid"); - - b.Property("UpdatedOn") - .HasColumnType("timestamp with time zone"); - - b.Property("WorkingDirectory") - .HasColumnType("text"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("GameId"); - - b.HasIndex("UpdatedById"); - - b.ToTable("SavePaths"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Script", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uuid"); - - b.Property("Contents") - .IsRequired() - .HasColumnType("text"); - - b.Property("CreatedById") - .HasColumnType("uuid"); - - b.Property("CreatedOn") - .HasColumnType("timestamp with time zone"); - - b.Property("Description") - .HasColumnType("text"); - - b.Property("GameId") - .HasColumnType("uuid"); - - b.Property("Name") - .IsRequired() - .HasColumnType("text"); - - b.Property("RedistributableId") - .HasColumnType("uuid"); - - b.Property("RequiresAdmin") - .HasColumnType("boolean"); - - b.Property("ServerId") - .HasColumnType("uuid"); - - b.Property("Type") - .HasColumnType("integer"); - - b.Property("UpdatedById") - .HasColumnType("uuid"); - - b.Property("UpdatedOn") - .HasColumnType("timestamp with time zone"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("GameId"); - - b.HasIndex("RedistributableId"); - - b.HasIndex("ServerId"); - - b.HasIndex("UpdatedById"); - - b.ToTable("Scripts"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Server", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uuid"); - - b.Property("Arguments") - .IsRequired() - .HasColumnType("text"); - - b.Property("Autostart") - .HasColumnType("boolean"); - - b.Property("AutostartDelay") - .HasColumnType("integer"); - - b.Property("AutostartMethod") - .HasColumnType("integer"); - - b.Property("CreatedById") - .HasColumnType("uuid"); - - b.Property("CreatedOn") - .HasColumnType("timestamp with time zone"); - - b.Property("GameId") - .HasColumnType("uuid"); - - b.Property("Host") - .IsRequired() - .HasColumnType("text"); - - b.Property("Name") - .IsRequired() - .HasColumnType("text"); - - b.Property("OnStartScriptPath") - .IsRequired() - .HasColumnType("text"); - - b.Property("OnStopScriptPath") - .IsRequired() - .HasColumnType("text"); - - b.Property("Path") - .IsRequired() - .HasColumnType("text"); - - b.Property("Port") - .HasColumnType("integer"); - - b.Property("ProcessTerminationMethod") - .HasColumnType("integer"); - - b.Property("UpdatedById") - .HasColumnType("uuid"); - - b.Property("UpdatedOn") - .HasColumnType("timestamp with time zone"); - - b.Property("UseShellExecute") - .HasColumnType("boolean"); - - b.Property("WorkingDirectory") - .IsRequired() - .HasColumnType("text"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("GameId"); - - b.HasIndex("UpdatedById"); - - b.ToTable("Servers"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.ServerConsole", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uuid"); - - b.Property("CreatedById") - .HasColumnType("uuid"); - - b.Property("CreatedOn") - .HasColumnType("timestamp with time zone"); - - b.Property("Host") - .IsRequired() - .HasColumnType("text"); - - b.Property("Name") - .IsRequired() - .HasColumnType("text"); - - b.Property("Password") - .IsRequired() - .HasColumnType("text"); - - b.Property("Path") - .IsRequired() - .HasColumnType("text"); - - b.Property("Port") - .HasColumnType("integer"); - - b.Property("ServerId") - .IsRequired() - .HasColumnType("uuid"); - - b.Property("ServerId1") - .HasColumnType("uuid"); - - b.Property("Type") - .HasColumnType("integer"); - - b.Property("UpdatedById") - .HasColumnType("uuid"); - - b.Property("UpdatedOn") - .HasColumnType("timestamp with time zone"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("ServerId"); - - b.HasIndex("ServerId1"); - - b.HasIndex("UpdatedById"); - - b.ToTable("ServerConsoles"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.ServerHttpPath", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uuid"); - - b.Property("CreatedById") - .HasColumnType("uuid"); - - b.Property("CreatedOn") - .HasColumnType("timestamp with time zone"); - - b.Property("LocalPath") - .IsRequired() - .HasColumnType("text"); - - b.Property("Path") - .IsRequired() - .HasColumnType("text"); - - b.Property("ServerId") - .HasColumnType("uuid"); - - b.Property("ServerId1") - .HasColumnType("uuid"); - - b.Property("UpdatedById") - .HasColumnType("uuid"); - - b.Property("UpdatedOn") - .HasColumnType("timestamp with time zone"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("ServerId"); - - b.HasIndex("ServerId1"); - - b.HasIndex("UpdatedById"); - - b.ToTable("ServerHttpPath"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.StorageLocation", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uuid"); - - b.Property("CreatedById") - .HasColumnType("uuid"); - - b.Property("CreatedOn") - .HasColumnType("timestamp with time zone"); - - b.Property("Default") - .HasColumnType("boolean"); - - b.Property("Path") - .IsRequired() - .HasColumnType("text"); - - b.Property("Type") - .HasColumnType("integer"); - - b.Property("UpdatedById") - .HasColumnType("uuid"); - - b.Property("UpdatedOn") - .HasColumnType("timestamp with time zone"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("UpdatedById"); - - b.ToTable("StorageLocations"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Tag", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uuid"); - - b.Property("CreatedById") - .HasColumnType("uuid"); - - b.Property("CreatedOn") - .HasColumnType("timestamp with time zone"); - - b.Property("Name") - .IsRequired() - .HasColumnType("text"); - - b.Property("UpdatedById") - .HasColumnType("uuid"); - - b.Property("UpdatedOn") - .HasColumnType("timestamp with time zone"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("UpdatedById"); - - b.ToTable("Tags"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.User", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uuid"); - - b.Property("AccessFailedCount") - .HasColumnType("integer"); - - b.Property("Alias") - .HasColumnType("text"); - - b.Property("Approved") - .HasColumnType("boolean"); - - b.Property("ApprovedOn") - .HasColumnType("timestamp with time zone"); - - b.Property("ConcurrencyStamp") - .IsConcurrencyToken() - .HasColumnType("text"); - - b.Property("CreatedById") - .HasColumnType("uuid"); - - b.Property("CreatedOn") - .HasColumnType("timestamp with time zone"); - - b.Property("Email") - .HasMaxLength(256) - .HasColumnType("character varying(256)"); - - b.Property("EmailConfirmed") - .HasColumnType("boolean"); - - b.Property("LockoutEnabled") - .HasColumnType("boolean"); - - b.Property("LockoutEnd") - .HasColumnType("timestamp with time zone"); - - b.Property("NormalizedEmail") - .HasMaxLength(256) - .HasColumnType("character varying(256)"); - - b.Property("NormalizedUserName") - .HasMaxLength(256) - .HasColumnType("character varying(256)"); - - b.Property("PasswordHash") - .HasColumnType("text"); - - b.Property("PhoneNumber") - .HasColumnType("text"); - - b.Property("PhoneNumberConfirmed") - .HasColumnType("boolean"); - - b.Property("RefreshToken") - .HasColumnType("text"); - - b.Property("RefreshTokenExpiration") - .HasColumnType("timestamp with time zone"); - - b.Property("SecurityStamp") - .HasColumnType("text"); - - b.Property("TwoFactorEnabled") - .HasColumnType("boolean"); - - b.Property("UpdatedById") - .HasColumnType("uuid"); - - b.Property("UpdatedOn") - .HasColumnType("timestamp with time zone"); - - b.Property("UserName") - .HasMaxLength(256) - .HasColumnType("character varying(256)"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("NormalizedEmail") - .HasDatabaseName("EmailIndex"); - - b.HasIndex("NormalizedUserName") - .IsUnique() - .HasDatabaseName("UserNameIndex"); - - b.HasIndex("UpdatedById"); - - b.ToTable("Users", (string)null); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.UserCustomField", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uuid"); - - b.Property("CreatedById") - .HasColumnType("uuid"); - - b.Property("CreatedOn") - .HasColumnType("timestamp with time zone"); - - b.Property("Name") - .IsRequired() - .HasMaxLength(64) - .HasColumnType("character varying(64)"); - - b.Property("UpdatedById") - .HasColumnType("uuid"); - - b.Property("UpdatedOn") - .HasColumnType("timestamp with time zone"); - - b.Property("UserId") - .IsRequired() - .HasColumnType("uuid"); - - b.Property("Value") - .IsRequired() - .HasMaxLength(1024) - .HasColumnType("character varying(1024)"); - - b.HasKey("Id"); - - b.HasIndex("CreatedById"); - - b.HasIndex("UpdatedById"); - - b.HasIndex("UserId"); - - b.ToTable("UserCustomField"); - }); - - modelBuilder.Entity("LibraryGame", b => - { - b.Property("GameId") - .HasColumnType("uuid"); - - b.Property("LibraryId") - .HasColumnType("uuid"); - - b.HasKey("GameId", "LibraryId"); - - b.HasIndex("LibraryId"); - - b.ToTable("LibraryGame"); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("ClaimType") - .HasColumnType("text"); - - b.Property("ClaimValue") - .HasColumnType("text"); - - b.Property("RoleId") - .HasColumnType("uuid"); - - b.HasKey("Id"); - - b.HasIndex("RoleId"); - - b.ToTable("RoleClaims", (string)null); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("ClaimType") - .HasColumnType("text"); - - b.Property("ClaimValue") - .HasColumnType("text"); - - b.Property("UserId") - .HasColumnType("uuid"); - - b.HasKey("Id"); - - b.HasIndex("UserId"); - - b.ToTable("UserClaims", (string)null); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => - { - b.Property("LoginProvider") - .HasColumnType("text"); - - b.Property("ProviderKey") - .HasColumnType("text"); - - b.Property("ProviderDisplayName") - .HasColumnType("text"); - - b.Property("UserId") - .HasColumnType("uuid"); - - b.HasKey("LoginProvider", "ProviderKey"); - - b.HasIndex("UserId"); - - b.ToTable("UserLogins", (string)null); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b => - { - b.Property("UserId") - .HasColumnType("uuid"); - - b.Property("RoleId") - .HasColumnType("uuid"); - - b.HasKey("UserId", "RoleId"); - - b.HasIndex("RoleId"); - - b.ToTable("UserRoles", (string)null); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => - { - b.Property("UserId") - .HasColumnType("uuid"); - - b.Property("LoginProvider") - .HasColumnType("text"); - - b.Property("Name") - .HasColumnType("text"); - - b.Property("Value") - .HasColumnType("text"); - - b.HasKey("UserId", "LoginProvider", "Name"); - - b.ToTable("UserTokens", (string)null); - }); - - modelBuilder.Entity("PageGame", b => - { - b.Property("GameId") - .HasColumnType("uuid"); - - b.Property("PageId") - .HasColumnType("uuid"); - - b.HasKey("GameId", "PageId"); - - b.HasIndex("PageId"); - - b.ToTable("PageGame"); - }); - - modelBuilder.Entity("PageRedistributable", b => - { - b.Property("PageId") - .HasColumnType("uuid"); - - b.Property("RedistributableId") - .HasColumnType("uuid"); - - b.HasKey("PageId", "RedistributableId"); - - b.HasIndex("RedistributableId"); - - b.ToTable("PageRedistributable"); - }); - - modelBuilder.Entity("PageServer", b => - { - b.Property("PageId") - .HasColumnType("uuid"); - - b.Property("ServerId") - .HasColumnType("uuid"); - - b.HasKey("PageId", "ServerId"); - - b.HasIndex("ServerId"); - - b.ToTable("PageServer"); - }); - - modelBuilder.Entity("RoleCollection", b => - { - b.Property("CollectionId") - .HasColumnType("uuid"); - - b.Property("RoleId") - .HasColumnType("uuid"); - - b.HasKey("CollectionId", "RoleId"); - - b.HasIndex("RoleId"); - - b.ToTable("RoleCollection"); - }); - - modelBuilder.Entity("CategoryGame", b => - { - b.HasOne("LANCommander.Server.Data.Models.Category", null) - .WithMany() - .HasForeignKey("CategoriesId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("LANCommander.Server.Data.Models.Game", null) - .WithMany() - .HasForeignKey("GamesId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("CollectionGame", b => - { - b.HasOne("LANCommander.Server.Data.Models.Collection", null) - .WithMany() - .HasForeignKey("CollectionId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("LANCommander.Server.Data.Models.Game", null) - .WithMany() - .HasForeignKey("GameId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("GameDeveloper", b => - { - b.HasOne("LANCommander.Server.Data.Models.Company", null) - .WithMany() - .HasForeignKey("DeveloperId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("LANCommander.Server.Data.Models.Game", null) - .WithMany() - .HasForeignKey("GameId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("GameGenre", b => - { - b.HasOne("LANCommander.Server.Data.Models.Game", null) - .WithMany() - .HasForeignKey("GamesId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("LANCommander.Server.Data.Models.Genre", null) - .WithMany() - .HasForeignKey("GenresId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("GamePlatform", b => - { - b.HasOne("LANCommander.Server.Data.Models.Game", null) - .WithMany() - .HasForeignKey("GamesId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("LANCommander.Server.Data.Models.Platform", null) - .WithMany() - .HasForeignKey("PlatformsId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("GamePublisher", b => - { - b.HasOne("LANCommander.Server.Data.Models.Game", null) - .WithMany() - .HasForeignKey("GameId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("LANCommander.Server.Data.Models.Company", null) - .WithMany() - .HasForeignKey("PublisherId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("GameRedistributable", b => - { - b.HasOne("LANCommander.Server.Data.Models.Game", null) - .WithMany() - .HasForeignKey("GameId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("LANCommander.Server.Data.Models.Redistributable", null) - .WithMany() - .HasForeignKey("RedistributableId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("GameTag", b => - { - b.HasOne("LANCommander.Server.Data.Models.Game", null) - .WithMany() - .HasForeignKey("GamesId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("LANCommander.Server.Data.Models.Tag", null) - .WithMany() - .HasForeignKey("TagsId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Action", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.Game", "Game") - .WithMany("Actions") - .HasForeignKey("GameId") - .OnDelete(DeleteBehavior.Cascade); - - b.HasOne("LANCommander.Server.Data.Models.Server", "Server") - .WithMany("Actions") - .HasForeignKey("ServerId") - .OnDelete(DeleteBehavior.Cascade); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.Navigation("CreatedBy"); - - b.Navigation("Game"); - - b.Navigation("Server"); - - b.Navigation("UpdatedBy"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Archive", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.Game", "Game") - .WithMany("Archives") - .HasForeignKey("GameId") - .OnDelete(DeleteBehavior.Cascade); - - b.HasOne("LANCommander.Server.Data.Models.Archive", "LastVersion") - .WithMany() - .HasForeignKey("LastVersionId"); - - b.HasOne("LANCommander.Server.Data.Models.Redistributable", "Redistributable") - .WithMany("Archives") - .HasForeignKey("RedistributableId") - .OnDelete(DeleteBehavior.Cascade); - - b.HasOne("LANCommander.Server.Data.Models.StorageLocation", "StorageLocation") - .WithMany("Archives") - .HasForeignKey("StorageLocationId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.Navigation("CreatedBy"); - - b.Navigation("Game"); - - b.Navigation("LastVersion"); - - b.Navigation("Redistributable"); - - b.Navigation("StorageLocation"); - - b.Navigation("UpdatedBy"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Category", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.Category", "Parent") - .WithMany("Children") - .HasForeignKey("ParentId"); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.Navigation("CreatedBy"); - - b.Navigation("Parent"); - - b.Navigation("UpdatedBy"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Collection", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.Navigation("CreatedBy"); - - b.Navigation("UpdatedBy"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Company", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.Navigation("CreatedBy"); - - b.Navigation("UpdatedBy"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Engine", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById"); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById"); - - b.Navigation("CreatedBy"); - - b.Navigation("UpdatedBy"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Game", b => - { - b.HasOne("LANCommander.Server.Data.Models.Game", "BaseGame") - .WithMany("DependentGames") - .HasForeignKey("BaseGameId") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.Engine", "Engine") - .WithMany("Games") - .HasForeignKey("EngineId") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.Navigation("BaseGame"); - - b.Navigation("CreatedBy"); - - b.Navigation("Engine"); - - b.Navigation("UpdatedBy"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.GameSave", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.Game", "Game") - .WithMany("GameSaves") - .HasForeignKey("GameId") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.StorageLocation", "StorageLocation") - .WithMany("GameSaves") - .HasForeignKey("StorageLocationId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.User", "User") - .WithMany("GameSaves") - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("CreatedBy"); - - b.Navigation("Game"); - - b.Navigation("StorageLocation"); - - b.Navigation("UpdatedBy"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Genre", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.Navigation("CreatedBy"); - - b.Navigation("UpdatedBy"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Issue", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.Game", "Game") - .WithMany("Issues") - .HasForeignKey("GameId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("LANCommander.Server.Data.Models.User", "ResolvedBy") - .WithMany() - .HasForeignKey("ResolvedById"); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.Navigation("CreatedBy"); - - b.Navigation("Game"); - - b.Navigation("ResolvedBy"); - - b.Navigation("UpdatedBy"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Key", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "ClaimedByUser") - .WithMany() - .HasForeignKey("ClaimedByUserId"); - - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.Game", "Game") - .WithMany("Keys") - .HasForeignKey("GameId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.Navigation("ClaimedByUser"); - - b.Navigation("CreatedBy"); - - b.Navigation("Game"); - - b.Navigation("UpdatedBy"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Library", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.User", "User") - .WithOne("Library") - .HasForeignKey("LANCommander.Server.Data.Models.Library", "UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("CreatedBy"); - - b.Navigation("UpdatedBy"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Media", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.Game", "Game") - .WithMany("Media") - .HasForeignKey("GameId") - .OnDelete(DeleteBehavior.Cascade); - - b.HasOne("LANCommander.Server.Data.Models.StorageLocation", "StorageLocation") - .WithMany("Media") - .HasForeignKey("StorageLocationId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("LANCommander.Server.Data.Models.Media", "Thumbnail") - .WithOne("Parent") - .HasForeignKey("LANCommander.Server.Data.Models.Media", "ThumbnailId") - .OnDelete(DeleteBehavior.Cascade); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.User", "User") - .WithMany("Media") - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade); - - b.Navigation("CreatedBy"); - - b.Navigation("Game"); - - b.Navigation("StorageLocation"); - - b.Navigation("Thumbnail"); - - b.Navigation("UpdatedBy"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.MultiplayerMode", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.Game", "Game") - .WithMany("MultiplayerModes") - .HasForeignKey("GameId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.Navigation("CreatedBy"); - - b.Navigation("Game"); - - b.Navigation("UpdatedBy"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Page", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.Page", "Parent") - .WithMany("Children") - .HasForeignKey("ParentId") - .OnDelete(DeleteBehavior.Cascade); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.Navigation("CreatedBy"); - - b.Navigation("Parent"); - - b.Navigation("UpdatedBy"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Platform", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.Navigation("CreatedBy"); - - b.Navigation("UpdatedBy"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.PlaySession", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.Game", "Game") - .WithMany("PlaySessions") - .HasForeignKey("GameId") - .OnDelete(DeleteBehavior.Cascade); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.User", "User") - .WithMany("PlaySessions") - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("CreatedBy"); - - b.Navigation("Game"); - - b.Navigation("UpdatedBy"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Redistributable", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.Navigation("CreatedBy"); - - b.Navigation("UpdatedBy"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Role", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.Navigation("CreatedBy"); - - b.Navigation("UpdatedBy"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.SavePath", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.Game", "Game") - .WithMany("SavePaths") - .HasForeignKey("GameId") - .OnDelete(DeleteBehavior.Cascade); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.Navigation("CreatedBy"); - - b.Navigation("Game"); - - b.Navigation("UpdatedBy"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Script", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.Game", "Game") - .WithMany("Scripts") - .HasForeignKey("GameId") - .OnDelete(DeleteBehavior.Cascade); - - b.HasOne("LANCommander.Server.Data.Models.Redistributable", "Redistributable") - .WithMany("Scripts") - .HasForeignKey("RedistributableId") - .OnDelete(DeleteBehavior.Cascade); - - b.HasOne("LANCommander.Server.Data.Models.Server", "Server") - .WithMany("Scripts") - .HasForeignKey("ServerId") - .OnDelete(DeleteBehavior.Cascade); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.Navigation("CreatedBy"); - - b.Navigation("Game"); - - b.Navigation("Redistributable"); - - b.Navigation("Server"); - - b.Navigation("UpdatedBy"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Server", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.Game", "Game") - .WithMany("Servers") - .HasForeignKey("GameId") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.Navigation("CreatedBy"); - - b.Navigation("Game"); - - b.Navigation("UpdatedBy"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.ServerConsole", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.Server", "Server") - .WithMany() - .HasForeignKey("ServerId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("LANCommander.Server.Data.Models.Server", null) - .WithMany("ServerConsoles") - .HasForeignKey("ServerId1"); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.Navigation("CreatedBy"); - - b.Navigation("Server"); - - b.Navigation("UpdatedBy"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.ServerHttpPath", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.Server", "Server") - .WithMany() - .HasForeignKey("ServerId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("LANCommander.Server.Data.Models.Server", null) - .WithMany("HttpPaths") - .HasForeignKey("ServerId1"); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.Navigation("CreatedBy"); - - b.Navigation("Server"); - - b.Navigation("UpdatedBy"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.StorageLocation", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById"); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById"); - - b.Navigation("CreatedBy"); - - b.Navigation("UpdatedBy"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Tag", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.Navigation("CreatedBy"); - - b.Navigation("UpdatedBy"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.User", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.Navigation("CreatedBy"); - - b.Navigation("UpdatedBy"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.UserCustomField", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") - .WithMany() - .HasForeignKey("UpdatedById") - .OnDelete(DeleteBehavior.SetNull); - - b.HasOne("LANCommander.Server.Data.Models.User", "User") - .WithMany("CustomFields") - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("CreatedBy"); - - b.Navigation("UpdatedBy"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("LibraryGame", b => - { - b.HasOne("LANCommander.Server.Data.Models.Game", null) - .WithMany() - .HasForeignKey("GameId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("LANCommander.Server.Data.Models.Library", null) - .WithMany() - .HasForeignKey("LibraryId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => - { - b.HasOne("LANCommander.Server.Data.Models.Role", null) - .WithMany() - .HasForeignKey("RoleId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", null) - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", null) - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b => - { - b.HasOne("LANCommander.Server.Data.Models.Role", null) - .WithMany() - .HasForeignKey("RoleId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("LANCommander.Server.Data.Models.User", null) - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => - { - b.HasOne("LANCommander.Server.Data.Models.User", null) - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("PageGame", b => - { - b.HasOne("LANCommander.Server.Data.Models.Game", null) - .WithMany() - .HasForeignKey("GameId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("LANCommander.Server.Data.Models.Page", null) - .WithMany() - .HasForeignKey("PageId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("PageRedistributable", b => - { - b.HasOne("LANCommander.Server.Data.Models.Page", null) - .WithMany() - .HasForeignKey("PageId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("LANCommander.Server.Data.Models.Redistributable", null) - .WithMany() - .HasForeignKey("RedistributableId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("PageServer", b => - { - b.HasOne("LANCommander.Server.Data.Models.Page", null) - .WithMany() - .HasForeignKey("PageId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("LANCommander.Server.Data.Models.Server", null) - .WithMany() - .HasForeignKey("ServerId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("RoleCollection", b => - { - b.HasOne("LANCommander.Server.Data.Models.Collection", null) - .WithMany() - .HasForeignKey("CollectionId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("LANCommander.Server.Data.Models.Role", null) - .WithMany() - .HasForeignKey("RoleId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Category", b => - { - b.Navigation("Children"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Engine", b => - { - b.Navigation("Games"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Game", b => - { - b.Navigation("Actions"); - - b.Navigation("Archives"); - - b.Navigation("DependentGames"); - - b.Navigation("GameSaves"); - - b.Navigation("Issues"); - - b.Navigation("Keys"); - - b.Navigation("Media"); - - b.Navigation("MultiplayerModes"); - - b.Navigation("PlaySessions"); - - b.Navigation("SavePaths"); - - b.Navigation("Scripts"); - - b.Navigation("Servers"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Media", b => - { - b.Navigation("Parent"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Page", b => - { - b.Navigation("Children"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Redistributable", b => - { - b.Navigation("Archives"); - - b.Navigation("Scripts"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.Server", b => - { - b.Navigation("Actions"); - - b.Navigation("HttpPaths"); - - b.Navigation("Scripts"); - - b.Navigation("ServerConsoles"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.StorageLocation", b => - { - b.Navigation("Archives"); - - b.Navigation("GameSaves"); - - b.Navigation("Media"); - }); - - modelBuilder.Entity("LANCommander.Server.Data.Models.User", b => - { - b.Navigation("CustomFields"); - - b.Navigation("GameSaves"); - - b.Navigation("Library") - .IsRequired(); - - b.Navigation("Media"); - - b.Navigation("PlaySessions"); - }); -#pragma warning restore 612, 618 - } - } -} diff --git a/LANCommander.Server.Data.PostgreSQL/Migrations/20241031054754_AddLibraries.cs b/LANCommander.Server.Data.PostgreSQL/Migrations/20241031054754_AddLibraries.cs deleted file mode 100644 index 1809952a..00000000 --- a/LANCommander.Server.Data.PostgreSQL/Migrations/20241031054754_AddLibraries.cs +++ /dev/null @@ -1,104 +0,0 @@ -using System; -using Microsoft.EntityFrameworkCore.Migrations; - -#nullable disable - -namespace LANCommander.Server.Data.PostgreSQL.Migrations -{ - /// - public partial class AddLibraries : Migration - { - /// - protected override void Up(MigrationBuilder migrationBuilder) - { - migrationBuilder.CreateTable( - name: "Libraries", - columns: table => new - { - Id = table.Column(type: "uuid", nullable: false), - UserId = table.Column(type: "uuid", nullable: false), - CreatedOn = table.Column(type: "timestamp with time zone", nullable: false), - CreatedById = table.Column(type: "uuid", nullable: true), - UpdatedOn = table.Column(type: "timestamp with time zone", nullable: false), - UpdatedById = table.Column(type: "uuid", nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_Libraries", x => x.Id); - table.ForeignKey( - name: "FK_Libraries_Users_CreatedById", - column: x => x.CreatedById, - principalTable: "Users", - principalColumn: "Id", - onDelete: ReferentialAction.SetNull); - table.ForeignKey( - name: "FK_Libraries_Users_UpdatedById", - column: x => x.UpdatedById, - principalTable: "Users", - principalColumn: "Id", - onDelete: ReferentialAction.SetNull); - table.ForeignKey( - name: "FK_Libraries_Users_UserId", - column: x => x.UserId, - principalTable: "Users", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "LibraryGame", - columns: table => new - { - GameId = table.Column(type: "uuid", nullable: false), - LibraryId = table.Column(type: "uuid", nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_LibraryGame", x => new { x.GameId, x.LibraryId }); - table.ForeignKey( - name: "FK_LibraryGame_Games_GameId", - column: x => x.GameId, - principalTable: "Games", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - table.ForeignKey( - name: "FK_LibraryGame_Libraries_LibraryId", - column: x => x.LibraryId, - principalTable: "Libraries", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateIndex( - name: "IX_Libraries_CreatedById", - table: "Libraries", - column: "CreatedById"); - - migrationBuilder.CreateIndex( - name: "IX_Libraries_UpdatedById", - table: "Libraries", - column: "UpdatedById"); - - migrationBuilder.CreateIndex( - name: "IX_Libraries_UserId", - table: "Libraries", - column: "UserId", - unique: true); - - migrationBuilder.CreateIndex( - name: "IX_LibraryGame_LibraryId", - table: "LibraryGame", - column: "LibraryId"); - } - - /// - protected override void Down(MigrationBuilder migrationBuilder) - { - migrationBuilder.DropTable( - name: "LibraryGame"); - - migrationBuilder.DropTable( - name: "Libraries"); - } - } -} diff --git a/LANCommander.Server.Data.PostgreSQL/Migrations/20250120222926_FixCompanyForeignKeys.cs b/LANCommander.Server.Data.PostgreSQL/Migrations/20250120222926_FixCompanyForeignKeys.cs deleted file mode 100644 index 1c836d4e..00000000 --- a/LANCommander.Server.Data.PostgreSQL/Migrations/20250120222926_FixCompanyForeignKeys.cs +++ /dev/null @@ -1,78 +0,0 @@ -using Microsoft.EntityFrameworkCore.Migrations; - -#nullable disable - -namespace LANCommander.Server.Data.PostgreSQL.Migrations -{ - /// - public partial class FixCompanyForeignKeys : Migration - { - /// - protected override void Up(MigrationBuilder migrationBuilder) - { - migrationBuilder.DropForeignKey( - name: "FK_Media_StorageLocations_StorageLocationId", - table: "Media"); - - migrationBuilder.DropPrimaryKey( - name: "PK_GameDeveloper", - table: "GameDeveloper"); - - migrationBuilder.DropIndex( - name: "IX_GameDeveloper_GameId", - table: "GameDeveloper"); - - migrationBuilder.AddPrimaryKey( - name: "PK_GameDeveloper", - table: "GameDeveloper", - columns: new[] { "GameId", "DeveloperId" }); - - migrationBuilder.CreateIndex( - name: "IX_GameDeveloper_DeveloperId", - table: "GameDeveloper", - column: "DeveloperId"); - - migrationBuilder.AddForeignKey( - name: "FK_Media_StorageLocations_StorageLocationId", - table: "Media", - column: "StorageLocationId", - principalTable: "StorageLocations", - principalColumn: "Id", - onDelete: ReferentialAction.SetNull); - } - - /// - protected override void Down(MigrationBuilder migrationBuilder) - { - migrationBuilder.DropForeignKey( - name: "FK_Media_StorageLocations_StorageLocationId", - table: "Media"); - - migrationBuilder.DropPrimaryKey( - name: "PK_GameDeveloper", - table: "GameDeveloper"); - - migrationBuilder.DropIndex( - name: "IX_GameDeveloper_DeveloperId", - table: "GameDeveloper"); - - migrationBuilder.AddPrimaryKey( - name: "PK_GameDeveloper", - table: "GameDeveloper", - columns: new[] { "DeveloperId", "GameId" }); - - migrationBuilder.CreateIndex( - name: "IX_GameDeveloper_GameId", - table: "GameDeveloper", - column: "GameId"); - - migrationBuilder.AddForeignKey( - name: "FK_Media_StorageLocations_StorageLocationId", - table: "Media", - column: "StorageLocationId", - principalTable: "StorageLocations", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - } - } -} diff --git a/LANCommander.Server.Data.PostgreSQL/Migrations/20250120222926_FixCompanyForeignKeys.Designer.cs b/LANCommander.Server.Data.PostgreSQL/Migrations/20250203083412_InitialMigration.Designer.cs similarity index 97% rename from LANCommander.Server.Data.PostgreSQL/Migrations/20250120222926_FixCompanyForeignKeys.Designer.cs rename to LANCommander.Server.Data.PostgreSQL/Migrations/20250203083412_InitialMigration.Designer.cs index 9b8c8cb4..be5092c0 100644 --- a/LANCommander.Server.Data.PostgreSQL/Migrations/20250120222926_FixCompanyForeignKeys.Designer.cs +++ b/LANCommander.Server.Data.PostgreSQL/Migrations/20250203083412_InitialMigration.Designer.cs @@ -12,8 +12,8 @@ using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; namespace LANCommander.Server.Data.PostgreSQL.Migrations { [DbContext(typeof(DatabaseContext))] - [Migration("20250120222926_FixCompanyForeignKeys")] - partial class FixCompanyForeignKeys + [Migration("20250203083412_InitialMigration")] + partial class InitialMigration { /// protected override void BuildTargetModel(ModelBuilder modelBuilder) @@ -465,6 +465,48 @@ namespace LANCommander.Server.Data.PostgreSQL.Migrations b.ToTable("Games"); }); + modelBuilder.Entity("LANCommander.Server.Data.Models.GameCustomField", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("CreatedById") + .HasColumnType("uuid"); + + b.Property("CreatedOn") + .HasColumnType("timestamp with time zone"); + + b.Property("GameId") + .HasColumnType("uuid"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(64) + .HasColumnType("character varying(64)"); + + b.Property("UpdatedById") + .HasColumnType("uuid"); + + b.Property("UpdatedOn") + .HasColumnType("timestamp with time zone"); + + b.Property("Value") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)"); + + b.HasKey("Id"); + + b.HasIndex("CreatedById"); + + b.HasIndex("GameId"); + + b.HasIndex("UpdatedById"); + + b.ToTable("GameCustomField"); + }); + modelBuilder.Entity("LANCommander.Server.Data.Models.GameSave", b => { b.Property("Id") @@ -1979,6 +2021,27 @@ namespace LANCommander.Server.Data.PostgreSQL.Migrations b.Navigation("UpdatedBy"); }); + modelBuilder.Entity("LANCommander.Server.Data.Models.GameCustomField", b => + { + b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") + .WithMany() + .HasForeignKey("CreatedById"); + + b.HasOne("LANCommander.Server.Data.Models.Game", "Game") + .WithMany("CustomFields") + .HasForeignKey("GameId"); + + b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") + .WithMany() + .HasForeignKey("UpdatedById"); + + b.Navigation("CreatedBy"); + + b.Navigation("Game"); + + b.Navigation("UpdatedBy"); + }); + modelBuilder.Entity("LANCommander.Server.Data.Models.GameSave", b => { b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") @@ -2661,6 +2724,8 @@ namespace LANCommander.Server.Data.PostgreSQL.Migrations b.Navigation("Archives"); + b.Navigation("CustomFields"); + b.Navigation("DependentGames"); b.Navigation("GameSaves"); diff --git a/LANCommander.Server.Data.PostgreSQL/Migrations/20241024040259_InitialSeed.cs b/LANCommander.Server.Data.PostgreSQL/Migrations/20250203083412_InitialMigration.cs similarity index 94% rename from LANCommander.Server.Data.PostgreSQL/Migrations/20241024040259_InitialSeed.cs rename to LANCommander.Server.Data.PostgreSQL/Migrations/20250203083412_InitialMigration.cs index fa1edd4b..f334a7d2 100644 --- a/LANCommander.Server.Data.PostgreSQL/Migrations/20241024040259_InitialSeed.cs +++ b/LANCommander.Server.Data.PostgreSQL/Migrations/20250203083412_InitialMigration.cs @@ -7,7 +7,7 @@ using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; namespace LANCommander.Server.Data.PostgreSQL.Migrations { /// - public partial class InitialSeed : Migration + public partial class InitialMigration : Migration { /// protected override void Up(MigrationBuilder migrationBuilder) @@ -202,6 +202,40 @@ namespace LANCommander.Server.Data.PostgreSQL.Migrations onDelete: ReferentialAction.SetNull); }); + migrationBuilder.CreateTable( + name: "Libraries", + columns: table => new + { + Id = table.Column(type: "uuid", nullable: false), + UserId = table.Column(type: "uuid", nullable: false), + CreatedOn = table.Column(type: "timestamp with time zone", nullable: false), + CreatedById = table.Column(type: "uuid", nullable: true), + UpdatedOn = table.Column(type: "timestamp with time zone", nullable: false), + UpdatedById = table.Column(type: "uuid", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_Libraries", x => x.Id); + table.ForeignKey( + name: "FK_Libraries_Users_CreatedById", + column: x => x.CreatedById, + principalTable: "Users", + principalColumn: "Id", + onDelete: ReferentialAction.SetNull); + table.ForeignKey( + name: "FK_Libraries_Users_UpdatedById", + column: x => x.UpdatedById, + principalTable: "Users", + principalColumn: "Id", + onDelete: ReferentialAction.SetNull); + table.ForeignKey( + name: "FK_Libraries_Users_UserId", + column: x => x.UserId, + principalTable: "Users", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + migrationBuilder.CreateTable( name: "Pages", columns: table => new @@ -735,15 +769,48 @@ namespace LANCommander.Server.Data.PostgreSQL.Migrations }); migrationBuilder.CreateTable( - name: "GameDeveloper", + name: "GameCustomField", columns: table => new { - DeveloperId = table.Column(type: "uuid", nullable: false), - GameId = table.Column(type: "uuid", nullable: false) + Id = table.Column(type: "uuid", nullable: false), + Name = table.Column(type: "character varying(64)", maxLength: 64, nullable: false), + Value = table.Column(type: "character varying(1024)", maxLength: 1024, nullable: false), + GameId = table.Column(type: "uuid", nullable: true), + CreatedOn = table.Column(type: "timestamp with time zone", nullable: false), + CreatedById = table.Column(type: "uuid", nullable: true), + UpdatedOn = table.Column(type: "timestamp with time zone", nullable: false), + UpdatedById = table.Column(type: "uuid", nullable: true) }, constraints: table => { - table.PrimaryKey("PK_GameDeveloper", x => new { x.DeveloperId, x.GameId }); + table.PrimaryKey("PK_GameCustomField", x => x.Id); + table.ForeignKey( + name: "FK_GameCustomField_Games_GameId", + column: x => x.GameId, + principalTable: "Games", + principalColumn: "Id"); + table.ForeignKey( + name: "FK_GameCustomField_Users_CreatedById", + column: x => x.CreatedById, + principalTable: "Users", + principalColumn: "Id"); + table.ForeignKey( + name: "FK_GameCustomField_Users_UpdatedById", + column: x => x.UpdatedById, + principalTable: "Users", + principalColumn: "Id"); + }); + + migrationBuilder.CreateTable( + name: "GameDeveloper", + columns: table => new + { + GameId = table.Column(type: "uuid", nullable: false), + DeveloperId = table.Column(type: "uuid", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_GameDeveloper", x => new { x.GameId, x.DeveloperId }); table.ForeignKey( name: "FK_GameDeveloper_Companies_DeveloperId", column: x => x.DeveloperId, @@ -1015,6 +1082,30 @@ namespace LANCommander.Server.Data.PostgreSQL.Migrations onDelete: ReferentialAction.SetNull); }); + migrationBuilder.CreateTable( + name: "LibraryGame", + columns: table => new + { + GameId = table.Column(type: "uuid", nullable: false), + LibraryId = table.Column(type: "uuid", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_LibraryGame", x => new { x.GameId, x.LibraryId }); + table.ForeignKey( + name: "FK_LibraryGame_Games_GameId", + column: x => x.GameId, + principalTable: "Games", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_LibraryGame_Libraries_LibraryId", + column: x => x.LibraryId, + principalTable: "Libraries", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + migrationBuilder.CreateTable( name: "Media", columns: table => new @@ -1055,7 +1146,7 @@ namespace LANCommander.Server.Data.PostgreSQL.Migrations column: x => x.StorageLocationId, principalTable: "StorageLocations", principalColumn: "Id", - onDelete: ReferentialAction.Cascade); + onDelete: ReferentialAction.SetNull); table.ForeignKey( name: "FK_Media_Users_CreatedById", column: x => x.CreatedById, @@ -1586,10 +1677,25 @@ namespace LANCommander.Server.Data.PostgreSQL.Migrations column: "UpdatedById"); migrationBuilder.CreateIndex( - name: "IX_GameDeveloper_GameId", - table: "GameDeveloper", + name: "IX_GameCustomField_CreatedById", + table: "GameCustomField", + column: "CreatedById"); + + migrationBuilder.CreateIndex( + name: "IX_GameCustomField_GameId", + table: "GameCustomField", column: "GameId"); + migrationBuilder.CreateIndex( + name: "IX_GameCustomField_UpdatedById", + table: "GameCustomField", + column: "UpdatedById"); + + migrationBuilder.CreateIndex( + name: "IX_GameDeveloper_DeveloperId", + table: "GameDeveloper", + column: "DeveloperId"); + migrationBuilder.CreateIndex( name: "IX_GameGenre_GenresId", table: "GameGenre", @@ -1710,6 +1816,27 @@ namespace LANCommander.Server.Data.PostgreSQL.Migrations table: "Keys", column: "UpdatedById"); + migrationBuilder.CreateIndex( + name: "IX_Libraries_CreatedById", + table: "Libraries", + column: "CreatedById"); + + migrationBuilder.CreateIndex( + name: "IX_Libraries_UpdatedById", + table: "Libraries", + column: "UpdatedById"); + + migrationBuilder.CreateIndex( + name: "IX_Libraries_UserId", + table: "Libraries", + column: "UserId", + unique: true); + + migrationBuilder.CreateIndex( + name: "IX_LibraryGame_LibraryId", + table: "LibraryGame", + column: "LibraryId"); + migrationBuilder.CreateIndex( name: "IX_Media_CreatedById", table: "Media", @@ -2034,6 +2161,9 @@ namespace LANCommander.Server.Data.PostgreSQL.Migrations migrationBuilder.DropTable( name: "CollectionGame"); + migrationBuilder.DropTable( + name: "GameCustomField"); + migrationBuilder.DropTable( name: "GameDeveloper"); @@ -2061,6 +2191,9 @@ namespace LANCommander.Server.Data.PostgreSQL.Migrations migrationBuilder.DropTable( name: "Keys"); + migrationBuilder.DropTable( + name: "LibraryGame"); + migrationBuilder.DropTable( name: "Media"); @@ -2127,6 +2260,9 @@ namespace LANCommander.Server.Data.PostgreSQL.Migrations migrationBuilder.DropTable( name: "Tags"); + migrationBuilder.DropTable( + name: "Libraries"); + migrationBuilder.DropTable( name: "StorageLocations"); diff --git a/LANCommander.Server.Data.PostgreSQL/Migrations/DatabaseContextModelSnapshot.cs b/LANCommander.Server.Data.PostgreSQL/Migrations/DatabaseContextModelSnapshot.cs index b1d478c3..0e1246ac 100644 --- a/LANCommander.Server.Data.PostgreSQL/Migrations/DatabaseContextModelSnapshot.cs +++ b/LANCommander.Server.Data.PostgreSQL/Migrations/DatabaseContextModelSnapshot.cs @@ -462,6 +462,48 @@ namespace LANCommander.Server.Data.PostgreSQL.Migrations b.ToTable("Games"); }); + modelBuilder.Entity("LANCommander.Server.Data.Models.GameCustomField", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("CreatedById") + .HasColumnType("uuid"); + + b.Property("CreatedOn") + .HasColumnType("timestamp with time zone"); + + b.Property("GameId") + .HasColumnType("uuid"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(64) + .HasColumnType("character varying(64)"); + + b.Property("UpdatedById") + .HasColumnType("uuid"); + + b.Property("UpdatedOn") + .HasColumnType("timestamp with time zone"); + + b.Property("Value") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("character varying(1024)"); + + b.HasKey("Id"); + + b.HasIndex("CreatedById"); + + b.HasIndex("GameId"); + + b.HasIndex("UpdatedById"); + + b.ToTable("GameCustomField"); + }); + modelBuilder.Entity("LANCommander.Server.Data.Models.GameSave", b => { b.Property("Id") @@ -1976,6 +2018,27 @@ namespace LANCommander.Server.Data.PostgreSQL.Migrations b.Navigation("UpdatedBy"); }); + modelBuilder.Entity("LANCommander.Server.Data.Models.GameCustomField", b => + { + b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") + .WithMany() + .HasForeignKey("CreatedById"); + + b.HasOne("LANCommander.Server.Data.Models.Game", "Game") + .WithMany("CustomFields") + .HasForeignKey("GameId"); + + b.HasOne("LANCommander.Server.Data.Models.User", "UpdatedBy") + .WithMany() + .HasForeignKey("UpdatedById"); + + b.Navigation("CreatedBy"); + + b.Navigation("Game"); + + b.Navigation("UpdatedBy"); + }); + modelBuilder.Entity("LANCommander.Server.Data.Models.GameSave", b => { b.HasOne("LANCommander.Server.Data.Models.User", "CreatedBy") @@ -2658,6 +2721,8 @@ namespace LANCommander.Server.Data.PostgreSQL.Migrations b.Navigation("Archives"); + b.Navigation("CustomFields"); + b.Navigation("DependentGames"); b.Navigation("GameSaves");