diff --git a/Marco.Pms.DataAccess/Data/ApplicationDbContext.cs b/Marco.Pms.DataAccess/Data/ApplicationDbContext.cs
index ce71ee2..03f5501 100644
--- a/Marco.Pms.DataAccess/Data/ApplicationDbContext.cs
+++ b/Marco.Pms.DataAccess/Data/ApplicationDbContext.cs
@@ -1106,6 +1106,7 @@ namespace Marco.Pms.DataAccess.Data
// Project Module
new Feature { Id = new Guid("53176ebf-c75d-42e5-839f-4508ffac3def"), Description = "Manage Project", Name = "Project Management", ModuleId = new Guid("bf59fd88-b57a-4d67-bf01-3780f385896b"), IsActive = true },
new Feature { Id = new Guid("a4e25142-449b-4334-a6e5-22f70e4732d7"), Description = "Expense Management is the systematic process of tracking, controlling, and reporting business-related expenditures.", Name = "Expense Management", ModuleId = new Guid("bf59fd88-b57a-4d67-bf01-3780f385896b"), IsActive = true },
+ new Feature { Id = new Guid("fc586e7d-ed1a-45e5-bb51-9f34af98ec13"), Description = "Collection Management is a feature that enables organizations to track, organize, and manage the status and recovery of receivables or assets efficiently throughout their lifecycle, supporting systematic follow-up and resolution of outstanding accounts.", Name = "Collection Management", ModuleId = new Guid("bf59fd88-b57a-4d67-bf01-3780f385896b"), IsActive = true },
new Feature { Id = new Guid("9d4b5489-2079-40b9-bd77-6e1bf90bc19f"), Description = "Manage Tasks", Name = "Task Management", ModuleId = new Guid("bf59fd88-b57a-4d67-bf01-3780f385896b"), IsActive = true },
// Employee Module
@@ -1177,6 +1178,13 @@ namespace Marco.Pms.DataAccess.Data
new FeaturePermission { Id = new Guid("ea5a1529-4ee8-4828-80ea-0e23c9d4dd11"), FeatureId = new Guid("a4e25142-449b-4334-a6e5-22f70e4732d7"), IsEnabled = true, Name = "Process", Description = "Allows a user to handle post-approval actions such as recording payments, updating financial records, or marking expenses as reimbursed or settled." },
new FeaturePermission { Id = new Guid("bdee29a2-b73b-402d-8dd1-c4b1f81ccbc3"), FeatureId = new Guid("a4e25142-449b-4334-a6e5-22f70e4732d7"), IsEnabled = true, Name = "Manage", Description = "Allows a user to configure and control system settings, such as managing expense types, payment modes, permissions, and overall workflow rules." },
+ // Collection Management Feature
+ new FeaturePermission { Id = new Guid("dbf17591-09fe-4c93-9e1a-12db8f5cc5de"), FeatureId = new Guid("fc586e7d-ed1a-45e5-bb51-9f34af98ec13"), IsEnabled = true, Name = "Collection Admin", Description = "Collection Admin is a permission that grants a user full administrative control over collections, including creating, editing, managing access, and deleting collections within a system." },
+ new FeaturePermission { Id = new Guid("c8d7eea5-4033-4aad-9ebe-76de49896830"), FeatureId = new Guid("fc586e7d-ed1a-45e5-bb51-9f34af98ec13"), IsEnabled = true, Name = "View Collection", Description = "View Collection is a permission that allows users to see and browse assets or items within a collection without making any modifications or edits to its contents." },
+ new FeaturePermission { Id = new Guid("b93141fd-dbd3-4051-8f57-bf25d18e3555"), FeatureId = new Guid("fc586e7d-ed1a-45e5-bb51-9f34af98ec13"), IsEnabled = true, Name = "Create Collection", Description = "Authorizes users to create new collections for organizing related resources and managing access" },
+ new FeaturePermission { Id = new Guid("455187b4-fef1-41f9-b3d0-025d0b6302c3"), FeatureId = new Guid("fc586e7d-ed1a-45e5-bb51-9f34af98ec13"), IsEnabled = true, Name = "Edit Collection", Description = "Ability to modify collection properties, content, and access rights." },
+ new FeaturePermission { Id = new Guid("061d9ccd-85b4-4cb0-be06-2f9f32cebb72"), FeatureId = new Guid("fc586e7d-ed1a-45e5-bb51-9f34af98ec13"), IsEnabled = true, Name = "Add Payment", Description = " Enables entry and processing of payment transactions." },
+
// 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" },
diff --git a/Marco.Pms.DataAccess/Migrations/20251016073202_Added_Collection_Related_Permissions.Designer.cs b/Marco.Pms.DataAccess/Migrations/20251016073202_Added_Collection_Related_Permissions.Designer.cs
new file mode 100644
index 0000000..0066ac6
--- /dev/null
+++ b/Marco.Pms.DataAccess/Migrations/20251016073202_Added_Collection_Related_Permissions.Designer.cs
@@ -0,0 +1,6674 @@
+//
+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("20251016073202_Added_Collection_Related_Permissions")]
+ partial class Added_Collection_Related_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("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("CreatedById");
+
+ b.HasIndex("ProjectId");
+
+ 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("ProjectId");
+
+ 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("IsActive")
+ .HasColumnType("tinyint(1)");
+
+ b.Property