mirror of
https://github.com/Sea-Haven-Industries/shoc-backend.git
synced 2026-10-03 01:03:30 +00:00
feat(work-orders): add ExternalWorkOrderId unique index for ingest idempotency
This commit is contained in:
parent
f8511ce732
commit
e67254ed7e
3 changed files with 64 additions and 1 deletions
|
|
@ -61,6 +61,15 @@ namespace Data.SeaHavenIndustries
|
||||||
.HasIndex(w => new { w.LifecycleStatus, w.ScheduledDate })
|
.HasIndex(w => new { w.LifecycleStatus, w.ScheduledDate })
|
||||||
.HasFilter("[istemplate] = 0");
|
.HasFilter("[istemplate] = 0");
|
||||||
|
|
||||||
|
builder.Entity<WorkOrder>()
|
||||||
|
.Property(w => w.ExternalWorkOrderId)
|
||||||
|
.HasMaxLength(450);
|
||||||
|
|
||||||
|
builder.Entity<WorkOrder>()
|
||||||
|
.HasIndex(w => w.ExternalWorkOrderId)
|
||||||
|
.IsUnique()
|
||||||
|
.HasFilter("[ExternalWorkOrderId] IS NOT NULL AND [ExternalWorkOrderId] <> ''");
|
||||||
|
|
||||||
builder.Entity<Dispatch>()
|
builder.Entity<Dispatch>()
|
||||||
.Property(d => d.RowVersion)
|
.Property(d => d.RowVersion)
|
||||||
.IsRowVersion();
|
.IsRowVersion();
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,49 @@
|
||||||
|
using Microsoft.EntityFrameworkCore.Migrations;
|
||||||
|
|
||||||
|
#nullable disable
|
||||||
|
|
||||||
|
namespace Data.SeaHavenIndustries.Migrations
|
||||||
|
{
|
||||||
|
/// <inheritdoc />
|
||||||
|
public partial class Phase7_ExternalWorkOrderIdUnique : Migration
|
||||||
|
{
|
||||||
|
/// <inheritdoc />
|
||||||
|
protected override void Up(MigrationBuilder migrationBuilder)
|
||||||
|
{
|
||||||
|
migrationBuilder.AlterColumn<string>(
|
||||||
|
name: "ExternalWorkOrderId",
|
||||||
|
table: "workOrders",
|
||||||
|
type: "nvarchar(450)",
|
||||||
|
maxLength: 450,
|
||||||
|
nullable: true,
|
||||||
|
oldClrType: typeof(string),
|
||||||
|
oldType: "nvarchar(max)",
|
||||||
|
oldNullable: true);
|
||||||
|
|
||||||
|
migrationBuilder.CreateIndex(
|
||||||
|
name: "IX_workOrders_ExternalWorkOrderId",
|
||||||
|
table: "workOrders",
|
||||||
|
column: "ExternalWorkOrderId",
|
||||||
|
unique: true,
|
||||||
|
filter: "[ExternalWorkOrderId] IS NOT NULL AND [ExternalWorkOrderId] <> ''");
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <inheritdoc />
|
||||||
|
protected override void Down(MigrationBuilder migrationBuilder)
|
||||||
|
{
|
||||||
|
migrationBuilder.DropIndex(
|
||||||
|
name: "IX_workOrders_ExternalWorkOrderId",
|
||||||
|
table: "workOrders");
|
||||||
|
|
||||||
|
migrationBuilder.AlterColumn<string>(
|
||||||
|
name: "ExternalWorkOrderId",
|
||||||
|
table: "workOrders",
|
||||||
|
type: "nvarchar(max)",
|
||||||
|
nullable: true,
|
||||||
|
oldClrType: typeof(string),
|
||||||
|
oldType: "nvarchar(450)",
|
||||||
|
oldMaxLength: 450,
|
||||||
|
oldNullable: true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1960,7 +1960,8 @@ namespace Data.SeaHavenIndustries.Migrations
|
||||||
.HasColumnType("datetime2");
|
.HasColumnType("datetime2");
|
||||||
|
|
||||||
b.Property<string>("ExternalWorkOrderId")
|
b.Property<string>("ExternalWorkOrderId")
|
||||||
.HasColumnType("nvarchar(max)");
|
.HasMaxLength(450)
|
||||||
|
.HasColumnType("nvarchar(450)");
|
||||||
|
|
||||||
b.Property<string>("InternalWONumber")
|
b.Property<string>("InternalWONumber")
|
||||||
.HasColumnType("nvarchar(max)");
|
.HasColumnType("nvarchar(max)");
|
||||||
|
|
@ -2088,6 +2089,10 @@ namespace Data.SeaHavenIndustries.Migrations
|
||||||
|
|
||||||
b.HasIndex("AssignTo", "ScheduledDate");
|
b.HasIndex("AssignTo", "ScheduledDate");
|
||||||
|
|
||||||
|
b.HasIndex("ExternalWorkOrderId")
|
||||||
|
.IsUnique()
|
||||||
|
.HasFilter("[ExternalWorkOrderId] IS NOT NULL AND [ExternalWorkOrderId] <> ''");
|
||||||
|
|
||||||
b.HasIndex("InternalWONumber")
|
b.HasIndex("InternalWONumber")
|
||||||
.HasFilter("[istemplate] = 0");
|
.HasFilter("[istemplate] = 0");
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue