using System; using Microsoft.EntityFrameworkCore.Migrations; using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; #nullable disable #pragma warning disable CA1814 // Prefer jagged arrays over multidimensional namespace PARR.DAL.Migrations { /// public partial class TblsRobotHistoryAndTEmplates : Migration { /// protected override void Up(MigrationBuilder migrationBuilder) { migrationBuilder.AddColumn( name: "RobotAttemptsNumber", table: "Templates", type: "integer", nullable: false, defaultValue: 0); migrationBuilder.AddColumn( name: "RobotLastStatusUpdated", table: "Templates", type: "timestamp with time zone", nullable: false, defaultValue: new DateTimeOffset(new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0))); migrationBuilder.AddColumn( name: "RobotStatusCode", table: "Templates", type: "integer", nullable: false, defaultValue: 0); migrationBuilder.CreateTable( name: "RobotHistoryLevels", columns: table => new { Level = table.Column(type: "integer", nullable: false) .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), Name = table.Column(type: "text", nullable: false), Description = table.Column(type: "text", nullable: false) }, constraints: table => { table.PrimaryKey("PK_RobotHistoryLevels", x => x.Level); }); migrationBuilder.CreateTable( name: "RobotStatuses", columns: table => new { Code = table.Column(type: "integer", nullable: false) .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), Name = table.Column(type: "text", nullable: false), Description = table.Column(type: "text", nullable: false) }, constraints: table => { table.PrimaryKey("PK_RobotStatuses", x => x.Code); }); migrationBuilder.CreateTable( name: "RobotTemplateHistories", columns: table => new { Id = table.Column(type: "uuid", nullable: false), DateCreated = table.Column(type: "timestamp with time zone", nullable: false), HistoryLevel = table.Column(type: "integer", nullable: false), RobotMessage = table.Column(type: "text", nullable: true), EsppMessage = table.Column(type: "text", nullable: true), TemplateId = table.Column(type: "uuid", nullable: false), TemplateStatusCode = table.Column(type: "integer", nullable: false), IdSeries = table.Column(type: "uuid", nullable: false) }, constraints: table => { table.PrimaryKey("PK_RobotTemplateHistories", x => x.Id); table.ForeignKey( name: "FK_RobotTemplateHistories_RobotHistoryLevels_HistoryLevel", column: x => x.HistoryLevel, principalTable: "RobotHistoryLevels", principalColumn: "Level", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_RobotTemplateHistories_StatusTemplates_TemplateStatusCode", column: x => x.TemplateStatusCode, principalTable: "StatusTemplates", principalColumn: "Code", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_RobotTemplateHistories_Templates_TemplateId", column: x => x.TemplateId, principalTable: "Templates", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.InsertData( table: "RobotHistoryLevels", columns: new[] { "Level", "Description", "Name" }, values: new object[,] { { 1, "Робот начал работу ", "Start" }, { 5, "Информация", "Inforamtion" }, { 10, "Ошибка", "Error" }, { 15, "Успешно завершил работу", "Complete" }, { 20, "Завершил работу с ошибкой (не отработал до конца)", "Breake" } }); migrationBuilder.InsertData( table: "RobotStatuses", columns: new[] { "Code", "Description", "Name" }, values: new object[,] { { 11, "Ожидание, ждет пока робот возьмет в работу.", "Wait" }, { 22, "Робот взял в работу.", "InProgress" }, { 33, "Ошибка отработки роботом. Требует ручного вмешательства.", "Error" }, { 44, "Робот успешно отработал.", "Complete" } }); migrationBuilder.CreateIndex( name: "IX_Templates_RobotStatusCode", table: "Templates", column: "RobotStatusCode"); migrationBuilder.CreateIndex( name: "IX_RobotTemplateHistories_HistoryLevel", table: "RobotTemplateHistories", column: "HistoryLevel"); migrationBuilder.CreateIndex( name: "IX_RobotTemplateHistories_TemplateId", table: "RobotTemplateHistories", column: "TemplateId"); migrationBuilder.CreateIndex( name: "IX_RobotTemplateHistories_TemplateStatusCode", table: "RobotTemplateHistories", column: "TemplateStatusCode"); migrationBuilder.AddForeignKey( name: "FK_Templates_RobotStatuses_RobotStatusCode", table: "Templates", column: "RobotStatusCode", principalTable: "RobotStatuses", principalColumn: "Code", onDelete: ReferentialAction.Cascade); } /// protected override void Down(MigrationBuilder migrationBuilder) { migrationBuilder.DropForeignKey( name: "FK_Templates_RobotStatuses_RobotStatusCode", table: "Templates"); migrationBuilder.DropTable( name: "RobotStatuses"); migrationBuilder.DropTable( name: "RobotTemplateHistories"); migrationBuilder.DropTable( name: "RobotHistoryLevels"); migrationBuilder.DropIndex( name: "IX_Templates_RobotStatusCode", table: "Templates"); migrationBuilder.DropColumn( name: "RobotAttemptsNumber", table: "Templates"); migrationBuilder.DropColumn( name: "RobotLastStatusUpdated", table: "Templates"); migrationBuilder.DropColumn( name: "RobotStatusCode", table: "Templates"); } } }