using CPRNIMS.Infrastructure.Dto.Canvass.Response; using CPRNIMS.Infrastructure.Dto.Inventory.Response; using CPRNIMS.Infrastructure.Entities.Account; using CPRNIMS.Infrastructure.Entities.Canvass; using CPRNIMS.Infrastructure.Entities.Common; using CPRNIMS.Infrastructure.Entities.Finance; using CPRNIMS.Infrastructure.Entities.Inventory; using CPRNIMS.Infrastructure.Entities.Items; using CPRNIMS.Infrastructure.Entities.PO; using CPRNIMS.Infrastructure.Entities.Purchasing; using CPRNIMS.Infrastructure.Entities.SMTP; using Microsoft.AspNetCore.Identity; using Microsoft.AspNetCore.Identity.EntityFrameworkCore; using Microsoft.EntityFrameworkCore; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace CPRNIMS.Infrastructure.Database { public class NonInventoryDbContext : IdentityDbContext { public NonInventoryDbContext(DbContextOptions options) : base(options) { } #region Common public DbSet Departments { get; set; } public DbSet IdentityRoles { get; set; } public DbSet AuthorizeRoles { get; set; } public DbSet UserRights { get; set; } public DbSet> IdentityUserRoles { get; set; } public DbSet ForgotPasswords { get; set; } public virtual DbSet Otps { get; set; } public virtual DbSet ErrorMessages { get; set; } public virtual DbSet ControllerAccess { get; set; } public virtual DbSet SMTPCredentials { get; set; } #endregion #region Item public virtual DbSet ItemCodes { get; set; } public virtual DbSet ItemList { get; set; } public virtual DbSet Items { get; set; } public DbSet Attachments { get; set; } public virtual DbSet AttachmentExtensions { get; set; } public virtual DbSet AttachmentFileTypes { get; set; } public virtual DbSet ItemAttachements { get; set; } public virtual DbSet ItemCategories { get; set; } public virtual DbSet UnitOfMessures { get; set; } public virtual DbSet ItemColors { get; set; } public virtual DbSet ItemLocalizations { get; set; } public virtual DbSet ItemCarts { get; set; } public virtual DbSet ItemApprovals { get; set; } public virtual DbSet ItemDetails { get; set; } #endregion #region PR public virtual DbSet PRs { get; set; } public virtual DbSet Approved { get; set; } public virtual DbSet ApprovedPrs { get; set; } public virtual DbSet DeletedPRs { get; set; } public virtual DbSet PRDetails { get; set; } public virtual DbSet PRItemLists { get; set; } public DbSet PRAttachments { get; set; } public DbSet ProjectCodes { get; set; } public virtual DbSet PRLists { get; set; } public virtual DbSet PRItemList { get; set; } public virtual DbSet PRWOCanvasses { get; set; } public virtual DbSet PRItemDetails { get; set; } public virtual DbSet DetailedPRTrackings { get; set; } public virtual DbSet PRTrackings { get; set; } public virtual DbSet Dashboards { get; set; } #endregion #region Canvassing public virtual DbSet NotificationByIds { get; set; } public virtual DbSet AlternativeOffers { get; set; } public virtual DbSet AlternativeOfferDetails { get; set; } public virtual DbSet MyPRWOCanvass { get; set; } public virtual DbSet Canvasses { get; set; } public DbSet SupplierForCanvass { get; set; } public DbSet SupplierResponses { get; set; } public DbSet SupplierItems { get; set; } public DbSet ItemsForTaggings { get; set; } public virtual DbSet ForCanvassFollowUps { get; set; } public virtual DbSet WOResponses { get; set; } public virtual DbSet WOResponseByIds { get; set; } public virtual DbSet ItemListWOEmails { get; set; } public virtual DbSet Suppliers { get; set; } public virtual DbSet RFQs { get; set; } public virtual DbSet BiddingItems { get; set; } public virtual DbSet SupplierBidByIds { get; set; } public virtual DbSet RFQPerSuppliers { get; set; } public virtual DbSet PerSuppliers { get; set; } public virtual DbSet CanvassSuppliers { get; set; } public virtual DbSet RFQReferences { get; set; } public virtual DbSet CanvassDetails { get; set; } public virtual DbSet PRCanvassDetails { get; set; } public DbSet ForAISearchingTaggings { get; set; } public virtual DbSet CanvassGroupByPRNos { get; set; } public virtual DbSet ForCanvasses { get; set; } #endregion #region PO public virtual DbSet ForPOs { get; set; } public virtual DbSet CreatedPOs { get; set; } public virtual DbSet CustomPOs { get; set; } public virtual DbSet IndexCards { get; set; } public virtual DbSet ForPOApprovals { get; set; } public virtual DbSet ApprovedPOs { get; set; } public virtual DbSet PurchaseOrders { get; set; } public virtual DbSet ForPayments { get; set; } public virtual DbSet POs { get; set; } public DbSet PODetails { get; set; } public virtual DbSet PRPOSummaryCounts { get; set; } public virtual DbSet PRPOSummaryItems { get; set; } public virtual DbSet POItemDetails { get; set; } public virtual DbSet OtherCharges { get; set; } public virtual DbSet PortOfDischarges { get; set; } public virtual DbSet DocRequireds { get; set; } public virtual DbSet BiddingApprovals { get; set; } public virtual DbSet NotifUserKeys { get; set; } public virtual DbSet ItemListForPOs { get; set; } public virtual DbSet CreatedPOPerSupIds { get; set; } public DbSet IncomingShipments { get; set; } public virtual DbSet IncomingShipmentDtos { get; set; } public virtual DbSet PaymentTerms { get; set; } public virtual DbSet Incoterms { get; set; } public virtual DbSet CentralPONos { get; set; } #endregion #region Inventory public virtual DbSet Inventories { get; set; } public virtual DbSet Lots { get; set; } public virtual DbSet LotTypes { get; set; } public virtual DbSet LotQtyByItems { get; set; } public virtual DbSet RequestItems { get; set; } public virtual DbSet RequestItemDetails { get; set; } public virtual DbSet RIS { get; set; } public virtual DbSet MRS { get; set; } public virtual DbSet Disciplines { get; set; } public virtual DbSet InventTrans { get; set; } public virtual DbSet InventTransDetails { get; set; } public DbSet InventoryByIdResponses { get; set; } #endregion #region RR public virtual DbSet ForReceivings { get; set; } public virtual DbSet RRReports { get; set; } public virtual DbSet ReceivingDetails { get; set; } public virtual DbSet RRDetails { get; set; } public virtual DbSet ForRRs { get; set; } public virtual DbSet RRs { get; set; } public virtual DbSet RRDetailss { get; set; } public virtual DbSet RRSeries { get; set; } #endregion #region Automation Part public virtual DbSet AllForCanvasses { get; set; } public DbSet ItemWithoutSuppliers { get; set; } public DbSet ErrorLogs { get; set; } #endregion protected override void OnModelCreating(ModelBuilder modelBuilder) { base.OnModelCreating(modelBuilder); modelBuilder.Entity() .Property(e => e.IncotermsId) .ValueGeneratedOnAdd(); modelBuilder.Entity() .Property(e => e.CanvassSupplierId) .ValueGeneratedNever(); modelBuilder.Entity(b => { b.ToTable("DetailsedPRTracking"); b.HasNoKey(); }); modelBuilder.Entity(b => { b.ToTable("PRPOSummaryCount"); b.HasNoKey(); }); modelBuilder.Entity(b => { b.ToTable("PRPOSummaryItem"); b.HasNoKey(); }); modelBuilder.Entity(b => { b.ToTable("RR"); b.HasNoKey(); }); modelBuilder.Entity(b => { b.ToTable("Users"); b.Property(u => u.Address).HasMaxLength(255); b.HasOne(u => u.Attachment) .WithOne(a => a.ApplicationUser) .HasForeignKey(a => a.AttachmentId) .IsRequired(false); // Allow null if there is no attachment }); modelBuilder.Entity(b => { b.ToTable("Attachments"); b.HasOne(a => a.AttachmentExtention) .WithOne() .HasForeignKey(a => a.ExtensionId) .IsRequired(false); // Allow null if there is no extension }); modelBuilder.Entity(b => { b.HasOne(u => u.Department) .WithMany() .HasForeignKey(u => u.DepartmentId) .IsRequired(false); }); modelBuilder.Entity(entity => { entity.ToTable("ForPO"); entity.HasNoKey(); }); modelBuilder.Entity(b => { b.ToTable("Departments"); }); modelBuilder.Entity(b => { b.ToTable("ControllerAccess"); }); modelBuilder.Entity(b => { b.ToTable("AttachmentExtensions"); }); modelBuilder.Entity>(b => { b.ToTable("UserClaims"); }); modelBuilder.Entity>(b => { b.ToTable("UserLogins"); }); modelBuilder.Entity>(b => { b.ToTable("RoleClaims"); }); modelBuilder.Entity>(b => { b.ToTable("UserTokens"); }); modelBuilder.Entity(b => { b.ToTable("Roles"); }); modelBuilder.Entity>(b => { b.ToTable("UserRoles"); }); modelBuilder.Entity() .HasOne(i => i.Lot) .WithMany() .HasForeignKey(i => i.LotId) .OnDelete(DeleteBehavior.Restrict); modelBuilder.Entity(e => { e.HasMany(r => r.InventTransDetails) .WithOne() .HasForeignKey(t => t.InventTransId) .OnDelete(DeleteBehavior.Restrict); }); modelBuilder.Entity(e => { e.HasOne(i => i.PRDetails) .WithMany() .HasForeignKey(t => t.PRDetailId) .OnDelete(DeleteBehavior.Restrict); }); modelBuilder.Entity(e => { e.HasOne(i => i.PRs) .WithMany() .HasForeignKey(t => t.PRId) .OnDelete(DeleteBehavior.Restrict); }); modelBuilder.Entity(e => { e.HasOne(r => r.Inventory) .WithMany() .HasForeignKey(r => r.InventoryId) .OnDelete(DeleteBehavior.Restrict); e.HasOne(r => r.Discipline) .WithMany() .HasForeignKey(r => r.DisciplineId); }); modelBuilder.Entity(e => { e.HasOne(m => m.RIS) .WithMany(r => r.MaterialReturns) .HasForeignKey(m => m.RISId) .OnDelete(DeleteBehavior.Restrict); }); } } }