// This file has been auto generated by EF Core Power Tools. #nullable disable using System; using System.Collections.Generic; using Microsoft.EntityFrameworkCore; namespace rgbc_sds.dal.DB; public partial class rgbc_sdsContext : DbContext { public rgbc_sdsContext(DbContextOptions options) : base(options) { } public virtual DbSet mstUser { get; set; } public virtual DbSet sdsShipment { get; set; } public virtual DbSet sdsSupplier { get; set; } // Import System Entities public virtual DbSet ImportSessions { get; set; } public virtual DbSet StagingShipments { get; set; } public virtual DbSet ImportErrorLogs { get; set; } protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.Entity(entity => { entity.HasKey(e => e.UserID); entity.Property(e => e.dtStamp).HasMaxLength(12); entity.Property(e => e.refUserGroupForecastID).HasDefaultValueSql("((0))"); entity.Property(e => e.refUserGroupFreeStockID).HasDefaultValueSql("((0))"); entity.Property(e => e.refUserGroupPORID).HasDefaultValueSql("((0))"); entity.Property(e => e.refUserGroupPromotionID).HasDefaultValueSql("((0))"); entity.Property(e => e.refUserGroupSDSID).HasDefaultValueSql("((0))"); entity.Property(e => e.refUserGroupScoreCardID).HasDefaultValueSql("((0))"); entity.Property(e => e.strDomainLogin).HasMaxLength(100); entity.Property(e => e.strEmail).HasMaxLength(100); entity.Property(e => e.strLastUser).HasMaxLength(100); entity.Property(e => e.strPassword).HasMaxLength(32); entity.Property(e => e.strRegion) .IsRequired() .HasMaxLength(50) .IsUnicode(false) .HasDefaultValueSql("('')"); entity.Property(e => e.strUserName).HasMaxLength(50); }); modelBuilder.Entity(entity => { entity.Property(e => e.accpac_receipts_file).HasMaxLength(255); entity.Property(e => e.arrival_invoice_file).HasMaxLength(255); entity.Property(e => e.arrival_invoice_file2).HasMaxLength(255); entity.Property(e => e.bill_of_entry_number).HasMaxLength(255); entity.Property(e => e.bill_of_lading_file).HasMaxLength(255); entity.Property(e => e.cancel_reason).HasMaxLength(255); entity.Property(e => e.certificate_of_origin_file).HasMaxLength(255); entity.Property(e => e.certificate_of_removal_file).HasMaxLength(255); entity.Property(e => e.clamping_request_file).HasMaxLength(255); entity.Property(e => e.container_number).HasMaxLength(255); entity.Property(e => e.container_received).HasColumnType("datetime"); entity.Property(e => e.created_at).HasColumnType("datetime"); entity.Property(e => e.created_by).HasMaxLength(255); entity.Property(e => e.dept_of_health_inspection_file).HasMaxLength(255); entity.Property(e => e.dro_to_transport_file).HasMaxLength(255); entity.Property(e => e.eta).HasColumnType("datetime"); entity.Property(e => e.extended_detention_file).HasMaxLength(255); entity.Property(e => e.grv_complete_RGBC_file).HasMaxLength(255); entity.Property(e => e.grv_edward_snell_file).HasMaxLength(255); entity.Property(e => e.indent_number).HasMaxLength(255); entity.Property(e => e.mbl_number).HasMaxLength(255); entity.Property(e => e.mother_vessel).HasMaxLength(255); entity.Property(e => e.no_of_flatcases).HasMaxLength(255); entity.Property(e => e.packing_list_file).HasMaxLength(255); entity.Property(e => e.redirect_to_SACD).HasColumnType("datetime"); entity.Property(e => e.sars_documents_file).HasMaxLength(255); entity.Property(e => e.shipment_status).HasMaxLength(50); entity.Property(e => e.shipshape_number).HasMaxLength(255); entity.Property(e => e.supplier_invoice_file).HasMaxLength(255); entity.Property(e => e.updated_at).HasColumnType("datetime"); entity.Property(e => e.updated_by).HasMaxLength(255); entity.Property(e => e.voc_file).HasMaxLength(255); entity.Property(e => e.voyage).HasMaxLength(255); entity.HasOne(d => d.supplier).WithMany(p => p.sdsShipment) .HasForeignKey(d => d.supplier_id) .OnDelete(DeleteBehavior.ClientSetNull) .HasConstraintName("FK_sdsShipment_sdsSupplier"); }); modelBuilder.Entity(entity => { entity.Property(e => e.created_at).HasColumnType("datetime"); entity.Property(e => e.created_by).HasMaxLength(255); entity.Property(e => e.is_active).HasDefaultValueSql("((1))"); entity.Property(e => e.name).HasMaxLength(255); entity.Property(e => e.updated_at).HasColumnType("datetime"); entity.Property(e => e.updated_by).HasMaxLength(255); }); // Import System Entity Configurations modelBuilder.Entity(entity => { entity.HasKey(e => e.Id); entity.Property(e => e.Id).HasDefaultValueSql("NEWID()"); entity.Property(e => e.CreatedAt).HasDefaultValueSql("GETUTCDATE()"); entity.Property(e => e.Status).HasDefaultValue("Pending"); // Remove HasDefaultValue for row count properties to force EF to include them in INSERT // entity.Property(e => e.TotalRows).HasDefaultValue(0); // entity.Property(e => e.ValidRows).HasDefaultValue(0); // entity.Property(e => e.ErrorRows).HasDefaultValue(0); // Indexes entity.HasIndex(e => new { e.Status, e.CreatedAt }); entity.HasIndex(e => new { e.CreatedBy, e.CreatedAt }); }); modelBuilder.Entity(entity => { entity.HasKey(e => e.Id); entity.Property(e => e.Id).UseIdentityColumn(); entity.Property(e => e.Status).HasDefaultValue("Pending"); entity.Property(e => e.IsUpdate).HasDefaultValue(false); // Foreign Key Relationship entity.HasOne(d => d.ImportSession) .WithMany(p => p.StagingShipments) .HasForeignKey(d => d.SessionId) .OnDelete(DeleteBehavior.Cascade); // Indexes entity.HasIndex(e => new { e.SessionId, e.Status }); entity.HasIndex(e => e.IndentNumber); }); modelBuilder.Entity(entity => { entity.HasKey(e => e.Id); entity.Property(e => e.Id).UseIdentityColumn(); entity.Property(e => e.CreatedAt).HasDefaultValueSql("GETUTCDATE()"); entity.Property(e => e.Severity).HasDefaultValue("Error"); // Foreign Key Relationship (nullable) entity.HasOne(d => d.ImportSession) .WithMany(p => p.ImportErrorLogs) .HasForeignKey(d => d.SessionId) .OnDelete(DeleteBehavior.SetNull); // Indexes entity.HasIndex(e => new { e.SessionId, e.ErrorType }); entity.HasIndex(e => new { e.Severity, e.CreatedAt }); }); OnModelCreatingPartial(modelBuilder); } partial void OnModelCreatingPartial(ModelBuilder modelBuilder); }