using Microsoft.EntityFrameworkCore.Migrations; #nullable disable namespace CutList.Web.Migrations { /// public partial class AddJobNumber : Migration { /// protected override void Up(MigrationBuilder migrationBuilder) { migrationBuilder.AlterColumn( name: "Name", table: "Jobs", type: "nvarchar(100)", maxLength: 100, nullable: true, oldClrType: typeof(string), oldType: "nvarchar(100)", oldMaxLength: 100); migrationBuilder.AddColumn( name: "JobNumber", table: "Jobs", type: "nvarchar(20)", maxLength: 20, nullable: false, defaultValue: ""); // Generate job numbers for existing jobs migrationBuilder.Sql(@" WITH NumberedJobs AS ( SELECT Id, ROW_NUMBER() OVER (ORDER BY Id) AS RowNum FROM Jobs ) UPDATE j SET j.JobNumber = 'JOB-' + RIGHT('00000' + CAST(nj.RowNum AS VARCHAR(5)), 5) FROM Jobs j INNER JOIN NumberedJobs nj ON j.Id = nj.Id "); migrationBuilder.CreateIndex( name: "IX_Jobs_JobNumber", table: "Jobs", column: "JobNumber", unique: true); } /// protected override void Down(MigrationBuilder migrationBuilder) { migrationBuilder.DropIndex( name: "IX_Jobs_JobNumber", table: "Jobs"); migrationBuilder.DropColumn( name: "JobNumber", table: "Jobs"); migrationBuilder.AlterColumn( name: "Name", table: "Jobs", type: "nvarchar(100)", maxLength: 100, nullable: false, defaultValue: "", oldClrType: typeof(string), oldType: "nvarchar(100)", oldMaxLength: 100, oldNullable: true); } } }