diff --git a/Marco.Pms.DataAccess/Data/ApplicationDbContext.cs b/Marco.Pms.DataAccess/Data/ApplicationDbContext.cs
index e1990e9..a36b099 100644
--- a/Marco.Pms.DataAccess/Data/ApplicationDbContext.cs
+++ b/Marco.Pms.DataAccess/Data/ApplicationDbContext.cs
@@ -1416,6 +1416,7 @@ namespace Marco.Pms.DataAccess.Data
new Module { Id = new Guid("2a231490-bcb1-4bdd-91f1-f25fb7f25b23"), Name = "Employee", Description = "Employee Module", Key = "0971c7fb-6ce1-458a-ae3f-8d3205893637" },
new Module { Id = new Guid("c43db8c7-ab73-47f4-9d3b-f83e81357924"), Name = "Masters", Description = "Masters Module", Key = "504ec132-e6a9-422f-8f85-050602cfce05" },
new Module { Id = new Guid("f482a079-4dec-4f2d-9867-6baf2a4f23d9"), Name = "Tenant", Description = "Tenant Module", Key = "504ec132-e6a9-422f-8f85-050602cfce05" },
+ new Module { Id = new Guid("74e7af50-d55f-4b59-a724-9847ceb7bc17"), Name = "Inventory", Description = "Inventory Module", Key = "504ec132-e6a9-422f-8f85-050602cfce05" },
new Module { Id = new Guid("0a79687a-86d7-430d-a2d7-8b8603cc76a1"), Name = "Finance", Description = "Finance Module", Key = "504ec132-e6a9-422f-8f85-050602cfce05" }
);
@@ -1439,6 +1440,9 @@ namespace Marco.Pms.DataAccess.Data
new Feature { Id = new Guid("39e66f81-efc6-446c-95bd-46bff6cfb606"), Description = "Managing all directory related rights", Name = "Directory Management", ModuleId = new Guid("c43db8c7-ab73-47f4-9d3b-f83e81357924"), IsActive = true },
new Feature { Id = new Guid("6d4c82d6-dbce-48ab-b8b8-f785f4d8c914"), Description = "Managing all organization related rights", Name = "Organization Management", ModuleId = new Guid("c43db8c7-ab73-47f4-9d3b-f83e81357924"), IsActive = true },
+ // Inventory Module
+ new Feature { Id = new Guid("271cc47f-7b05-46c7-b5ae-ef0177ec3b60"), Description = "Managing all Purchase invoice related rights", Name = "Purchase Invoice Management", ModuleId = new Guid("74e7af50-d55f-4b59-a724-9847ceb7bc17"), IsActive = true },
+
// Tenant Module
new Feature { Id = new Guid("2f3509b7-160d-410a-b9b6-daadd96c986d"), Description = "Managing all tenant related rights", Name = "Tenant Management", ModuleId = new Guid("f482a079-4dec-4f2d-9867-6baf2a4f23d9"), IsActive = true }
);
@@ -1513,7 +1517,14 @@ namespace Marco.Pms.DataAccess.Data
// Organization Management Feature
new FeaturePermission { Id = new Guid("068cb3c1-49c5-4746-9f29-1fce16e820ac"), FeatureId = new Guid("6d4c82d6-dbce-48ab-b8b8-f785f4d8c914"), IsEnabled = true, Name = "Add Organization", Description = "Allow user to create new organization" },
new FeaturePermission { Id = new Guid("c1ae1363-ab8a-4bd9-a9d1-8c2c6083873a"), FeatureId = new Guid("6d4c82d6-dbce-48ab-b8b8-f785f4d8c914"), IsEnabled = true, Name = "Edit Organization", Description = "Allow the user to update the basic information of the organization" },
- new FeaturePermission { Id = new Guid("7a6cf830-0008-4e03-b31d-0d050cb634f4"), FeatureId = new Guid("6d4c82d6-dbce-48ab-b8b8-f785f4d8c914"), IsEnabled = true, Name = "View Organization", Description = "Allow the user to view information of the organization" }
+ new FeaturePermission { Id = new Guid("7a6cf830-0008-4e03-b31d-0d050cb634f4"), FeatureId = new Guid("6d4c82d6-dbce-48ab-b8b8-f785f4d8c914"), IsEnabled = true, Name = "View Organization", Description = "Allow the user to view information of the organization" },
+
+ // Purchase Invoice Management Feature
+ new FeaturePermission { Id = new Guid("91e09825-512a-465e-82ad-fa355b305585"), FeatureId = new Guid("271cc47f-7b05-46c7-b5ae-ef0177ec3b60"), IsEnabled = true, Name = "View Self Purchase Invoice", Description = "Allows the user to view only the purchase invoices they created." },
+ new FeaturePermission { Id = new Guid("d6ae78d3-a941-4cc4-8d0a-d40479be4211"), FeatureId = new Guid("271cc47f-7b05-46c7-b5ae-ef0177ec3b60"), IsEnabled = true, Name = "View All Purchase Invoice", Description = "Allows the user to view all purchase invoices across the entire organization." },
+ new FeaturePermission { Id = new Guid("68ff925d-8ebf-4034-a137-8d3317c56ca1"), FeatureId = new Guid("271cc47f-7b05-46c7-b5ae-ef0177ec3b60"), IsEnabled = true, Name = "Manage Purchase Invoice", Description = "Allows full control to create, edit, and process purchase invoices." },
+ new FeaturePermission { Id = new Guid("a4b77638-bf31-42bb-afd4-d5bbd15ccadc"), FeatureId = new Guid("271cc47f-7b05-46c7-b5ae-ef0177ec3b60"), IsEnabled = true, Name = "Delete Purchase Invoice", Description = "Allows the user to mark purchase invoices as inactive or void." },
+ new FeaturePermission { Id = new Guid("b24eba39-4a92-4f7a-b33b-b5308fbc48b9"), FeatureId = new Guid("271cc47f-7b05-46c7-b5ae-ef0177ec3b60"), IsEnabled = true, Name = "Add Delivery Challan", Description = "Allows the user to create delivery challans for purchase invoices." }
);
diff --git a/Marco.Pms.DataAccess/Migrations/20251201060004_Added_Purchase_Invoice_Permissions.Designer.cs b/Marco.Pms.DataAccess/Migrations/20251201060004_Added_Purchase_Invoice_Permissions.Designer.cs
new file mode 100644
index 0000000..0e296ed
--- /dev/null
+++ b/Marco.Pms.DataAccess/Migrations/20251201060004_Added_Purchase_Invoice_Permissions.Designer.cs
@@ -0,0 +1,9466 @@
+//
+using System;
+using Marco.Pms.DataAccess.Data;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Metadata;
+using Microsoft.EntityFrameworkCore.Migrations;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+
+#nullable disable
+
+namespace Marco.Pms.DataAccess.Migrations
+{
+ [DbContext(typeof(ApplicationDbContext))]
+ [Migration("20251201060004_Added_Purchase_Invoice_Permissions")]
+ partial class Added_Purchase_Invoice_Permissions
+ {
+ ///
+ protected override void BuildTargetModel(ModelBuilder modelBuilder)
+ {
+#pragma warning disable 612, 618
+ modelBuilder
+ .HasAnnotation("ProductVersion", "8.0.12")
+ .HasAnnotation("Relational:MaxIdentifierLength", 64);
+
+ //MySqlModelBuilderExtensions.AutoIncrementColumns(modelBuilder);
+
+ modelBuilder.Entity("Marco.Pms.Model.Activities.TaskAllocation", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("char(36)");
+
+ b.Property("ApprovedById")
+ .HasColumnType("char(36)");
+
+ b.Property("ApprovedDate")
+ .HasColumnType("datetime(6)");
+
+ b.Property("AssignedBy")
+ .HasColumnType("char(36)");
+
+ b.Property("AssignmentDate")
+ .HasColumnType("datetime(6)");
+
+ b.Property("CompletedTask")
+ .HasColumnType("double");
+
+ b.Property("Description")
+ .HasColumnType("longtext");
+
+ b.Property("ParentTaskId")
+ .HasColumnType("char(36)");
+
+ b.Property("PlannedTask")
+ .HasColumnType("double");
+
+ b.Property("ReportedById")
+ .HasColumnType("char(36)");
+
+ b.Property("ReportedDate")
+ .HasColumnType("datetime(6)");
+
+ b.Property("ReportedTask")
+ .HasColumnType("double");
+
+ b.Property("TenantId")
+ .HasColumnType("char(36)");
+
+ b.Property("WorkItemId")
+ .HasColumnType("char(36)");
+
+ b.Property("WorkStatusId")
+ .HasColumnType("char(36)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("ApprovedById");
+
+ b.HasIndex("AssignedBy");
+
+ b.HasIndex("ReportedById");
+
+ b.HasIndex("TenantId");
+
+ b.HasIndex("WorkItemId");
+
+ b.HasIndex("WorkStatusId");
+
+ b.ToTable("TaskAllocations");
+ });
+
+ modelBuilder.Entity("Marco.Pms.Model.Activities.TaskAttachment", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("char(36)");
+
+ b.Property("DocumentId")
+ .HasColumnType("char(36)");
+
+ b.Property("ReferenceId")
+ .HasColumnType("char(36)");
+
+ b.HasKey("Id");
+
+ b.ToTable("TaskAttachments");
+ });
+
+ modelBuilder.Entity("Marco.Pms.Model.Activities.TaskComment", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("char(36)");
+
+ b.Property("Comment")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.Property("CommentDate")
+ .HasColumnType("datetime(6)");
+
+ b.Property("CommentedBy")
+ .HasColumnType("char(36)");
+
+ b.Property("TaskAllocationId")
+ .HasColumnType("char(36)");
+
+ b.Property("TenantId")
+ .HasColumnType("char(36)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("CommentedBy");
+
+ b.HasIndex("TaskAllocationId");
+
+ b.HasIndex("TenantId");
+
+ b.ToTable("TaskComments");
+ });
+
+ modelBuilder.Entity("Marco.Pms.Model.Activities.TaskMembers", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("char(36)");
+
+ b.Property("EmployeeId")
+ .HasColumnType("char(36)");
+
+ b.Property("TaskAllocationId")
+ .HasColumnType("char(36)");
+
+ b.Property("TenantId")
+ .HasColumnType("char(36)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("EmployeeId");
+
+ b.HasIndex("TaskAllocationId");
+
+ b.HasIndex("TenantId");
+
+ b.ToTable("TaskMembers");
+ });
+
+ modelBuilder.Entity("Marco.Pms.Model.AttendanceModule.Attendance", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("char(36)");
+
+ b.Property("Activity")
+ .HasColumnType("int");
+
+ b.Property("ApprovedAt")
+ .HasColumnType("datetime(6)");
+
+ b.Property("ApprovedById")
+ .HasColumnType("char(36)");
+
+ b.Property("AttendanceDate")
+ .HasColumnType("datetime(6)");
+
+ b.Property("Comment")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.Property("Date")
+ .HasColumnType("datetime(6)");
+
+ b.Property("EmployeeId")
+ .HasColumnType("char(36)");
+
+ b.Property("InTime")
+ .HasColumnType("datetime(6)");
+
+ b.Property("IsApproved")
+ .HasColumnType("tinyint(1)");
+
+ b.Property("OutTime")
+ .HasColumnType("datetime(6)");
+
+ b.Property("ProjectID")
+ .HasColumnType("char(36)");
+
+ b.Property("RequestedAt")
+ .HasColumnType("datetime(6)");
+
+ b.Property("RequestedById")
+ .HasColumnType("char(36)");
+
+ b.Property("TenantId")
+ .HasColumnType("char(36)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("ApprovedById");
+
+ b.HasIndex("EmployeeId");
+
+ b.HasIndex("RequestedById");
+
+ b.HasIndex("TenantId");
+
+ b.ToTable("Attendes");
+ });
+
+ modelBuilder.Entity("Marco.Pms.Model.AttendanceModule.AttendanceLog", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("char(36)");
+
+ b.Property("Activity")
+ .HasColumnType("int");
+
+ b.Property("ActivityTime")
+ .HasColumnType("datetime(6)");
+
+ b.Property("AttendanceId")
+ .HasColumnType("char(36)");
+
+ b.Property("Comment")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.Property("DocumentId")
+ .HasColumnType("char(36)");
+
+ b.Property("EmployeeID")
+ .HasColumnType("char(36)");
+
+ b.Property("Latitude")
+ .HasColumnType("longtext");
+
+ b.Property("Longitude")
+ .HasColumnType("longtext");
+
+ b.Property("Photo")
+ .HasColumnType("longblob");
+
+ b.Property("TenantId")
+ .HasColumnType("char(36)");
+
+ b.Property("UpdatedBy")
+ .HasColumnType("char(36)");
+
+ b.Property("UpdatedOn")
+ .HasColumnType("datetime(6)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("AttendanceId");
+
+ b.HasIndex("DocumentId");
+
+ b.HasIndex("EmployeeID");
+
+ b.HasIndex("TenantId");
+
+ b.HasIndex("UpdatedBy");
+
+ b.ToTable("AttendanceLogs");
+ });
+
+ modelBuilder.Entity("Marco.Pms.Model.Authentication.MPINDetails", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("char(36)");
+
+ b.Property("MPIN")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.Property("MPINToken")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.Property("TimeStamp")
+ .HasColumnType("datetime(6)");
+
+ b.Property("UserId")
+ .HasColumnType("char(36)");
+
+ b.HasKey("Id");
+
+ b.ToTable("MPINDetails");
+ });
+
+ modelBuilder.Entity("Marco.Pms.Model.Authentication.OTPDetails", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("char(36)");
+
+ b.Property("ExpriesInSec")
+ .HasColumnType("int");
+
+ b.Property("IsUsed")
+ .HasColumnType("tinyint(1)");
+
+ b.Property("OTP")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.Property("TimeStamp")
+ .HasColumnType("datetime(6)");
+
+ b.Property("UserId")
+ .HasColumnType("char(36)");
+
+ b.HasKey("Id");
+
+ b.ToTable("OTPDetails");
+ });
+
+ modelBuilder.Entity("Marco.Pms.Model.Authentication.RefreshToken", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("char(36)");
+
+ b.Property("CreatedAt")
+ .HasColumnType("datetime(6)");
+
+ b.Property("ExpiryDate")
+ .HasColumnType("datetime(6)");
+
+ b.Property("IsRevoked")
+ .HasColumnType("tinyint(1)");
+
+ b.Property("IsUsed")
+ .HasColumnType("tinyint(1)");
+
+ b.Property("RevokedAt")
+ .HasColumnType("datetime(6)");
+
+ b.Property("Token")
+ .HasColumnType("longtext");
+
+ b.Property("UserId")
+ .HasColumnType("varchar(255)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("UserId");
+
+ b.ToTable("RefreshTokens");
+ });
+
+ modelBuilder.Entity("Marco.Pms.Model.Collection.Invoice", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("char(36)");
+
+ b.Property("BasicAmount")
+ .HasColumnType("double");
+
+ b.Property("BilledToId")
+ .HasColumnType("char(36)");
+
+ b.Property("ClientSubmitedDate")
+ .HasColumnType("datetime(6)");
+
+ b.Property("CreatedAt")
+ .HasColumnType("datetime(6)");
+
+ b.Property("CreatedById")
+ .HasColumnType("char(36)");
+
+ b.Property("Description")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.Property("EInvoiceNumber")
+ .HasColumnType("longtext");
+
+ b.Property("ExceptedPaymentDate")
+ .HasColumnType("datetime(6)");
+
+ b.Property("InvoiceDate")
+ .HasColumnType("datetime(6)");
+
+ b.Property("InvoiceNumber")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.Property("IsActive")
+ .HasColumnType("tinyint(1)");
+
+ b.Property("MarkAsCompleted")
+ .HasColumnType("tinyint(1)");
+
+ b.Property("ProjectId")
+ .HasColumnType("char(36)");
+
+ b.Property("TaxAmount")
+ .HasColumnType("double");
+
+ b.Property("TenantId")
+ .HasColumnType("char(36)");
+
+ b.Property("Title")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.Property("UpdatedAt")
+ .HasColumnType("datetime(6)");
+
+ b.Property("UpdatedById")
+ .HasColumnType("char(36)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("BilledToId");
+
+ b.HasIndex("CreatedById");
+
+ b.HasIndex("TenantId");
+
+ b.HasIndex("UpdatedById");
+
+ b.ToTable("Invoices");
+ });
+
+ modelBuilder.Entity("Marco.Pms.Model.Collection.InvoiceAttachment", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("char(36)");
+
+ b.Property("DocumentId")
+ .HasColumnType("char(36)");
+
+ b.Property("InvoiceId")
+ .HasColumnType("char(36)");
+
+ b.Property("TenantId")
+ .HasColumnType("char(36)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("DocumentId");
+
+ b.HasIndex("InvoiceId");
+
+ b.HasIndex("TenantId");
+
+ b.ToTable("InvoiceAttachments");
+ });
+
+ modelBuilder.Entity("Marco.Pms.Model.Collection.InvoiceComment", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("char(36)");
+
+ b.Property("Comment")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.Property("CreatedAt")
+ .HasColumnType("datetime(6)");
+
+ b.Property("CreatedById")
+ .HasColumnType("char(36)");
+
+ b.Property("InvoiceId")
+ .HasColumnType("char(36)");
+
+ b.Property("TenantId")
+ .HasColumnType("char(36)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("CreatedById");
+
+ b.HasIndex("InvoiceId");
+
+ b.HasIndex("TenantId");
+
+ b.ToTable("InvoiceComments");
+ });
+
+ modelBuilder.Entity("Marco.Pms.Model.Collection.PaymentAdjustmentHead", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("char(36)");
+
+ b.Property("Description")
+ .HasColumnType("longtext");
+
+ b.Property("IsActive")
+ .HasColumnType("tinyint(1)");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.Property("TenantId")
+ .HasColumnType("char(36)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("TenantId");
+
+ b.ToTable("PaymentAdjustmentHeads");
+
+ b.HasData(
+ new
+ {
+ Id = new Guid("dbdc047f-a2d2-4db0-b0e6-b9d9f923a0f1"),
+ Description = "An advance payment is a sum paid before receiving goods or services, often to secure a transaction or cover initial costs.",
+ IsActive = true,
+ Name = "Advance payment",
+ TenantId = new Guid("b3466e83-7e11-464c-b93a-daf047838b26")
+ },
+ new
+ {
+ Id = new Guid("66c3c241-8b52-4327-a5ad-c1faf102583e"),
+ Description = "The base amount refers to the principal sum or original value used as a reference in financial calculations, excluding taxes, fees, or additional charges.",
+ IsActive = true,
+ Name = "Base Amount",
+ TenantId = new Guid("b3466e83-7e11-464c-b93a-daf047838b26")
+ },
+ new
+ {
+ Id = new Guid("0d70cb2e-827e-44fc-90a5-c2c55ba51ba9"),
+ Description = "TDS, or Tax Deducted at Source, is a system under the Indian Income Tax Act where tax is deducted at the point of income generation—such as salary, interest, or rent—and remitted to the government to prevent tax evasion and ensure timely collection.",
+ IsActive = true,
+ Name = "Tax Deducted at Source (TDS)",
+ TenantId = new Guid("b3466e83-7e11-464c-b93a-daf047838b26")
+ },
+ new
+ {
+ Id = new Guid("95f35acd-d979-4177-91ea-fd03a00e49ff"),
+ Description = "Retention refers to a company's ability to keep customers, employees, or profits over time, commonly measured as a percentage and critical for long-term business sustainability and growth.",
+ IsActive = true,
+ Name = "Retention",
+ TenantId = new Guid("b3466e83-7e11-464c-b93a-daf047838b26")
+ },
+ new
+ {
+ Id = new Guid("3f09b19a-8d45-4cf2-be27-f4f09b38b9f7"),
+ Description = "Tax is a mandatory financial charge imposed by a government on individuals or entities to fund public services and government operations, without direct benefit to the taxpayer.",
+ IsActive = true,
+ Name = "Tax",
+ TenantId = new Guid("b3466e83-7e11-464c-b93a-daf047838b26")
+ },
+ new
+ {
+ Id = new Guid("ec5e6a5f-ce62-44e5-8911-8426bbb4dde8"),
+ Description = "A penalty in the context of taxation is a financial sanction imposed by the government on individuals or entities for non-compliance with tax laws, such as late filing, underreporting income, or failure to pay taxes, and is typically calculated as a percentage of the tax due or a fixed amount.",
+ IsActive = true,
+ Name = "Penalty",
+ TenantId = new Guid("b3466e83-7e11-464c-b93a-daf047838b26")
+ },
+ new
+ {
+ Id = new Guid("50584332-1cb7-4359-9721-c8ea35040881"),
+ Description = "Utility fees are recurring charges for essential services such as electricity, water, gas, sewage, waste disposal, internet, and telecommunications, typically based on usage and necessary for operating a home or business.",
+ IsActive = true,
+ Name = "Utility fees",
+ TenantId = new Guid("b3466e83-7e11-464c-b93a-daf047838b26")
+ });
+ });
+
+ modelBuilder.Entity("Marco.Pms.Model.Collection.ReceivedInvoicePayment", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("char(36)");
+
+ b.Property("Amount")
+ .HasColumnType("double");
+
+ b.Property("Comment")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.Property("CreatedAt")
+ .HasColumnType("datetime(6)");
+
+ b.Property("CreatedById")
+ .HasColumnType("char(36)");
+
+ b.Property("InvoiceId")
+ .HasColumnType("char(36)");
+
+ b.Property("IsActive")
+ .HasColumnType("tinyint(1)");
+
+ b.Property("PaymentAdjustmentHeadId")
+ .HasColumnType("char(36)");
+
+ b.Property("PaymentReceivedDate")
+ .HasColumnType("datetime(6)");
+
+ b.Property("TenantId")
+ .HasColumnType("char(36)");
+
+ b.Property("TransactionId")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.HasKey("Id");
+
+ b.HasIndex("CreatedById");
+
+ b.HasIndex("InvoiceId");
+
+ b.HasIndex("PaymentAdjustmentHeadId");
+
+ b.HasIndex("TenantId");
+
+ b.ToTable("ReceivedInvoicePayments");
+ });
+
+ modelBuilder.Entity("Marco.Pms.Model.Directory.Bucket", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("char(36)");
+
+ b.Property("CreatedAt")
+ .HasColumnType("datetime(6)");
+
+ b.Property("CreatedByID")
+ .HasColumnType("char(36)");
+
+ b.Property("Description")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.Property("TenantId")
+ .HasColumnType("char(36)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("CreatedByID");
+
+ b.HasIndex("TenantId");
+
+ b.ToTable("Buckets");
+ });
+
+ modelBuilder.Entity("Marco.Pms.Model.Directory.Contact", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("char(36)");
+
+ b.Property("Address")
+ .HasColumnType("longtext");
+
+ b.Property("ContactCategoryId")
+ .HasColumnType("char(36)");
+
+ b.Property("CreatedAt")
+ .HasColumnType("datetime(6)");
+
+ b.Property("CreatedById")
+ .HasColumnType("char(36)");
+
+ b.Property("Description")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.Property("Designation")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.Property("IsActive")
+ .HasColumnType("tinyint(1)");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.Property("Organization")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.Property("TenantId")
+ .HasColumnType("char(36)");
+
+ b.Property("UpdatedAt")
+ .HasColumnType("datetime(6)");
+
+ b.Property("UpdatedById")
+ .HasColumnType("char(36)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("ContactCategoryId");
+
+ b.HasIndex("CreatedById");
+
+ b.HasIndex("TenantId");
+
+ b.HasIndex("UpdatedById");
+
+ b.ToTable("Contacts");
+ });
+
+ modelBuilder.Entity("Marco.Pms.Model.Directory.ContactBucketMapping", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("char(36)");
+
+ b.Property("BucketId")
+ .HasColumnType("char(36)");
+
+ b.Property("ContactId")
+ .HasColumnType("char(36)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("BucketId");
+
+ b.HasIndex("ContactId");
+
+ b.ToTable("ContactBucketMappings");
+ });
+
+ modelBuilder.Entity("Marco.Pms.Model.Directory.ContactCategoryMaster", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("char(36)");
+
+ b.Property("Description")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.Property("TenantId")
+ .HasColumnType("char(36)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("TenantId");
+
+ b.ToTable("ContactCategoryMasters");
+ });
+
+ modelBuilder.Entity("Marco.Pms.Model.Directory.ContactEmail", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("char(36)");
+
+ b.Property("ContactId")
+ .HasColumnType("char(36)");
+
+ b.Property("EmailAddress")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.Property("IsPrimary")
+ .HasColumnType("tinyint(1)");
+
+ b.Property("Label")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.Property("TenantId")
+ .HasColumnType("char(36)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("ContactId");
+
+ b.ToTable("ContactsEmails");
+ });
+
+ modelBuilder.Entity("Marco.Pms.Model.Directory.ContactNote", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("char(36)");
+
+ b.Property("ContactId")
+ .HasColumnType("char(36)");
+
+ b.Property("CreatedAt")
+ .HasColumnType("datetime(6)");
+
+ b.Property("CreatedById")
+ .HasColumnType("char(36)");
+
+ b.Property("IsActive")
+ .HasColumnType("tinyint(1)");
+
+ b.Property("Note")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.Property("TenantId")
+ .HasColumnType("char(36)");
+
+ b.Property("UpdatedAt")
+ .HasColumnType("datetime(6)");
+
+ b.Property("UpdatedById")
+ .HasColumnType("char(36)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("ContactId");
+
+ b.HasIndex("CreatedById");
+
+ b.HasIndex("TenantId");
+
+ b.HasIndex("UpdatedById");
+
+ b.ToTable("ContactNotes");
+ });
+
+ modelBuilder.Entity("Marco.Pms.Model.Directory.ContactPhone", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("char(36)");
+
+ b.Property("ContactId")
+ .HasColumnType("char(36)");
+
+ b.Property("IsPrimary")
+ .HasColumnType("tinyint(1)");
+
+ b.Property("Label")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.Property("PhoneNumber")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.Property("TenantId")
+ .HasColumnType("char(36)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("ContactId");
+
+ b.ToTable("ContactsPhones");
+ });
+
+ modelBuilder.Entity("Marco.Pms.Model.Directory.ContactProjectMapping", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("char(36)");
+
+ b.Property("ContactId")
+ .HasColumnType("char(36)");
+
+ b.Property("ProjectId")
+ .HasColumnType("char(36)");
+
+ b.Property("TenantId")
+ .HasColumnType("char(36)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("ContactId");
+
+ b.HasIndex("TenantId");
+
+ b.ToTable("ContactProjectMappings");
+ });
+
+ modelBuilder.Entity("Marco.Pms.Model.Directory.ContactTagMapping", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("char(36)");
+
+ b.Property("ContactId")
+ .HasColumnType("char(36)");
+
+ b.Property("ContactTagId")
+ .HasColumnType("char(36)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("ContactId");
+
+ b.HasIndex("ContactTagId");
+
+ b.ToTable("ContactTagMappings");
+ });
+
+ modelBuilder.Entity("Marco.Pms.Model.Directory.ContactTagMaster", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("char(36)");
+
+ b.Property("Description")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.Property("TenantId")
+ .HasColumnType("char(36)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("TenantId");
+
+ b.ToTable("ContactTagMasters");
+ });
+
+ modelBuilder.Entity("Marco.Pms.Model.Directory.DirectoryUpdateLog", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("char(36)");
+
+ b.Property("RefereanceId")
+ .HasColumnType("char(36)");
+
+ b.Property("UpdateAt")
+ .HasColumnType("datetime(6)");
+
+ b.Property("UpdatedById")
+ .HasColumnType("char(36)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("UpdatedById");
+
+ b.ToTable("DirectoryUpdateLogs");
+ });
+
+ modelBuilder.Entity("Marco.Pms.Model.Directory.EmployeeBucketMapping", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("char(36)");
+
+ b.Property("BucketId")
+ .HasColumnType("char(36)");
+
+ b.Property("EmployeeId")
+ .HasColumnType("char(36)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("BucketId");
+
+ b.HasIndex("EmployeeId");
+
+ b.ToTable("EmployeeBucketMappings");
+ });
+
+ modelBuilder.Entity("Marco.Pms.Model.DocumentManager.AttachmentTagMapping", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("char(36)");
+
+ b.Property("AttachmentId")
+ .HasColumnType("char(36)");
+
+ b.Property("DocumentTagId")
+ .HasColumnType("char(36)");
+
+ b.Property("TenantId")
+ .HasColumnType("char(36)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("AttachmentId");
+
+ b.HasIndex("DocumentTagId");
+
+ b.HasIndex("TenantId");
+
+ b.ToTable("AttachmentTagMappings");
+ });
+
+ modelBuilder.Entity("Marco.Pms.Model.DocumentManager.AttachmentVersionMapping", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("char(36)");
+
+ b.Property("ChildAttachmentId")
+ .HasColumnType("char(36)");
+
+ b.Property("ParentAttachmentId")
+ .HasColumnType("char(36)");
+
+ b.Property("TenantId")
+ .HasColumnType("char(36)");
+
+ b.Property("Version")
+ .HasColumnType("int");
+
+ b.HasKey("Id");
+
+ b.HasIndex("ChildAttachmentId");
+
+ b.HasIndex("ParentAttachmentId");
+
+ b.HasIndex("TenantId");
+
+ b.ToTable("AttachmentVersionMappings");
+ });
+
+ modelBuilder.Entity("Marco.Pms.Model.DocumentManager.Document", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("char(36)");
+
+ b.Property("Base64Data")
+ .HasColumnType("longtext");
+
+ b.Property("BatchId")
+ .HasColumnType("char(36)");
+
+ b.Property("ContentType")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.Property("FileName")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.Property("FileSize")
+ .HasColumnType("bigint");
+
+ b.Property("S3Key")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.Property("TenantId")
+ .HasColumnType("char(36)");
+
+ b.Property("ThumbS3Key")
+ .HasColumnType("longtext");
+
+ b.Property("UploadedAt")
+ .HasColumnType("datetime(6)");
+
+ b.Property("UploadedById")
+ .HasColumnType("char(36)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("TenantId");
+
+ b.HasIndex("UploadedById");
+
+ b.ToTable("Documents");
+ });
+
+ modelBuilder.Entity("Marco.Pms.Model.DocumentManager.DocumentAttachment", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("char(36)");
+
+ b.Property("Description")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.Property("DocumentDataId")
+ .HasColumnType("char(36)");
+
+ b.Property("DocumentId")
+ .HasColumnType("longtext");
+
+ b.Property("DocumentTypeId")
+ .HasColumnType("char(36)");
+
+ b.Property("EntityId")
+ .HasColumnType("char(36)");
+
+ b.Property("IsActive")
+ .HasColumnType("tinyint(1)");
+
+ b.Property("IsCurrentVersion")
+ .HasColumnType("tinyint(1)");
+
+ b.Property("IsVerified")
+ .HasColumnType("tinyint(1)");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.Property("TenantId")
+ .HasColumnType("char(36)");
+
+ b.Property("UpdatedAt")
+ .HasColumnType("datetime(6)");
+
+ b.Property("UpdatedById")
+ .HasColumnType("char(36)");
+
+ b.Property("UploadedAt")
+ .HasColumnType("datetime(6)");
+
+ b.Property("UploadedById")
+ .HasColumnType("char(36)");
+
+ b.Property("VerifiedAt")
+ .HasColumnType("datetime(6)");
+
+ b.Property("VerifiedById")
+ .HasColumnType("char(36)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("DocumentDataId");
+
+ b.HasIndex("DocumentTypeId");
+
+ b.HasIndex("TenantId");
+
+ b.HasIndex("UpdatedById");
+
+ b.HasIndex("UploadedById");
+
+ b.HasIndex("VerifiedById");
+
+ b.ToTable("DocumentAttachments");
+ });
+
+ modelBuilder.Entity("Marco.Pms.Model.DocumentManager.DocumentCategoryMaster", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("char(36)");
+
+ b.Property("CreatedAt")
+ .HasColumnType("datetime(6)");
+
+ b.Property("Description")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.Property("EntityTypeId")
+ .HasColumnType("char(36)");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.Property("TenantId")
+ .HasColumnType("char(36)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("EntityTypeId");
+
+ b.HasIndex("TenantId");
+
+ b.ToTable("DocumentCategoryMasters");
+
+ b.HasData(
+ new
+ {
+ Id = new Guid("cfbff269-072b-477a-b48b-72cdc57dd1d3"),
+ CreatedAt = new DateTime(2025, 9, 15, 12, 42, 3, 202, DateTimeKind.Utc),
+ Description = "Project documents are formal records that outline the plans, progress, and details necessary to execute and manage a project effectively.",
+ EntityTypeId = new Guid("c8fe7115-aa27-43bc-99f4-7b05fabe436e"),
+ Name = "Project Documents",
+ TenantId = new Guid("b3466e83-7e11-464c-b93a-daf047838b26")
+ },
+ new
+ {
+ Id = new Guid("2d9fb9cf-db53-476b-a452-492e88e2b51f"),
+ CreatedAt = new DateTime(2025, 9, 15, 12, 42, 3, 202, DateTimeKind.Utc),
+ Description = "Employment details along with legal IDs like passports or driver’s licenses to verify identity and work authorization.",
+ EntityTypeId = new Guid("dbb9555a-7a0c-40f2-a9ed-f0463f1ceed7"),
+ Name = "Employee Documents",
+ TenantId = new Guid("b3466e83-7e11-464c-b93a-daf047838b26")
+ });
+ });
+
+ modelBuilder.Entity("Marco.Pms.Model.DocumentManager.DocumentTagMaster", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("char(36)");
+
+ b.Property("Description")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.Property("TenantId")
+ .HasColumnType("char(36)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("TenantId");
+
+ b.ToTable("DocumentTagMasters");
+ });
+
+ modelBuilder.Entity("Marco.Pms.Model.DocumentManager.DocumentTypeMaster", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("char(36)");
+
+ b.Property("AllowedContentType")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.Property("CreatedAt")
+ .HasColumnType("datetime(6)");
+
+ b.Property("DocumentCategoryId")
+ .HasColumnType("char(36)");
+
+ b.Property("IsActive")
+ .HasColumnType("tinyint(1)");
+
+ b.Property("IsMandatory")
+ .HasColumnType("tinyint(1)");
+
+ b.Property("IsSystem")
+ .HasColumnType("tinyint(1)");
+
+ b.Property("IsValidationRequired")
+ .HasColumnType("tinyint(1)");
+
+ b.Property("MaxSizeAllowedInMB")
+ .HasColumnType("double");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.Property("RegexExpression")
+ .HasColumnType("longtext");
+
+ b.Property("TenantId")
+ .HasColumnType("char(36)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("DocumentCategoryId");
+
+ b.HasIndex("TenantId");
+
+ b.ToTable("DocumentTypeMasters");
+
+ b.HasData(
+ new
+ {
+ Id = new Guid("336225ac-67f3-4e14-ba7a-8fad03cf2832"),
+ AllowedContentType = "application/pdf,image/jpeg",
+ CreatedAt = new DateTime(2025, 9, 3, 10, 46, 49, 955, DateTimeKind.Utc),
+ DocumentCategoryId = new Guid("2d9fb9cf-db53-476b-a452-492e88e2b51f"),
+ IsActive = true,
+ IsMandatory = true,
+ IsSystem = true,
+ IsValidationRequired = true,
+ MaxSizeAllowedInMB = 2.0,
+ Name = "Aadhaar card",
+ RegexExpression = "^[2-9][0-9]{11}$",
+ TenantId = new Guid("b3466e83-7e11-464c-b93a-daf047838b26")
+ },
+ new
+ {
+ Id = new Guid("6344393b-9bb1-45f8-b620-9f6e279d012c"),
+ AllowedContentType = "application/pdf,image/jpeg",
+ CreatedAt = new DateTime(2025, 9, 3, 10, 46, 49, 955, DateTimeKind.Utc),
+ DocumentCategoryId = new Guid("2d9fb9cf-db53-476b-a452-492e88e2b51f"),
+ IsActive = true,
+ IsMandatory = true,
+ IsSystem = true,
+ IsValidationRequired = true,
+ MaxSizeAllowedInMB = 2.0,
+ Name = "Pan Card",
+ RegexExpression = "^[A-Z]{5}[0-9]{4}[A-Z]{1}$",
+ TenantId = new Guid("b3466e83-7e11-464c-b93a-daf047838b26")
+ },
+ new
+ {
+ Id = new Guid("2d1d7441-46a8-425e-9395-94d0956f8e91"),
+ AllowedContentType = "application/pdf,image/jpeg",
+ CreatedAt = new DateTime(2025, 9, 3, 10, 46, 49, 955, DateTimeKind.Utc),
+ DocumentCategoryId = new Guid("2d9fb9cf-db53-476b-a452-492e88e2b51f"),
+ IsActive = true,
+ IsMandatory = true,
+ IsSystem = true,
+ IsValidationRequired = true,
+ MaxSizeAllowedInMB = 2.0,
+ Name = "Voter Card",
+ RegexExpression = "^[A-Z]{3}[0-9]{7}$",
+ TenantId = new Guid("b3466e83-7e11-464c-b93a-daf047838b26")
+ },
+ new
+ {
+ Id = new Guid("16c40b80-c207-4a0c-a4d3-381414afe35a"),
+ AllowedContentType = "application/pdf,image/jpeg",
+ CreatedAt = new DateTime(2025, 9, 3, 10, 46, 49, 955, DateTimeKind.Utc),
+ DocumentCategoryId = new Guid("2d9fb9cf-db53-476b-a452-492e88e2b51f"),
+ IsActive = true,
+ IsMandatory = true,
+ IsSystem = true,
+ IsValidationRequired = true,
+ MaxSizeAllowedInMB = 2.0,
+ Name = "Passport",
+ RegexExpression = "^[A-PR-WY][1-9]\\d\\s?\\d{4}[1-9]$",
+ TenantId = new Guid("b3466e83-7e11-464c-b93a-daf047838b26")
+ },
+ new
+ {
+ Id = new Guid("f76d8215-d399-4f0e-b414-12e427f50be3"),
+ AllowedContentType = "application/pdf,image/jpeg",
+ CreatedAt = new DateTime(2025, 9, 3, 10, 46, 49, 955, DateTimeKind.Utc),
+ DocumentCategoryId = new Guid("2d9fb9cf-db53-476b-a452-492e88e2b51f"),
+ IsActive = true,
+ IsMandatory = true,
+ IsSystem = true,
+ IsValidationRequired = true,
+ MaxSizeAllowedInMB = 2.0,
+ Name = "Bank Passbook",
+ RegexExpression = "^\\d{9,18}$",
+ TenantId = new Guid("b3466e83-7e11-464c-b93a-daf047838b26")
+ },
+ new
+ {
+ Id = new Guid("260abd7e-c96d-4ae4-a29b-9b5bb5d24ebd"),
+ AllowedContentType = "application/pdf,application/msword,application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.openxmlformats-officedocument.wordprocessingml.document",
+ CreatedAt = new DateTime(2025, 9, 3, 10, 46, 49, 955, DateTimeKind.Utc),
+ DocumentCategoryId = new Guid("cfbff269-072b-477a-b48b-72cdc57dd1d3"),
+ IsActive = true,
+ IsMandatory = false,
+ IsSystem = true,
+ IsValidationRequired = false,
+ MaxSizeAllowedInMB = 1.0,
+ Name = "Bill of Quantities (BOQ)",
+ TenantId = new Guid("b3466e83-7e11-464c-b93a-daf047838b26")
+ },
+ new
+ {
+ Id = new Guid("a1a190ba-c4a8-432f-b26d-1231ca1d44bc"),
+ AllowedContentType = "application/pdf,application/msword,application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.openxmlformats-officedocument.wordprocessingml.document",
+ CreatedAt = new DateTime(2025, 9, 3, 10, 46, 49, 955, DateTimeKind.Utc),
+ DocumentCategoryId = new Guid("cfbff269-072b-477a-b48b-72cdc57dd1d3"),
+ IsActive = true,
+ IsMandatory = false,
+ IsSystem = true,
+ IsValidationRequired = false,
+ MaxSizeAllowedInMB = 1.0,
+ Name = "Work Order",
+ TenantId = new Guid("b3466e83-7e11-464c-b93a-daf047838b26")
+ },
+ new
+ {
+ Id = new Guid("07ca7182-9ac0-4407-b988-59901170cb86"),
+ AllowedContentType = "application/pdf,application/msword,application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.openxmlformats-officedocument.wordprocessingml.document",
+ CreatedAt = new DateTime(2025, 9, 3, 10, 46, 49, 955, DateTimeKind.Utc),
+ DocumentCategoryId = new Guid("cfbff269-072b-477a-b48b-72cdc57dd1d3"),
+ IsActive = true,
+ IsMandatory = false,
+ IsSystem = true,
+ IsValidationRequired = false,
+ MaxSizeAllowedInMB = 1.0,
+ Name = "Letter of Agreement",
+ TenantId = new Guid("b3466e83-7e11-464c-b93a-daf047838b26")
+ },
+ new
+ {
+ Id = new Guid("846e89a9-5735-45ec-a21d-c97f85a94ada"),
+ AllowedContentType = "application/pdf,application/msword,application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.openxmlformats-officedocument.wordprocessingml.document",
+ CreatedAt = new DateTime(2025, 9, 3, 10, 46, 49, 955, DateTimeKind.Utc),
+ DocumentCategoryId = new Guid("cfbff269-072b-477a-b48b-72cdc57dd1d3"),
+ IsActive = true,
+ IsMandatory = false,
+ IsSystem = true,
+ IsValidationRequired = false,
+ MaxSizeAllowedInMB = 1.0,
+ Name = "Health and Safety Document",
+ TenantId = new Guid("b3466e83-7e11-464c-b93a-daf047838b26")
+ },
+ new
+ {
+ Id = new Guid("7cc41c91-23cb-442b-badd-f932138d149f"),
+ AllowedContentType = "application/pdf,application/msword,application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.openxmlformats-officedocument.wordprocessingml.document",
+ CreatedAt = new DateTime(2025, 9, 3, 10, 46, 49, 955, DateTimeKind.Utc),
+ DocumentCategoryId = new Guid("cfbff269-072b-477a-b48b-72cdc57dd1d3"),
+ IsActive = true,
+ IsMandatory = false,
+ IsSystem = true,
+ IsValidationRequired = false,
+ MaxSizeAllowedInMB = 1.0,
+ Name = "Standard Operating Procedure (SOP)",
+ TenantId = new Guid("b3466e83-7e11-464c-b93a-daf047838b26")
+ },
+ new
+ {
+ Id = new Guid("5668de00-5d84-47f7-b9b5-7fefd1219f05"),
+ AllowedContentType = "application/pdf,image/vnd.dwg,application/acad",
+ CreatedAt = new DateTime(2025, 9, 3, 10, 46, 49, 955, DateTimeKind.Utc),
+ DocumentCategoryId = new Guid("cfbff269-072b-477a-b48b-72cdc57dd1d3"),
+ IsActive = true,
+ IsMandatory = false,
+ IsSystem = true,
+ IsValidationRequired = false,
+ MaxSizeAllowedInMB = 20.0,
+ Name = "Drawings",
+ TenantId = new Guid("b3466e83-7e11-464c-b93a-daf047838b26")
+ });
+ });
+
+ modelBuilder.Entity("Marco.Pms.Model.Employees.Employee", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("char(36)");
+
+ b.Property("ApplicationUserId")
+ .HasColumnType("varchar(255)");
+
+ b.Property("BirthDate")
+ .HasColumnType("datetime(6)");
+
+ b.Property("CurrentAddress")
+ .HasColumnType("longtext");
+
+ b.Property("Email")
+ .HasColumnType("longtext");
+
+ b.Property("EmergencyContactPerson")
+ .HasColumnType("longtext");
+
+ b.Property("EmergencyPhoneNumber")
+ .HasColumnType("longtext");
+
+ b.Property("FirstName")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.Property("Gender")
+ .HasColumnType("longtext");
+
+ b.Property("HasApplicationAccess")
+ .HasColumnType("tinyint(1)");
+
+ b.Property