diff --git a/Marco.Pms.DataAccess/Migrations/20251013141456_Added_EInvoiceNumber_In_Invoice_Table.Designer.cs b/Marco.Pms.DataAccess/Migrations/20251013141456_Added_EInvoiceNumber_In_Invoice_Table.Designer.cs
new file mode 100644
index 0000000..fb1ed77
--- /dev/null
+++ b/Marco.Pms.DataAccess/Migrations/20251013141456_Added_EInvoiceNumber_In_Invoice_Table.Designer.cs
@@ -0,0 +1,6514 @@
+//
+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("20251013141456_Added_EInvoiceNumber_In_Invoice_Table")]
+ partial class Added_EInvoiceNumber_In_Invoice_Table
+ {
+ ///
+ 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.ReceivedInvoicePayment", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("char(36)");
+
+ b.Property("Amount")
+ .HasColumnType("double");
+
+ 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("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("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("IsPrimary")
+ .HasColumnType("tinyint(1)");
+
+ b.Property("IsSystem")
+ .HasColumnType("tinyint(1)");
+
+ b.Property("JobRoleId")
+ .HasColumnType("char(36)");
+
+ b.Property("JoiningDate")
+ .HasColumnType("datetime(6)");
+
+ b.Property("LastName")
+ .HasColumnType("longtext");
+
+ b.Property("MiddleName")
+ .HasColumnType("longtext");
+
+ b.Property("OrganizationId")
+ .HasColumnType("char(36)");
+
+ b.Property