using System; using Microsoft.EntityFrameworkCore.Migrations; namespace ErsatzTV.Infrastructure.Sqlite.Migrations { public partial class Add_VersionsAndMetadata : Migration { protected override void Up(MigrationBuilder migrationBuilder) { migrationBuilder.AddColumn( "SeasonNumber", "Season", "INTEGER", nullable: false, defaultValue: 0); migrationBuilder.AddColumn( "EpisodeNumber", "Episode", "INTEGER", nullable: false, defaultValue: 0); migrationBuilder.CreateTable( "EpisodeMetadata", table => new { Id = table.Column("INTEGER", nullable: false) .Annotation("Sqlite:Autoincrement", true), Outline = table.Column("TEXT", nullable: true), Plot = table.Column("TEXT", nullable: true), Tagline = table.Column("TEXT", nullable: true), EpisodeId = table.Column("INTEGER", nullable: false), MetadataKind = table.Column("INTEGER", nullable: false), Title = table.Column("TEXT", nullable: true), OriginalTitle = table.Column("TEXT", nullable: true), SortTitle = table.Column("TEXT", nullable: true), ReleaseDate = table.Column("TEXT", nullable: true), DateAdded = table.Column("TEXT", nullable: false), DateUpdated = table.Column("TEXT", nullable: false) }, constraints: table => { table.PrimaryKey("PK_EpisodeMetadata", x => x.Id); table.ForeignKey( "FK_EpisodeMetadata_Episode_EpisodeId", x => x.EpisodeId, "Episode", "Id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( "MediaVersion", table => new { Id = table.Column("INTEGER", nullable: false) .Annotation("Sqlite:Autoincrement", true), Name = table.Column("TEXT", nullable: true), Duration = table.Column("TEXT", nullable: false), SampleAspectRatio = table.Column("TEXT", nullable: true), DisplayAspectRatio = table.Column("TEXT", nullable: true), VideoCodec = table.Column("TEXT", nullable: true), AudioCodec = table.Column("TEXT", nullable: true), IsInterlaced = table.Column("INTEGER", nullable: false), Width = table.Column("INTEGER", nullable: false), Height = table.Column("INTEGER", nullable: false), EpisodeId = table.Column("INTEGER", nullable: true), MovieId = table.Column("INTEGER", nullable: true) }, constraints: table => { table.PrimaryKey("PK_MediaVersion", x => x.Id); table.ForeignKey( "FK_MediaVersion_Episode_EpisodeId", x => x.EpisodeId, "Episode", "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( "FK_MediaVersion_Movie_MovieId", x => x.MovieId, "Movie", "Id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( "NewMovieMetadata", table => new { Id = table.Column("INTEGER", nullable: false) .Annotation("Sqlite:Autoincrement", true), Outline = table.Column("TEXT", nullable: true), Plot = table.Column("TEXT", nullable: true), Tagline = table.Column("TEXT", nullable: true), MovieId = table.Column("INTEGER", nullable: false), MetadataKind = table.Column("INTEGER", nullable: false), Title = table.Column("TEXT", nullable: true), OriginalTitle = table.Column("TEXT", nullable: true), SortTitle = table.Column("TEXT", nullable: true), ReleaseDate = table.Column("TEXT", nullable: true), DateAdded = table.Column("TEXT", nullable: false), DateUpdated = table.Column("TEXT", nullable: false) }, constraints: table => { table.PrimaryKey("PK_NewMovieMetadata", x => x.Id); table.ForeignKey( "FK_NewMovieMetadata_Movie_MovieId", x => x.MovieId, "Movie", "Id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( "ShowMetadata", table => new { Id = table.Column("INTEGER", nullable: false) .Annotation("Sqlite:Autoincrement", true), Outline = table.Column("TEXT", nullable: true), Plot = table.Column("TEXT", nullable: true), Tagline = table.Column("TEXT", nullable: true), ShowId = table.Column("INTEGER", nullable: false), MetadataKind = table.Column("INTEGER", nullable: false), Title = table.Column("TEXT", nullable: true), OriginalTitle = table.Column("TEXT", nullable: true), SortTitle = table.Column("TEXT", nullable: true), ReleaseDate = table.Column("TEXT", nullable: true), DateAdded = table.Column("TEXT", nullable: false), DateUpdated = table.Column("TEXT", nullable: false) }, constraints: table => { table.PrimaryKey("PK_ShowMetadata", x => x.Id); table.ForeignKey( "FK_ShowMetadata_Show_ShowId", x => x.ShowId, "Show", "Id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( "MediaFile", table => new { Id = table.Column("INTEGER", nullable: false) .Annotation("Sqlite:Autoincrement", true), Path = table.Column("TEXT", nullable: true), MediaVersionId = table.Column("INTEGER", nullable: false) }, constraints: table => { table.PrimaryKey("PK_MediaFile", x => x.Id); table.ForeignKey( "FK_MediaFile_MediaVersion_MediaVersionId", x => x.MediaVersionId, "MediaVersion", "Id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateIndex( "IX_EpisodeMetadata_EpisodeId", "EpisodeMetadata", "EpisodeId"); migrationBuilder.CreateIndex( "IX_MediaFile_MediaVersionId", "MediaFile", "MediaVersionId"); migrationBuilder.CreateIndex( "IX_MediaVersion_EpisodeId", "MediaVersion", "EpisodeId"); migrationBuilder.CreateIndex( "IX_MediaVersion_MovieId", "MediaVersion", "MovieId"); migrationBuilder.CreateIndex( "IX_NewMovieMetadata_MovieId", "NewMovieMetadata", "MovieId"); migrationBuilder.CreateIndex( "IX_ShowMetadata_ShowId", "ShowMetadata", "ShowId"); } protected override void Down(MigrationBuilder migrationBuilder) { migrationBuilder.DropTable( "EpisodeMetadata"); migrationBuilder.DropTable( "MediaFile"); migrationBuilder.DropTable( "NewMovieMetadata"); migrationBuilder.DropTable( "ShowMetadata"); migrationBuilder.DropTable( "MediaVersion"); migrationBuilder.DropColumn( "SeasonNumber", "Season"); migrationBuilder.DropColumn( "EpisodeNumber", "Episode"); } } }