diff --git a/Data.SeaHavenIndustries/Migrations/20260709170202_Phase5_DomainEvents.Designer.cs b/Data.SeaHavenIndustries/Migrations/20260709170202_Phase5_DomainEvents.Designer.cs
new file mode 100644
index 0000000..7387556
--- /dev/null
+++ b/Data.SeaHavenIndustries/Migrations/20260709170202_Phase5_DomainEvents.Designer.cs
@@ -0,0 +1,3048 @@
+//
+using System;
+using Data.SeaHavenIndustries;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Metadata;
+using Microsoft.EntityFrameworkCore.Migrations;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+
+#nullable disable
+
+namespace Data.SeaHavenIndustries.Migrations
+{
+ [DbContext(typeof(ApplicationDbContext))]
+ [Migration("20260709170202_Phase5_DomainEvents")]
+ partial class Phase5_DomainEvents
+ {
+ ///
+ protected override void BuildTargetModel(ModelBuilder modelBuilder)
+ {
+#pragma warning disable 612, 618
+ modelBuilder
+ .HasAnnotation("ProductVersion", "8.0.8")
+ .HasAnnotation("Relational:MaxIdentifierLength", 128);
+
+ SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder);
+
+ modelBuilder.Entity("Data.SeaHavenIndustries.Accounts", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"));
+
+ b.Property("About")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("CreatedDate")
+ .HasColumnType("datetime2");
+
+ b.Property("CurrencyCode")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("DeleterUserId")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("DeletionTime")
+ .HasColumnType("datetime2");
+
+ b.Property("Email")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("FacebookUrl")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Importance")
+ .HasColumnType("int");
+
+ b.Property("IndustryId")
+ .HasColumnType("int");
+
+ b.Property("IsDeleted")
+ .HasColumnType("bit");
+
+ b.Property("LastModificationTime")
+ .HasColumnType("datetime2");
+
+ b.Property("LastModifierUserId")
+ .HasColumnType("int");
+
+ b.Property("LinkedInUrl")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Name")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("OwnerEmployeeId")
+ .HasColumnType("int");
+
+ b.Property("Phone")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("PrivacySetting")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("ServiceInstructions")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Tags")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("TerritoryId")
+ .HasColumnType("int");
+
+ b.Property("TimeZone")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("TwitterUrl")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Type")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Website")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("createdby")
+ .HasColumnType("nvarchar(max)");
+
+ b.HasKey("Id");
+
+ b.ToTable("Accounts", (string)null);
+ });
+
+ modelBuilder.Entity("Data.SeaHavenIndustries.Addresses", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"));
+
+ b.Property("AccountId")
+ .HasColumnType("int");
+
+ b.Property("Address1")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Address2")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("AddressType")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("City")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("ContactId")
+ .HasColumnType("int");
+
+ b.Property("Country")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("County")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("CreatedDate")
+ .HasColumnType("datetime2");
+
+ b.Property("DeleterUserId")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("DeletionTime")
+ .HasColumnType("datetime2");
+
+ b.Property("IsDeleted")
+ .HasColumnType("bit");
+
+ b.Property("LastModificationTime")
+ .HasColumnType("datetime2");
+
+ b.Property("LastModifierUserId")
+ .HasColumnType("int");
+
+ b.Property("State")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Zip")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("createdby")
+ .HasColumnType("nvarchar(max)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("AccountId");
+
+ b.HasIndex("ContactId");
+
+ b.ToTable("Addresses", (string)null);
+ });
+
+ modelBuilder.Entity("Data.SeaHavenIndustries.ApplicationUser", b =>
+ {
+ b.Property("Id")
+ .HasColumnType("nvarchar(450)");
+
+ b.Property("AccessFailedCount")
+ .HasColumnType("int");
+
+ b.Property("Color")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("ConcurrencyStamp")
+ .IsConcurrencyToken()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Contact")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("CreatedDate")
+ .HasColumnType("datetime2");
+
+ b.Property("DeletedDate")
+ .HasColumnType("datetime2");
+
+ b.Property("Email")
+ .HasMaxLength(256)
+ .HasColumnType("nvarchar(256)");
+
+ b.Property("EmailConfirmed")
+ .HasColumnType("bit");
+
+ b.Property("FirstName")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Initials")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("IsDeleted")
+ .HasColumnType("bit");
+
+ b.Property("LastName")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Locations")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("LockoutEnabled")
+ .HasColumnType("bit");
+
+ b.Property("LockoutEnd")
+ .HasColumnType("datetimeoffset");
+
+ b.Property("NormalizedEmail")
+ .HasMaxLength(256)
+ .HasColumnType("nvarchar(256)");
+
+ b.Property("NormalizedUserName")
+ .HasMaxLength(256)
+ .HasColumnType("nvarchar(256)");
+
+ b.Property("PasswordHash")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("PhoneNumber")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("PhoneNumberConfirmed")
+ .HasColumnType("bit");
+
+ b.Property("SecurityStamp")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("TwoFactorEnabled")
+ .HasColumnType("bit");
+
+ b.Property("Type")
+ .HasColumnType("int");
+
+ b.Property("UniqueName")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("UserImage")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("UserName")
+ .HasMaxLength(256)
+ .HasColumnType("nvarchar(256)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("NormalizedEmail")
+ .HasDatabaseName("EmailIndex");
+
+ b.HasIndex("NormalizedUserName")
+ .IsUnique()
+ .HasDatabaseName("UserNameIndex")
+ .HasFilter("[NormalizedUserName] IS NOT NULL");
+
+ b.ToTable("AspNetUsers", (string)null);
+ });
+
+ modelBuilder.Entity("Data.SeaHavenIndustries.Assets", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"));
+
+ b.Property("AccountId")
+ .HasColumnType("int");
+
+ b.Property("AssetCode")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("CreatedDate")
+ .HasColumnType("datetime2");
+
+ b.Property("DeleterUserId")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("DeletionTime")
+ .HasColumnType("datetime2");
+
+ b.Property("Description")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("IsActive")
+ .HasColumnType("bit");
+
+ b.Property("IsDeleted")
+ .HasColumnType("bit");
+
+ b.Property("LastModificationTime")
+ .HasColumnType("datetime2");
+
+ b.Property("LastModifierUserId")
+ .HasColumnType("int");
+
+ b.Property("LocationId")
+ .HasColumnType("int");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("createdby")
+ .HasColumnType("nvarchar(max)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("AccountId");
+
+ b.HasIndex("LocationId");
+
+ b.ToTable("Assets", (string)null);
+ });
+
+ modelBuilder.Entity("Data.SeaHavenIndustries.Category", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"));
+
+ b.Property("CreatedDate")
+ .HasColumnType("datetime2");
+
+ b.Property("DeleterUserId")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("DeletionTime")
+ .HasColumnType("datetime2");
+
+ b.Property("IsDeleted")
+ .HasColumnType("bit");
+
+ b.Property("LastModificationTime")
+ .HasColumnType("datetime2");
+
+ b.Property("LastModifierUserId")
+ .HasColumnType("int");
+
+ b.Property("Name")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("createdby")
+ .HasColumnType("nvarchar(max)");
+
+ b.HasKey("Id");
+
+ b.ToTable("Categories", (string)null);
+ });
+
+ modelBuilder.Entity("Data.SeaHavenIndustries.Comments", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"));
+
+ b.Property("CommentType")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Commenter")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Commenttext")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("CreatedDate")
+ .HasColumnType("datetime2");
+
+ b.Property("DeleterUserId")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("DeletionTime")
+ .HasColumnType("datetime2");
+
+ b.Property("DispatchId")
+ .HasColumnType("int");
+
+ b.Property("Documents")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("ExternalCommentId")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("IsDeleted")
+ .HasColumnType("bit");
+
+ b.Property("LastModificationTime")
+ .HasColumnType("datetime2");
+
+ b.Property("LastModifierUserId")
+ .HasColumnType("int");
+
+ b.Property("RecordType")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("UserId")
+ .HasColumnType("nvarchar(450)");
+
+ b.Property("WorkerOrderId")
+ .HasColumnType("int");
+
+ b.Property("createdby")
+ .HasColumnType("nvarchar(max)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("DispatchId");
+
+ b.HasIndex("UserId");
+
+ b.HasIndex("WorkerOrderId");
+
+ b.ToTable("Comments", (string)null);
+ });
+
+ modelBuilder.Entity("Data.SeaHavenIndustries.ContactDetails", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"));
+
+ b.Property("About")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("ContactId")
+ .HasColumnType("int");
+
+ b.Property("CreatedDate")
+ .HasColumnType("datetime2");
+
+ b.Property("DateOfBirth")
+ .HasColumnType("datetime2");
+
+ b.Property("DeleterUserId")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("DeletionTime")
+ .HasColumnType("datetime2");
+
+ b.Property("FacebookUrl")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Gender")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("IsDeleted")
+ .HasColumnType("bit");
+
+ b.Property("LastModificationTime")
+ .HasColumnType("datetime2");
+
+ b.Property("LastModifierUserId")
+ .HasColumnType("int");
+
+ b.Property("LinkedInUrl")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("PrivacySetting")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Tags")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Territory")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("TwitterUrl")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("createdby")
+ .HasColumnType("nvarchar(max)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("ContactId");
+
+ b.ToTable("ContactDetails", (string)null);
+ });
+
+ modelBuilder.Entity("Data.SeaHavenIndustries.Contacts", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"));
+
+ b.Property("AccountId")
+ .HasColumnType("int");
+
+ b.Property("Address1")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Address2")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("City")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("ContactType")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("CreatedDate")
+ .HasColumnType("datetime2");
+
+ b.Property("DeleterUserId")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("DeletionTime")
+ .HasColumnType("datetime2");
+
+ b.Property("Email")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("FacebookUrl")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("FirstName")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("IsDeleted")
+ .HasColumnType("bit");
+
+ b.Property("LastModificationTime")
+ .HasColumnType("datetime2");
+
+ b.Property("LastModifierUserId")
+ .HasColumnType("int");
+
+ b.Property("LastName")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("LinkedInUrl")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("LocationId")
+ .HasColumnType("int");
+
+ b.Property("MiddleName")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Owner")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("PhoneNumber")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("State")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Title")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("TwitterUrl")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Zip")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("createdby")
+ .HasColumnType("nvarchar(max)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("AccountId");
+
+ b.HasIndex("LocationId");
+
+ b.ToTable("Contacts", (string)null);
+ });
+
+ modelBuilder.Entity("Data.SeaHavenIndustries.Department", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"));
+
+ b.Property("Name")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("nvarchar(200)");
+
+ b.HasKey("Id");
+
+ b.ToTable("Departments", (string)null);
+ });
+
+ modelBuilder.Entity("Data.SeaHavenIndustries.Dispatch", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"));
+
+ b.Property("AcceptToken")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("AcknowledgedAt")
+ .HasColumnType("datetime2");
+
+ b.Property("CompletedDate")
+ .HasColumnType("datetime2");
+
+ b.Property("CreatedDate")
+ .HasColumnType("datetime2");
+
+ b.Property("DeleterUserId")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("DeletionTime")
+ .HasColumnType("datetime2");
+
+ b.Property("Description")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("DispatchNumber")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("DispatchedAt")
+ .HasColumnType("datetime2");
+
+ b.Property("EmailSent")
+ .HasColumnType("bit");
+
+ b.Property("IsDeleted")
+ .HasColumnType("bit");
+
+ b.Property("LastModificationTime")
+ .HasColumnType("datetime2");
+
+ b.Property("LastModifierUserId")
+ .HasColumnType("int");
+
+ b.Property("NTEAmount")
+ .HasColumnType("decimal(18,2)");
+
+ b.Property("PONumber")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("ReplyToAddress")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("RowVersion")
+ .IsConcurrencyToken()
+ .ValueGeneratedOnAddOrUpdate()
+ .HasColumnType("rowversion");
+
+ b.Property("ScheduledDate")
+ .HasColumnType("datetime2");
+
+ b.Property("Status")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("VendorId")
+ .HasColumnType("int");
+
+ b.Property("VerifiedAt")
+ .HasColumnType("datetime2");
+
+ b.Property("VerifiedBy")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("WorkOrderId")
+ .HasColumnType("int");
+
+ b.Property("createdby")
+ .HasColumnType("nvarchar(max)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("VendorId");
+
+ b.HasIndex("WorkOrderId");
+
+ b.ToTable("Dispatches", (string)null);
+ });
+
+ modelBuilder.Entity("Data.SeaHavenIndustries.DispatchChecklistItem", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"));
+
+ b.Property("CompletedAt")
+ .HasColumnType("datetime2");
+
+ b.Property("CompletedBy")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("CreatedDate")
+ .HasColumnType("datetime2");
+
+ b.Property("DeleterUserId")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("DeletionTime")
+ .HasColumnType("datetime2");
+
+ b.Property("DispatchId")
+ .HasColumnType("int");
+
+ b.Property("IsCompleted")
+ .HasColumnType("bit");
+
+ b.Property("IsDeleted")
+ .HasColumnType("bit");
+
+ b.Property("ItemText")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("LastModificationTime")
+ .HasColumnType("datetime2");
+
+ b.Property("LastModifierUserId")
+ .HasColumnType("int");
+
+ b.Property("SortOrder")
+ .HasColumnType("int");
+
+ b.Property("WorkOrderId")
+ .HasColumnType("int");
+
+ b.Property("createdby")
+ .HasColumnType("nvarchar(max)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("DispatchId");
+
+ b.HasIndex("WorkOrderId");
+
+ b.ToTable("DispatchChecklistItems", (string)null);
+ });
+
+ modelBuilder.Entity("Data.SeaHavenIndustries.DispatchSignoff", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"));
+
+ b.Property("CreatedDate")
+ .HasColumnType("datetime2");
+
+ b.Property("DeleterUserId")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("DeletionTime")
+ .HasColumnType("datetime2");
+
+ b.Property("DispatchId")
+ .HasColumnType("int");
+
+ b.Property("IsDeleted")
+ .HasColumnType("bit");
+
+ b.Property("LastModificationTime")
+ .HasColumnType("datetime2");
+
+ b.Property("LastModifierUserId")
+ .HasColumnType("int");
+
+ b.Property("Name")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Signature")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("SignatureMethod")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("SignedAt")
+ .HasColumnType("datetime2");
+
+ b.Property("SignoffType")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("createdby")
+ .HasColumnType("nvarchar(max)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("DispatchId");
+
+ b.ToTable("DispatchSignoffs", (string)null);
+ });
+
+ modelBuilder.Entity("Data.SeaHavenIndustries.DispatchUpliftRequest", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"));
+
+ b.Property("CreatedDate")
+ .HasColumnType("datetime2");
+
+ b.Property("CurrentNTE")
+ .HasColumnType("decimal(18,2)");
+
+ b.Property("DecidedAt")
+ .HasColumnType("datetime2");
+
+ b.Property("DecidedByUserId")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("DecisionNote")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("DeleterUserId")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("DeletionTime")
+ .HasColumnType("datetime2");
+
+ b.Property("DispatchId")
+ .HasColumnType("int");
+
+ b.Property("IsDeleted")
+ .HasColumnType("bit");
+
+ b.Property("LastModificationTime")
+ .HasColumnType("datetime2");
+
+ b.Property("LastModifierUserId")
+ .HasColumnType("int");
+
+ b.Property("RequestedByVendorName")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("RequestedNTE")
+ .HasColumnType("decimal(18,2)");
+
+ b.Property("RequiredTier")
+ .HasColumnType("int");
+
+ b.Property("Status")
+ .IsRequired()
+ .HasMaxLength(20)
+ .HasColumnType("nvarchar(20)");
+
+ b.Property("VendorReason")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("createdby")
+ .HasColumnType("nvarchar(max)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("DispatchId", "Status")
+ .IsUnique()
+ .HasFilter("[Status] = 'Pending'");
+
+ b.ToTable("DispatchUpliftRequests", (string)null);
+ });
+
+ modelBuilder.Entity("Data.SeaHavenIndustries.DispatchWorkOrder", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"));
+
+ b.Property("DispatchId")
+ .HasColumnType("int");
+
+ b.Property("WorkOrderId")
+ .HasColumnType("int");
+
+ b.HasKey("Id");
+
+ b.HasIndex("DispatchId");
+
+ b.HasIndex("WorkOrderId");
+
+ b.ToTable("DispatchWorkOrders", (string)null);
+ });
+
+ modelBuilder.Entity("Data.SeaHavenIndustries.DropdownOption", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"));
+
+ b.Property("Category")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("IsActive")
+ .HasColumnType("bit");
+
+ b.Property("ParentValue")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("SortOrder")
+ .HasColumnType("int");
+
+ b.Property("Value")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.HasKey("Id");
+
+ b.ToTable("DropdownOptions", (string)null);
+ });
+
+ modelBuilder.Entity("Data.SeaHavenIndustries.Employee", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"));
+
+ b.Property