using System; using Microsoft.EntityFrameworkCore.Metadata; using Microsoft.EntityFrameworkCore.Migrations; #nullable disable namespace ErsatzTV.Infrastructure.MySql.Migrations { /// public partial class Initial : Migration { /// protected override void Up(MigrationBuilder migrationBuilder) { migrationBuilder.AlterDatabase() .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "ChannelWatermark", columns: table => new { Id = table.Column(type: "int", nullable: false) .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), Name = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), Mode = table.Column(type: "int", nullable: false), ImageSource = table.Column(type: "int", nullable: false), Image = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), Location = table.Column(type: "int", nullable: false), Size = table.Column(type: "int", nullable: false), WidthPercent = table.Column(type: "int", nullable: false), HorizontalMarginPercent = table.Column(type: "int", nullable: false), VerticalMarginPercent = table.Column(type: "int", nullable: false), FrequencyMinutes = table.Column(type: "int", nullable: false), DurationSeconds = table.Column(type: "int", nullable: false), Opacity = table.Column(type: "int", nullable: false), PlaceWithinSourceContent = table.Column(type: "tinyint(1)", nullable: false) }, constraints: table => { table.PrimaryKey("PK_ChannelWatermark", x => x.Id); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "Collection", columns: table => new { Id = table.Column(type: "int", nullable: false) .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), Name = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), UseCustomPlaybackOrder = table.Column(type: "tinyint(1)", nullable: false) }, constraints: table => { table.PrimaryKey("PK_Collection", x => x.Id); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "ConfigElement", columns: table => new { Id = table.Column(type: "int", nullable: false) .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), Key = table.Column(type: "varchar(255)", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), Value = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4") }, constraints: table => { table.PrimaryKey("PK_ConfigElement", x => x.Id); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "EmbyCollection", columns: table => new { Id = table.Column(type: "int", nullable: false) .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), ItemId = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), Etag = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), Name = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4") }, constraints: table => { table.PrimaryKey("PK_EmbyCollection", x => x.Id); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "JellyfinCollection", columns: table => new { Id = table.Column(type: "int", nullable: false) .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), ItemId = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), Etag = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), Name = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4") }, constraints: table => { table.PrimaryKey("PK_JellyfinCollection", x => x.Id); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "LanguageCode", columns: table => new { Id = table.Column(type: "int", nullable: false) .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), ThreeCode1 = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), ThreeCode2 = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), TwoCode = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), EnglishName = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), FrenchName = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4") }, constraints: table => { table.PrimaryKey("PK_LanguageCode", x => x.Id); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "MediaSource", columns: table => new { Id = table.Column(type: "int", nullable: false) .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn) }, constraints: table => { table.PrimaryKey("PK_MediaSource", x => x.Id); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "MultiCollection", columns: table => new { Id = table.Column(type: "int", nullable: false) .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), Name = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4") }, constraints: table => { table.PrimaryKey("PK_MultiCollection", x => x.Id); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "ProgramSchedule", columns: table => new { Id = table.Column(type: "int", nullable: false) .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), Name = table.Column(type: "varchar(255)", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), KeepMultiPartEpisodesTogether = table.Column(type: "tinyint(1)", nullable: false), TreatCollectionsAsShows = table.Column(type: "tinyint(1)", nullable: false), ShuffleScheduleItems = table.Column(type: "tinyint(1)", nullable: false), RandomStartPoint = table.Column(type: "tinyint(1)", nullable: false) }, constraints: table => { table.PrimaryKey("PK_ProgramSchedule", x => x.Id); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "Resolution", columns: table => new { Id = table.Column(type: "int", nullable: false) .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), Name = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), IsCustom = table.Column(type: "tinyint(1)", nullable: false, defaultValue: false), Height = table.Column(type: "int", nullable: false), Width = table.Column(type: "int", nullable: false) }, constraints: table => { table.PrimaryKey("PK_Resolution", x => x.Id); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "SmartCollection", columns: table => new { Id = table.Column(type: "int", nullable: false) .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), Name = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), Query = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4") }, constraints: table => { table.PrimaryKey("PK_SmartCollection", x => x.Id); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "TraktList", columns: table => new { Id = table.Column(type: "int", nullable: false) .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), TraktId = table.Column(type: "int", nullable: false), User = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), List = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), Name = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), Description = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), ItemCount = table.Column(type: "int", nullable: false) }, constraints: table => { table.PrimaryKey("PK_TraktList", x => x.Id); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "EmbyMediaSource", columns: table => new { Id = table.Column(type: "int", nullable: false), ServerName = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), OperatingSystem = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), LastCollectionsScan = table.Column(type: "datetime(6)", nullable: true) }, constraints: table => { table.PrimaryKey("PK_EmbyMediaSource", x => x.Id); table.ForeignKey( name: "FK_EmbyMediaSource_MediaSource_Id", column: x => x.Id, principalTable: "MediaSource", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "JellyfinMediaSource", columns: table => new { Id = table.Column(type: "int", nullable: false), ServerName = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), OperatingSystem = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4") }, constraints: table => { table.PrimaryKey("PK_JellyfinMediaSource", x => x.Id); table.ForeignKey( name: "FK_JellyfinMediaSource_MediaSource_Id", column: x => x.Id, principalTable: "MediaSource", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "Library", columns: table => new { Id = table.Column(type: "int", nullable: false) .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), Name = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), MediaKind = table.Column(type: "int", nullable: false), LastScan = table.Column(type: "datetime(6)", nullable: true), MediaSourceId = table.Column(type: "int", nullable: false) }, constraints: table => { table.PrimaryKey("PK_Library", x => x.Id); table.ForeignKey( name: "FK_Library_MediaSource_MediaSourceId", column: x => x.MediaSourceId, principalTable: "MediaSource", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "LocalMediaSource", columns: table => new { Id = table.Column(type: "int", nullable: false) }, constraints: table => { table.PrimaryKey("PK_LocalMediaSource", x => x.Id); table.ForeignKey( name: "FK_LocalMediaSource_MediaSource_Id", column: x => x.Id, principalTable: "MediaSource", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "PlexMediaSource", columns: table => new { Id = table.Column(type: "int", nullable: false), ServerName = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), ProductVersion = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), Platform = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), PlatformVersion = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), ClientIdentifier = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4") }, constraints: table => { table.PrimaryKey("PK_PlexMediaSource", x => x.Id); table.ForeignKey( name: "FK_PlexMediaSource_MediaSource_Id", column: x => x.Id, principalTable: "MediaSource", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "MultiCollectionItem", columns: table => new { MultiCollectionId = table.Column(type: "int", nullable: false), CollectionId = table.Column(type: "int", nullable: false), ScheduleAsGroup = table.Column(type: "tinyint(1)", nullable: false), PlaybackOrder = table.Column(type: "int", nullable: false) }, constraints: table => { table.PrimaryKey("PK_MultiCollectionItem", x => new { x.MultiCollectionId, x.CollectionId }); table.ForeignKey( name: "FK_MultiCollectionItem_Collection_CollectionId", column: x => x.CollectionId, principalTable: "Collection", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_MultiCollectionItem_MultiCollection_MultiCollectionId", column: x => x.MultiCollectionId, principalTable: "MultiCollection", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "FFmpegProfile", columns: table => new { Id = table.Column(type: "int", nullable: false) .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), Name = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), ThreadCount = table.Column(type: "int", nullable: false), HardwareAcceleration = table.Column(type: "int", nullable: false), VaapiDriver = table.Column(type: "int", nullable: false), VaapiDevice = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), QsvExtraHardwareFrames = table.Column(type: "int", nullable: true), ResolutionId = table.Column(type: "int", nullable: false), VideoFormat = table.Column(type: "int", nullable: false), BitDepth = table.Column(type: "int", nullable: false), VideoBitrate = table.Column(type: "int", nullable: false), VideoBufferSize = table.Column(type: "int", nullable: false), AudioFormat = table.Column(type: "int", nullable: false), AudioBitrate = table.Column(type: "int", nullable: false), AudioBufferSize = table.Column(type: "int", nullable: false), NormalizeLoudness = table.Column(type: "tinyint(1)", nullable: false), AudioChannels = table.Column(type: "int", nullable: false), AudioSampleRate = table.Column(type: "int", nullable: false), NormalizeFramerate = table.Column(type: "tinyint(1)", nullable: false, defaultValue: false), DeinterlaceVideo = table.Column(type: "tinyint(1)", nullable: true, defaultValue: true) }, constraints: table => { table.PrimaryKey("PK_FFmpegProfile", x => x.Id); table.ForeignKey( name: "FK_FFmpegProfile_Resolution_ResolutionId", column: x => x.ResolutionId, principalTable: "Resolution", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "MultiCollectionSmartItem", columns: table => new { MultiCollectionId = table.Column(type: "int", nullable: false), SmartCollectionId = table.Column(type: "int", nullable: false), ScheduleAsGroup = table.Column(type: "tinyint(1)", nullable: false), PlaybackOrder = table.Column(type: "int", nullable: false) }, constraints: table => { table.PrimaryKey("PK_MultiCollectionSmartItem", x => new { x.MultiCollectionId, x.SmartCollectionId }); table.ForeignKey( name: "FK_MultiCollectionSmartItem_MultiCollection_MultiCollectionId", column: x => x.MultiCollectionId, principalTable: "MultiCollection", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_MultiCollectionSmartItem_SmartCollection_SmartCollectionId", column: x => x.SmartCollectionId, principalTable: "SmartCollection", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "EmbyConnection", columns: table => new { Id = table.Column(type: "int", nullable: false) .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), Address = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), EmbyMediaSourceId = table.Column(type: "int", nullable: false) }, constraints: table => { table.PrimaryKey("PK_EmbyConnection", x => x.Id); table.ForeignKey( name: "FK_EmbyConnection_EmbyMediaSource_EmbyMediaSourceId", column: x => x.EmbyMediaSourceId, principalTable: "EmbyMediaSource", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "EmbyPathReplacement", columns: table => new { Id = table.Column(type: "int", nullable: false) .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), EmbyPath = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), LocalPath = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), EmbyMediaSourceId = table.Column(type: "int", nullable: false) }, constraints: table => { table.PrimaryKey("PK_EmbyPathReplacement", x => x.Id); table.ForeignKey( name: "FK_EmbyPathReplacement_EmbyMediaSource_EmbyMediaSourceId", column: x => x.EmbyMediaSourceId, principalTable: "EmbyMediaSource", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "JellyfinConnection", columns: table => new { Id = table.Column(type: "int", nullable: false) .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), Address = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), JellyfinMediaSourceId = table.Column(type: "int", nullable: false) }, constraints: table => { table.PrimaryKey("PK_JellyfinConnection", x => x.Id); table.ForeignKey( name: "FK_JellyfinConnection_JellyfinMediaSource_JellyfinMediaSourceId", column: x => x.JellyfinMediaSourceId, principalTable: "JellyfinMediaSource", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "JellyfinPathReplacement", columns: table => new { Id = table.Column(type: "int", nullable: false) .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), JellyfinPath = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), LocalPath = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), JellyfinMediaSourceId = table.Column(type: "int", nullable: false) }, constraints: table => { table.PrimaryKey("PK_JellyfinPathReplacement", x => x.Id); table.ForeignKey( name: "FK_JellyfinPathReplacement_JellyfinMediaSource_JellyfinMediaSou~", column: x => x.JellyfinMediaSourceId, principalTable: "JellyfinMediaSource", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "EmbyLibrary", columns: table => new { Id = table.Column(type: "int", nullable: false), ItemId = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), ShouldSyncItems = table.Column(type: "tinyint(1)", nullable: false) }, constraints: table => { table.PrimaryKey("PK_EmbyLibrary", x => x.Id); table.ForeignKey( name: "FK_EmbyLibrary_Library_Id", column: x => x.Id, principalTable: "Library", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "JellyfinLibrary", columns: table => new { Id = table.Column(type: "int", nullable: false), ItemId = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), ShouldSyncItems = table.Column(type: "tinyint(1)", nullable: false) }, constraints: table => { table.PrimaryKey("PK_JellyfinLibrary", x => x.Id); table.ForeignKey( name: "FK_JellyfinLibrary_Library_Id", column: x => x.Id, principalTable: "Library", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "LibraryPath", columns: table => new { Id = table.Column(type: "int", nullable: false) .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), Path = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), LastScan = table.Column(type: "datetime(6)", nullable: true), LibraryId = table.Column(type: "int", nullable: false) }, constraints: table => { table.PrimaryKey("PK_LibraryPath", x => x.Id); table.ForeignKey( name: "FK_LibraryPath_Library_LibraryId", column: x => x.LibraryId, principalTable: "Library", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "LocalLibrary", columns: table => new { Id = table.Column(type: "int", nullable: false) }, constraints: table => { table.PrimaryKey("PK_LocalLibrary", x => x.Id); table.ForeignKey( name: "FK_LocalLibrary_Library_Id", column: x => x.Id, principalTable: "Library", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "PlexLibrary", columns: table => new { Id = table.Column(type: "int", nullable: false), Key = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), ShouldSyncItems = table.Column(type: "tinyint(1)", nullable: false) }, constraints: table => { table.PrimaryKey("PK_PlexLibrary", x => x.Id); table.ForeignKey( name: "FK_PlexLibrary_Library_Id", column: x => x.Id, principalTable: "Library", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "PlexConnection", columns: table => new { Id = table.Column(type: "int", nullable: false) .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), IsActive = table.Column(type: "tinyint(1)", nullable: false), Uri = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), PlexMediaSourceId = table.Column(type: "int", nullable: false) }, constraints: table => { table.PrimaryKey("PK_PlexConnection", x => x.Id); table.ForeignKey( name: "FK_PlexConnection_PlexMediaSource_PlexMediaSourceId", column: x => x.PlexMediaSourceId, principalTable: "PlexMediaSource", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "PlexPathReplacement", columns: table => new { Id = table.Column(type: "int", nullable: false) .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), PlexPath = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), LocalPath = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), PlexMediaSourceId = table.Column(type: "int", nullable: false) }, constraints: table => { table.PrimaryKey("PK_PlexPathReplacement", x => x.Id); table.ForeignKey( name: "FK_PlexPathReplacement_PlexMediaSource_PlexMediaSourceId", column: x => x.PlexMediaSourceId, principalTable: "PlexMediaSource", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "EmbyPathInfo", columns: table => new { Id = table.Column(type: "int", nullable: false) .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), Path = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), NetworkPath = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), EmbyLibraryId = table.Column(type: "int", nullable: true) }, constraints: table => { table.PrimaryKey("PK_EmbyPathInfo", x => x.Id); table.ForeignKey( name: "FK_EmbyPathInfo_EmbyLibrary_EmbyLibraryId", column: x => x.EmbyLibraryId, principalTable: "EmbyLibrary", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "JellyfinPathInfo", columns: table => new { Id = table.Column(type: "int", nullable: false) .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), Path = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), NetworkPath = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), JellyfinLibraryId = table.Column(type: "int", nullable: true) }, constraints: table => { table.PrimaryKey("PK_JellyfinPathInfo", x => x.Id); table.ForeignKey( name: "FK_JellyfinPathInfo_JellyfinLibrary_JellyfinLibraryId", column: x => x.JellyfinLibraryId, principalTable: "JellyfinLibrary", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "LibraryFolder", columns: table => new { Id = table.Column(type: "int", nullable: false) .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), Path = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), LibraryPathId = table.Column(type: "int", nullable: false), Etag = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4") }, constraints: table => { table.PrimaryKey("PK_LibraryFolder", x => x.Id); table.ForeignKey( name: "FK_LibraryFolder_LibraryPath_LibraryPathId", column: x => x.LibraryPathId, principalTable: "LibraryPath", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "MediaItem", columns: table => new { Id = table.Column(type: "int", nullable: false) .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), LibraryPathId = table.Column(type: "int", nullable: false), State = table.Column(type: "int", nullable: false) }, constraints: table => { table.PrimaryKey("PK_MediaItem", x => x.Id); table.ForeignKey( name: "FK_MediaItem_LibraryPath_LibraryPathId", column: x => x.LibraryPathId, principalTable: "LibraryPath", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "Artist", columns: table => new { Id = table.Column(type: "int", nullable: false) }, constraints: table => { table.PrimaryKey("PK_Artist", x => x.Id); table.ForeignKey( name: "FK_Artist_MediaItem_Id", column: x => x.Id, principalTable: "MediaItem", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "CollectionItem", columns: table => new { CollectionId = table.Column(type: "int", nullable: false), MediaItemId = table.Column(type: "int", nullable: false), CustomIndex = table.Column(type: "int", nullable: true) }, constraints: table => { table.PrimaryKey("PK_CollectionItem", x => new { x.CollectionId, x.MediaItemId }); table.ForeignKey( name: "FK_CollectionItem_Collection_CollectionId", column: x => x.CollectionId, principalTable: "Collection", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_CollectionItem_MediaItem_MediaItemId", column: x => x.MediaItemId, principalTable: "MediaItem", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "FillerPreset", columns: table => new { Id = table.Column(type: "int", nullable: false) .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), Name = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), FillerKind = table.Column(type: "int", nullable: false), FillerMode = table.Column(type: "int", nullable: false), Duration = table.Column(type: "time(6)", nullable: true), Count = table.Column(type: "int", nullable: true), PadToNearestMinute = table.Column(type: "int", nullable: true), AllowWatermarks = table.Column(type: "tinyint(1)", nullable: false), CollectionType = table.Column(type: "int", nullable: false), CollectionId = table.Column(type: "int", nullable: true), MediaItemId = table.Column(type: "int", nullable: true), MultiCollectionId = table.Column(type: "int", nullable: true), SmartCollectionId = table.Column(type: "int", nullable: true) }, constraints: table => { table.PrimaryKey("PK_FillerPreset", x => x.Id); table.ForeignKey( name: "FK_FillerPreset_Collection_CollectionId", column: x => x.CollectionId, principalTable: "Collection", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_FillerPreset_MediaItem_MediaItemId", column: x => x.MediaItemId, principalTable: "MediaItem", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_FillerPreset_MultiCollection_MultiCollectionId", column: x => x.MultiCollectionId, principalTable: "MultiCollection", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_FillerPreset_SmartCollection_SmartCollectionId", column: x => x.SmartCollectionId, principalTable: "SmartCollection", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "Movie", columns: table => new { Id = table.Column(type: "int", nullable: false) }, constraints: table => { table.PrimaryKey("PK_Movie", x => x.Id); table.ForeignKey( name: "FK_Movie_MediaItem_Id", column: x => x.Id, principalTable: "MediaItem", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "OtherVideo", columns: table => new { Id = table.Column(type: "int", nullable: false) }, constraints: table => { table.PrimaryKey("PK_OtherVideo", x => x.Id); table.ForeignKey( name: "FK_OtherVideo_MediaItem_Id", column: x => x.Id, principalTable: "MediaItem", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "Show", columns: table => new { Id = table.Column(type: "int", nullable: false) }, constraints: table => { table.PrimaryKey("PK_Show", x => x.Id); table.ForeignKey( name: "FK_Show_MediaItem_Id", column: x => x.Id, principalTable: "MediaItem", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "Song", columns: table => new { Id = table.Column(type: "int", nullable: false) }, constraints: table => { table.PrimaryKey("PK_Song", x => x.Id); table.ForeignKey( name: "FK_Song_MediaItem_Id", column: x => x.Id, principalTable: "MediaItem", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "TraktListItem", columns: table => new { Id = table.Column(type: "int", nullable: false) .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), TraktListId = table.Column(type: "int", nullable: false), Kind = table.Column(type: "int", nullable: false), TraktId = table.Column(type: "int", nullable: false), Rank = table.Column(type: "int", nullable: false), Title = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), Year = table.Column(type: "int", nullable: true), Season = table.Column(type: "int", nullable: true), Episode = table.Column(type: "int", nullable: true), MediaItemId = table.Column(type: "int", nullable: true) }, constraints: table => { table.PrimaryKey("PK_TraktListItem", x => x.Id); table.ForeignKey( name: "FK_TraktListItem_MediaItem_MediaItemId", column: x => x.MediaItemId, principalTable: "MediaItem", principalColumn: "Id", onDelete: ReferentialAction.SetNull); table.ForeignKey( name: "FK_TraktListItem_TraktList_TraktListId", column: x => x.TraktListId, principalTable: "TraktList", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "ArtistMetadata", columns: table => new { Id = table.Column(type: "int", nullable: false) .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), Disambiguation = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), Biography = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), Formed = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), ArtistId = table.Column(type: "int", nullable: false), MetadataKind = table.Column(type: "int", nullable: false), Title = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), OriginalTitle = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), SortTitle = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), Year = table.Column(type: "int", nullable: true), ReleaseDate = table.Column(type: "datetime(6)", nullable: true), DateAdded = table.Column(type: "datetime(6)", nullable: false), DateUpdated = table.Column(type: "datetime(6)", nullable: false) }, constraints: table => { table.PrimaryKey("PK_ArtistMetadata", x => x.Id); table.ForeignKey( name: "FK_ArtistMetadata_Artist_ArtistId", column: x => x.ArtistId, principalTable: "Artist", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "MusicVideo", columns: table => new { Id = table.Column(type: "int", nullable: false), ArtistId = table.Column(type: "int", nullable: false) }, constraints: table => { table.PrimaryKey("PK_MusicVideo", x => x.Id); table.ForeignKey( name: "FK_MusicVideo_Artist_ArtistId", column: x => x.ArtistId, principalTable: "Artist", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_MusicVideo_MediaItem_Id", column: x => x.Id, principalTable: "MediaItem", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "Channel", columns: table => new { Id = table.Column(type: "int", nullable: false) .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), UniqueId = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci"), Number = table.Column(type: "varchar(255)", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), Name = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), Group = table.Column(type: "longtext", nullable: false, defaultValue: "ErsatzTV") .Annotation("MySql:CharSet", "utf8mb4"), Categories = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), FFmpegProfileId = table.Column(type: "int", nullable: false), WatermarkId = table.Column(type: "int", nullable: true), FallbackFillerId = table.Column(type: "int", nullable: true), StreamingMode = table.Column(type: "int", nullable: false), PreferredAudioLanguageCode = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), PreferredAudioTitle = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), PreferredSubtitleLanguageCode = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), SubtitleMode = table.Column(type: "int", nullable: false), MusicVideoCreditsMode = table.Column(type: "int", nullable: false), MusicVideoCreditsTemplate = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4") }, constraints: table => { table.PrimaryKey("PK_Channel", x => x.Id); table.ForeignKey( name: "FK_Channel_ChannelWatermark_WatermarkId", column: x => x.WatermarkId, principalTable: "ChannelWatermark", principalColumn: "Id", onDelete: ReferentialAction.SetNull); table.ForeignKey( name: "FK_Channel_FFmpegProfile_FFmpegProfileId", column: x => x.FFmpegProfileId, principalTable: "FFmpegProfile", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_Channel_FillerPreset_FallbackFillerId", column: x => x.FallbackFillerId, principalTable: "FillerPreset", principalColumn: "Id", onDelete: ReferentialAction.SetNull); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "ProgramScheduleItem", columns: table => new { Id = table.Column(type: "int", nullable: false) .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), Index = table.Column(type: "int", nullable: false), StartTime = table.Column(type: "time(6)", nullable: true), CollectionType = table.Column(type: "int", nullable: false), GuideMode = table.Column(type: "int", nullable: false), CustomTitle = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), ProgramScheduleId = table.Column(type: "int", nullable: false), CollectionId = table.Column(type: "int", nullable: true), MediaItemId = table.Column(type: "int", nullable: true), MultiCollectionId = table.Column(type: "int", nullable: true), SmartCollectionId = table.Column(type: "int", nullable: true), PlaybackOrder = table.Column(type: "int", nullable: false), PreRollFillerId = table.Column(type: "int", nullable: true), MidRollFillerId = table.Column(type: "int", nullable: true), PostRollFillerId = table.Column(type: "int", nullable: true), TailFillerId = table.Column(type: "int", nullable: true), FallbackFillerId = table.Column(type: "int", nullable: true), WatermarkId = table.Column(type: "int", nullable: true), PreferredAudioLanguageCode = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), PreferredAudioTitle = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), PreferredSubtitleLanguageCode = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), SubtitleMode = table.Column(type: "int", nullable: true) }, constraints: table => { table.PrimaryKey("PK_ProgramScheduleItem", x => x.Id); table.ForeignKey( name: "FK_ProgramScheduleItem_ChannelWatermark_WatermarkId", column: x => x.WatermarkId, principalTable: "ChannelWatermark", principalColumn: "Id", onDelete: ReferentialAction.SetNull); table.ForeignKey( name: "FK_ProgramScheduleItem_Collection_CollectionId", column: x => x.CollectionId, principalTable: "Collection", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_ProgramScheduleItem_FillerPreset_FallbackFillerId", column: x => x.FallbackFillerId, principalTable: "FillerPreset", principalColumn: "Id", onDelete: ReferentialAction.SetNull); table.ForeignKey( name: "FK_ProgramScheduleItem_FillerPreset_MidRollFillerId", column: x => x.MidRollFillerId, principalTable: "FillerPreset", principalColumn: "Id", onDelete: ReferentialAction.SetNull); table.ForeignKey( name: "FK_ProgramScheduleItem_FillerPreset_PostRollFillerId", column: x => x.PostRollFillerId, principalTable: "FillerPreset", principalColumn: "Id", onDelete: ReferentialAction.SetNull); table.ForeignKey( name: "FK_ProgramScheduleItem_FillerPreset_PreRollFillerId", column: x => x.PreRollFillerId, principalTable: "FillerPreset", principalColumn: "Id", onDelete: ReferentialAction.SetNull); table.ForeignKey( name: "FK_ProgramScheduleItem_FillerPreset_TailFillerId", column: x => x.TailFillerId, principalTable: "FillerPreset", principalColumn: "Id", onDelete: ReferentialAction.SetNull); table.ForeignKey( name: "FK_ProgramScheduleItem_MediaItem_MediaItemId", column: x => x.MediaItemId, principalTable: "MediaItem", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_ProgramScheduleItem_MultiCollection_MultiCollectionId", column: x => x.MultiCollectionId, principalTable: "MultiCollection", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_ProgramScheduleItem_ProgramSchedule_ProgramScheduleId", column: x => x.ProgramScheduleId, principalTable: "ProgramSchedule", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_ProgramScheduleItem_SmartCollection_SmartCollectionId", column: x => x.SmartCollectionId, principalTable: "SmartCollection", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "EmbyMovie", columns: table => new { Id = table.Column(type: "int", nullable: false), ItemId = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), Etag = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4") }, constraints: table => { table.PrimaryKey("PK_EmbyMovie", x => x.Id); table.ForeignKey( name: "FK_EmbyMovie_Movie_Id", column: x => x.Id, principalTable: "Movie", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "JellyfinMovie", columns: table => new { Id = table.Column(type: "int", nullable: false), ItemId = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), Etag = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4") }, constraints: table => { table.PrimaryKey("PK_JellyfinMovie", x => x.Id); table.ForeignKey( name: "FK_JellyfinMovie_Movie_Id", column: x => x.Id, principalTable: "Movie", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "MovieMetadata", columns: table => new { Id = table.Column(type: "int", nullable: false) .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), ContentRating = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), Outline = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), Plot = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), Tagline = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), MovieId = table.Column(type: "int", nullable: false), MetadataKind = table.Column(type: "int", nullable: false), Title = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), OriginalTitle = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), SortTitle = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), Year = table.Column(type: "int", nullable: true), ReleaseDate = table.Column(type: "datetime(6)", nullable: true), DateAdded = table.Column(type: "datetime(6)", nullable: false), DateUpdated = table.Column(type: "datetime(6)", nullable: false) }, constraints: table => { table.PrimaryKey("PK_MovieMetadata", x => x.Id); table.ForeignKey( name: "FK_MovieMetadata_Movie_MovieId", column: x => x.MovieId, principalTable: "Movie", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "PlexMovie", columns: table => new { Id = table.Column(type: "int", nullable: false), Key = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), Etag = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4") }, constraints: table => { table.PrimaryKey("PK_PlexMovie", x => x.Id); table.ForeignKey( name: "FK_PlexMovie_Movie_Id", column: x => x.Id, principalTable: "Movie", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "OtherVideoMetadata", columns: table => new { Id = table.Column(type: "int", nullable: false) .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), ContentRating = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), Outline = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), Plot = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), Tagline = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), OtherVideoId = table.Column(type: "int", nullable: false), MetadataKind = table.Column(type: "int", nullable: false), Title = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), OriginalTitle = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), SortTitle = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), Year = table.Column(type: "int", nullable: true), ReleaseDate = table.Column(type: "datetime(6)", nullable: true), DateAdded = table.Column(type: "datetime(6)", nullable: false), DateUpdated = table.Column(type: "datetime(6)", nullable: false) }, constraints: table => { table.PrimaryKey("PK_OtherVideoMetadata", x => x.Id); table.ForeignKey( name: "FK_OtherVideoMetadata_OtherVideo_OtherVideoId", column: x => x.OtherVideoId, principalTable: "OtherVideo", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "EmbyShow", columns: table => new { Id = table.Column(type: "int", nullable: false), ItemId = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), Etag = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4") }, constraints: table => { table.PrimaryKey("PK_EmbyShow", x => x.Id); table.ForeignKey( name: "FK_EmbyShow_Show_Id", column: x => x.Id, principalTable: "Show", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "JellyfinShow", columns: table => new { Id = table.Column(type: "int", nullable: false), ItemId = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), Etag = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4") }, constraints: table => { table.PrimaryKey("PK_JellyfinShow", x => x.Id); table.ForeignKey( name: "FK_JellyfinShow_Show_Id", column: x => x.Id, principalTable: "Show", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "PlexShow", columns: table => new { Id = table.Column(type: "int", nullable: false), Key = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), Etag = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4") }, constraints: table => { table.PrimaryKey("PK_PlexShow", x => x.Id); table.ForeignKey( name: "FK_PlexShow_Show_Id", column: x => x.Id, principalTable: "Show", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "Season", columns: table => new { Id = table.Column(type: "int", nullable: false), SeasonNumber = table.Column(type: "int", nullable: false), ShowId = table.Column(type: "int", nullable: false) }, constraints: table => { table.PrimaryKey("PK_Season", x => x.Id); table.ForeignKey( name: "FK_Season_MediaItem_Id", column: x => x.Id, principalTable: "MediaItem", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_Season_Show_ShowId", column: x => x.ShowId, principalTable: "Show", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "ShowMetadata", columns: table => new { Id = table.Column(type: "int", nullable: false) .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), ContentRating = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), Outline = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), Plot = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), Tagline = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), ShowId = table.Column(type: "int", nullable: false), MetadataKind = table.Column(type: "int", nullable: false), Title = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), OriginalTitle = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), SortTitle = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), Year = table.Column(type: "int", nullable: true), ReleaseDate = table.Column(type: "datetime(6)", nullable: true), DateAdded = table.Column(type: "datetime(6)", nullable: false), DateUpdated = table.Column(type: "datetime(6)", nullable: false) }, constraints: table => { table.PrimaryKey("PK_ShowMetadata", x => x.Id); table.ForeignKey( name: "FK_ShowMetadata_Show_ShowId", column: x => x.ShowId, principalTable: "Show", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "SongMetadata", columns: table => new { Id = table.Column(type: "int", nullable: false) .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), Album = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), Artist = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), AlbumArtist = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), Date = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), Track = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), SongId = table.Column(type: "int", nullable: false), MetadataKind = table.Column(type: "int", nullable: false), Title = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), OriginalTitle = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), SortTitle = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), Year = table.Column(type: "int", nullable: true), ReleaseDate = table.Column(type: "datetime(6)", nullable: true), DateAdded = table.Column(type: "datetime(6)", nullable: false), DateUpdated = table.Column(type: "datetime(6)", nullable: false) }, constraints: table => { table.PrimaryKey("PK_SongMetadata", x => x.Id); table.ForeignKey( name: "FK_SongMetadata_Song_SongId", column: x => x.SongId, principalTable: "Song", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "TraktListItemGuid", columns: table => new { Id = table.Column(type: "int", nullable: false) .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), Guid = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), TraktListItemId = table.Column(type: "int", nullable: false) }, constraints: table => { table.PrimaryKey("PK_TraktListItemGuid", x => x.Id); table.ForeignKey( name: "FK_TraktListItemGuid_TraktListItem_TraktListItemId", column: x => x.TraktListItemId, principalTable: "TraktListItem", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "Mood", columns: table => new { Id = table.Column(type: "int", nullable: false) .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), Name = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), ArtistMetadataId = table.Column(type: "int", nullable: true) }, constraints: table => { table.PrimaryKey("PK_Mood", x => x.Id); table.ForeignKey( name: "FK_Mood_ArtistMetadata_ArtistMetadataId", column: x => x.ArtistMetadataId, principalTable: "ArtistMetadata", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "Style", columns: table => new { Id = table.Column(type: "int", nullable: false) .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), Name = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), ArtistMetadataId = table.Column(type: "int", nullable: true) }, constraints: table => { table.PrimaryKey("PK_Style", x => x.Id); table.ForeignKey( name: "FK_Style_ArtistMetadata_ArtistMetadataId", column: x => x.ArtistMetadataId, principalTable: "ArtistMetadata", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "MusicVideoMetadata", columns: table => new { Id = table.Column(type: "int", nullable: false) .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), Album = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), Plot = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), Track = table.Column(type: "int", nullable: true), MusicVideoId = table.Column(type: "int", nullable: false), MetadataKind = table.Column(type: "int", nullable: false), Title = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), OriginalTitle = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), SortTitle = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), Year = table.Column(type: "int", nullable: true), ReleaseDate = table.Column(type: "datetime(6)", nullable: true), DateAdded = table.Column(type: "datetime(6)", nullable: false), DateUpdated = table.Column(type: "datetime(6)", nullable: false) }, constraints: table => { table.PrimaryKey("PK_MusicVideoMetadata", x => x.Id); table.ForeignKey( name: "FK_MusicVideoMetadata_MusicVideo_MusicVideoId", column: x => x.MusicVideoId, principalTable: "MusicVideo", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "Playout", columns: table => new { Id = table.Column(type: "int", nullable: false) .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), ChannelId = table.Column(type: "int", nullable: false), ProgramScheduleId = table.Column(type: "int", nullable: false), ProgramSchedulePlayoutType = table.Column(type: "int", nullable: false), DailyRebuildTime = table.Column(type: "time(6)", nullable: true) }, constraints: table => { table.PrimaryKey("PK_Playout", x => x.Id); table.ForeignKey( name: "FK_Playout_Channel_ChannelId", column: x => x.ChannelId, principalTable: "Channel", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_Playout_ProgramSchedule_ProgramScheduleId", column: x => x.ProgramScheduleId, principalTable: "ProgramSchedule", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "ProgramScheduleDurationItem", columns: table => new { Id = table.Column(type: "int", nullable: false), PlayoutDuration = table.Column(type: "time(6)", nullable: false), TailMode = table.Column(type: "int", nullable: false), DiscardToFillAttempts = table.Column(type: "int", nullable: false) }, constraints: table => { table.PrimaryKey("PK_ProgramScheduleDurationItem", x => x.Id); table.ForeignKey( name: "FK_ProgramScheduleDurationItem_ProgramScheduleItem_Id", column: x => x.Id, principalTable: "ProgramScheduleItem", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "ProgramScheduleFloodItem", columns: table => new { Id = table.Column(type: "int", nullable: false) }, constraints: table => { table.PrimaryKey("PK_ProgramScheduleFloodItem", x => x.Id); table.ForeignKey( name: "FK_ProgramScheduleFloodItem_ProgramScheduleItem_Id", column: x => x.Id, principalTable: "ProgramScheduleItem", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "ProgramScheduleMultipleItem", columns: table => new { Id = table.Column(type: "int", nullable: false), Count = table.Column(type: "int", nullable: false) }, constraints: table => { table.PrimaryKey("PK_ProgramScheduleMultipleItem", x => x.Id); table.ForeignKey( name: "FK_ProgramScheduleMultipleItem_ProgramScheduleItem_Id", column: x => x.Id, principalTable: "ProgramScheduleItem", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "ProgramScheduleOneItem", columns: table => new { Id = table.Column(type: "int", nullable: false) }, constraints: table => { table.PrimaryKey("PK_ProgramScheduleOneItem", x => x.Id); table.ForeignKey( name: "FK_ProgramScheduleOneItem_ProgramScheduleItem_Id", column: x => x.Id, principalTable: "ProgramScheduleItem", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "EmbySeason", columns: table => new { Id = table.Column(type: "int", nullable: false), ItemId = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), Etag = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4") }, constraints: table => { table.PrimaryKey("PK_EmbySeason", x => x.Id); table.ForeignKey( name: "FK_EmbySeason_Season_Id", column: x => x.Id, principalTable: "Season", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "Episode", columns: table => new { Id = table.Column(type: "int", nullable: false), SeasonId = table.Column(type: "int", nullable: false) }, constraints: table => { table.PrimaryKey("PK_Episode", x => x.Id); table.ForeignKey( name: "FK_Episode_MediaItem_Id", column: x => x.Id, principalTable: "MediaItem", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_Episode_Season_SeasonId", column: x => x.SeasonId, principalTable: "Season", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "JellyfinSeason", columns: table => new { Id = table.Column(type: "int", nullable: false), ItemId = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), Etag = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4") }, constraints: table => { table.PrimaryKey("PK_JellyfinSeason", x => x.Id); table.ForeignKey( name: "FK_JellyfinSeason_Season_Id", column: x => x.Id, principalTable: "Season", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "PlexSeason", columns: table => new { Id = table.Column(type: "int", nullable: false), Key = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), Etag = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4") }, constraints: table => { table.PrimaryKey("PK_PlexSeason", x => x.Id); table.ForeignKey( name: "FK_PlexSeason_Season_Id", column: x => x.Id, principalTable: "Season", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "SeasonMetadata", columns: table => new { Id = table.Column(type: "int", nullable: false) .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), Outline = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), SeasonId = table.Column(type: "int", nullable: false), MetadataKind = table.Column(type: "int", nullable: false), Title = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), OriginalTitle = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), SortTitle = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), Year = table.Column(type: "int", nullable: true), ReleaseDate = table.Column(type: "datetime(6)", nullable: true), DateAdded = table.Column(type: "datetime(6)", nullable: false), DateUpdated = table.Column(type: "datetime(6)", nullable: false) }, constraints: table => { table.PrimaryKey("PK_SeasonMetadata", x => x.Id); table.ForeignKey( name: "FK_SeasonMetadata_Season_SeasonId", column: x => x.SeasonId, principalTable: "Season", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "MusicVideoArtist", columns: table => new { Id = table.Column(type: "int", nullable: false) .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), Name = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), MusicVideoMetadataId = table.Column(type: "int", nullable: true) }, constraints: table => { table.PrimaryKey("PK_MusicVideoArtist", x => x.Id); table.ForeignKey( name: "FK_MusicVideoArtist_MusicVideoMetadata_MusicVideoMetadataId", column: x => x.MusicVideoMetadataId, principalTable: "MusicVideoMetadata", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "PlayoutAnchor", columns: table => new { PlayoutId = table.Column(type: "int", nullable: false), NextStart = table.Column(type: "datetime(6)", nullable: false), MultipleRemaining = table.Column(type: "int", nullable: true), DurationFinish = table.Column(type: "datetime(6)", nullable: true), InFlood = table.Column(type: "tinyint(1)", nullable: false), InDurationFiller = table.Column(type: "tinyint(1)", nullable: false), NextGuideGroup = table.Column(type: "int", nullable: false) }, constraints: table => { table.PrimaryKey("PK_PlayoutAnchor", x => x.PlayoutId); table.ForeignKey( name: "FK_PlayoutAnchor_Playout_PlayoutId", column: x => x.PlayoutId, principalTable: "Playout", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "PlayoutItem", columns: table => new { Id = table.Column(type: "int", nullable: false) .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), MediaItemId = table.Column(type: "int", nullable: false), Start = table.Column(type: "datetime(6)", nullable: false), Finish = table.Column(type: "datetime(6)", nullable: false), GuideFinish = table.Column(type: "datetime(6)", nullable: true), CustomTitle = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), GuideGroup = table.Column(type: "int", nullable: false), FillerKind = table.Column(type: "int", nullable: false), PlayoutId = table.Column(type: "int", nullable: false), InPoint = table.Column(type: "time(6)", nullable: false), OutPoint = table.Column(type: "time(6)", nullable: false), ChapterTitle = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), WatermarkId = table.Column(type: "int", nullable: true), DisableWatermarks = table.Column(type: "tinyint(1)", nullable: false), PreferredAudioLanguageCode = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), PreferredAudioTitle = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), PreferredSubtitleLanguageCode = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), SubtitleMode = table.Column(type: "int", nullable: true) }, constraints: table => { table.PrimaryKey("PK_PlayoutItem", x => x.Id); table.ForeignKey( name: "FK_PlayoutItem_ChannelWatermark_WatermarkId", column: x => x.WatermarkId, principalTable: "ChannelWatermark", principalColumn: "Id", onDelete: ReferentialAction.SetNull); table.ForeignKey( name: "FK_PlayoutItem_MediaItem_MediaItemId", column: x => x.MediaItemId, principalTable: "MediaItem", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_PlayoutItem_Playout_PlayoutId", column: x => x.PlayoutId, principalTable: "Playout", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "PlayoutProgramScheduleAnchor", columns: table => new { Id = table.Column(type: "int", nullable: false) .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), PlayoutId = table.Column(type: "int", nullable: false), AnchorDate = table.Column(type: "datetime(6)", nullable: true), CollectionType = table.Column(type: "int", nullable: false), CollectionId = table.Column(type: "int", nullable: true), MultiCollectionId = table.Column(type: "int", nullable: true), SmartCollectionId = table.Column(type: "int", nullable: true), MediaItemId = table.Column(type: "int", nullable: true) }, constraints: table => { table.PrimaryKey("PK_PlayoutProgramScheduleAnchor", x => x.Id); table.ForeignKey( name: "FK_PlayoutProgramScheduleAnchor_Collection_CollectionId", column: x => x.CollectionId, principalTable: "Collection", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_PlayoutProgramScheduleAnchor_MediaItem_MediaItemId", column: x => x.MediaItemId, principalTable: "MediaItem", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_PlayoutProgramScheduleAnchor_MultiCollection_MultiCollection~", column: x => x.MultiCollectionId, principalTable: "MultiCollection", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_PlayoutProgramScheduleAnchor_Playout_PlayoutId", column: x => x.PlayoutId, principalTable: "Playout", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_PlayoutProgramScheduleAnchor_SmartCollection_SmartCollection~", column: x => x.SmartCollectionId, principalTable: "SmartCollection", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "ProgramScheduleAlternate", columns: table => new { Id = table.Column(type: "int", nullable: false) .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), PlayoutId = table.Column(type: "int", nullable: false), ProgramScheduleId = table.Column(type: "int", nullable: false), Index = table.Column(type: "int", nullable: false), DaysOfWeek = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), DaysOfMonth = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), MonthsOfYear = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4") }, constraints: table => { table.PrimaryKey("PK_ProgramScheduleAlternate", x => x.Id); table.ForeignKey( name: "FK_ProgramScheduleAlternate_Playout_PlayoutId", column: x => x.PlayoutId, principalTable: "Playout", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_ProgramScheduleAlternate_ProgramSchedule_ProgramScheduleId", column: x => x.ProgramScheduleId, principalTable: "ProgramSchedule", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "EmbyEpisode", columns: table => new { Id = table.Column(type: "int", nullable: false), ItemId = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), Etag = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4") }, constraints: table => { table.PrimaryKey("PK_EmbyEpisode", x => x.Id); table.ForeignKey( name: "FK_EmbyEpisode_Episode_Id", column: x => x.Id, principalTable: "Episode", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "EpisodeMetadata", columns: table => new { Id = table.Column(type: "int", nullable: false) .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), EpisodeNumber = table.Column(type: "int", nullable: false), Outline = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), Plot = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), Tagline = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), EpisodeId = table.Column(type: "int", nullable: false), MetadataKind = table.Column(type: "int", nullable: false), Title = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), OriginalTitle = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), SortTitle = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), Year = table.Column(type: "int", nullable: true), ReleaseDate = table.Column(type: "datetime(6)", nullable: true), DateAdded = table.Column(type: "datetime(6)", nullable: false), DateUpdated = table.Column(type: "datetime(6)", nullable: false) }, constraints: table => { table.PrimaryKey("PK_EpisodeMetadata", x => x.Id); table.ForeignKey( name: "FK_EpisodeMetadata_Episode_EpisodeId", column: x => x.EpisodeId, principalTable: "Episode", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "JellyfinEpisode", columns: table => new { Id = table.Column(type: "int", nullable: false), ItemId = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), Etag = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4") }, constraints: table => { table.PrimaryKey("PK_JellyfinEpisode", x => x.Id); table.ForeignKey( name: "FK_JellyfinEpisode_Episode_Id", column: x => x.Id, principalTable: "Episode", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "MediaVersion", columns: table => new { Id = table.Column(type: "int", nullable: false) .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), Name = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), Duration = table.Column(type: "time(6)", nullable: false), SampleAspectRatio = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), DisplayAspectRatio = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), RFrameRate = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), VideoScanKind = table.Column(type: "int", nullable: false), DateAdded = table.Column(type: "datetime(6)", nullable: false), DateUpdated = table.Column(type: "datetime(6)", nullable: false), Width = table.Column(type: "int", nullable: false), Height = table.Column(type: "int", nullable: false), EpisodeId = table.Column(type: "int", nullable: true), MovieId = table.Column(type: "int", nullable: true), MusicVideoId = table.Column(type: "int", nullable: true), OtherVideoId = table.Column(type: "int", nullable: true), SongId = table.Column(type: "int", nullable: true) }, constraints: table => { table.PrimaryKey("PK_MediaVersion", x => x.Id); table.ForeignKey( name: "FK_MediaVersion_Episode_EpisodeId", column: x => x.EpisodeId, principalTable: "Episode", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_MediaVersion_Movie_MovieId", column: x => x.MovieId, principalTable: "Movie", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_MediaVersion_MusicVideo_MusicVideoId", column: x => x.MusicVideoId, principalTable: "MusicVideo", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_MediaVersion_OtherVideo_OtherVideoId", column: x => x.OtherVideoId, principalTable: "OtherVideo", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_MediaVersion_Song_SongId", column: x => x.SongId, principalTable: "Song", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "PlexEpisode", columns: table => new { Id = table.Column(type: "int", nullable: false), Key = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), Etag = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4") }, constraints: table => { table.PrimaryKey("PK_PlexEpisode", x => x.Id); table.ForeignKey( name: "FK_PlexEpisode_Episode_Id", column: x => x.Id, principalTable: "Episode", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "ScheduleItemsEnumeratorState", columns: table => new { PlayoutAnchorPlayoutId = table.Column(type: "int", nullable: false), Seed = table.Column(type: "int", nullable: false), Index = table.Column(type: "int", nullable: false) }, constraints: table => { table.PrimaryKey("PK_ScheduleItemsEnumeratorState", x => x.PlayoutAnchorPlayoutId); table.ForeignKey( name: "FK_ScheduleItemsEnumeratorState_PlayoutAnchor_PlayoutAnchorPlay~", column: x => x.PlayoutAnchorPlayoutId, principalTable: "PlayoutAnchor", principalColumn: "PlayoutId", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "CollectionEnumeratorState", columns: table => new { PlayoutProgramScheduleAnchorId = table.Column(type: "int", nullable: false), Seed = table.Column(type: "int", nullable: false), Index = table.Column(type: "int", nullable: false) }, constraints: table => { table.PrimaryKey("PK_CollectionEnumeratorState", x => x.PlayoutProgramScheduleAnchorId); table.ForeignKey( name: "FK_CollectionEnumeratorState_PlayoutProgramScheduleAnchor_Playo~", column: x => x.PlayoutProgramScheduleAnchorId, principalTable: "PlayoutProgramScheduleAnchor", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "Artwork", columns: table => new { Id = table.Column(type: "int", nullable: false) .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), Path = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), SourcePath = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), BlurHash43 = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), BlurHash54 = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), BlurHash64 = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), ArtworkKind = table.Column(type: "int", nullable: false), DateAdded = table.Column(type: "datetime(6)", nullable: false), DateUpdated = table.Column(type: "datetime(6)", nullable: false), ArtistMetadataId = table.Column(type: "int", nullable: true), ChannelId = table.Column(type: "int", nullable: true), EpisodeMetadataId = table.Column(type: "int", nullable: true), MovieMetadataId = table.Column(type: "int", nullable: true), MusicVideoMetadataId = table.Column(type: "int", nullable: true), OtherVideoMetadataId = table.Column(type: "int", nullable: true), SeasonMetadataId = table.Column(type: "int", nullable: true), ShowMetadataId = table.Column(type: "int", nullable: true), SongMetadataId = table.Column(type: "int", nullable: true) }, constraints: table => { table.PrimaryKey("PK_Artwork", x => x.Id); table.ForeignKey( name: "FK_Artwork_ArtistMetadata_ArtistMetadataId", column: x => x.ArtistMetadataId, principalTable: "ArtistMetadata", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_Artwork_Channel_ChannelId", column: x => x.ChannelId, principalTable: "Channel", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_Artwork_EpisodeMetadata_EpisodeMetadataId", column: x => x.EpisodeMetadataId, principalTable: "EpisodeMetadata", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_Artwork_MovieMetadata_MovieMetadataId", column: x => x.MovieMetadataId, principalTable: "MovieMetadata", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_Artwork_MusicVideoMetadata_MusicVideoMetadataId", column: x => x.MusicVideoMetadataId, principalTable: "MusicVideoMetadata", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_Artwork_OtherVideoMetadata_OtherVideoMetadataId", column: x => x.OtherVideoMetadataId, principalTable: "OtherVideoMetadata", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_Artwork_SeasonMetadata_SeasonMetadataId", column: x => x.SeasonMetadataId, principalTable: "SeasonMetadata", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_Artwork_ShowMetadata_ShowMetadataId", column: x => x.ShowMetadataId, principalTable: "ShowMetadata", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_Artwork_SongMetadata_SongMetadataId", column: x => x.SongMetadataId, principalTable: "SongMetadata", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "Director", columns: table => new { Id = table.Column(type: "int", nullable: false) .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), Name = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), EpisodeMetadataId = table.Column(type: "int", nullable: true), MovieMetadataId = table.Column(type: "int", nullable: true), MusicVideoMetadataId = table.Column(type: "int", nullable: true), OtherVideoMetadataId = table.Column(type: "int", nullable: true) }, constraints: table => { table.PrimaryKey("PK_Director", x => x.Id); table.ForeignKey( name: "FK_Director_EpisodeMetadata_EpisodeMetadataId", column: x => x.EpisodeMetadataId, principalTable: "EpisodeMetadata", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_Director_MovieMetadata_MovieMetadataId", column: x => x.MovieMetadataId, principalTable: "MovieMetadata", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_Director_MusicVideoMetadata_MusicVideoMetadataId", column: x => x.MusicVideoMetadataId, principalTable: "MusicVideoMetadata", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_Director_OtherVideoMetadata_OtherVideoMetadataId", column: x => x.OtherVideoMetadataId, principalTable: "OtherVideoMetadata", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "Genre", columns: table => new { Id = table.Column(type: "int", nullable: false) .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), Name = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), ArtistMetadataId = table.Column(type: "int", nullable: true), EpisodeMetadataId = table.Column(type: "int", nullable: true), MovieMetadataId = table.Column(type: "int", nullable: true), MusicVideoMetadataId = table.Column(type: "int", nullable: true), OtherVideoMetadataId = table.Column(type: "int", nullable: true), SeasonMetadataId = table.Column(type: "int", nullable: true), ShowMetadataId = table.Column(type: "int", nullable: true), SongMetadataId = table.Column(type: "int", nullable: true) }, constraints: table => { table.PrimaryKey("PK_Genre", x => x.Id); table.ForeignKey( name: "FK_Genre_ArtistMetadata_ArtistMetadataId", column: x => x.ArtistMetadataId, principalTable: "ArtistMetadata", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_Genre_EpisodeMetadata_EpisodeMetadataId", column: x => x.EpisodeMetadataId, principalTable: "EpisodeMetadata", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_Genre_MovieMetadata_MovieMetadataId", column: x => x.MovieMetadataId, principalTable: "MovieMetadata", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_Genre_MusicVideoMetadata_MusicVideoMetadataId", column: x => x.MusicVideoMetadataId, principalTable: "MusicVideoMetadata", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_Genre_OtherVideoMetadata_OtherVideoMetadataId", column: x => x.OtherVideoMetadataId, principalTable: "OtherVideoMetadata", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_Genre_SeasonMetadata_SeasonMetadataId", column: x => x.SeasonMetadataId, principalTable: "SeasonMetadata", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_Genre_ShowMetadata_ShowMetadataId", column: x => x.ShowMetadataId, principalTable: "ShowMetadata", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_Genre_SongMetadata_SongMetadataId", column: x => x.SongMetadataId, principalTable: "SongMetadata", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "MetadataGuid", columns: table => new { Id = table.Column(type: "int", nullable: false) .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), Guid = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), ArtistMetadataId = table.Column(type: "int", nullable: true), EpisodeMetadataId = table.Column(type: "int", nullable: true), MovieMetadataId = table.Column(type: "int", nullable: true), MusicVideoMetadataId = table.Column(type: "int", nullable: true), OtherVideoMetadataId = table.Column(type: "int", nullable: true), SeasonMetadataId = table.Column(type: "int", nullable: true), ShowMetadataId = table.Column(type: "int", nullable: true), SongMetadataId = table.Column(type: "int", nullable: true) }, constraints: table => { table.PrimaryKey("PK_MetadataGuid", x => x.Id); table.ForeignKey( name: "FK_MetadataGuid_ArtistMetadata_ArtistMetadataId", column: x => x.ArtistMetadataId, principalTable: "ArtistMetadata", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_MetadataGuid_EpisodeMetadata_EpisodeMetadataId", column: x => x.EpisodeMetadataId, principalTable: "EpisodeMetadata", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_MetadataGuid_MovieMetadata_MovieMetadataId", column: x => x.MovieMetadataId, principalTable: "MovieMetadata", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_MetadataGuid_MusicVideoMetadata_MusicVideoMetadataId", column: x => x.MusicVideoMetadataId, principalTable: "MusicVideoMetadata", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_MetadataGuid_OtherVideoMetadata_OtherVideoMetadataId", column: x => x.OtherVideoMetadataId, principalTable: "OtherVideoMetadata", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_MetadataGuid_SeasonMetadata_SeasonMetadataId", column: x => x.SeasonMetadataId, principalTable: "SeasonMetadata", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_MetadataGuid_ShowMetadata_ShowMetadataId", column: x => x.ShowMetadataId, principalTable: "ShowMetadata", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_MetadataGuid_SongMetadata_SongMetadataId", column: x => x.SongMetadataId, principalTable: "SongMetadata", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "Studio", columns: table => new { Id = table.Column(type: "int", nullable: false) .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), Name = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), ArtistMetadataId = table.Column(type: "int", nullable: true), EpisodeMetadataId = table.Column(type: "int", nullable: true), MovieMetadataId = table.Column(type: "int", nullable: true), MusicVideoMetadataId = table.Column(type: "int", nullable: true), OtherVideoMetadataId = table.Column(type: "int", nullable: true), SeasonMetadataId = table.Column(type: "int", nullable: true), ShowMetadataId = table.Column(type: "int", nullable: true), SongMetadataId = table.Column(type: "int", nullable: true) }, constraints: table => { table.PrimaryKey("PK_Studio", x => x.Id); table.ForeignKey( name: "FK_Studio_ArtistMetadata_ArtistMetadataId", column: x => x.ArtistMetadataId, principalTable: "ArtistMetadata", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_Studio_EpisodeMetadata_EpisodeMetadataId", column: x => x.EpisodeMetadataId, principalTable: "EpisodeMetadata", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_Studio_MovieMetadata_MovieMetadataId", column: x => x.MovieMetadataId, principalTable: "MovieMetadata", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_Studio_MusicVideoMetadata_MusicVideoMetadataId", column: x => x.MusicVideoMetadataId, principalTable: "MusicVideoMetadata", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_Studio_OtherVideoMetadata_OtherVideoMetadataId", column: x => x.OtherVideoMetadataId, principalTable: "OtherVideoMetadata", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_Studio_SeasonMetadata_SeasonMetadataId", column: x => x.SeasonMetadataId, principalTable: "SeasonMetadata", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_Studio_ShowMetadata_ShowMetadataId", column: x => x.ShowMetadataId, principalTable: "ShowMetadata", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_Studio_SongMetadata_SongMetadataId", column: x => x.SongMetadataId, principalTable: "SongMetadata", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "Subtitle", columns: table => new { Id = table.Column(type: "int", nullable: false) .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), SubtitleKind = table.Column(type: "int", nullable: false), Title = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), StreamIndex = table.Column(type: "int", nullable: false), Codec = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), Default = table.Column(type: "tinyint(1)", nullable: false), Forced = table.Column(type: "tinyint(1)", nullable: false), SDH = table.Column(type: "tinyint(1)", nullable: false, defaultValue: false), Language = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), IsExtracted = table.Column(type: "tinyint(1)", nullable: false, defaultValue: false), Path = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), DateAdded = table.Column(type: "datetime(6)", nullable: false), DateUpdated = table.Column(type: "datetime(6)", nullable: false), ArtistMetadataId = table.Column(type: "int", nullable: true), EpisodeMetadataId = table.Column(type: "int", nullable: true), MovieMetadataId = table.Column(type: "int", nullable: true), MusicVideoMetadataId = table.Column(type: "int", nullable: true), OtherVideoMetadataId = table.Column(type: "int", nullable: true), SeasonMetadataId = table.Column(type: "int", nullable: true), ShowMetadataId = table.Column(type: "int", nullable: true), SongMetadataId = table.Column(type: "int", nullable: true) }, constraints: table => { table.PrimaryKey("PK_Subtitle", x => x.Id); table.ForeignKey( name: "FK_Subtitle_ArtistMetadata_ArtistMetadataId", column: x => x.ArtistMetadataId, principalTable: "ArtistMetadata", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_Subtitle_EpisodeMetadata_EpisodeMetadataId", column: x => x.EpisodeMetadataId, principalTable: "EpisodeMetadata", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_Subtitle_MovieMetadata_MovieMetadataId", column: x => x.MovieMetadataId, principalTable: "MovieMetadata", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_Subtitle_MusicVideoMetadata_MusicVideoMetadataId", column: x => x.MusicVideoMetadataId, principalTable: "MusicVideoMetadata", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_Subtitle_OtherVideoMetadata_OtherVideoMetadataId", column: x => x.OtherVideoMetadataId, principalTable: "OtherVideoMetadata", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_Subtitle_SeasonMetadata_SeasonMetadataId", column: x => x.SeasonMetadataId, principalTable: "SeasonMetadata", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_Subtitle_ShowMetadata_ShowMetadataId", column: x => x.ShowMetadataId, principalTable: "ShowMetadata", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_Subtitle_SongMetadata_SongMetadataId", column: x => x.SongMetadataId, principalTable: "SongMetadata", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "Tag", columns: table => new { Id = table.Column(type: "int", nullable: false) .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), Name = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), ExternalCollectionId = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), ArtistMetadataId = table.Column(type: "int", nullable: true), EpisodeMetadataId = table.Column(type: "int", nullable: true), MovieMetadataId = table.Column(type: "int", nullable: true), MusicVideoMetadataId = table.Column(type: "int", nullable: true), OtherVideoMetadataId = table.Column(type: "int", nullable: true), SeasonMetadataId = table.Column(type: "int", nullable: true), ShowMetadataId = table.Column(type: "int", nullable: true), SongMetadataId = table.Column(type: "int", nullable: true) }, constraints: table => { table.PrimaryKey("PK_Tag", x => x.Id); table.ForeignKey( name: "FK_Tag_ArtistMetadata_ArtistMetadataId", column: x => x.ArtistMetadataId, principalTable: "ArtistMetadata", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_Tag_EpisodeMetadata_EpisodeMetadataId", column: x => x.EpisodeMetadataId, principalTable: "EpisodeMetadata", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_Tag_MovieMetadata_MovieMetadataId", column: x => x.MovieMetadataId, principalTable: "MovieMetadata", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_Tag_MusicVideoMetadata_MusicVideoMetadataId", column: x => x.MusicVideoMetadataId, principalTable: "MusicVideoMetadata", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_Tag_OtherVideoMetadata_OtherVideoMetadataId", column: x => x.OtherVideoMetadataId, principalTable: "OtherVideoMetadata", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_Tag_SeasonMetadata_SeasonMetadataId", column: x => x.SeasonMetadataId, principalTable: "SeasonMetadata", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_Tag_ShowMetadata_ShowMetadataId", column: x => x.ShowMetadataId, principalTable: "ShowMetadata", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_Tag_SongMetadata_SongMetadataId", column: x => x.SongMetadataId, principalTable: "SongMetadata", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "Writer", columns: table => new { Id = table.Column(type: "int", nullable: false) .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), Name = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), EpisodeMetadataId = table.Column(type: "int", nullable: true), MovieMetadataId = table.Column(type: "int", nullable: true), OtherVideoMetadataId = table.Column(type: "int", nullable: true) }, constraints: table => { table.PrimaryKey("PK_Writer", x => x.Id); table.ForeignKey( name: "FK_Writer_EpisodeMetadata_EpisodeMetadataId", column: x => x.EpisodeMetadataId, principalTable: "EpisodeMetadata", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_Writer_MovieMetadata_MovieMetadataId", column: x => x.MovieMetadataId, principalTable: "MovieMetadata", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_Writer_OtherVideoMetadata_OtherVideoMetadataId", column: x => x.OtherVideoMetadataId, principalTable: "OtherVideoMetadata", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "MediaChapter", columns: table => new { Id = table.Column(type: "int", nullable: false) .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), MediaVersionId = table.Column(type: "int", nullable: false), ChapterId = table.Column(type: "bigint", nullable: false), StartTime = table.Column(type: "time(6)", nullable: false), EndTime = table.Column(type: "time(6)", nullable: false), Title = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4") }, constraints: table => { table.PrimaryKey("PK_MediaChapter", x => x.Id); table.ForeignKey( name: "FK_MediaChapter_MediaVersion_MediaVersionId", column: x => x.MediaVersionId, principalTable: "MediaVersion", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "MediaFile", columns: table => new { Id = table.Column(type: "int", nullable: false) .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), Path = table.Column(type: "varchar(255)", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), MediaVersionId = table.Column(type: "int", nullable: false) }, constraints: table => { table.PrimaryKey("PK_MediaFile", x => x.Id); table.ForeignKey( name: "FK_MediaFile_MediaVersion_MediaVersionId", column: x => x.MediaVersionId, principalTable: "MediaVersion", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "MediaStream", columns: table => new { Id = table.Column(type: "int", nullable: false) .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), Index = table.Column(type: "int", nullable: false), Codec = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), Profile = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), MediaStreamKind = table.Column(type: "int", nullable: false), Language = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), Channels = table.Column(type: "int", nullable: false), Title = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), Default = table.Column(type: "tinyint(1)", nullable: false), Forced = table.Column(type: "tinyint(1)", nullable: false), AttachedPic = table.Column(type: "tinyint(1)", nullable: false), PixelFormat = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), ColorRange = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), ColorSpace = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), ColorTransfer = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), ColorPrimaries = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), BitsPerRawSample = table.Column(type: "int", nullable: false), FileName = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), MimeType = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), MediaVersionId = table.Column(type: "int", nullable: false) }, constraints: table => { table.PrimaryKey("PK_MediaStream", x => x.Id); table.ForeignKey( name: "FK_MediaStream_MediaVersion_MediaVersionId", column: x => x.MediaVersionId, principalTable: "MediaVersion", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "Actor", columns: table => new { Id = table.Column(type: "int", nullable: false) .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), Name = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), Role = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), Order = table.Column(type: "int", nullable: true), ArtworkId = table.Column(type: "int", nullable: true), ArtistMetadataId = table.Column(type: "int", nullable: true), EpisodeMetadataId = table.Column(type: "int", nullable: true), MovieMetadataId = table.Column(type: "int", nullable: true), MusicVideoMetadataId = table.Column(type: "int", nullable: true), OtherVideoMetadataId = table.Column(type: "int", nullable: true), SeasonMetadataId = table.Column(type: "int", nullable: true), ShowMetadataId = table.Column(type: "int", nullable: true), SongMetadataId = table.Column(type: "int", nullable: true) }, constraints: table => { table.PrimaryKey("PK_Actor", x => x.Id); table.ForeignKey( name: "FK_Actor_ArtistMetadata_ArtistMetadataId", column: x => x.ArtistMetadataId, principalTable: "ArtistMetadata", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_Actor_Artwork_ArtworkId", column: x => x.ArtworkId, principalTable: "Artwork", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_Actor_EpisodeMetadata_EpisodeMetadataId", column: x => x.EpisodeMetadataId, principalTable: "EpisodeMetadata", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_Actor_MovieMetadata_MovieMetadataId", column: x => x.MovieMetadataId, principalTable: "MovieMetadata", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_Actor_MusicVideoMetadata_MusicVideoMetadataId", column: x => x.MusicVideoMetadataId, principalTable: "MusicVideoMetadata", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_Actor_OtherVideoMetadata_OtherVideoMetadataId", column: x => x.OtherVideoMetadataId, principalTable: "OtherVideoMetadata", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_Actor_SeasonMetadata_SeasonMetadataId", column: x => x.SeasonMetadataId, principalTable: "SeasonMetadata", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_Actor_ShowMetadata_ShowMetadataId", column: x => x.ShowMetadataId, principalTable: "ShowMetadata", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_Actor_SongMetadata_SongMetadataId", column: x => x.SongMetadataId, principalTable: "SongMetadata", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "PlexMediaFile", columns: table => new { Id = table.Column(type: "int", nullable: false), PlexId = table.Column(type: "int", nullable: false), Key = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4") }, constraints: table => { table.PrimaryKey("PK_PlexMediaFile", x => x.Id); table.ForeignKey( name: "FK_PlexMediaFile_MediaFile_Id", column: x => x.Id, principalTable: "MediaFile", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateIndex( name: "IX_Actor_ArtistMetadataId", table: "Actor", column: "ArtistMetadataId"); migrationBuilder.CreateIndex( name: "IX_Actor_ArtworkId", table: "Actor", column: "ArtworkId", unique: true); migrationBuilder.CreateIndex( name: "IX_Actor_EpisodeMetadataId", table: "Actor", column: "EpisodeMetadataId"); migrationBuilder.CreateIndex( name: "IX_Actor_MovieMetadataId", table: "Actor", column: "MovieMetadataId"); migrationBuilder.CreateIndex( name: "IX_Actor_MusicVideoMetadataId", table: "Actor", column: "MusicVideoMetadataId"); migrationBuilder.CreateIndex( name: "IX_Actor_OtherVideoMetadataId", table: "Actor", column: "OtherVideoMetadataId"); migrationBuilder.CreateIndex( name: "IX_Actor_SeasonMetadataId", table: "Actor", column: "SeasonMetadataId"); migrationBuilder.CreateIndex( name: "IX_Actor_ShowMetadataId", table: "Actor", column: "ShowMetadataId"); migrationBuilder.CreateIndex( name: "IX_Actor_SongMetadataId", table: "Actor", column: "SongMetadataId"); migrationBuilder.CreateIndex( name: "IX_ArtistMetadata_ArtistId", table: "ArtistMetadata", column: "ArtistId"); migrationBuilder.CreateIndex( name: "IX_Artwork_ArtistMetadataId", table: "Artwork", column: "ArtistMetadataId"); migrationBuilder.CreateIndex( name: "IX_Artwork_ChannelId", table: "Artwork", column: "ChannelId"); migrationBuilder.CreateIndex( name: "IX_Artwork_EpisodeMetadataId", table: "Artwork", column: "EpisodeMetadataId"); migrationBuilder.CreateIndex( name: "IX_Artwork_MovieMetadataId", table: "Artwork", column: "MovieMetadataId"); migrationBuilder.CreateIndex( name: "IX_Artwork_MusicVideoMetadataId", table: "Artwork", column: "MusicVideoMetadataId"); migrationBuilder.CreateIndex( name: "IX_Artwork_OtherVideoMetadataId", table: "Artwork", column: "OtherVideoMetadataId"); migrationBuilder.CreateIndex( name: "IX_Artwork_SeasonMetadataId", table: "Artwork", column: "SeasonMetadataId"); migrationBuilder.CreateIndex( name: "IX_Artwork_ShowMetadataId", table: "Artwork", column: "ShowMetadataId"); migrationBuilder.CreateIndex( name: "IX_Artwork_SongMetadataId", table: "Artwork", column: "SongMetadataId"); migrationBuilder.CreateIndex( name: "IX_Channel_FallbackFillerId", table: "Channel", column: "FallbackFillerId"); migrationBuilder.CreateIndex( name: "IX_Channel_FFmpegProfileId", table: "Channel", column: "FFmpegProfileId"); migrationBuilder.CreateIndex( name: "IX_Channel_Number", table: "Channel", column: "Number", unique: true); migrationBuilder.CreateIndex( name: "IX_Channel_WatermarkId", table: "Channel", column: "WatermarkId"); migrationBuilder.CreateIndex( name: "IX_CollectionItem_MediaItemId", table: "CollectionItem", column: "MediaItemId"); migrationBuilder.CreateIndex( name: "IX_ConfigElement_Key", table: "ConfigElement", column: "Key", unique: true); migrationBuilder.CreateIndex( name: "IX_Director_EpisodeMetadataId", table: "Director", column: "EpisodeMetadataId"); migrationBuilder.CreateIndex( name: "IX_Director_MovieMetadataId", table: "Director", column: "MovieMetadataId"); migrationBuilder.CreateIndex( name: "IX_Director_MusicVideoMetadataId", table: "Director", column: "MusicVideoMetadataId"); migrationBuilder.CreateIndex( name: "IX_Director_OtherVideoMetadataId", table: "Director", column: "OtherVideoMetadataId"); migrationBuilder.CreateIndex( name: "IX_EmbyConnection_EmbyMediaSourceId", table: "EmbyConnection", column: "EmbyMediaSourceId"); migrationBuilder.CreateIndex( name: "IX_EmbyPathInfo_EmbyLibraryId", table: "EmbyPathInfo", column: "EmbyLibraryId"); migrationBuilder.CreateIndex( name: "IX_EmbyPathReplacement_EmbyMediaSourceId", table: "EmbyPathReplacement", column: "EmbyMediaSourceId"); migrationBuilder.CreateIndex( name: "IX_Episode_SeasonId", table: "Episode", column: "SeasonId"); migrationBuilder.CreateIndex( name: "IX_EpisodeMetadata_EpisodeId", table: "EpisodeMetadata", column: "EpisodeId"); migrationBuilder.CreateIndex( name: "IX_FFmpegProfile_ResolutionId", table: "FFmpegProfile", column: "ResolutionId"); migrationBuilder.CreateIndex( name: "IX_FillerPreset_CollectionId", table: "FillerPreset", column: "CollectionId"); migrationBuilder.CreateIndex( name: "IX_FillerPreset_MediaItemId", table: "FillerPreset", column: "MediaItemId"); migrationBuilder.CreateIndex( name: "IX_FillerPreset_MultiCollectionId", table: "FillerPreset", column: "MultiCollectionId"); migrationBuilder.CreateIndex( name: "IX_FillerPreset_SmartCollectionId", table: "FillerPreset", column: "SmartCollectionId"); migrationBuilder.CreateIndex( name: "IX_Genre_ArtistMetadataId", table: "Genre", column: "ArtistMetadataId"); migrationBuilder.CreateIndex( name: "IX_Genre_EpisodeMetadataId", table: "Genre", column: "EpisodeMetadataId"); migrationBuilder.CreateIndex( name: "IX_Genre_MovieMetadataId", table: "Genre", column: "MovieMetadataId"); migrationBuilder.CreateIndex( name: "IX_Genre_MusicVideoMetadataId", table: "Genre", column: "MusicVideoMetadataId"); migrationBuilder.CreateIndex( name: "IX_Genre_OtherVideoMetadataId", table: "Genre", column: "OtherVideoMetadataId"); migrationBuilder.CreateIndex( name: "IX_Genre_SeasonMetadataId", table: "Genre", column: "SeasonMetadataId"); migrationBuilder.CreateIndex( name: "IX_Genre_ShowMetadataId", table: "Genre", column: "ShowMetadataId"); migrationBuilder.CreateIndex( name: "IX_Genre_SongMetadataId", table: "Genre", column: "SongMetadataId"); migrationBuilder.CreateIndex( name: "IX_JellyfinConnection_JellyfinMediaSourceId", table: "JellyfinConnection", column: "JellyfinMediaSourceId"); migrationBuilder.CreateIndex( name: "IX_JellyfinPathInfo_JellyfinLibraryId", table: "JellyfinPathInfo", column: "JellyfinLibraryId"); migrationBuilder.CreateIndex( name: "IX_JellyfinPathReplacement_JellyfinMediaSourceId", table: "JellyfinPathReplacement", column: "JellyfinMediaSourceId"); migrationBuilder.CreateIndex( name: "IX_Library_MediaSourceId", table: "Library", column: "MediaSourceId"); migrationBuilder.CreateIndex( name: "IX_LibraryFolder_LibraryPathId", table: "LibraryFolder", column: "LibraryPathId"); migrationBuilder.CreateIndex( name: "IX_LibraryPath_LibraryId", table: "LibraryPath", column: "LibraryId"); migrationBuilder.CreateIndex( name: "IX_MediaChapter_MediaVersionId", table: "MediaChapter", column: "MediaVersionId"); migrationBuilder.CreateIndex( name: "IX_MediaFile_MediaVersionId", table: "MediaFile", column: "MediaVersionId"); migrationBuilder.CreateIndex( name: "IX_MediaFile_Path", table: "MediaFile", column: "Path", unique: true); migrationBuilder.CreateIndex( name: "IX_MediaItem_LibraryPathId", table: "MediaItem", column: "LibraryPathId"); migrationBuilder.CreateIndex( name: "IX_MediaStream_MediaVersionId", table: "MediaStream", column: "MediaVersionId"); migrationBuilder.CreateIndex( name: "IX_MediaVersion_EpisodeId", table: "MediaVersion", column: "EpisodeId"); migrationBuilder.CreateIndex( name: "IX_MediaVersion_MovieId", table: "MediaVersion", column: "MovieId"); migrationBuilder.CreateIndex( name: "IX_MediaVersion_MusicVideoId", table: "MediaVersion", column: "MusicVideoId"); migrationBuilder.CreateIndex( name: "IX_MediaVersion_OtherVideoId", table: "MediaVersion", column: "OtherVideoId"); migrationBuilder.CreateIndex( name: "IX_MediaVersion_SongId", table: "MediaVersion", column: "SongId"); migrationBuilder.CreateIndex( name: "IX_MetadataGuid_ArtistMetadataId", table: "MetadataGuid", column: "ArtistMetadataId"); migrationBuilder.CreateIndex( name: "IX_MetadataGuid_EpisodeMetadataId", table: "MetadataGuid", column: "EpisodeMetadataId"); migrationBuilder.CreateIndex( name: "IX_MetadataGuid_MovieMetadataId", table: "MetadataGuid", column: "MovieMetadataId"); migrationBuilder.CreateIndex( name: "IX_MetadataGuid_MusicVideoMetadataId", table: "MetadataGuid", column: "MusicVideoMetadataId"); migrationBuilder.CreateIndex( name: "IX_MetadataGuid_OtherVideoMetadataId", table: "MetadataGuid", column: "OtherVideoMetadataId"); migrationBuilder.CreateIndex( name: "IX_MetadataGuid_SeasonMetadataId", table: "MetadataGuid", column: "SeasonMetadataId"); migrationBuilder.CreateIndex( name: "IX_MetadataGuid_ShowMetadataId", table: "MetadataGuid", column: "ShowMetadataId"); migrationBuilder.CreateIndex( name: "IX_MetadataGuid_SongMetadataId", table: "MetadataGuid", column: "SongMetadataId"); migrationBuilder.CreateIndex( name: "IX_Mood_ArtistMetadataId", table: "Mood", column: "ArtistMetadataId"); migrationBuilder.CreateIndex( name: "IX_MovieMetadata_MovieId", table: "MovieMetadata", column: "MovieId"); migrationBuilder.CreateIndex( name: "IX_MultiCollectionItem_CollectionId", table: "MultiCollectionItem", column: "CollectionId"); migrationBuilder.CreateIndex( name: "IX_MultiCollectionSmartItem_SmartCollectionId", table: "MultiCollectionSmartItem", column: "SmartCollectionId"); migrationBuilder.CreateIndex( name: "IX_MusicVideo_ArtistId", table: "MusicVideo", column: "ArtistId"); migrationBuilder.CreateIndex( name: "IX_MusicVideoArtist_MusicVideoMetadataId", table: "MusicVideoArtist", column: "MusicVideoMetadataId"); migrationBuilder.CreateIndex( name: "IX_MusicVideoMetadata_MusicVideoId", table: "MusicVideoMetadata", column: "MusicVideoId"); migrationBuilder.CreateIndex( name: "IX_OtherVideoMetadata_OtherVideoId", table: "OtherVideoMetadata", column: "OtherVideoId"); migrationBuilder.CreateIndex( name: "IX_Playout_ChannelId", table: "Playout", column: "ChannelId"); migrationBuilder.CreateIndex( name: "IX_Playout_ProgramScheduleId", table: "Playout", column: "ProgramScheduleId"); migrationBuilder.CreateIndex( name: "IX_PlayoutItem_MediaItemId", table: "PlayoutItem", column: "MediaItemId"); migrationBuilder.CreateIndex( name: "IX_PlayoutItem_PlayoutId", table: "PlayoutItem", column: "PlayoutId"); migrationBuilder.CreateIndex( name: "IX_PlayoutItem_WatermarkId", table: "PlayoutItem", column: "WatermarkId"); migrationBuilder.CreateIndex( name: "IX_PlayoutProgramScheduleAnchor_CollectionId", table: "PlayoutProgramScheduleAnchor", column: "CollectionId"); migrationBuilder.CreateIndex( name: "IX_PlayoutProgramScheduleAnchor_MediaItemId", table: "PlayoutProgramScheduleAnchor", column: "MediaItemId"); migrationBuilder.CreateIndex( name: "IX_PlayoutProgramScheduleAnchor_MultiCollectionId", table: "PlayoutProgramScheduleAnchor", column: "MultiCollectionId"); migrationBuilder.CreateIndex( name: "IX_PlayoutProgramScheduleAnchor_PlayoutId", table: "PlayoutProgramScheduleAnchor", column: "PlayoutId"); migrationBuilder.CreateIndex( name: "IX_PlayoutProgramScheduleAnchor_SmartCollectionId", table: "PlayoutProgramScheduleAnchor", column: "SmartCollectionId"); migrationBuilder.CreateIndex( name: "IX_PlexConnection_PlexMediaSourceId", table: "PlexConnection", column: "PlexMediaSourceId"); migrationBuilder.CreateIndex( name: "IX_PlexPathReplacement_PlexMediaSourceId", table: "PlexPathReplacement", column: "PlexMediaSourceId"); migrationBuilder.CreateIndex( name: "IX_ProgramSchedule_Name", table: "ProgramSchedule", column: "Name", unique: true); migrationBuilder.CreateIndex( name: "IX_ProgramScheduleAlternate_PlayoutId", table: "ProgramScheduleAlternate", column: "PlayoutId"); migrationBuilder.CreateIndex( name: "IX_ProgramScheduleAlternate_ProgramScheduleId", table: "ProgramScheduleAlternate", column: "ProgramScheduleId"); migrationBuilder.CreateIndex( name: "IX_ProgramScheduleItem_CollectionId", table: "ProgramScheduleItem", column: "CollectionId"); migrationBuilder.CreateIndex( name: "IX_ProgramScheduleItem_FallbackFillerId", table: "ProgramScheduleItem", column: "FallbackFillerId"); migrationBuilder.CreateIndex( name: "IX_ProgramScheduleItem_MediaItemId", table: "ProgramScheduleItem", column: "MediaItemId"); migrationBuilder.CreateIndex( name: "IX_ProgramScheduleItem_MidRollFillerId", table: "ProgramScheduleItem", column: "MidRollFillerId"); migrationBuilder.CreateIndex( name: "IX_ProgramScheduleItem_MultiCollectionId", table: "ProgramScheduleItem", column: "MultiCollectionId"); migrationBuilder.CreateIndex( name: "IX_ProgramScheduleItem_PostRollFillerId", table: "ProgramScheduleItem", column: "PostRollFillerId"); migrationBuilder.CreateIndex( name: "IX_ProgramScheduleItem_PreRollFillerId", table: "ProgramScheduleItem", column: "PreRollFillerId"); migrationBuilder.CreateIndex( name: "IX_ProgramScheduleItem_ProgramScheduleId", table: "ProgramScheduleItem", column: "ProgramScheduleId"); migrationBuilder.CreateIndex( name: "IX_ProgramScheduleItem_SmartCollectionId", table: "ProgramScheduleItem", column: "SmartCollectionId"); migrationBuilder.CreateIndex( name: "IX_ProgramScheduleItem_TailFillerId", table: "ProgramScheduleItem", column: "TailFillerId"); migrationBuilder.CreateIndex( name: "IX_ProgramScheduleItem_WatermarkId", table: "ProgramScheduleItem", column: "WatermarkId"); migrationBuilder.CreateIndex( name: "IX_Season_ShowId", table: "Season", column: "ShowId"); migrationBuilder.CreateIndex( name: "IX_SeasonMetadata_SeasonId", table: "SeasonMetadata", column: "SeasonId"); migrationBuilder.CreateIndex( name: "IX_ShowMetadata_ShowId", table: "ShowMetadata", column: "ShowId"); migrationBuilder.CreateIndex( name: "IX_SongMetadata_SongId", table: "SongMetadata", column: "SongId"); migrationBuilder.CreateIndex( name: "IX_Studio_ArtistMetadataId", table: "Studio", column: "ArtistMetadataId"); migrationBuilder.CreateIndex( name: "IX_Studio_EpisodeMetadataId", table: "Studio", column: "EpisodeMetadataId"); migrationBuilder.CreateIndex( name: "IX_Studio_MovieMetadataId", table: "Studio", column: "MovieMetadataId"); migrationBuilder.CreateIndex( name: "IX_Studio_MusicVideoMetadataId", table: "Studio", column: "MusicVideoMetadataId"); migrationBuilder.CreateIndex( name: "IX_Studio_OtherVideoMetadataId", table: "Studio", column: "OtherVideoMetadataId"); migrationBuilder.CreateIndex( name: "IX_Studio_SeasonMetadataId", table: "Studio", column: "SeasonMetadataId"); migrationBuilder.CreateIndex( name: "IX_Studio_ShowMetadataId", table: "Studio", column: "ShowMetadataId"); migrationBuilder.CreateIndex( name: "IX_Studio_SongMetadataId", table: "Studio", column: "SongMetadataId"); migrationBuilder.CreateIndex( name: "IX_Style_ArtistMetadataId", table: "Style", column: "ArtistMetadataId"); migrationBuilder.CreateIndex( name: "IX_Subtitle_ArtistMetadataId", table: "Subtitle", column: "ArtistMetadataId"); migrationBuilder.CreateIndex( name: "IX_Subtitle_EpisodeMetadataId", table: "Subtitle", column: "EpisodeMetadataId"); migrationBuilder.CreateIndex( name: "IX_Subtitle_MovieMetadataId", table: "Subtitle", column: "MovieMetadataId"); migrationBuilder.CreateIndex( name: "IX_Subtitle_MusicVideoMetadataId", table: "Subtitle", column: "MusicVideoMetadataId"); migrationBuilder.CreateIndex( name: "IX_Subtitle_OtherVideoMetadataId", table: "Subtitle", column: "OtherVideoMetadataId"); migrationBuilder.CreateIndex( name: "IX_Subtitle_SeasonMetadataId", table: "Subtitle", column: "SeasonMetadataId"); migrationBuilder.CreateIndex( name: "IX_Subtitle_ShowMetadataId", table: "Subtitle", column: "ShowMetadataId"); migrationBuilder.CreateIndex( name: "IX_Subtitle_SongMetadataId", table: "Subtitle", column: "SongMetadataId"); migrationBuilder.CreateIndex( name: "IX_Tag_ArtistMetadataId", table: "Tag", column: "ArtistMetadataId"); migrationBuilder.CreateIndex( name: "IX_Tag_EpisodeMetadataId", table: "Tag", column: "EpisodeMetadataId"); migrationBuilder.CreateIndex( name: "IX_Tag_MovieMetadataId", table: "Tag", column: "MovieMetadataId"); migrationBuilder.CreateIndex( name: "IX_Tag_MusicVideoMetadataId", table: "Tag", column: "MusicVideoMetadataId"); migrationBuilder.CreateIndex( name: "IX_Tag_OtherVideoMetadataId", table: "Tag", column: "OtherVideoMetadataId"); migrationBuilder.CreateIndex( name: "IX_Tag_SeasonMetadataId", table: "Tag", column: "SeasonMetadataId"); migrationBuilder.CreateIndex( name: "IX_Tag_ShowMetadataId", table: "Tag", column: "ShowMetadataId"); migrationBuilder.CreateIndex( name: "IX_Tag_SongMetadataId", table: "Tag", column: "SongMetadataId"); migrationBuilder.CreateIndex( name: "IX_TraktListItem_MediaItemId", table: "TraktListItem", column: "MediaItemId"); migrationBuilder.CreateIndex( name: "IX_TraktListItem_TraktListId", table: "TraktListItem", column: "TraktListId"); migrationBuilder.CreateIndex( name: "IX_TraktListItemGuid_TraktListItemId", table: "TraktListItemGuid", column: "TraktListItemId"); migrationBuilder.CreateIndex( name: "IX_Writer_EpisodeMetadataId", table: "Writer", column: "EpisodeMetadataId"); migrationBuilder.CreateIndex( name: "IX_Writer_MovieMetadataId", table: "Writer", column: "MovieMetadataId"); migrationBuilder.CreateIndex( name: "IX_Writer_OtherVideoMetadataId", table: "Writer", column: "OtherVideoMetadataId"); } /// protected override void Down(MigrationBuilder migrationBuilder) { migrationBuilder.DropTable( name: "Actor"); migrationBuilder.DropTable( name: "CollectionEnumeratorState"); migrationBuilder.DropTable( name: "CollectionItem"); migrationBuilder.DropTable( name: "ConfigElement"); migrationBuilder.DropTable( name: "Director"); migrationBuilder.DropTable( name: "EmbyCollection"); migrationBuilder.DropTable( name: "EmbyConnection"); migrationBuilder.DropTable( name: "EmbyEpisode"); migrationBuilder.DropTable( name: "EmbyMovie"); migrationBuilder.DropTable( name: "EmbyPathInfo"); migrationBuilder.DropTable( name: "EmbyPathReplacement"); migrationBuilder.DropTable( name: "EmbySeason"); migrationBuilder.DropTable( name: "EmbyShow"); migrationBuilder.DropTable( name: "Genre"); migrationBuilder.DropTable( name: "JellyfinCollection"); migrationBuilder.DropTable( name: "JellyfinConnection"); migrationBuilder.DropTable( name: "JellyfinEpisode"); migrationBuilder.DropTable( name: "JellyfinMovie"); migrationBuilder.DropTable( name: "JellyfinPathInfo"); migrationBuilder.DropTable( name: "JellyfinPathReplacement"); migrationBuilder.DropTable( name: "JellyfinSeason"); migrationBuilder.DropTable( name: "JellyfinShow"); migrationBuilder.DropTable( name: "LanguageCode"); migrationBuilder.DropTable( name: "LibraryFolder"); migrationBuilder.DropTable( name: "LocalLibrary"); migrationBuilder.DropTable( name: "LocalMediaSource"); migrationBuilder.DropTable( name: "MediaChapter"); migrationBuilder.DropTable( name: "MediaStream"); migrationBuilder.DropTable( name: "MetadataGuid"); migrationBuilder.DropTable( name: "Mood"); migrationBuilder.DropTable( name: "MultiCollectionItem"); migrationBuilder.DropTable( name: "MultiCollectionSmartItem"); migrationBuilder.DropTable( name: "MusicVideoArtist"); migrationBuilder.DropTable( name: "PlayoutItem"); migrationBuilder.DropTable( name: "PlexConnection"); migrationBuilder.DropTable( name: "PlexEpisode"); migrationBuilder.DropTable( name: "PlexLibrary"); migrationBuilder.DropTable( name: "PlexMediaFile"); migrationBuilder.DropTable( name: "PlexMovie"); migrationBuilder.DropTable( name: "PlexPathReplacement"); migrationBuilder.DropTable( name: "PlexSeason"); migrationBuilder.DropTable( name: "PlexShow"); migrationBuilder.DropTable( name: "ProgramScheduleAlternate"); migrationBuilder.DropTable( name: "ProgramScheduleDurationItem"); migrationBuilder.DropTable( name: "ProgramScheduleFloodItem"); migrationBuilder.DropTable( name: "ProgramScheduleMultipleItem"); migrationBuilder.DropTable( name: "ProgramScheduleOneItem"); migrationBuilder.DropTable( name: "ScheduleItemsEnumeratorState"); migrationBuilder.DropTable( name: "Studio"); migrationBuilder.DropTable( name: "Style"); migrationBuilder.DropTable( name: "Subtitle"); migrationBuilder.DropTable( name: "Tag"); migrationBuilder.DropTable( name: "TraktListItemGuid"); migrationBuilder.DropTable( name: "Writer"); migrationBuilder.DropTable( name: "Artwork"); migrationBuilder.DropTable( name: "PlayoutProgramScheduleAnchor"); migrationBuilder.DropTable( name: "EmbyLibrary"); migrationBuilder.DropTable( name: "EmbyMediaSource"); migrationBuilder.DropTable( name: "JellyfinLibrary"); migrationBuilder.DropTable( name: "JellyfinMediaSource"); migrationBuilder.DropTable( name: "MediaFile"); migrationBuilder.DropTable( name: "PlexMediaSource"); migrationBuilder.DropTable( name: "ProgramScheduleItem"); migrationBuilder.DropTable( name: "PlayoutAnchor"); migrationBuilder.DropTable( name: "TraktListItem"); migrationBuilder.DropTable( name: "ArtistMetadata"); migrationBuilder.DropTable( name: "EpisodeMetadata"); migrationBuilder.DropTable( name: "MovieMetadata"); migrationBuilder.DropTable( name: "MusicVideoMetadata"); migrationBuilder.DropTable( name: "OtherVideoMetadata"); migrationBuilder.DropTable( name: "SeasonMetadata"); migrationBuilder.DropTable( name: "ShowMetadata"); migrationBuilder.DropTable( name: "SongMetadata"); migrationBuilder.DropTable( name: "MediaVersion"); migrationBuilder.DropTable( name: "Playout"); migrationBuilder.DropTable( name: "TraktList"); migrationBuilder.DropTable( name: "Episode"); migrationBuilder.DropTable( name: "Movie"); migrationBuilder.DropTable( name: "MusicVideo"); migrationBuilder.DropTable( name: "OtherVideo"); migrationBuilder.DropTable( name: "Song"); migrationBuilder.DropTable( name: "Channel"); migrationBuilder.DropTable( name: "ProgramSchedule"); migrationBuilder.DropTable( name: "Season"); migrationBuilder.DropTable( name: "Artist"); migrationBuilder.DropTable( name: "ChannelWatermark"); migrationBuilder.DropTable( name: "FFmpegProfile"); migrationBuilder.DropTable( name: "FillerPreset"); migrationBuilder.DropTable( name: "Show"); migrationBuilder.DropTable( name: "Resolution"); migrationBuilder.DropTable( name: "Collection"); migrationBuilder.DropTable( name: "MultiCollection"); migrationBuilder.DropTable( name: "SmartCollection"); migrationBuilder.DropTable( name: "MediaItem"); migrationBuilder.DropTable( name: "LibraryPath"); migrationBuilder.DropTable( name: "Library"); migrationBuilder.DropTable( name: "MediaSource"); } } }