using System; using Microsoft.EntityFrameworkCore.Migrations; #nullable disable namespace Modules.Library.Database.Migrations { /// public partial class Init : Migration { /// protected override void Up(MigrationBuilder migrationBuilder) { migrationBuilder.CreateTable( name: "AnimeTitles", columns: table => new { Id = table.Column(type: "uuid", nullable: false), Completed = table.Column(type: "boolean", nullable: false), ExpirationTime = table.Column(type: "interval", nullable: false), Deleted = table.Column(type: "boolean", nullable: false) }, constraints: table => { table.PrimaryKey("PK_AnimeTitles", x => x.Id); }); migrationBuilder.CreateTable( name: "Genres", columns: table => new { Id = table.Column(type: "uuid", nullable: false), Name = table.Column(type: "character varying(64)", maxLength: 64, nullable: false), Deleted = table.Column(type: "boolean", nullable: false) }, constraints: table => { table.PrimaryKey("PK_Genres", x => x.Id); }); migrationBuilder.CreateTable( name: "Languages", columns: table => new { Id = table.Column(type: "uuid", nullable: false), CodeIso3 = table.Column(type: "character varying(3)", maxLength: 3, nullable: false), Name = table.Column(type: "character varying(64)", maxLength: 64, nullable: false), IconId = table.Column(type: "uuid", nullable: true), Deleted = table.Column(type: "boolean", nullable: false) }, constraints: table => { table.PrimaryKey("PK_Languages", x => x.Id); }); migrationBuilder.CreateTable( name: "Anime_Seasons", columns: table => new { Id = table.Column(type: "uuid", nullable: false), Order = table.Column(type: "integer", nullable: false), Variant = table.Column(type: "integer", nullable: false), Completed = table.Column(type: "boolean", nullable: false), ExpirationTime = table.Column(type: "interval", nullable: false), Deleted = table.Column(type: "boolean", nullable: false), AnimeTitleId = table.Column(type: "uuid", nullable: true), Number = table.Column(type: "integer", nullable: true), Director = table.Column(type: "character varying(128)", maxLength: 128, nullable: true), OriginCountry = table.Column(type: "character varying(64)", maxLength: 64, nullable: true) }, constraints: table => { table.PrimaryKey("PK_Anime_Seasons", x => x.Id); table.ForeignKey( name: "FK_Anime_Seasons_AnimeTitles_AnimeTitleId", column: x => x.AnimeTitleId, principalTable: "AnimeTitles", principalColumn: "Id"); }); migrationBuilder.CreateTable( name: "AnimeItem", columns: table => new { Id = table.Column(type: "uuid", nullable: false), Order = table.Column(type: "integer", nullable: false), Variant = table.Column(type: "integer", nullable: false), Completed = table.Column(type: "boolean", nullable: false), ExpirationTime = table.Column(type: "interval", nullable: false), Deleted = table.Column(type: "boolean", nullable: false), AnimeTitleId = table.Column(type: "uuid", nullable: true) }, constraints: table => { table.PrimaryKey("PK_AnimeItem", x => x.Id); table.ForeignKey( name: "FK_AnimeItem_AnimeTitles_AnimeTitleId", column: x => x.AnimeTitleId, principalTable: "AnimeTitles", principalColumn: "Id"); }); migrationBuilder.CreateTable( name: "Anime_Episodes", columns: table => new { Id = table.Column(type: "uuid", nullable: false), Order = table.Column(type: "integer", nullable: false), Variant = table.Column(type: "integer", nullable: false), Completed = table.Column(type: "boolean", nullable: false), ExpirationTime = table.Column(type: "interval", nullable: false), Deleted = table.Column(type: "boolean", nullable: false), AnimeTitleId = table.Column(type: "uuid", nullable: true), Type = table.Column(type: "text", nullable: false), Number = table.Column(type: "integer", nullable: true), Duration = table.Column(type: "interval", nullable: true), AnimeSeasonId = table.Column(type: "uuid", nullable: true) }, constraints: table => { table.PrimaryKey("PK_Anime_Episodes", x => x.Id); table.ForeignKey( name: "FK_Anime_Episodes_AnimeTitles_AnimeTitleId", column: x => x.AnimeTitleId, principalTable: "AnimeTitles", principalColumn: "Id"); table.ForeignKey( name: "FK_Anime_Episodes_Anime_Seasons_AnimeSeasonId", column: x => x.AnimeSeasonId, principalTable: "Anime_Seasons", principalColumn: "Id"); }); migrationBuilder.CreateTable( name: "CommonProperties", columns: table => new { Id = table.Column(type: "uuid", nullable: false), PreviewId = table.Column(type: "uuid", nullable: true), AnnouncementDate = table.Column(type: "timestamp with time zone", nullable: true), EstimatedReleaseDate = table.Column(type: "timestamp with time zone", nullable: true), ReleaseDate = table.Column(type: "timestamp with time zone", nullable: true), AnimeItemId = table.Column(type: "uuid", nullable: true), AnimeTitleId = table.Column(type: "uuid", nullable: true) }, constraints: table => { table.PrimaryKey("PK_CommonProperties", x => x.Id); table.ForeignKey( name: "FK_CommonProperties_AnimeTitles_AnimeTitleId", column: x => x.AnimeTitleId, principalTable: "AnimeTitles", principalColumn: "Id"); }); migrationBuilder.CreateTable( name: "DescriptionItem", columns: table => new { Id = table.Column(type: "uuid", nullable: false), Value = table.Column(type: "text", nullable: false), IsOriginal = table.Column(type: "boolean", nullable: false), LanguageId = table.Column(type: "uuid", nullable: false), CommonPropertiesId = table.Column(type: "uuid", nullable: true) }, constraints: table => { table.PrimaryKey("PK_DescriptionItem", x => x.Id); table.ForeignKey( name: "FK_DescriptionItem_CommonProperties_CommonPropertiesId", column: x => x.CommonPropertiesId, principalTable: "CommonProperties", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "GenreProportionItem", columns: table => new { Id = table.Column(type: "uuid", nullable: false), Proportion = table.Column(type: "numeric", nullable: true), GenreId = table.Column(type: "uuid", nullable: false), CommonPropertiesId = table.Column(type: "uuid", nullable: true) }, constraints: table => { table.PrimaryKey("PK_GenreProportionItem", x => x.Id); table.ForeignKey( name: "FK_GenreProportionItem_CommonProperties_CommonPropertiesId", column: x => x.CommonPropertiesId, principalTable: "CommonProperties", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "MediaInfos", columns: table => new { Id = table.Column(type: "uuid", nullable: false), Type = table.Column(type: "text", nullable: false), Url = table.Column(type: "text", nullable: false), ContentType = table.Column(type: "text", nullable: false), Deleted = table.Column(type: "boolean", nullable: false), CommonPropertiesId = table.Column(type: "uuid", nullable: true) }, constraints: table => { table.PrimaryKey("PK_MediaInfos", x => x.Id); table.ForeignKey( name: "FK_MediaInfos_CommonProperties_CommonPropertiesId", column: x => x.CommonPropertiesId, principalTable: "CommonProperties", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "NameItem", columns: table => new { Id = table.Column(type: "uuid", nullable: false), Value = table.Column(type: "text", nullable: false), Type = table.Column(type: "text", nullable: false), LanguageId = table.Column(type: "uuid", nullable: false), CommonPropertiesId = table.Column(type: "uuid", nullable: true) }, constraints: table => { table.PrimaryKey("PK_NameItem", x => x.Id); table.ForeignKey( name: "FK_NameItem_CommonProperties_CommonPropertiesId", column: x => x.CommonPropertiesId, principalTable: "CommonProperties", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateIndex( name: "IX_Anime_Episodes_AnimeSeasonId", table: "Anime_Episodes", column: "AnimeSeasonId"); migrationBuilder.CreateIndex( name: "IX_Anime_Episodes_AnimeTitleId", table: "Anime_Episodes", column: "AnimeTitleId"); migrationBuilder.CreateIndex( name: "IX_Anime_Seasons_AnimeTitleId", table: "Anime_Seasons", column: "AnimeTitleId"); migrationBuilder.CreateIndex( name: "IX_AnimeItem_AnimeTitleId", table: "AnimeItem", column: "AnimeTitleId"); migrationBuilder.CreateIndex( name: "IX_CommonProperties_AnimeItemId", table: "CommonProperties", column: "AnimeItemId", unique: true); migrationBuilder.CreateIndex( name: "IX_CommonProperties_AnimeTitleId", table: "CommonProperties", column: "AnimeTitleId", unique: true); migrationBuilder.CreateIndex( name: "IX_CommonProperties_PreviewId", table: "CommonProperties", column: "PreviewId"); migrationBuilder.CreateIndex( name: "IX_DescriptionItem_CommonPropertiesId", table: "DescriptionItem", column: "CommonPropertiesId"); migrationBuilder.CreateIndex( name: "IX_GenreProportionItem_CommonPropertiesId", table: "GenreProportionItem", column: "CommonPropertiesId"); migrationBuilder.CreateIndex( name: "IX_MediaInfos_CommonPropertiesId", table: "MediaInfos", column: "CommonPropertiesId"); migrationBuilder.CreateIndex( name: "IX_NameItem_CommonPropertiesId", table: "NameItem", column: "CommonPropertiesId"); migrationBuilder.AddForeignKey( name: "FK_CommonProperties_MediaInfos_PreviewId", table: "CommonProperties", column: "PreviewId", principalTable: "MediaInfos", principalColumn: "Id", onDelete: ReferentialAction.Cascade); } /// protected override void Down(MigrationBuilder migrationBuilder) { migrationBuilder.DropForeignKey( name: "FK_CommonProperties_AnimeTitles_AnimeTitleId", table: "CommonProperties"); migrationBuilder.DropForeignKey( name: "FK_CommonProperties_MediaInfos_PreviewId", table: "CommonProperties"); migrationBuilder.DropTable( name: "Anime_Episodes"); migrationBuilder.DropTable( name: "AnimeItem"); migrationBuilder.DropTable( name: "DescriptionItem"); migrationBuilder.DropTable( name: "GenreProportionItem"); migrationBuilder.DropTable( name: "Genres"); migrationBuilder.DropTable( name: "Languages"); migrationBuilder.DropTable( name: "NameItem"); migrationBuilder.DropTable( name: "Anime_Seasons"); migrationBuilder.DropTable( name: "AnimeTitles"); migrationBuilder.DropTable( name: "MediaInfos"); migrationBuilder.DropTable( name: "CommonProperties"); } } }