// 
using System;
using Marco.Pms.DataAccess.Data;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Metadata;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
#nullable disable
namespace Marco.Pms.DataAccess.Migrations
{
    [DbContext(typeof(ApplicationDbContext))]
    partial class ApplicationDbContextModelSnapshot : ModelSnapshot
    {
        protected override void BuildModel(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("ApprovedBy")
                        .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("TenantId")
                        .HasColumnType("char(36)");
                    b.HasKey("Id");
                    b.HasIndex("EmployeeID");
                    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("TenantId")
                        .HasColumnType("char(36)");
                    b.Property("TimeStamp")
                        .HasColumnType("datetime(6)");
                    b.Property("UserId")
                        .HasColumnType("char(36)");
                    b.HasKey("Id");
                    b.HasIndex("TenantId");
                    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("TenantId")
                        .HasColumnType("char(36)");
                    b.Property("TimeStamp")
                        .HasColumnType("datetime(6)");
                    b.Property("UserId")
                        .HasColumnType("char(36)");
                    b.HasKey("Id");
                    b.HasIndex("TenantId");
                    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.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("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.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.HasKey("Id");
                    b.HasIndex("TenantId");
                    b.ToTable("Documents");
                });
            modelBuilder.Entity("Marco.Pms.Model.Employees.Employee", b =>
                {
                    b.Property("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("char(36)");
                    b.Property("AadharNumber")
                        .HasColumnType("longtext");
                    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")
                        .HasColumnType("longtext");
                    b.Property("Gender")
                        .HasColumnType("longtext");
                    b.Property("IsActive")
                        .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("PanNumber")
                        .HasColumnType("longtext");
                    b.Property("PermanentAddress")
                        .HasColumnType("longtext");
                    b.Property("PhoneNumber")
                        .HasColumnType("longtext");
                    b.Property("Photo")
                        .HasColumnType("longblob");
                    b.Property("RoleId")
                        .HasColumnType("char(36)");
                    b.Property("TenantId")
                        .HasColumnType("char(36)");
                    b.HasKey("Id");
                    b.HasIndex("ApplicationUserId");
                    b.HasIndex("JobRoleId");
                    b.HasIndex("TenantId");
                    b.ToTable("Employees");
                });
            modelBuilder.Entity("Marco.Pms.Model.Employees.EmployeeRoleMapping", b =>
                {
                    b.Property("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("char(36)");
                    b.Property("EmployeeId")
                        .HasColumnType("char(36)");
                    b.Property("IsEnabled")
                        .HasColumnType("tinyint(1)");
                    b.Property("RoleId")
                        .HasColumnType("char(36)");
                    b.Property("TenantId")
                        .HasColumnType("char(36)");
                    b.HasKey("Id");
                    b.HasIndex("EmployeeId");
                    b.HasIndex("RoleId");
                    b.HasIndex("TenantId");
                    b.ToTable("EmployeeRoleMappings");
                });
            modelBuilder.Entity("Marco.Pms.Model.Employees.WorkShift", b =>
                {
                    b.Property("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("char(36)");
                    b.Property("EndTime")
                        .HasColumnType("time(6)");
                    b.Property("Name")
                        .HasColumnType("longtext");
                    b.Property("StartTime")
                        .HasColumnType("time(6)");
                    b.Property("TenantId")
                        .HasColumnType("char(36)");
                    b.HasKey("Id");
                    b.HasIndex("TenantId");
                    b.ToTable("WorkShifts");
                });
            modelBuilder.Entity("Marco.Pms.Model.Entitlements.ActivityCheckList", b =>
                {
                    b.Property("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("char(36)");
                    b.Property("ActivityId")
                        .HasColumnType("char(36)");
                    b.Property("Description")
                        .HasColumnType("longtext");
                    b.Property("IsChecked")
                        .HasColumnType("tinyint(1)");
                    b.Property("IsMandatory")
                        .HasColumnType("tinyint(1)");
                    b.Property("TenantId")
                        .HasColumnType("char(36)");
                    b.HasKey("Id");
                    b.ToTable("ActivityCheckLists");
                });
            modelBuilder.Entity("Marco.Pms.Model.Entitlements.CheckListMappings", b =>
                {
                    b.Property("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("char(36)");
                    b.Property("CheckListId")
                        .HasColumnType("char(36)");
                    b.Property("TaskAllocationId")
                        .HasColumnType("char(36)");
                    b.HasKey("Id");
                    b.ToTable("CheckListMappings");
                });
            modelBuilder.Entity("Marco.Pms.Model.Entitlements.FeaturePermission", b =>
                {
                    b.Property("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("char(36)");
                    b.Property("Description")
                        .HasColumnType("longtext");
                    b.Property("FeatureId")
                        .HasColumnType("char(36)");
                    b.Property("IsEnabled")
                        .HasColumnType("tinyint(1)");
                    b.Property("Name")
                        .HasColumnType("longtext");
                    b.HasKey("Id");
                    b.HasIndex("FeatureId");
                    b.ToTable("FeaturePermissions");
                    b.HasData(
                        new
                        {
                            Id = new Guid("6ea44136-987e-44ba-9e5d-1cf8f5837ebc"),
                            Description = "Access all information related to the project.",
                            FeatureId = new Guid("53176ebf-c75d-42e5-839f-4508ffac3def"),
                            IsEnabled = true,
                            Name = "View Project"
                        },
                        new
                        {
                            Id = new Guid("172fc9b6-755b-4f62-ab26-55c34a330614"),
                            Description = "Potentially edit the project name, description, start/end dates, or status.",
                            FeatureId = new Guid("53176ebf-c75d-42e5-839f-4508ffac3def"),
                            IsEnabled = true,
                            Name = "Manage Project"
                        },
                        new
                        {
                            Id = new Guid("b94802ce-0689-4643-9e1d-11c86950c35b"),
                            Description = "The \"Manage Team\" feature allows authorized users to organize project personnel by adding, removing, and assigning employee to projects.",
                            FeatureId = new Guid("53176ebf-c75d-42e5-839f-4508ffac3def"),
                            IsEnabled = true,
                            Name = "Manage Team"
                        },
                        new
                        {
                            Id = new Guid("c7b68e33-72f0-474f-bd96-77636427ecc8"),
                            Description = "Grants a user comprehensive read-only access to all details concerning the project's underlying systems, technologies, resources, and configurations",
                            FeatureId = new Guid("9666de86-d7c7-4d3d-acaa-fcd6d6b81f3c"),
                            IsEnabled = true,
                            Name = "View Project Infra"
                        },
                        new
                        {
                            Id = new Guid("f2aee20a-b754-4537-8166-f9507b44585b"),
                            Description = "This allows them to create, modify, and manage all aspects of the supporting infrastructure.",
                            FeatureId = new Guid("9666de86-d7c7-4d3d-acaa-fcd6d6b81f3c"),
                            IsEnabled = true,
                            Name = "Manage Project Infra"
                        },
                        new
                        {
                            Id = new Guid("9fcc5f87-25e3-4846-90ac-67a71ab92e3c"),
                            Description = "Grants a user comprehensive read-only access to all details associated with tasks within a project. This includes task descriptions, statuses, assignees, due dates, dependencies, progress, history, and any related attachments or discussions.",
                            FeatureId = new Guid("9d4b5489-2079-40b9-bd77-6e1bf90bc19f"),
                            IsEnabled = true,
                            Name = "View Task"
                        },
                        new
                        {
                            Id = new Guid("08752f33-3b29-4816-b76b-ea8a968ed3c5"),
                            Description = "This allows them to create new tasks, modify existing task attributes (description, status, assignee, due date, etc.),",
                            FeatureId = new Guid("9d4b5489-2079-40b9-bd77-6e1bf90bc19f"),
                            IsEnabled = true,
                            Name = "Add/Edit Task"
                        },
                        new
                        {
                            Id = new Guid("6a32379b-8b3f-49a6-8c48-4b7ac1b55dc2"),
                            Description = "Grants a user the ability to designate team members responsible for specific tasks and to update the completion status or provide progress updates for those tasks",
                            FeatureId = new Guid("9d4b5489-2079-40b9-bd77-6e1bf90bc19f"),
                            IsEnabled = true,
                            Name = "Assign/Report Progress"
                        },
                        new
                        {
                            Id = new Guid("db4e40c5-2ba9-4b6d-b8a6-a16a250ff99c"),
                            Description = "Grants a user the authority to officially confirm the completion or acceptance of a task, often signifying that it meets the required standards or criteria",
                            FeatureId = new Guid("9d4b5489-2079-40b9-bd77-6e1bf90bc19f"),
                            IsEnabled = true,
                            Name = "Approve Task"
                        },
                        new
                        {
                            Id = new Guid("b82d2b7e-0d52-45f3-997b-c008ea460e7f"),
                            Description = "Grants a user read-only access to details about the individuals within the system. This typically includes names, contact information, roles, departments, and potentially other relevant employee data",
                            FeatureId = new Guid("81ab8a87-8ccd-4015-a917-0627cee6a100"),
                            IsEnabled = true,
                            Name = "View Employee"
                        },
                        new
                        {
                            Id = new Guid("a97d366a-c2bb-448d-be93-402bd2324566"),
                            Description = "Grants a user the authority to create new employee profiles and modify existing employee details within the system. This typically includes adding or updating information such as names, contact details, roles, departments, skills, and potentially other personal or professional data",
                            FeatureId = new Guid("81ab8a87-8ccd-4015-a917-0627cee6a100"),
                            IsEnabled = true,
                            Name = "Add/Edit Employee"
                        },
                        new
                        {
                            Id = new Guid("fbd213e0-0250-46f1-9f5f-4b2a1e6e76a3"),
                            Description = "Grants a user the authority to manage employee application roles, enabling them to assign or revoke access privileges within the system.",
                            FeatureId = new Guid("81ab8a87-8ccd-4015-a917-0627cee6a100"),
                            IsEnabled = true,
                            Name = "Assign Roles"
                        },
                        new
                        {
                            Id = new Guid("915e6bff-65f6-4e3f-aea8-3fd217d3ea9e"),
                            Description = "Team Attendance refers to tracking and managing the attendance of all team members collectively, often monitored by a team lead or manager.",
                            FeatureId = new Guid("52c9cf54-1eb2-44d2-81bb-524cf29c0a94"),
                            IsEnabled = true,
                            Name = "Team Attendance "
                        },
                        new
                        {
                            Id = new Guid("57802c4a-00aa-4a1f-a048-fd2f70dd44b6"),
                            Description = "Grants a user the authority to approve requests from employees to adjust or correct their recorded attendance. This typically involves reviewing the reason for the regularization, verifying any supporting documentation, and then officially accepting the changes to the employee's attendance records",
                            FeatureId = new Guid("52c9cf54-1eb2-44d2-81bb-524cf29c0a94"),
                            IsEnabled = true,
                            Name = "Regularize Attendance"
                        },
                        new
                        {
                            Id = new Guid("ccb0589f-712b-43de-92ed-5b6088e7dc4e"),
                            Description = "Team Attendance refers to tracking and managing the attendance of all team members collectively, often monitored by a team lead or manager.",
                            FeatureId = new Guid("52c9cf54-1eb2-44d2-81bb-524cf29c0a94"),
                            IsEnabled = true,
                            Name = "Self Attendance"
                        },
                        new
                        {
                            Id = new Guid("5ffbafe0-7ab0-48b1-bb50-c1bf76b65f9d"),
                            Description = "Grants a user read-only access to foundational or reference data within the system. \"Masters\" typically refer to predefined lists, categories, or templates that are used throughout the application to standardize information and maintain consistency",
                            FeatureId = new Guid("be3b3afc-6ccf-4566-b9b6-aafcb65546be"),
                            IsEnabled = true,
                            Name = "View Masters"
                        },
                        new
                        {
                            Id = new Guid("588a8824-f924-4955-82d8-fc51956cf323"),
                            Description = "Grants a user the authority to create, modify, and delete foundational or reference data within the system. These \"masters\" are typically the core lists, categories, and configurations that other data and functionalities rely upon, such as departments, job titles, product categories",
                            FeatureId = new Guid("be3b3afc-6ccf-4566-b9b6-aafcb65546be"),
                            IsEnabled = true,
                            Name = "Manage Masters"
                        },
                        new
                        {
                            Id = new Guid("4286a13b-bb40-4879-8c6d-18e9e393beda"),
                            Description = "Full control over all directories, including the ability to manage permissions for all directories in the system.",
                            FeatureId = new Guid("39e66f81-efc6-446c-95bd-46bff6cfb606"),
                            IsEnabled = true,
                            Name = "Directory Admin"
                        },
                        new
                        {
                            Id = new Guid("62668630-13ce-4f52-a0f0-db38af2230c5"),
                            Description = "Full control over directories they created or have been assigned. Can also manage permissions for those directories.",
                            FeatureId = new Guid("39e66f81-efc6-446c-95bd-46bff6cfb606"),
                            IsEnabled = true,
                            Name = "Directory Manager"
                        },
                        new
                        {
                            Id = new Guid("0f919170-92d4-4337-abd3-49b66fc871bb"),
                            Description = "Full control over directories they created. Can view contacts in directories they either created or were assigned to. Can manage permissions only for directories they created.",
                            FeatureId = new Guid("39e66f81-efc6-446c-95bd-46bff6cfb606"),
                            IsEnabled = true,
                            Name = "Directory User"
                        });
                });
            modelBuilder.Entity("Marco.Pms.Model.Entitlements.RolePermissionMappings", b =>
                {
                    b.Property("ApplicationRoleId")
                        .HasColumnType("char(36)");
                    b.Property("FeaturePermissionId")
                        .HasColumnType("char(36)");
                    b.HasKey("ApplicationRoleId", "FeaturePermissionId");
                    b.HasIndex("FeaturePermissionId");
                    b.ToTable("RolePermissionMappings");
                });
            modelBuilder.Entity("Marco.Pms.Model.Entitlements.Tenant", b =>
                {
                    b.Property("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("char(36)");
                    b.Property("ContactName")
                        .HasColumnType("longtext");
                    b.Property("ContactNumber")
                        .HasColumnType("longtext");
                    b.Property("Description")
                        .HasColumnType("longtext");
                    b.Property("DomainName")
                        .HasColumnType("longtext");
                    b.Property("IndustryId")
                        .HasColumnType("char(36)");
                    b.Property("IsActive")
                        .HasColumnType("tinyint(1)");
                    b.Property("Name")
                        .HasColumnType("longtext");
                    b.Property("OnBoardingDate")
                        .HasColumnType("datetime(6)");
                    b.Property("OragnizationSize")
                        .HasColumnType("longtext");
                    b.HasKey("Id");
                    b.HasIndex("IndustryId");
                    b.ToTable("Tenants");
                    b.HasData(
                        new
                        {
                            Id = new Guid("b3466e83-7e11-464c-b93a-daf047838b26"),
                            ContactName = "Admin",
                            ContactNumber = "123456789",
                            Description = "",
                            DomainName = "www.marcobms.org",
                            IndustryId = new Guid("15436ee3-a650-469e-bfc2-59993f7514bb"),
                            IsActive = true,
                            Name = "MarcoBMS",
                            OnBoardingDate = new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified),
                            OragnizationSize = "100-200"
                        });
                });
            modelBuilder.Entity("Marco.Pms.Model.Forum.TicketAttachment", b =>
                {
                    b.Property("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("char(36)");
                    b.Property("CommentId")
                        .HasColumnType("char(36)");
                    b.Property("FileId")
                        .HasColumnType("char(36)");
                    b.Property("FileName")
                        .IsRequired()
                        .HasColumnType("longtext");
                    b.Property("TicketId")
                        .HasColumnType("char(36)");
                    b.HasKey("Id");
                    b.HasIndex("CommentId");
                    b.HasIndex("TicketId");
                    b.ToTable("TicketAttachments");
                });
            modelBuilder.Entity("Marco.Pms.Model.Forum.TicketComment", b =>
                {
                    b.Property("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("char(36)");
                    b.Property("AuthorId")
                        .HasColumnType("char(36)");
                    b.Property("MessageText")
                        .IsRequired()
                        .HasColumnType("longtext");
                    b.Property("ParentMessageId")
                        .HasColumnType("char(36)");
                    b.Property("SentAt")
                        .HasColumnType("datetime(6)");
                    b.Property("TenantId")
                        .HasColumnType("char(36)");
                    b.Property("TicketId")
                        .HasColumnType("char(36)");
                    b.HasKey("Id");
                    b.HasIndex("TenantId");
                    b.ToTable("TicketComments");
                });
            modelBuilder.Entity("Marco.Pms.Model.Forum.TicketForum", 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("LinkedActivityId")
                        .HasColumnType("char(36)");
                    b.Property("LinkedProjectId")
                        .HasColumnType("char(36)");
                    b.Property("PriorityId")
                        .HasColumnType("char(36)");
                    b.Property("StatusId")
                        .HasColumnType("char(36)");
                    b.Property("Subject")
                        .IsRequired()
                        .HasColumnType("longtext");
                    b.Property("TenantId")
                        .HasColumnType("char(36)");
                    b.Property("TypeId")
                        .HasColumnType("char(36)");
                    b.HasKey("Id");
                    b.HasIndex("PriorityId");
                    b.HasIndex("StatusId");
                    b.HasIndex("TenantId");
                    b.HasIndex("TypeId");
                    b.ToTable("Tickets");
                });
            modelBuilder.Entity("Marco.Pms.Model.Forum.TicketTag", b =>
                {
                    b.Property("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("char(36)");
                    b.Property("TagId")
                        .HasColumnType("char(36)");
                    b.Property("TicketId")
                        .HasColumnType("char(36)");
                    b.HasKey("Id");
                    b.HasIndex("TagId");
                    b.HasIndex("TicketId");
                    b.ToTable("TicketTags");
                });
            modelBuilder.Entity("Marco.Pms.Model.Forum.TicketTypeMaster", b =>
                {
                    b.Property("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("char(36)");
                    b.Property("Description")
                        .HasColumnType("longtext");
                    b.Property("IsDefault")
                        .HasColumnType("tinyint(1)");
                    b.Property("Name")
                        .IsRequired()
                        .HasColumnType("longtext");
                    b.Property("TenantId")
                        .HasColumnType("char(36)");
                    b.HasKey("Id");
                    b.ToTable("TicketTypeMasters");
                    b.HasData(
                        new
                        {
                            Id = new Guid("c74e5480-2b71-483c-8f4a-1a9c69c32603"),
                            Description = "An identified problem that affects the performance, reliability, or standards of a product or service",
                            IsDefault = true,
                            Name = "Quality Issue",
                            TenantId = new Guid("b3466e83-7e11-464c-b93a-daf047838b26")
                        },
                        new
                        {
                            Id = new Guid("d1f55eab-9898-4e46-9f03-b263e33e5d38"),
                            Description = "A support service that assists users with technical issues, requests, or inquiries.",
                            IsDefault = true,
                            Name = "Help Desk",
                            TenantId = new Guid("b3466e83-7e11-464c-b93a-daf047838b26")
                        });
                });
            modelBuilder.Entity("Marco.Pms.Model.Mail.MailDetails", b =>
                {
                    b.Property("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("char(36)");
                    b.Property("MailListId")
                        .HasColumnType("char(36)");
                    b.Property("ProjectId")
                        .HasColumnType("char(36)");
                    b.Property("Recipient")
                        .IsRequired()
                        .HasColumnType("longtext");
                    b.Property("Schedule")
                        .IsRequired()
                        .HasColumnType("longtext");
                    b.Property("TenantId")
                        .HasColumnType("char(36)");
                    b.HasKey("Id");
                    b.HasIndex("MailListId");
                    b.ToTable("MailDetails");
                });
            modelBuilder.Entity("Marco.Pms.Model.Mail.MailLog", b =>
                {
                    b.Property("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("char(36)");
                    b.Property("Body")
                        .IsRequired()
                        .HasColumnType("longtext");
                    b.Property("EmailId")
                        .IsRequired()
                        .HasColumnType("longtext");
                    b.Property("EmployeeId")
                        .HasColumnType("char(36)");
                    b.Property("ProjectId")
                        .HasColumnType("char(36)");
                    b.Property("TenantId")
                        .HasColumnType("char(36)");
                    b.Property("TimeStamp")
                        .HasColumnType("datetime(6)");
                    b.HasKey("Id");
                    b.ToTable("MailLogs");
                });
            modelBuilder.Entity("Marco.Pms.Model.Mail.MailingList", b =>
                {
                    b.Property("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("char(36)");
                    b.Property("Body")
                        .IsRequired()
                        .HasColumnType("longtext");
                    b.Property("Keywords")
                        .IsRequired()
                        .HasColumnType("longtext");
                    b.Property("Subject")
                        .IsRequired()
                        .HasColumnType("longtext");
                    b.Property