using System; using Microsoft.EntityFrameworkCore.Migrations; #nullable disable namespace CutList.Web.Migrations { /// public partial class RenameProjectToJob : Migration { /// protected override void Up(MigrationBuilder migrationBuilder) { migrationBuilder.DropTable( name: "ProjectParts"); migrationBuilder.DropTable( name: "Projects"); migrationBuilder.CreateTable( name: "Jobs", columns: table => new { Id = table.Column(type: "int", nullable: false) .Annotation("SqlServer:Identity", "1, 1"), Name = table.Column(type: "nvarchar(100)", maxLength: 100, nullable: false), Customer = table.Column(type: "nvarchar(100)", maxLength: 100, nullable: true), CuttingToolId = table.Column(type: "int", nullable: true), Notes = table.Column(type: "nvarchar(max)", nullable: true), CreatedAt = table.Column(type: "datetime2", nullable: false, defaultValueSql: "GETUTCDATE()"), UpdatedAt = table.Column(type: "datetime2", nullable: true) }, constraints: table => { table.PrimaryKey("PK_Jobs", x => x.Id); table.ForeignKey( name: "FK_Jobs_CuttingTools_CuttingToolId", column: x => x.CuttingToolId, principalTable: "CuttingTools", principalColumn: "Id", onDelete: ReferentialAction.SetNull); }); migrationBuilder.CreateTable( name: "JobParts", columns: table => new { Id = table.Column(type: "int", nullable: false) .Annotation("SqlServer:Identity", "1, 1"), JobId = table.Column(type: "int", nullable: false), MaterialId = table.Column(type: "int", nullable: false), Name = table.Column(type: "nvarchar(100)", maxLength: 100, nullable: false), LengthInches = table.Column(type: "decimal(10,4)", precision: 10, scale: 4, nullable: false), Quantity = table.Column(type: "int", nullable: false), SortOrder = table.Column(type: "int", nullable: false) }, constraints: table => { table.PrimaryKey("PK_JobParts", x => x.Id); table.ForeignKey( name: "FK_JobParts_Jobs_JobId", column: x => x.JobId, principalTable: "Jobs", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_JobParts_Materials_MaterialId", column: x => x.MaterialId, principalTable: "Materials", principalColumn: "Id", onDelete: ReferentialAction.Restrict); }); migrationBuilder.CreateIndex( name: "IX_JobParts_JobId", table: "JobParts", column: "JobId"); migrationBuilder.CreateIndex( name: "IX_JobParts_MaterialId", table: "JobParts", column: "MaterialId"); migrationBuilder.CreateIndex( name: "IX_Jobs_CuttingToolId", table: "Jobs", column: "CuttingToolId"); } /// protected override void Down(MigrationBuilder migrationBuilder) { migrationBuilder.DropTable( name: "JobParts"); migrationBuilder.DropTable( name: "Jobs"); migrationBuilder.CreateTable( name: "Projects", columns: table => new { Id = table.Column(type: "int", nullable: false) .Annotation("SqlServer:Identity", "1, 1"), CuttingToolId = table.Column(type: "int", nullable: true), CreatedAt = table.Column(type: "datetime2", nullable: false, defaultValueSql: "GETUTCDATE()"), Customer = table.Column(type: "nvarchar(100)", maxLength: 100, nullable: true), Name = table.Column(type: "nvarchar(100)", maxLength: 100, nullable: false), Notes = table.Column(type: "nvarchar(max)", nullable: true), UpdatedAt = table.Column(type: "datetime2", nullable: true) }, constraints: table => { table.PrimaryKey("PK_Projects", x => x.Id); table.ForeignKey( name: "FK_Projects_CuttingTools_CuttingToolId", column: x => x.CuttingToolId, principalTable: "CuttingTools", principalColumn: "Id", onDelete: ReferentialAction.SetNull); }); migrationBuilder.CreateTable( name: "ProjectParts", columns: table => new { Id = table.Column(type: "int", nullable: false) .Annotation("SqlServer:Identity", "1, 1"), MaterialId = table.Column(type: "int", nullable: false), ProjectId = table.Column(type: "int", nullable: false), LengthInches = table.Column(type: "decimal(10,4)", precision: 10, scale: 4, nullable: false), Name = table.Column(type: "nvarchar(100)", maxLength: 100, nullable: false), Quantity = table.Column(type: "int", nullable: false), SortOrder = table.Column(type: "int", nullable: false) }, constraints: table => { table.PrimaryKey("PK_ProjectParts", x => x.Id); table.ForeignKey( name: "FK_ProjectParts_Materials_MaterialId", column: x => x.MaterialId, principalTable: "Materials", principalColumn: "Id", onDelete: ReferentialAction.Restrict); table.ForeignKey( name: "FK_ProjectParts_Projects_ProjectId", column: x => x.ProjectId, principalTable: "Projects", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateIndex( name: "IX_ProjectParts_MaterialId", table: "ProjectParts", column: "MaterialId"); migrationBuilder.CreateIndex( name: "IX_ProjectParts_ProjectId", table: "ProjectParts", column: "ProjectId"); migrationBuilder.CreateIndex( name: "IX_Projects_CuttingToolId", table: "Projects", column: "CuttingToolId"); } } }