// 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);
}