// <auto-generated />
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("20250820110719_Added_Expriy_Date_In_FCMMapping_Table")]
    partial class Added_Expriy_Date_In_FCMMapping_Table
    {
        /// <inheritdoc />
        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<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("char(36)");

                    b.Property<Guid?>("ApprovedById")
                        .HasColumnType("char(36)");

                    b.Property<DateTime?>("ApprovedDate")
                        .HasColumnType("datetime(6)");

                    b.Property<Guid>("AssignedBy")
                        .HasColumnType("char(36)");

                    b.Property<DateTime>("AssignmentDate")
                        .HasColumnType("datetime(6)");

                    b.Property<double>("CompletedTask")
                        .HasColumnType("double");

                    b.Property<string>("Description")
                        .HasColumnType("longtext");

                    b.Property<Guid?>("ParentTaskId")
                        .HasColumnType("char(36)");

                    b.Property<double>("PlannedTask")
                        .HasColumnType("double");

                    b.Property<Guid?>("ReportedById")
                        .HasColumnType("char(36)");

                    b.Property<DateTime?>("ReportedDate")
                        .HasColumnType("datetime(6)");

                    b.Property<double>("ReportedTask")
                        .HasColumnType("double");

                    b.Property<Guid>("TenantId")
                        .HasColumnType("char(36)");

                    b.Property<Guid>("WorkItemId")
                        .HasColumnType("char(36)");

                    b.Property<Guid?>("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<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("char(36)");

                    b.Property<Guid>("DocumentId")
                        .HasColumnType("char(36)");

                    b.Property<Guid>("ReferenceId")
                        .HasColumnType("char(36)");

                    b.HasKey("Id");

                    b.ToTable("TaskAttachments");
                });

            modelBuilder.Entity("Marco.Pms.Model.Activities.TaskComment", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("char(36)");

                    b.Property<string>("Comment")
                        .IsRequired()
                        .HasColumnType("longtext");

                    b.Property<DateTime>("CommentDate")
                        .HasColumnType("datetime(6)");

                    b.Property<Guid>("CommentedBy")
                        .HasColumnType("char(36)");

                    b.Property<Guid>("TaskAllocationId")
                        .HasColumnType("char(36)");

                    b.Property<Guid>("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<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("char(36)");

                    b.Property<Guid>("EmployeeId")
                        .HasColumnType("char(36)");

                    b.Property<Guid>("TaskAllocationId")
                        .HasColumnType("char(36)");

                    b.Property<Guid>("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<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("char(36)");

                    b.Property<int>("Activity")
                        .HasColumnType("int");

                    b.Property<Guid?>("ApprovedBy")
                        .HasColumnType("char(36)");

                    b.Property<DateTime>("AttendanceDate")
                        .HasColumnType("datetime(6)");

                    b.Property<string>("Comment")
                        .IsRequired()
                        .HasColumnType("longtext");

                    b.Property<DateTime>("Date")
                        .HasColumnType("datetime(6)");

                    b.Property<Guid>("EmployeeID")
                        .HasColumnType("char(36)");

                    b.Property<DateTime?>("InTime")
                        .HasColumnType("datetime(6)");

                    b.Property<bool>("IsApproved")
                        .HasColumnType("tinyint(1)");

                    b.Property<DateTime?>("OutTime")
                        .HasColumnType("datetime(6)");

                    b.Property<Guid>("ProjectID")
                        .HasColumnType("char(36)");

                    b.Property<Guid>("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<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("char(36)");

                    b.Property<int>("Activity")
                        .HasColumnType("int");

                    b.Property<DateTime?>("ActivityTime")
                        .HasColumnType("datetime(6)");

                    b.Property<Guid>("AttendanceId")
                        .HasColumnType("char(36)");

                    b.Property<string>("Comment")
                        .IsRequired()
                        .HasColumnType("longtext");

                    b.Property<Guid?>("DocumentId")
                        .HasColumnType("char(36)");

                    b.Property<Guid>("EmployeeID")
                        .HasColumnType("char(36)");

                    b.Property<string>("Latitude")
                        .HasColumnType("longtext");

                    b.Property<string>("Longitude")
                        .HasColumnType("longtext");

                    b.Property<byte[]>("Photo")
                        .HasColumnType("longblob");

                    b.Property<Guid>("TenantId")
                        .HasColumnType("char(36)");

                    b.Property<Guid?>("UpdatedBy")
                        .HasColumnType("char(36)");

                    b.Property<DateTime>("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<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("char(36)");

                    b.Property<string>("MPIN")
                        .IsRequired()
                        .HasColumnType("longtext");

                    b.Property<string>("MPINToken")
                        .IsRequired()
                        .HasColumnType("longtext");

                    b.Property<Guid>("TenantId")
                        .HasColumnType("char(36)");

                    b.Property<DateTime>("TimeStamp")
                        .HasColumnType("datetime(6)");

                    b.Property<Guid>("UserId")
                        .HasColumnType("char(36)");

                    b.HasKey("Id");

                    b.HasIndex("TenantId");

                    b.ToTable("MPINDetails");
                });

            modelBuilder.Entity("Marco.Pms.Model.Authentication.OTPDetails", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("char(36)");

                    b.Property<int>("ExpriesInSec")
                        .HasColumnType("int");

                    b.Property<bool>("IsUsed")
                        .HasColumnType("tinyint(1)");

                    b.Property<string>("OTP")
                        .IsRequired()
                        .HasColumnType("longtext");

                    b.Property<Guid>("TenantId")
                        .HasColumnType("char(36)");

                    b.Property<DateTime>("TimeStamp")
                        .HasColumnType("datetime(6)");

                    b.Property<Guid>("UserId")
                        .HasColumnType("char(36)");

                    b.HasKey("Id");

                    b.HasIndex("TenantId");

                    b.ToTable("OTPDetails");
                });

            modelBuilder.Entity("Marco.Pms.Model.Authentication.RefreshToken", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("char(36)");

                    b.Property<DateTime>("CreatedAt")
                        .HasColumnType("datetime(6)");

                    b.Property<DateTime>("ExpiryDate")
                        .HasColumnType("datetime(6)");

                    b.Property<bool>("IsRevoked")
                        .HasColumnType("tinyint(1)");

                    b.Property<bool>("IsUsed")
                        .HasColumnType("tinyint(1)");

                    b.Property<DateTime?>("RevokedAt")
                        .HasColumnType("datetime(6)");

                    b.Property<string>("Token")
                        .HasColumnType("longtext");

                    b.Property<string>("UserId")
                        .HasColumnType("varchar(255)");

                    b.HasKey("Id");

                    b.HasIndex("UserId");

                    b.ToTable("RefreshTokens");
                });

            modelBuilder.Entity("Marco.Pms.Model.Directory.Bucket", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("char(36)");

                    b.Property<DateTime>("CreatedAt")
                        .HasColumnType("datetime(6)");

                    b.Property<Guid>("CreatedByID")
                        .HasColumnType("char(36)");

                    b.Property<string>("Description")
                        .IsRequired()
                        .HasColumnType("longtext");

                    b.Property<string>("Name")
                        .IsRequired()
                        .HasColumnType("longtext");

                    b.Property<Guid>("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<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("char(36)");

                    b.Property<string>("Address")
                        .HasColumnType("longtext");

                    b.Property<Guid?>("ContactCategoryId")
                        .HasColumnType("char(36)");

                    b.Property<DateTime>("CreatedAt")
                        .HasColumnType("datetime(6)");

                    b.Property<Guid>("CreatedById")
                        .HasColumnType("char(36)");

                    b.Property<string>("Description")
                        .IsRequired()
                        .HasColumnType("longtext");

                    b.Property<string>("Designation")
                        .IsRequired()
                        .HasColumnType("longtext");

                    b.Property<bool>("IsActive")
                        .HasColumnType("tinyint(1)");

                    b.Property<string>("Name")
                        .IsRequired()
                        .HasColumnType("longtext");

                    b.Property<string>("Organization")
                        .IsRequired()
                        .HasColumnType("longtext");

                    b.Property<Guid>("TenantId")
                        .HasColumnType("char(36)");

                    b.Property<DateTime?>("UpdatedAt")
                        .HasColumnType("datetime(6)");

                    b.Property<Guid?>("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<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("char(36)");

                    b.Property<Guid>("BucketId")
                        .HasColumnType("char(36)");

                    b.Property<Guid>("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<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("char(36)");

                    b.Property<string>("Description")
                        .IsRequired()
                        .HasColumnType("longtext");

                    b.Property<string>("Name")
                        .IsRequired()
                        .HasColumnType("longtext");

                    b.Property<Guid>("TenantId")
                        .HasColumnType("char(36)");

                    b.HasKey("Id");

                    b.HasIndex("TenantId");

                    b.ToTable("ContactCategoryMasters");
                });

            modelBuilder.Entity("Marco.Pms.Model.Directory.ContactEmail", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("char(36)");

                    b.Property<Guid>("ContactId")
                        .HasColumnType("char(36)");

                    b.Property<string>("EmailAddress")
                        .IsRequired()
                        .HasColumnType("longtext");

                    b.Property<bool>("IsPrimary")
                        .HasColumnType("tinyint(1)");

                    b.Property<string>("Label")
                        .IsRequired()
                        .HasColumnType("longtext");

                    b.Property<Guid>("TenantId")
                        .HasColumnType("char(36)");

                    b.HasKey("Id");

                    b.HasIndex("ContactId");

                    b.ToTable("ContactsEmails");
                });

            modelBuilder.Entity("Marco.Pms.Model.Directory.ContactNote", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("char(36)");

                    b.Property<Guid>("ContactId")
                        .HasColumnType("char(36)");

                    b.Property<DateTime>("CreatedAt")
                        .HasColumnType("datetime(6)");

                    b.Property<Guid>("CreatedById")
                        .HasColumnType("char(36)");

                    b.Property<bool>("IsActive")
                        .HasColumnType("tinyint(1)");

                    b.Property<string>("Note")
                        .IsRequired()
                        .HasColumnType("longtext");

                    b.Property<Guid>("TenantId")
                        .HasColumnType("char(36)");

                    b.Property<DateTime?>("UpdatedAt")
                        .HasColumnType("datetime(6)");

                    b.Property<Guid?>("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<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("char(36)");

                    b.Property<Guid>("ContactId")
                        .HasColumnType("char(36)");

                    b.Property<bool>("IsPrimary")
                        .HasColumnType("tinyint(1)");

                    b.Property<string>("Label")
                        .IsRequired()
                        .HasColumnType("longtext");

                    b.Property<string>("PhoneNumber")
                        .IsRequired()
                        .HasColumnType("longtext");

                    b.Property<Guid>("TenantId")
                        .HasColumnType("char(36)");

                    b.HasKey("Id");

                    b.HasIndex("ContactId");

                    b.ToTable("ContactsPhones");
                });

            modelBuilder.Entity("Marco.Pms.Model.Directory.ContactProjectMapping", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("char(36)");

                    b.Property<Guid>("ContactId")
                        .HasColumnType("char(36)");

                    b.Property<Guid>("ProjectId")
                        .HasColumnType("char(36)");

                    b.Property<Guid>("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<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("char(36)");

                    b.Property<Guid>("ContactId")
                        .HasColumnType("char(36)");

                    b.Property<Guid>("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<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("char(36)");

                    b.Property<string>("Description")
                        .IsRequired()
                        .HasColumnType("longtext");

                    b.Property<string>("Name")
                        .IsRequired()
                        .HasColumnType("longtext");

                    b.Property<Guid>("TenantId")
                        .HasColumnType("char(36)");

                    b.HasKey("Id");

                    b.HasIndex("TenantId");

                    b.ToTable("ContactTagMasters");
                });

            modelBuilder.Entity("Marco.Pms.Model.Directory.DirectoryUpdateLog", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("char(36)");

                    b.Property<Guid>("RefereanceId")
                        .HasColumnType("char(36)");

                    b.Property<DateTime>("UpdateAt")
                        .HasColumnType("datetime(6)");

                    b.Property<Guid>("UpdatedById")
                        .HasColumnType("char(36)");

                    b.HasKey("Id");

                    b.HasIndex("UpdatedById");

                    b.ToTable("DirectoryUpdateLogs");
                });

            modelBuilder.Entity("Marco.Pms.Model.Directory.EmployeeBucketMapping", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("char(36)");

                    b.Property<Guid>("BucketId")
                        .HasColumnType("char(36)");

                    b.Property<Guid>("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<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("char(36)");

                    b.Property<string>("Base64Data")
                        .HasColumnType("longtext");

                    b.Property<Guid?>("BatchId")
                        .HasColumnType("char(36)");

                    b.Property<string>("ContentType")
                        .IsRequired()
                        .HasColumnType("longtext");

                    b.Property<string>("FileName")
                        .IsRequired()
                        .HasColumnType("longtext");

                    b.Property<long>("FileSize")
                        .HasColumnType("bigint");

                    b.Property<string>("S3Key")
                        .IsRequired()
                        .HasColumnType("longtext");

                    b.Property<Guid>("TenantId")
                        .HasColumnType("char(36)");

                    b.Property<string>("ThumbS3Key")
                        .HasColumnType("longtext");

                    b.Property<DateTime>("UploadedAt")
                        .HasColumnType("datetime(6)");

                    b.Property<Guid?>("UploadedById")
                        .HasColumnType("char(36)");

                    b.HasKey("Id");

                    b.HasIndex("TenantId");

                    b.HasIndex("UploadedById");

                    b.ToTable("Documents");
                });

            modelBuilder.Entity("Marco.Pms.Model.Employees.Employee", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("char(36)");

                    b.Property<string>("AadharNumber")
                        .HasColumnType("longtext");

                    b.Property<string>("ApplicationUserId")
                        .HasColumnType("varchar(255)");

                    b.Property<DateTime?>("BirthDate")
                        .HasColumnType("datetime(6)");

                    b.Property<string>("CurrentAddress")
                        .HasColumnType("longtext");

                    b.Property<string>("Email")
                        .HasColumnType("longtext");

                    b.Property<string>("EmergencyContactPerson")
                        .HasColumnType("longtext");

                    b.Property<string>("EmergencyPhoneNumber")
                        .HasColumnType("longtext");

                    b.Property<string>("FirstName")
                        .HasColumnType("longtext");

                    b.Property<string>("Gender")
                        .HasColumnType("longtext");

                    b.Property<bool>("IsActive")
                        .HasColumnType("tinyint(1)");

                    b.Property<bool>("IsSystem")
                        .HasColumnType("tinyint(1)");

                    b.Property<Guid?>("JobRoleId")
                        .HasColumnType("char(36)");

                    b.Property<DateTime?>("JoiningDate")
                        .HasColumnType("datetime(6)");

                    b.Property<string>("LastName")
                        .HasColumnType("longtext");

                    b.Property<string>("MiddleName")
                        .HasColumnType("longtext");

                    b.Property<string>("PanNumber")
                        .HasColumnType("longtext");

                    b.Property<string>("PermanentAddress")
                        .HasColumnType("longtext");

                    b.Property<string>("PhoneNumber")
                        .HasColumnType("longtext");

                    b.Property<byte[]>("Photo")
                        .HasColumnType("longblob");

                    b.Property<Guid>("RoleId")
                        .HasColumnType("char(36)");

                    b.Property<Guid>("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<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("char(36)");

                    b.Property<Guid>("EmployeeId")
                        .HasColumnType("char(36)");

                    b.Property<bool>("IsEnabled")
                        .HasColumnType("tinyint(1)");

                    b.Property<Guid>("RoleId")
                        .HasColumnType("char(36)");

                    b.Property<Guid>("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<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("char(36)");

                    b.Property<TimeOnly>("EndTime")
                        .HasColumnType("time(6)");

                    b.Property<string>("Name")
                        .HasColumnType("longtext");

                    b.Property<TimeOnly>("StartTime")
                        .HasColumnType("time(6)");

                    b.Property<Guid>("TenantId")
                        .HasColumnType("char(36)");

                    b.HasKey("Id");

                    b.HasIndex("TenantId");

                    b.ToTable("WorkShifts");
                });

            modelBuilder.Entity("Marco.Pms.Model.Entitlements.ActivityCheckList", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("char(36)");

                    b.Property<Guid>("ActivityId")
                        .HasColumnType("char(36)");

                    b.Property<string>("Description")
                        .HasColumnType("longtext");

                    b.Property<bool>("IsChecked")
                        .HasColumnType("tinyint(1)");

                    b.Property<bool>("IsMandatory")
                        .HasColumnType("tinyint(1)");

                    b.Property<Guid>("TenantId")
                        .HasColumnType("char(36)");

                    b.HasKey("Id");

                    b.ToTable("ActivityCheckLists");
                });

            modelBuilder.Entity("Marco.Pms.Model.Entitlements.CheckListMappings", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("char(36)");

                    b.Property<Guid>("CheckListId")
                        .HasColumnType("char(36)");

                    b.Property<Guid>("TaskAllocationId")
                        .HasColumnType("char(36)");

                    b.HasKey("Id");

                    b.ToTable("CheckListMappings");
                });

            modelBuilder.Entity("Marco.Pms.Model.Entitlements.FeaturePermission", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("char(36)");

                    b.Property<string>("Description")
                        .HasColumnType("longtext");

                    b.Property<Guid>("FeatureId")
                        .HasColumnType("char(36)");

                    b.Property<bool>("IsEnabled")
                        .HasColumnType("tinyint(1)");

                    b.Property<string>("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("8d7cc6e3-9147-41f7-aaa7-fa507e450bd4"),
                            Description = "Grants a user comprehensive read-only access to all details concerning the project's underlying systems, technologies, resources, and configurations",
                            FeatureId = new Guid("53176ebf-c75d-42e5-839f-4508ffac3def"),
                            IsEnabled = true,
                            Name = "View Project Infra"
                        },
                        new
                        {
                            Id = new Guid("cf2825ad-453b-46aa-91d9-27c124d63373"),
                            Description = "This allows them to create, modify, and manage all aspects of the supporting infrastructure.",
                            FeatureId = new Guid("53176ebf-c75d-42e5-839f-4508ffac3def"),
                            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("60611762-7f8a-4fb5-b53f-b1139918796b"),
                            Description = "Grants a user read-only access to details about the all 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 All Employees"
                        },
                        new
                        {
                            Id = new Guid("b82d2b7e-0d52-45f3-997b-c008ea460e7f"),
                            Description = "Grants a user read-only access to details about the individuals within the system which are is assigned to same projects as user. 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 Team Members"
                        },
                        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"
                        },
                        new
                        {
                            Id = new Guid("385be49f-8fde-440e-bdbc-3dffeb8dd116"),
                            Description = "Allows a user to view only the expense records that they have personally submitted",
                            FeatureId = new Guid("a4e25142-449b-4334-a6e5-22f70e4732d7"),
                            IsEnabled = true,
                            Name = "View Self"
                        },
                        new
                        {
                            Id = new Guid("01e06444-9ca7-4df4-b900-8c3fa051b92f"),
                            Description = "Allows a user to view all expense records across the organization or project, regardless of who submitted or paid them",
                            FeatureId = new Guid("a4e25142-449b-4334-a6e5-22f70e4732d7"),
                            IsEnabled = true,
                            Name = "View All"
                        },
                        new
                        {
                            Id = new Guid("0f57885d-bcb2-4711-ac95-d841ace6d5a7"),
                            Description = "Allows a user to create and submit new expense records, including attaching relevant documents like receipts or invoices.",
                            FeatureId = new Guid("a4e25142-449b-4334-a6e5-22f70e4732d7"),
                            IsEnabled = true,
                            Name = "Upload"
                        },
                        new
                        {
                            Id = new Guid("1f4bda08-1873-449a-bb66-3e8222bd871b"),
                            Description = "Allows a user to examine submitted expenses for accuracy, completeness, and policy compliance before they are approved or rejected.",
                            FeatureId = new Guid("a4e25142-449b-4334-a6e5-22f70e4732d7"),
                            IsEnabled = true,
                            Name = "Review"
                        },
                        new
                        {
                            Id = new Guid("eaafdd76-8aac-45f9-a530-315589c6deca"),
                            Description = "Allows a user to authorize or reject submitted expenses, making them officially accepted or declined within the system.",
                            FeatureId = new Guid("a4e25142-449b-4334-a6e5-22f70e4732d7"),
                            IsEnabled = true,
                            Name = "Approve"
                        },
                        new
                        {
                            Id = new Guid("ea5a1529-4ee8-4828-80ea-0e23c9d4dd11"),
                            Description = "Allows a user to handle post-approval actions such as recording payments, updating financial records, or marking expenses as reimbursed or settled.",
                            FeatureId = new Guid("a4e25142-449b-4334-a6e5-22f70e4732d7"),
                            IsEnabled = true,
                            Name = "Process"
                        },
                        new
                        {
                            Id = new Guid("bdee29a2-b73b-402d-8dd1-c4b1f81ccbc3"),
                            Description = "Allows a user to configure and control system settings, such as managing expense types, payment modes, permissions, and overall workflow rules.",
                            FeatureId = new Guid("a4e25142-449b-4334-a6e5-22f70e4732d7"),
                            IsEnabled = true,
                            Name = "Manage"
                        });
                });

            modelBuilder.Entity("Marco.Pms.Model.Entitlements.RolePermissionMappings", b =>
                {
                    b.Property<Guid>("ApplicationRoleId")
                        .HasColumnType("char(36)");

                    b.Property<Guid>("FeaturePermissionId")
                        .HasColumnType("char(36)");

                    b.HasKey("ApplicationRoleId", "FeaturePermissionId");

                    b.HasIndex("FeaturePermissionId");

                    b.ToTable("RolePermissionMappings");
                });

            modelBuilder.Entity("Marco.Pms.Model.Entitlements.Tenant", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("char(36)");

                    b.Property<string>("ContactName")
                        .HasColumnType("longtext");

                    b.Property<string>("ContactNumber")
                        .HasColumnType("longtext");

                    b.Property<string>("Description")
                        .HasColumnType("longtext");

                    b.Property<string>("DomainName")
                        .HasColumnType("longtext");

                    b.Property<Guid?>("IndustryId")
                        .HasColumnType("char(36)");

                    b.Property<bool>("IsActive")
                        .HasColumnType("tinyint(1)");

                    b.Property<string>("Name")
                        .HasColumnType("longtext");

                    b.Property<DateTime>("OnBoardingDate")
                        .HasColumnType("datetime(6)");

                    b.Property<string>("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.Expenses.BillAttachments", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("char(36)");

                    b.Property<Guid>("DocumentId")
                        .HasColumnType("char(36)");

                    b.Property<Guid>("ExpensesId")
                        .HasColumnType("char(36)");

                    b.Property<Guid>("TenantId")
                        .HasColumnType("char(36)");

                    b.HasKey("Id");

                    b.HasIndex("DocumentId");

                    b.HasIndex("ExpensesId");

                    b.HasIndex("TenantId");

                    b.ToTable("BillAttachments");
                });

            modelBuilder.Entity("Marco.Pms.Model.Expenses.ExpenseLog", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("char(36)");

                    b.Property<string>("Action")
                        .IsRequired()
                        .HasColumnType("longtext");

                    b.Property<string>("Comment")
                        .HasColumnType("longtext");

                    b.Property<Guid>("ExpenseId")
                        .HasColumnType("char(36)");

                    b.Property<Guid>("TenantId")
                        .HasColumnType("char(36)");

                    b.Property<DateTime?>("UpdateAt")
                        .HasColumnType("datetime(6)");

                    b.Property<Guid>("UpdatedById")
                        .HasColumnType("char(36)");

                    b.HasKey("Id");

                    b.HasIndex("ExpenseId");

                    b.HasIndex("TenantId");

                    b.HasIndex("UpdatedById");

                    b.ToTable("ExpenseLogs");
                });

            modelBuilder.Entity("Marco.Pms.Model.Expenses.Expenses", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("char(36)");

                    b.Property<double>("Amount")
                        .HasColumnType("double");

                    b.Property<Guid?>("ApprovedById")
                        .HasColumnType("char(36)");

                    b.Property<DateTime>("CreatedAt")
                        .HasColumnType("datetime(6)");

                    b.Property<Guid>("CreatedById")
                        .HasColumnType("char(36)");

                    b.Property<string>("Description")
                        .IsRequired()
                        .HasColumnType("longtext");

                    b.Property<Guid>("ExpensesTypeId")
                        .HasColumnType("char(36)");

                    b.Property<string>("GSTNumber")
                        .HasColumnType("longtext");

                    b.Property<bool>("IsActive")
                        .HasColumnType("tinyint(1)");

                    b.Property<string>("Location")
                        .HasColumnType("longtext");

                    b.Property<int?>("NoOfPersons")
                        .HasColumnType("int");

                    b.Property<Guid>("PaidById")
                        .HasColumnType("char(36)");

                    b.Property<Guid>("PaymentModeId")
                        .HasColumnType("char(36)");

                    b.Property<bool>("PreApproved")
                        .HasColumnType("tinyint(1)");

                    b.Property<Guid?>("ProcessedById")
                        .HasColumnType("char(36)");

                    b.Property<Guid>("ProjectId")
                        .HasColumnType("char(36)");

                    b.Property<Guid?>("ReviewedById")
                        .HasColumnType("char(36)");

                    b.Property<Guid>("StatusId")
                        .HasColumnType("char(36)");

                    b.Property<string>("SupplerName")
                        .IsRequired()
                        .HasColumnType("longtext");

                    b.Property<Guid>("TenantId")
                        .HasColumnType("char(36)");

                    b.Property<DateTime>("TransactionDate")
                        .HasColumnType("datetime(6)");

                    b.Property<string>("TransactionId")
                        .HasColumnType("longtext");

                    b.HasKey("Id");

                    b.HasIndex("ApprovedById");

                    b.HasIndex("CreatedById");

                    b.HasIndex("ExpensesTypeId");

                    b.HasIndex("PaidById");

                    b.HasIndex("PaymentModeId");

                    b.HasIndex("ProcessedById");

                    b.HasIndex("ProjectId");

                    b.HasIndex("ReviewedById");

                    b.HasIndex("StatusId");

                    b.HasIndex("TenantId");

                    b.ToTable("Expenses");
                });

            modelBuilder.Entity("Marco.Pms.Model.Expenses.ExpensesReimburse", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("char(36)");

                    b.Property<Guid>("ReimburseById")
                        .HasColumnType("char(36)");

                    b.Property<DateTime>("ReimburseDate")
                        .HasColumnType("datetime(6)");

                    b.Property<string>("ReimburseNote")
                        .IsRequired()
                        .HasColumnType("longtext");

                    b.Property<string>("ReimburseTransactionId")
                        .IsRequired()
                        .HasColumnType("longtext");

                    b.Property<Guid>("TenantId")
                        .HasColumnType("char(36)");

                    b.HasKey("Id");

                    b.HasIndex("ReimburseById");

                    b.HasIndex("TenantId");

                    b.ToTable("ExpensesReimburse");
                });

            modelBuilder.Entity("Marco.Pms.Model.Expenses.ExpensesReimburseMapping", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("char(36)");

                    b.Property<Guid>("ExpensesId")
                        .HasColumnType("char(36)");

                    b.Property<Guid>("ExpensesReimburseId")
                        .HasColumnType("char(36)");

                    b.Property<Guid>("TenantId")
                        .HasColumnType("char(36)");

                    b.HasKey("Id");

                    b.HasIndex("ExpensesId");

                    b.HasIndex("ExpensesReimburseId");

                    b.HasIndex("TenantId");

                    b.ToTable("ExpensesReimburseMapping");
                });

            modelBuilder.Entity("Marco.Pms.Model.Expenses.ExpensesStatusMapping", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("char(36)");

                    b.Property<Guid>("NextStatusId")
                        .HasColumnType("char(36)");

                    b.Property<Guid>("StatusId")
                        .HasColumnType("char(36)");

                    b.HasKey("Id");

                    b.HasIndex("NextStatusId");

                    b.HasIndex("StatusId");

                    b.ToTable("ExpensesStatusMapping");

                    b.HasData(
                        new
                        {
                            Id = new Guid("5cf7f1df-9d1f-4289-add0-1775ad614f25"),
                            NextStatusId = new Guid("61578360-3a49-4c34-8604-7b35a3787b95"),
                            StatusId = new Guid("f18c5cfd-7815-4341-8da2-2c2d65778e27")
                        },
                        new
                        {
                            Id = new Guid("4ddddc10-0ffd-4884-accf-d4fa0bd97f54"),
                            NextStatusId = new Guid("6537018f-f4e9-4cb3-a210-6c3b2da999d7"),
                            StatusId = new Guid("d1ee5eec-24b6-4364-8673-a8f859c60729")
                        },
                        new
                        {
                            Id = new Guid("36c00548-241c-43ec-bc95-cacebedb925c"),
                            NextStatusId = new Guid("d1ee5eec-24b6-4364-8673-a8f859c60729"),
                            StatusId = new Guid("4068007f-c92f-4f37-a907-bc15fe57d4d8")
                        },
                        new
                        {
                            Id = new Guid("1fca1700-1266-477d-bba4-9ac3753aa33c"),
                            NextStatusId = new Guid("f18c5cfd-7815-4341-8da2-2c2d65778e27"),
                            StatusId = new Guid("4068007f-c92f-4f37-a907-bc15fe57d4d8")
                        },
                        new
                        {
                            Id = new Guid("9e2ec648-1ca2-4747-9329-e911b18edb3e"),
                            NextStatusId = new Guid("6537018f-f4e9-4cb3-a210-6c3b2da999d7"),
                            StatusId = new Guid("965eda62-7907-4963-b4a1-657fb0b2724b")
                        },
                        new
                        {
                            Id = new Guid("6b867bec-66e6-42a7-9611-f4595af9b9ce"),
                            NextStatusId = new Guid("965eda62-7907-4963-b4a1-657fb0b2724b"),
                            StatusId = new Guid("6537018f-f4e9-4cb3-a210-6c3b2da999d7")
                        },
                        new
                        {
                            Id = new Guid("ef1fcfbc-60e0-4f17-9308-c583a05d48fd"),
                            NextStatusId = new Guid("4068007f-c92f-4f37-a907-bc15fe57d4d8"),
                            StatusId = new Guid("6537018f-f4e9-4cb3-a210-6c3b2da999d7")
                        },
                        new
                        {
                            Id = new Guid("af1e4492-98ee-4451-8ab7-fd8323f29c32"),
                            NextStatusId = new Guid("6537018f-f4e9-4cb3-a210-6c3b2da999d7"),
                            StatusId = new Guid("297e0d8f-f668-41b5-bfea-e03b354251c8")
                        });
                });

            modelBuilder.Entity("Marco.Pms.Model.Expenses.StatusPermissionMapping", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("char(36)");

                    b.Property<Guid>("PermissionId")
                        .HasColumnType("char(36)");

                    b.Property<Guid>("StatusId")
                        .HasColumnType("char(36)");

                    b.HasKey("Id");

                    b.HasIndex("PermissionId");

                    b.HasIndex("StatusId");

                    b.ToTable("StatusPermissionMapping");

                    b.HasData(
                        new
                        {
                            Id = new Guid("722b0c3c-5a78-456d-b9bb-b6ba1b21d59b"),
                            PermissionId = new Guid("0f57885d-bcb2-4711-ac95-d841ace6d5a7"),
                            StatusId = new Guid("297e0d8f-f668-41b5-bfea-e03b354251c8")
                        },
                        new
                        {
                            Id = new Guid("7deb0945-e1c9-411f-8b3c-c9bdbe3c3c2d"),
                            PermissionId = new Guid("0f57885d-bcb2-4711-ac95-d841ace6d5a7"),
                            StatusId = new Guid("6537018f-f4e9-4cb3-a210-6c3b2da999d7")
                        },
                        new
                        {
                            Id = new Guid("9e2ec648-1ca2-4747-9329-e911b18edb3e"),
                            PermissionId = new Guid("1f4bda08-1873-449a-bb66-3e8222bd871b"),
                            StatusId = new Guid("965eda62-7907-4963-b4a1-657fb0b2724b")
                        },
                        new
                        {
                            Id = new Guid("0b7926fc-a34b-4a5b-8c7d-1003480cf0fa"),
                            PermissionId = new Guid("1f4bda08-1873-449a-bb66-3e8222bd871b"),
                            StatusId = new Guid("4068007f-c92f-4f37-a907-bc15fe57d4d8")
                        },
                        new
                        {
                            Id = new Guid("cd15f9b9-be45-4deb-9c71-2f23f872dbcd"),
                            PermissionId = new Guid("eaafdd76-8aac-45f9-a530-315589c6deca"),
                            StatusId = new Guid("d1ee5eec-24b6-4364-8673-a8f859c60729")
                        },
                        new
                        {
                            Id = new Guid("f6f26b2f-2fa6-40b7-8601-cbd4bcdda0cc"),
                            PermissionId = new Guid("eaafdd76-8aac-45f9-a530-315589c6deca"),
                            StatusId = new Guid("f18c5cfd-7815-4341-8da2-2c2d65778e27")
                        },
                        new
                        {
                            Id = new Guid("214354e5-daad-4569-ad69-eb5bf4e87fbc"),
                            PermissionId = new Guid("ea5a1529-4ee8-4828-80ea-0e23c9d4dd11"),
                            StatusId = new Guid("61578360-3a49-4c34-8604-7b35a3787b95")
                        });
                });

            modelBuilder.Entity("Marco.Pms.Model.Forum.TicketAttachment", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("char(36)");

                    b.Property<Guid?>("CommentId")
                        .HasColumnType("char(36)");

                    b.Property<Guid>("FileId")
                        .HasColumnType("char(36)");

                    b.Property<string>("FileName")
                        .IsRequired()
                        .HasColumnType("longtext");

                    b.Property<Guid>("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<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("char(36)");

                    b.Property<Guid>("AuthorId")
                        .HasColumnType("char(36)");

                    b.Property<string>("MessageText")
                        .IsRequired()
                        .HasColumnType("longtext");

                    b.Property<Guid?>("ParentMessageId")
                        .HasColumnType("char(36)");

                    b.Property<DateTime>("SentAt")
                        .HasColumnType("datetime(6)");

                    b.Property<Guid>("TenantId")
                        .HasColumnType("char(36)");

                    b.Property<Guid>("TicketId")
                        .HasColumnType("char(36)");

                    b.HasKey("Id");

                    b.HasIndex("TenantId");

                    b.ToTable("TicketComments");
                });

            modelBuilder.Entity("Marco.Pms.Model.Forum.TicketForum", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("char(36)");

                    b.Property<DateTime>("CreatedAt")
                        .HasColumnType("datetime(6)");

                    b.Property<Guid>("CreatedById")
                        .HasColumnType("char(36)");

                    b.Property<string>("Description")
                        .IsRequired()
                        .HasColumnType("longtext");

                    b.Property<Guid?>("LinkedActivityId")
                        .HasColumnType("char(36)");

                    b.Property<Guid?>("LinkedProjectId")
                        .HasColumnType("char(36)");

                    b.Property<Guid>("PriorityId")
                        .HasColumnType("char(36)");

                    b.Property<Guid>("StatusId")
                        .HasColumnType("char(36)");

                    b.Property<string>("Subject")
                        .IsRequired()
                        .HasColumnType("longtext");

                    b.Property<Guid>("TenantId")
                        .HasColumnType("char(36)");

                    b.Property<Guid>("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<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("char(36)");

                    b.Property<Guid>("TagId")
                        .HasColumnType("char(36)");

                    b.Property<Guid>("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<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("char(36)");

                    b.Property<string>("Description")
                        .HasColumnType("longtext");

                    b.Property<bool>("IsDefault")
                        .HasColumnType("tinyint(1)");

                    b.Property<string>("Name")
                        .IsRequired()
                        .HasColumnType("longtext");

                    b.Property<Guid>("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<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("char(36)");

                    b.Property<Guid>("MailListId")
                        .HasColumnType("char(36)");

                    b.Property<Guid>("ProjectId")
                        .HasColumnType("char(36)");

                    b.Property<string>("Recipient")
                        .IsRequired()
                        .HasColumnType("longtext");

                    b.Property<string>("Schedule")
                        .IsRequired()
                        .HasColumnType("longtext");

                    b.Property<Guid>("TenantId")
                        .HasColumnType("char(36)");

                    b.HasKey("Id");

                    b.HasIndex("MailListId");

                    b.ToTable("MailDetails");
                });

            modelBuilder.Entity("Marco.Pms.Model.Mail.MailLog", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("char(36)");

                    b.Property<string>("Body")
                        .IsRequired()
                        .HasColumnType("longtext");

                    b.Property<string>("EmailId")
                        .IsRequired()
                        .HasColumnType("longtext");

                    b.Property<Guid?>("EmployeeId")
                        .HasColumnType("char(36)");

                    b.Property<Guid>("ProjectId")
                        .HasColumnType("char(36)");

                    b.Property<Guid>("TenantId")
                        .HasColumnType("char(36)");

                    b.Property<DateTime>("TimeStamp")
                        .HasColumnType("datetime(6)");

                    b.HasKey("Id");

                    b.ToTable("MailLogs");
                });

            modelBuilder.Entity("Marco.Pms.Model.Mail.MailingList", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("char(36)");

                    b.Property<string>("Body")
                        .IsRequired()
                        .HasColumnType("longtext");

                    b.Property<string>("Keywords")
                        .IsRequired()
                        .HasColumnType("longtext");

                    b.Property<string>("Subject")
                        .IsRequired()
                        .HasColumnType("longtext");

                    b.Property<Guid>("TenantId")
                        .HasColumnType("char(36)");

                    b.Property<string>("Title")
                        .IsRequired()
                        .HasColumnType("longtext");

                    b.HasKey("Id");

                    b.ToTable("MailingList");
                });

            modelBuilder.Entity("Marco.Pms.Model.Master.ActivityMaster", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("char(36)");

                    b.Property<string>("ActivityName")
                        .HasColumnType("longtext");

                    b.Property<bool>("IsActive")
                        .HasColumnType("tinyint(1)");

                    b.Property<Guid>("TenantId")
                        .HasColumnType("char(36)");

                    b.Property<string>("UnitOfMeasurement")
                        .HasColumnType("longtext");

                    b.HasKey("Id");

                    b.HasIndex("TenantId");

                    b.ToTable("ActivityMasters");
                });

            modelBuilder.Entity("Marco.Pms.Model.Master.CurrencyMaster", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("char(36)");

                    b.Property<string>("CurrencyCode")
                        .IsRequired()
                        .HasColumnType("longtext");

                    b.Property<string>("CurrencyName")
                        .IsRequired()
                        .HasColumnType("longtext");

                    b.Property<bool>("IsActive")
                        .HasColumnType("tinyint(1)");

                    b.Property<string>("Symbol")
                        .IsRequired()
                        .HasColumnType("longtext");

                    b.HasKey("Id");

                    b.ToTable("CurrencyMaster");

                    b.HasData(
                        new
                        {
                            Id = new Guid("78e96e4a-7ce0-4164-ae3a-c833ad45ec2c"),
                            CurrencyCode = "INR",
                            CurrencyName = "Indian Rupee",
                            IsActive = true,
                            Symbol = "₹"
                        },
                        new
                        {
                            Id = new Guid("2f672568-a67b-4961-acb2-a8c7834e1762"),
                            CurrencyCode = "USD",
                            CurrencyName = "US Dollar",
                            IsActive = true,
                            Symbol = "$"
                        },
                        new
                        {
                            Id = new Guid("4d1155bb-1448-4d97-a732-96c92eb99c45"),
                            CurrencyCode = "EUR",
                            CurrencyName = "Euro",
                            IsActive = true,
                            Symbol = "€"
                        },
                        new
                        {
                            Id = new Guid("3e456237-ef06-4ea1-a261-188c9b0c6df6"),
                            CurrencyCode = "GBP",
                            CurrencyName = "Pound Sterling",
                            IsActive = true,
                            Symbol = "£"
                        },
                        new
                        {
                            Id = new Guid("297e237a-56d3-48f6-b39d-ec3991dea8bf"),
                            CurrencyCode = "JPY",
                            CurrencyName = "Japanese Yen",
                            IsActive = true,
                            Symbol = "¥"
                        },
                        new
                        {
                            Id = new Guid("efe9b4f6-64d6-446e-a42d-1c7aaf6dd70d"),
                            CurrencyCode = "RUB",
                            CurrencyName = "Russian Ruble",
                            IsActive = true,
                            Symbol = "₽"
                        },
                        new
                        {
                            Id = new Guid("b960166a-f7e9-49e3-bb4b-28511f126c08"),
                            CurrencyCode = "CNY",
                            CurrencyName = "Chinese Yuan (Renminbi)",
                            IsActive = true,
                            Symbol = "¥"
                        });
                });

            modelBuilder.Entity("Marco.Pms.Model.Master.ExpensesStatusMaster", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("char(36)");

                    b.Property<string>("Color")
                        .IsRequired()
                        .HasColumnType("longtext");

                    b.Property<string>("Description")
                        .IsRequired()
                        .HasColumnType("longtext");

                    b.Property<string>("DisplayName")
                        .IsRequired()
                        .HasColumnType("longtext");

                    b.Property<bool>("IsActive")
                        .HasColumnType("tinyint(1)");

                    b.Property<bool>("IsSystem")
                        .HasColumnType("tinyint(1)");

                    b.Property<string>("Name")
                        .IsRequired()
                        .HasColumnType("longtext");

                    b.HasKey("Id");

                    b.ToTable("ExpensesStatusMaster");

                    b.HasData(
                        new
                        {
                            Id = new Guid("297e0d8f-f668-41b5-bfea-e03b354251c8"),
                            Color = "#8592a3",
                            Description = "Expense has been created but not yet submitted.",
                            DisplayName = "Draft",
                            IsActive = true,
                            IsSystem = true,
                            Name = "Draft"
                        },
                        new
                        {
                            Id = new Guid("6537018f-f4e9-4cb3-a210-6c3b2da999d7"),
                            Color = "#696cff",
                            Description = "Reviewer is currently reviewing the expense.",
                            DisplayName = "Submit",
                            IsActive = true,
                            IsSystem = true,
                            Name = "Review Pending"
                        },
                        new
                        {
                            Id = new Guid("965eda62-7907-4963-b4a1-657fb0b2724b"),
                            Color = "#ff3e1d",
                            Description = "Expense was declined, often with a reason(review rejected).",
                            DisplayName = "Reject",
                            IsActive = true,
                            IsSystem = true,
                            Name = "Rejected by Reviewer"
                        },
                        new
                        {
                            Id = new Guid("4068007f-c92f-4f37-a907-bc15fe57d4d8"),
                            Color = "#03c3ec",
                            Description = "Review is completed, waiting for action of approver.",
                            DisplayName = "Mark as Reviewed",
                            IsActive = true,
                            IsSystem = true,
                            Name = "Approval Pending"
                        },
                        new
                        {
                            Id = new Guid("d1ee5eec-24b6-4364-8673-a8f859c60729"),
                            Color = "#ff3e1d",
                            Description = "Expense was declined, often with a reason(approval rejected).",
                            DisplayName = "Reject",
                            IsActive = true,
                            IsSystem = true,
                            Name = "Rejected by Approver"
                        },
                        new
                        {
                            Id = new Guid("f18c5cfd-7815-4341-8da2-2c2d65778e27"),
                            Color = "#ffab00",
                            Description = "Approved expense is awaiting final payment.",
                            DisplayName = "Mark as Approved",
                            IsActive = true,
                            IsSystem = true,
                            Name = "Payment Pending"
                        },
                        new
                        {
                            Id = new Guid("61578360-3a49-4c34-8604-7b35a3787b95"),
                            Color = "#71dd37",
                            Description = "Expense has been settled.",
                            DisplayName = "Mark as Processed",
                            IsActive = true,
                            IsSystem = true,
                            Name = "Processed"
                        });
                });

            modelBuilder.Entity("Marco.Pms.Model.Master.ExpensesTypeMaster", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("char(36)");

                    b.Property<string>("Description")
                        .IsRequired()
                        .HasColumnType("longtext");

                    b.Property<bool>("IsActive")
                        .HasColumnType("tinyint(1)");

                    b.Property<string>("Name")
                        .IsRequired()
                        .HasColumnType("longtext");

                    b.Property<bool>("NoOfPersonsRequired")
                        .HasColumnType("tinyint(1)");

                    b.Property<Guid>("TenantId")
                        .HasColumnType("char(36)");

                    b.HasKey("Id");

                    b.HasIndex("TenantId");

                    b.ToTable("ExpensesTypeMaster");

                    b.HasData(
                        new
                        {
                            Id = new Guid("5e0c6227-d49d-41ff-9f1f-781f0aee2469"),
                            Description = "Materials, equipment and supplies purchased for site operations.",
                            IsActive = true,
                            Name = "Procurement",
                            NoOfPersonsRequired = false,
                            TenantId = new Guid("b3466e83-7e11-464c-b93a-daf047838b26")
                        },
                        new
                        {
                            Id = new Guid("2de53163-0dbd-404b-8e60-1b02e6b4886a"),
                            Description = "Vehicle fuel, logistics services and delivery of goods or personnel.",
                            IsActive = true,
                            Name = "Transport",
                            NoOfPersonsRequired = false,
                            TenantId = new Guid("b3466e83-7e11-464c-b93a-daf047838b26")
                        },
                        new
                        {
                            Id = new Guid("dd120bc4-ab0a-45ba-8450-5cd45ff221ca"),
                            Description = "Delivery of personnel.",
                            IsActive = true,
                            Name = "Travelling",
                            NoOfPersonsRequired = true,
                            TenantId = new Guid("b3466e83-7e11-464c-b93a-daf047838b26")
                        },
                        new
                        {
                            Id = new Guid("52484820-1b54-4865-8f0f-baa2b1d339b9"),
                            Description = "Site setup costs including equipment deployment and temporary infrastructure.",
                            IsActive = true,
                            Name = "Mobilization",
                            NoOfPersonsRequired = false,
                            TenantId = new Guid("b3466e83-7e11-464c-b93a-daf047838b26")
                        },
                        new
                        {
                            Id = new Guid("fc59eb90-98ea-481c-b421-54bfa9e42d8f"),
                            Description = " Worker amenities like snacks, meals, safety gear, accommodation, medical support etc.",
                            IsActive = true,
                            Name = "Employee Welfare",
                            NoOfPersonsRequired = true,
                            TenantId = new Guid("b3466e83-7e11-464c-b93a-daf047838b26")
                        },
                        new
                        {
                            Id = new Guid("77013784-9324-4d8b-bd36-d6f928e68942"),
                            Description = "Machinery servicing, electricity, water, and temporary office needs.",
                            IsActive = true,
                            Name = "Maintenance & Utilities",
                            NoOfPersonsRequired = false,
                            TenantId = new Guid("b3466e83-7e11-464c-b93a-daf047838b26")
                        },
                        new
                        {
                            Id = new Guid("1e2d697a-76b4-4be8-bc66-87144561a1a0"),
                            Description = "Scheduled payments for external services or goods.",
                            IsActive = true,
                            Name = "Vendor/Supplier Payments",
                            NoOfPersonsRequired = false,
                            TenantId = new Guid("b3466e83-7e11-464c-b93a-daf047838b26")
                        },
                        new
                        {
                            Id = new Guid("4842fa61-64eb-4241-aebd-8282065af9f9"),
                            Description = "Government fees, insurance, inspections and safety-related expenditures.",
                            IsActive = true,
                            Name = "Compliance & Safety",
                            NoOfPersonsRequired = false,
                            TenantId = new Guid("b3466e83-7e11-464c-b93a-daf047838b26")
                        });
                });

            modelBuilder.Entity("Marco.Pms.Model.Master.Feature", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("char(36)");

                    b.Property<string>("Description")
                        .HasColumnType("longtext");

                    b.Property<bool>("IsActive")
                        .HasColumnType("tinyint(1)");

                    b.Property<Guid>("ModuleId")
                        .HasColumnType("char(36)");

                    b.Property<string>("Name")
                        .HasColumnType("longtext");

                    b.HasKey("Id");

                    b.HasIndex("ModuleId");

                    b.ToTable("Features");

                    b.HasData(
                        new
                        {
                            Id = new Guid("53176ebf-c75d-42e5-839f-4508ffac3def"),
                            Description = "Manage Project",
                            IsActive = true,
                            ModuleId = new Guid("bf59fd88-b57a-4d67-bf01-3780f385896b"),
                            Name = "Project Management"
                        },
                        new
                        {
                            Id = new Guid("a4e25142-449b-4334-a6e5-22f70e4732d7"),
                            Description = "Expense Management is the systematic process of tracking, controlling, and reporting business-related expenditures.",
                            IsActive = true,
                            ModuleId = new Guid("bf59fd88-b57a-4d67-bf01-3780f385896b"),
                            Name = "Expense Management"
                        },
                        new
                        {
                            Id = new Guid("9d4b5489-2079-40b9-bd77-6e1bf90bc19f"),
                            Description = "Manage Tasks",
                            IsActive = true,
                            ModuleId = new Guid("bf59fd88-b57a-4d67-bf01-3780f385896b"),
                            Name = "Task Management"
                        },
                        new
                        {
                            Id = new Guid("81ab8a87-8ccd-4015-a917-0627cee6a100"),
                            Description = "Manage Employee",
                            IsActive = true,
                            ModuleId = new Guid("2a231490-bcb1-4bdd-91f1-f25fb7f25b23"),
                            Name = "Employee Management"
                        },
                        new
                        {
                            Id = new Guid("52c9cf54-1eb2-44d2-81bb-524cf29c0a94"),
                            Description = "Attendance",
                            IsActive = true,
                            ModuleId = new Guid("2a231490-bcb1-4bdd-91f1-f25fb7f25b23"),
                            Name = "Attendance Management"
                        },
                        new
                        {
                            Id = new Guid("be3b3afc-6ccf-4566-b9b6-aafcb65546be"),
                            Description = "Global Masters",
                            IsActive = true,
                            ModuleId = new Guid("c43db8c7-ab73-47f4-9d3b-f83e81357924"),
                            Name = "Masters"
                        },
                        new
                        {
                            Id = new Guid("39e66f81-efc6-446c-95bd-46bff6cfb606"),
                            Description = "Managing all directory related rights",
                            IsActive = true,
                            ModuleId = new Guid("c43db8c7-ab73-47f4-9d3b-f83e81357924"),
                            Name = "Directory Management"
                        });
                });

            modelBuilder.Entity("Marco.Pms.Model.Master.Industry", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("char(36)");

                    b.Property<string>("Name")
                        .HasColumnType("longtext");

                    b.HasKey("Id");

                    b.ToTable("Industries");

                    b.HasData(
                        new
                        {
                            Id = new Guid("15436ee3-a650-469e-bfc2-59993f7514bb"),
                            Name = "Information Technology (IT) Services"
                        },
                        new
                        {
                            Id = new Guid("0a63e657-2c5f-49b5-854b-42c978293154"),
                            Name = "Manufacturing & Production"
                        },
                        new
                        {
                            Id = new Guid("bdc61e3b-69ea-4394-bab6-079ec135b5bd"),
                            Name = "Energy & Resources"
                        },
                        new
                        {
                            Id = new Guid("5ca200ac-00d7-415e-a410-b948e27ac9d2"),
                            Name = "Finance & Professional Services"
                        },
                        new
                        {
                            Id = new Guid("d5621700-cd87-441f-8cdb-6051ddfc83b4"),
                            Name = "Hospitals and Healthcare Services"
                        },
                        new
                        {
                            Id = new Guid("23608891-657e-40f0-bbd4-2b0a2ec1a76f"),
                            Name = "Social Services"
                        },
                        new
                        {
                            Id = new Guid("a493f4e3-16b1-4411-be3c-6bf2987a3168"),
                            Name = "Retail & Consumer Services"
                        },
                        new
                        {
                            Id = new Guid("e9d8ce92-9371-4ed9-9831-83c07f78edec"),
                            Name = "Transportation & Logistics"
                        },
                        new
                        {
                            Id = new Guid("8a0d6134-2dbe-4e0a-b250-ff34cb7b9df0"),
                            Name = "Education & Training"
                        });
                });

            modelBuilder.Entity("Marco.Pms.Model.Master.Module", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("char(36)");

                    b.Property<string>("Description")
                        .HasColumnType("longtext");

                    b.Property<string>("Key")
                        .IsRequired()
                        .HasColumnType("longtext");

                    b.Property<string>("Name")
                        .IsRequired()
                        .HasColumnType("longtext");

                    b.HasKey("Id");

                    b.ToTable("Modules");

                    b.HasData(
                        new
                        {
                            Id = new Guid("bf59fd88-b57a-4d67-bf01-3780f385896b"),
                            Description = "Project Module",
                            Key = "b04da7e9-0406-409c-ac7f-b97256e6ea02",
                            Name = "Project"
                        },
                        new
                        {
                            Id = new Guid("2a231490-bcb1-4bdd-91f1-f25fb7f25b23"),
                            Description = "Employee Module",
                            Key = "0971c7fb-6ce1-458a-ae3f-8d3205893637",
                            Name = "Employee"
                        },
                        new
                        {
                            Id = new Guid("c43db8c7-ab73-47f4-9d3b-f83e81357924"),
                            Description = "Masters Module",
                            Key = "504ec132-e6a9-422f-8f85-050602cfce05",
                            Name = "Masters"
                        });
                });

            modelBuilder.Entity("Marco.Pms.Model.Master.PaymentModeMatser", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("char(36)");

                    b.Property<string>("Description")
                        .IsRequired()
                        .HasColumnType("longtext");

                    b.Property<bool>("IsActive")
                        .HasColumnType("tinyint(1)");

                    b.Property<string>("Name")
                        .IsRequired()
                        .HasColumnType("longtext");

                    b.Property<Guid>("TenantId")
                        .HasColumnType("char(36)");

                    b.HasKey("Id");

                    b.HasIndex("TenantId");

                    b.ToTable("PaymentModeMatser");

                    b.HasData(
                        new
                        {
                            Id = new Guid("24e6b0df-7929-47d2-88a3-4cf14c1f28f9"),
                            Description = "Physical currency; still used for small or informal transactions.",
                            IsActive = true,
                            Name = "Cash",
                            TenantId = new Guid("b3466e83-7e11-464c-b93a-daf047838b26")
                        },
                        new
                        {
                            Id = new Guid("48d9b462-5d87-4dec-8dec-2bc943943172"),
                            Description = "Paper-based payment order; less common now due to processing delays and fraud risks.",
                            IsActive = true,
                            Name = "Cheque",
                            TenantId = new Guid("b3466e83-7e11-464c-b93a-daf047838b26")
                        },
                        new
                        {
                            Id = new Guid("ed667353-8eea-4fd1-8750-719405932480"),
                            Description = "Online banking portals used to transfer funds directly between accounts",
                            IsActive = true,
                            Name = "NetBanking",
                            TenantId = new Guid("b3466e83-7e11-464c-b93a-daf047838b26")
                        },
                        new
                        {
                            Id = new Guid("2e919e94-694c-41d9-9489-0a2b4208a027"),
                            Description = "Real-time bank-to-bank transfer using mobile apps; widely used for peer-to-peer and merchant payments.",
                            IsActive = true,
                            Name = "UPI",
                            TenantId = new Guid("b3466e83-7e11-464c-b93a-daf047838b26")
                        });
                });

            modelBuilder.Entity("Marco.Pms.Model.Master.StatusMaster", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("char(36)");

                    b.Property<string>("Status")
                        .HasColumnType("longtext");

                    b.Property<Guid>("TenantId")
                        .HasColumnType("char(36)");

                    b.HasKey("Id");

                    b.HasIndex("TenantId");

                    b.ToTable("StatusMasters");

                    b.HasData(
                        new
                        {
                            Id = new Guid("b74da4c2-d07e-46f2-9919-e75e49b12731"),
                            Status = "Active",
                            TenantId = new Guid("b3466e83-7e11-464c-b93a-daf047838b26")
                        },
                        new
                        {
                            Id = new Guid("cdad86aa-8a56-4ff4-b633-9c629057dfef"),
                            Status = "In Progress",
                            TenantId = new Guid("b3466e83-7e11-464c-b93a-daf047838b26")
                        },
                        new
                        {
                            Id = new Guid("603e994b-a27f-4e5d-a251-f3d69b0498ba"),
                            Status = "On Hold",
                            TenantId = new Guid("b3466e83-7e11-464c-b93a-daf047838b26")
                        },
                        new
                        {
                            Id = new Guid("ef1c356e-0fe0-42df-a5d3-8daee355492d"),
                            Status = "In Active",
                            TenantId = new Guid("b3466e83-7e11-464c-b93a-daf047838b26")
                        },
                        new
                        {
                            Id = new Guid("33deaef9-9af1-4f2a-b443-681ea0d04f81"),
                            Status = "Completed",
                            TenantId = new Guid("b3466e83-7e11-464c-b93a-daf047838b26")
                        });
                });

            modelBuilder.Entity("Marco.Pms.Model.Master.TicketPriorityMaster", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("char(36)");

                    b.Property<string>("ColorCode")
                        .HasColumnType("longtext");

                    b.Property<bool>("IsDefault")
                        .HasColumnType("tinyint(1)");

                    b.Property<int>("Level")
                        .HasColumnType("int");

                    b.Property<string>("Name")
                        .IsRequired()
                        .HasColumnType("longtext");

                    b.Property<Guid>("TenantId")
                        .HasColumnType("char(36)");

                    b.HasKey("Id");

                    b.ToTable("TicketPriorityMasters");

                    b.HasData(
                        new
                        {
                            Id = new Guid("188d29b3-10f3-42d0-9587-1a46ae7a0320"),
                            ColorCode = "008000",
                            IsDefault = true,
                            Level = 1,
                            Name = "Low",
                            TenantId = new Guid("b3466e83-7e11-464c-b93a-daf047838b26")
                        },
                        new
                        {
                            Id = new Guid("0919bc84-9f82-4ecf-98c7-962755dd9a97"),
                            ColorCode = "FFFF00",
                            IsDefault = true,
                            Level = 2,
                            Name = "Medium",
                            TenantId = new Guid("b3466e83-7e11-464c-b93a-daf047838b26")
                        },
                        new
                        {
                            Id = new Guid("a13b7e59-16fd-4665-b5cf-a97399e8445a"),
                            ColorCode = "#FFA500",
                            IsDefault = true,
                            Level = 3,
                            Name = "High",
                            TenantId = new Guid("b3466e83-7e11-464c-b93a-daf047838b26")
                        },
                        new
                        {
                            Id = new Guid("f340fbc3-c9fd-46aa-b063-0093418830e4"),
                            ColorCode = "#FFA500",
                            IsDefault = true,
                            Level = 4,
                            Name = "Critical",
                            TenantId = new Guid("b3466e83-7e11-464c-b93a-daf047838b26")
                        },
                        new
                        {
                            Id = new Guid("44a7b91d-a0dd-45d1-8616-4d2f71e16401"),
                            ColorCode = "#FF0000",
                            IsDefault = true,
                            Level = 5,
                            Name = "Urgent",
                            TenantId = new Guid("b3466e83-7e11-464c-b93a-daf047838b26")
                        });
                });

            modelBuilder.Entity("Marco.Pms.Model.Master.TicketStatusMaster", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("char(36)");

                    b.Property<string>("ColorCode")
                        .HasColumnType("longtext");

                    b.Property<string>("Description")
                        .HasColumnType("longtext");

                    b.Property<bool>("IsDefault")
                        .HasColumnType("tinyint(1)");

                    b.Property<string>("Name")
                        .IsRequired()
                        .HasColumnType("longtext");

                    b.Property<Guid>("TenantId")
                        .HasColumnType("char(36)");

                    b.HasKey("Id");

                    b.ToTable("TicketStatusMasters");

                    b.HasData(
                        new
                        {
                            Id = new Guid("6b0c409b-3e80-4165-8b39-f3fcacb4c797"),
                            ColorCode = "#FFCC99",
                            Description = "This is a newly created issue.",
                            IsDefault = true,
                            Name = "New",
                            TenantId = new Guid("b3466e83-7e11-464c-b93a-daf047838b26")
                        },
                        new
                        {
                            Id = new Guid("6c5ac37d-5b7d-40f3-adec-2dabaa5cca86"),
                            ColorCode = "#E6FF99",
                            Description = "Assigned to employee or team of employees",
                            IsDefault = true,
                            Name = "Assigned",
                            TenantId = new Guid("b3466e83-7e11-464c-b93a-daf047838b26")
                        },
                        new
                        {
                            Id = new Guid("7f96bcd5-0c66-411b-8a1d-9d1a4785194e"),
                            ColorCode = "#99E6FF",
                            Description = "These issues are currently in progress",
                            IsDefault = true,
                            Name = "In Progress",
                            TenantId = new Guid("b3466e83-7e11-464c-b93a-daf047838b26")
                        },
                        new
                        {
                            Id = new Guid("5c72b630-6923-4215-bf2c-b1622afd76e7"),
                            ColorCode = "#8592a3",
                            Description = "These issues are currently under review",
                            IsDefault = true,
                            Name = "In Review",
                            TenantId = new Guid("b3466e83-7e11-464c-b93a-daf047838b26")
                        },
                        new
                        {
                            Id = new Guid("8ff85685-a875-4f21-aa95-d99551315fcc"),
                            ColorCode = "#B399FF",
                            Description = "The following issues are resolved and closed",
                            IsDefault = true,
                            Name = "Done",
                            TenantId = new Guid("b3466e83-7e11-464c-b93a-daf047838b26")
                        });
                });

            modelBuilder.Entity("Marco.Pms.Model.Master.TicketTagMaster", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("char(36)");

                    b.Property<string>("ColorCode")
                        .HasColumnType("longtext");

                    b.Property<bool>("IsDefault")
                        .HasColumnType("tinyint(1)");

                    b.Property<string>("Name")
                        .IsRequired()
                        .HasColumnType("longtext");

                    b.Property<Guid>("TenantId")
                        .HasColumnType("char(36)");

                    b.HasKey("Id");

                    b.ToTable("TicketTagMasters");

                    b.HasData(
                        new
                        {
                            Id = new Guid("ef6c2a65-f61d-4537-9650-a7ab7f8d98db"),
                            ColorCode = "#e59866",
                            IsDefault = true,
                            Name = "Quality Issue",
                            TenantId = new Guid("b3466e83-7e11-464c-b93a-daf047838b26")
                        },
                        new
                        {
                            Id = new Guid("5a168569-8ad7-4422-8db6-51ef25caddeb"),
                            ColorCode = "#85c1e9",
                            IsDefault = true,
                            Name = "Help Desk",
                            TenantId = new Guid("b3466e83-7e11-464c-b93a-daf047838b26")
                        });
                });

            modelBuilder.Entity("Marco.Pms.Model.Master.WorkCategoryMaster", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("char(36)");

                    b.Property<string>("Description")
                        .IsRequired()
                        .HasColumnType("longtext");

                    b.Property<bool>("IsSystem")
                        .HasColumnType("tinyint(1)");

                    b.Property<string>("Name")
                        .IsRequired()
                        .HasColumnType("longtext");

                    b.Property<Guid>("TenantId")
                        .HasColumnType("char(36)");

                    b.HasKey("Id");

                    b.HasIndex("TenantId");

                    b.ToTable("WorkCategoryMasters");

                    b.HasData(
                        new
                        {
                            Id = new Guid("86bb2cc8-f6b5-4fdd-bbee-c389c713a44b"),
                            Description = "Created new task in a professional or creative context",
                            IsSystem = true,
                            Name = "Fresh Work",
                            TenantId = new Guid("b3466e83-7e11-464c-b93a-daf047838b26")
                        },
                        new
                        {
                            Id = new Guid("9ebfa19c-53b9-481b-b863-c25d2f843201"),
                            Description = "Revising, modifying, or correcting a task to improve its quality or fix issues",
                            IsSystem = true,
                            Name = "Rework",
                            TenantId = new Guid("b3466e83-7e11-464c-b93a-daf047838b26")
                        },
                        new
                        {
                            Id = new Guid("11a79929-1d07-42dc-9e98-82d0d2f4a240"),
                            Description = "Any defect, deviation, or non-conformance in a task that fails to meet established standards or customer expectations.",
                            IsSystem = true,
                            Name = "Quality Issue",
                            TenantId = new Guid("b3466e83-7e11-464c-b93a-daf047838b26")
                        });
                });

            modelBuilder.Entity("Marco.Pms.Model.Master.WorkStatusMaster", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("char(36)");

                    b.Property<string>("Description")
                        .IsRequired()
                        .HasColumnType("longtext");

                    b.Property<bool>("IsSystem")
                        .HasColumnType("tinyint(1)");

                    b.Property<string>("Name")
                        .IsRequired()
                        .HasColumnType("longtext");

                    b.Property<Guid>("TenantId")
                        .HasColumnType("char(36)");

                    b.HasKey("Id");

                    b.HasIndex("TenantId");

                    b.ToTable("WorkStatusMasters");

                    b.HasData(
                        new
                        {
                            Id = new Guid("030bb085-e230-4370-aec7-9a74d652864e"),
                            Description = "Confirm the tasks are actually finished as reported",
                            IsSystem = true,
                            Name = "Approve",
                            TenantId = new Guid("b3466e83-7e11-464c-b93a-daf047838b26")
                        },
                        new
                        {
                            Id = new Guid("2a1a5b96-cf93-4111-b4b1-76c19d6333b4"),
                            Description = "Not all tasks are actually finished as reported",
                            IsSystem = true,
                            Name = "Partially Approve",
                            TenantId = new Guid("b3466e83-7e11-464c-b93a-daf047838b26")
                        },
                        new
                        {
                            Id = new Guid("00a062e6-62e6-42c5-b6b1-024328651b72"),
                            Description = "Tasks are not finished as reported or have any issues in al the tasks",
                            IsSystem = true,
                            Name = "NCR",
                            TenantId = new Guid("b3466e83-7e11-464c-b93a-daf047838b26")
                        });
                });

            modelBuilder.Entity("Marco.Pms.Model.Projects.Building", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("char(36)");

                    b.Property<string>("Description")
                        .HasColumnType("longtext");

                    b.Property<string>("Name")
                        .IsRequired()
                        .HasColumnType("longtext");

                    b.Property<Guid>("ProjectId")
                        .HasColumnType("char(36)");

                    b.Property<Guid>("TenantId")
                        .HasColumnType("char(36)");

                    b.HasKey("Id");

                    b.HasIndex("TenantId");

                    b.ToTable("Buildings");
                });

            modelBuilder.Entity("Marco.Pms.Model.Projects.Floor", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("char(36)");

                    b.Property<Guid>("BuildingId")
                        .HasColumnType("char(36)");

                    b.Property<string>("FloorName")
                        .IsRequired()
                        .HasColumnType("longtext");

                    b.Property<Guid>("TenantId")
                        .HasColumnType("char(36)");

                    b.HasKey("Id");

                    b.HasIndex("BuildingId");

                    b.HasIndex("TenantId");

                    b.ToTable("Floor");
                });

            modelBuilder.Entity("Marco.Pms.Model.Projects.Project", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("char(36)");

                    b.Property<string>("ContactPerson")
                        .HasColumnType("longtext");

                    b.Property<DateTime?>("EndDate")
                        .HasColumnType("datetime(6)");

                    b.Property<string>("Name")
                        .IsRequired()
                        .HasColumnType("longtext");

                    b.Property<string>("ProjectAddress")
                        .HasColumnType("longtext");

                    b.Property<Guid>("ProjectStatusId")
                        .HasColumnType("char(36)");

                    b.Property<string>("ShortName")
                        .HasColumnType("longtext");

                    b.Property<DateTime?>("StartDate")
                        .HasColumnType("datetime(6)");

                    b.Property<Guid>("TenantId")
                        .HasColumnType("char(36)");

                    b.HasKey("Id");

                    b.HasIndex("ProjectStatusId");

                    b.HasIndex("TenantId");

                    b.ToTable("Projects");

                    b.HasData(
                        new
                        {
                            Id = new Guid("85bf587b-7ca9-4685-b77c-d817f5847e85"),
                            ContactPerson = "Project 1 Contact Person",
                            EndDate = new DateTime(2026, 4, 20, 10, 11, 17, 588, DateTimeKind.Unspecified),
                            Name = "Project 1",
                            ProjectAddress = "Project 1 Address",
                            ProjectStatusId = new Guid("b74da4c2-d07e-46f2-9919-e75e49b12731"),
                            StartDate = new DateTime(2025, 4, 20, 10, 11, 17, 588, DateTimeKind.Unspecified),
                            TenantId = new Guid("b3466e83-7e11-464c-b93a-daf047838b26")
                        });
                });

            modelBuilder.Entity("Marco.Pms.Model.Projects.ProjectAllocation", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("char(36)");

                    b.Property<DateTime>("AllocationDate")
                        .HasColumnType("datetime(6)");

                    b.Property<Guid>("EmployeeId")
                        .HasColumnType("char(36)");

                    b.Property<bool>("IsActive")
                        .HasColumnType("tinyint(1)");

                    b.Property<Guid?>("JobRoleId")
                        .HasColumnType("char(36)");

                    b.Property<Guid>("ProjectId")
                        .HasColumnType("char(36)");

                    b.Property<DateTime?>("ReAllocationDate")
                        .HasColumnType("datetime(6)");

                    b.Property<Guid>("TenantId")
                        .HasColumnType("char(36)");

                    b.HasKey("Id");

                    b.HasIndex("EmployeeId");

                    b.HasIndex("ProjectId");

                    b.HasIndex("TenantId");

                    b.ToTable("ProjectAllocations");
                });

            modelBuilder.Entity("Marco.Pms.Model.Projects.WorkArea", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("char(36)");

                    b.Property<string>("AreaName")
                        .IsRequired()
                        .HasColumnType("longtext");

                    b.Property<Guid>("FloorId")
                        .HasColumnType("char(36)");

                    b.Property<Guid>("TenantId")
                        .HasColumnType("char(36)");

                    b.HasKey("Id");

                    b.HasIndex("FloorId");

                    b.HasIndex("TenantId");

                    b.ToTable("WorkAreas");
                });

            modelBuilder.Entity("Marco.Pms.Model.Projects.WorkItem", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("char(36)");

                    b.Property<Guid>("ActivityId")
                        .HasColumnType("char(36)");

                    b.Property<double>("CompletedWork")
                        .HasColumnType("double");

                    b.Property<string>("Description")
                        .HasColumnType("longtext");

                    b.Property<Guid?>("ParentTaskId")
                        .HasColumnType("char(36)");

                    b.Property<double>("PlannedWork")
                        .HasColumnType("double");

                    b.Property<DateTime>("TaskDate")
                        .HasColumnType("datetime(6)");

                    b.Property<Guid>("TenantId")
                        .HasColumnType("char(36)");

                    b.Property<Guid>("WorkAreaId")
                        .HasColumnType("char(36)");

                    b.Property<Guid?>("WorkCategoryId")
                        .HasColumnType("char(36)");

                    b.HasKey("Id");

                    b.HasIndex("ActivityId");

                    b.HasIndex("TenantId");

                    b.HasIndex("WorkAreaId");

                    b.HasIndex("WorkCategoryId");

                    b.ToTable("WorkItems");
                });

            modelBuilder.Entity("Marco.Pms.Model.Roles.ApplicationRole", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("char(36)");

                    b.Property<string>("Description")
                        .HasColumnType("longtext");

                    b.Property<bool>("IsSystem")
                        .HasColumnType("tinyint(1)");

                    b.Property<string>("Role")
                        .HasColumnType("longtext");

                    b.Property<Guid>("TenantId")
                        .HasColumnType("char(36)");

                    b.HasKey("Id");

                    b.HasIndex("TenantId");

                    b.ToTable("ApplicationRoles");
                });

            modelBuilder.Entity("Marco.Pms.Model.Roles.JobRole", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("char(36)");

                    b.Property<string>("Description")
                        .HasColumnType("longtext");

                    b.Property<string>("Name")
                        .HasColumnType("longtext");

                    b.Property<Guid>("TenantId")
                        .HasColumnType("char(36)");

                    b.HasKey("Id");

                    b.HasIndex("TenantId");

                    b.ToTable("JobRoles");
                });

            modelBuilder.Entity("Marco.Pms.Model.Utilities.FCMTokenMapping", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("char(36)");

                    b.Property<Guid>("EmployeeId")
                        .HasColumnType("char(36)");

                    b.Property<DateTime>("ExpiredAt")
                        .HasColumnType("datetime(6)");

                    b.Property<string>("FcmToken")
                        .IsRequired()
                        .HasColumnType("longtext");

                    b.Property<Guid>("TenantId")
                        .HasColumnType("char(36)");

                    b.HasKey("Id");

                    b.HasIndex("TenantId");

                    b.ToTable("FCMTokenMappings");
                });

            modelBuilder.Entity("Marco.Pms.Model.Utilities.Inquiries", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("char(36)");

                    b.Property<string>("About")
                        .HasColumnType("longtext");

                    b.Property<string>("ContactNumber")
                        .HasColumnType("longtext");

                    b.Property<string>("ContactPerson")
                        .HasColumnType("longtext");

                    b.Property<string>("Email")
                        .HasColumnType("longtext");

                    b.Property<Guid>("IndustryId")
                        .HasColumnType("char(36)");

                    b.Property<string>("OragnizationSize")
                        .HasColumnType("longtext");

                    b.Property<string>("OrganizatioinName")
                        .HasColumnType("longtext");

                    b.HasKey("Id");

                    b.ToTable("Inquiries");
                });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRole", b =>
                {
                    b.Property<string>("Id")
                        .HasColumnType("varchar(255)");

                    b.Property<string>("ConcurrencyStamp")
                        .IsConcurrencyToken()
                        .HasColumnType("longtext");

                    b.Property<string>("Name")
                        .HasMaxLength(256)
                        .HasColumnType("varchar(256)");

                    b.Property<string>("NormalizedName")
                        .HasMaxLength(256)
                        .HasColumnType("varchar(256)");

                    b.HasKey("Id");

                    b.HasIndex("NormalizedName")
                        .IsUnique()
                        .HasDatabaseName("RoleNameIndex");

                    b.ToTable("AspNetRoles", (string)null);
                });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim<string>", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int");

                    MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));

                    b.Property<string>("ClaimType")
                        .HasColumnType("longtext");

                    b.Property<string>("ClaimValue")
                        .HasColumnType("longtext");

                    b.Property<string>("RoleId")
                        .IsRequired()
                        .HasColumnType("varchar(255)");

                    b.HasKey("Id");

                    b.HasIndex("RoleId");

                    b.ToTable("AspNetRoleClaims", (string)null);
                });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUser", b =>
                {
                    b.Property<string>("Id")
                        .HasColumnType("varchar(255)");

                    b.Property<int>("AccessFailedCount")
                        .HasColumnType("int");

                    b.Property<string>("ConcurrencyStamp")
                        .IsConcurrencyToken()
                        .HasColumnType("longtext");

                    b.Property<string>("Discriminator")
                        .IsRequired()
                        .HasMaxLength(21)
                        .HasColumnType("varchar(21)");

                    b.Property<string>("Email")
                        .HasMaxLength(256)
                        .HasColumnType("varchar(256)");

                    b.Property<bool>("EmailConfirmed")
                        .HasColumnType("tinyint(1)");

                    b.Property<bool>("LockoutEnabled")
                        .HasColumnType("tinyint(1)");

                    b.Property<DateTimeOffset?>("LockoutEnd")
                        .HasColumnType("datetime(6)");

                    b.Property<string>("NormalizedEmail")
                        .HasMaxLength(256)
                        .HasColumnType("varchar(256)");

                    b.Property<string>("NormalizedUserName")
                        .HasMaxLength(256)
                        .HasColumnType("varchar(256)");

                    b.Property<string>("PasswordHash")
                        .HasColumnType("longtext");

                    b.Property<string>("PhoneNumber")
                        .HasColumnType("longtext");

                    b.Property<bool>("PhoneNumberConfirmed")
                        .HasColumnType("tinyint(1)");

                    b.Property<string>("SecurityStamp")
                        .HasColumnType("longtext");

                    b.Property<bool>("TwoFactorEnabled")
                        .HasColumnType("tinyint(1)");

                    b.Property<string>("UserName")
                        .HasMaxLength(256)
                        .HasColumnType("varchar(256)");

                    b.HasKey("Id");

                    b.HasIndex("NormalizedEmail")
                        .HasDatabaseName("EmailIndex");

                    b.HasIndex("NormalizedUserName")
                        .IsUnique()
                        .HasDatabaseName("UserNameIndex");

                    b.ToTable("AspNetUsers", (string)null);

                    b.HasDiscriminator().HasValue("IdentityUser");

                    b.UseTphMappingStrategy();
                });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim<string>", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int");

                    MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));

                    b.Property<string>("ClaimType")
                        .HasColumnType("longtext");

                    b.Property<string>("ClaimValue")
                        .HasColumnType("longtext");

                    b.Property<string>("UserId")
                        .IsRequired()
                        .HasColumnType("varchar(255)");

                    b.HasKey("Id");

                    b.HasIndex("UserId");

                    b.ToTable("AspNetUserClaims", (string)null);
                });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin<string>", b =>
                {
                    b.Property<string>("LoginProvider")
                        .HasColumnType("varchar(255)");

                    b.Property<string>("ProviderKey")
                        .HasColumnType("varchar(255)");

                    b.Property<string>("ProviderDisplayName")
                        .HasColumnType("longtext");

                    b.Property<string>("UserId")
                        .IsRequired()
                        .HasColumnType("varchar(255)");

                    b.HasKey("LoginProvider", "ProviderKey");

                    b.HasIndex("UserId");

                    b.ToTable("AspNetUserLogins", (string)null);
                });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole<string>", b =>
                {
                    b.Property<string>("UserId")
                        .HasColumnType("varchar(255)");

                    b.Property<string>("RoleId")
                        .HasColumnType("varchar(255)");

                    b.HasKey("UserId", "RoleId");

                    b.HasIndex("RoleId");

                    b.ToTable("AspNetUserRoles", (string)null);
                });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken<string>", b =>
                {
                    b.Property<string>("UserId")
                        .HasColumnType("varchar(255)");

                    b.Property<string>("LoginProvider")
                        .HasColumnType("varchar(255)");

                    b.Property<string>("Name")
                        .HasColumnType("varchar(255)");

                    b.Property<string>("Value")
                        .HasColumnType("longtext");

                    b.HasKey("UserId", "LoginProvider", "Name");

                    b.ToTable("AspNetUserTokens", (string)null);
                });

            modelBuilder.Entity("Marco.Pms.Model.Entitlements.ApplicationUser", b =>
                {
                    b.HasBaseType("Microsoft.AspNetCore.Identity.IdentityUser");

                    b.Property<bool>("IsActive")
                        .HasColumnType("tinyint(1)");

                    b.Property<bool?>("IsRootUser")
                        .HasColumnType("tinyint(1)");

                    b.Property<Guid>("TenantId")
                        .HasColumnType("char(36)");

                    b.HasDiscriminator().HasValue("ApplicationUser");
                });

            modelBuilder.Entity("Marco.Pms.Model.Activities.TaskAllocation", b =>
                {
                    b.HasOne("Marco.Pms.Model.Employees.Employee", "ApprovedBy")
                        .WithMany()
                        .HasForeignKey("ApprovedById");

                    b.HasOne("Marco.Pms.Model.Employees.Employee", "Employee")
                        .WithMany()
                        .HasForeignKey("AssignedBy")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("Marco.Pms.Model.Employees.Employee", "ReportedBy")
                        .WithMany()
                        .HasForeignKey("ReportedById");

                    b.HasOne("Marco.Pms.Model.Entitlements.Tenant", "Tenant")
                        .WithMany()
                        .HasForeignKey("TenantId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("Marco.Pms.Model.Projects.WorkItem", "WorkItem")
                        .WithMany()
                        .HasForeignKey("WorkItemId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("Marco.Pms.Model.Master.WorkStatusMaster", "WorkStatus")
                        .WithMany()
                        .HasForeignKey("WorkStatusId");

                    b.Navigation("ApprovedBy");

                    b.Navigation("Employee");

                    b.Navigation("ReportedBy");

                    b.Navigation("Tenant");

                    b.Navigation("WorkItem");

                    b.Navigation("WorkStatus");
                });

            modelBuilder.Entity("Marco.Pms.Model.Activities.TaskComment", b =>
                {
                    b.HasOne("Marco.Pms.Model.Employees.Employee", "Employee")
                        .WithMany()
                        .HasForeignKey("CommentedBy")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("Marco.Pms.Model.Activities.TaskAllocation", "TaskAllocation")
                        .WithMany()
                        .HasForeignKey("TaskAllocationId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("Marco.Pms.Model.Entitlements.Tenant", "Tenant")
                        .WithMany()
                        .HasForeignKey("TenantId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Employee");

                    b.Navigation("TaskAllocation");

                    b.Navigation("Tenant");
                });

            modelBuilder.Entity("Marco.Pms.Model.Activities.TaskMembers", b =>
                {
                    b.HasOne("Marco.Pms.Model.Employees.Employee", "Employee")
                        .WithMany()
                        .HasForeignKey("EmployeeId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("Marco.Pms.Model.Activities.TaskAllocation", "TaskAllocation")
                        .WithMany()
                        .HasForeignKey("TaskAllocationId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("Marco.Pms.Model.Entitlements.Tenant", "Tenant")
                        .WithMany()
                        .HasForeignKey("TenantId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Employee");

                    b.Navigation("TaskAllocation");

                    b.Navigation("Tenant");
                });

            modelBuilder.Entity("Marco.Pms.Model.AttendanceModule.Attendance", b =>
                {
                    b.HasOne("Marco.Pms.Model.Employees.Employee", "Approver")
                        .WithMany()
                        .HasForeignKey("EmployeeID")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("Marco.Pms.Model.Entitlements.Tenant", "Tenant")
                        .WithMany()
                        .HasForeignKey("TenantId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Approver");

                    b.Navigation("Tenant");
                });

            modelBuilder.Entity("Marco.Pms.Model.AttendanceModule.AttendanceLog", b =>
                {
                    b.HasOne("Marco.Pms.Model.AttendanceModule.Attendance", "Attendance")
                        .WithMany()
                        .HasForeignKey("AttendanceId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("Marco.Pms.Model.DocumentManager.Document", "Document")
                        .WithMany()
                        .HasForeignKey("DocumentId");

                    b.HasOne("Marco.Pms.Model.Employees.Employee", "Employee")
                        .WithMany()
                        .HasForeignKey("EmployeeID")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("Marco.Pms.Model.Entitlements.Tenant", "Tenant")
                        .WithMany()
                        .HasForeignKey("TenantId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("Marco.Pms.Model.Employees.Employee", "UpdatedByEmployee")
                        .WithMany()
                        .HasForeignKey("UpdatedBy");

                    b.Navigation("Attendance");

                    b.Navigation("Document");

                    b.Navigation("Employee");

                    b.Navigation("Tenant");

                    b.Navigation("UpdatedByEmployee");
                });

            modelBuilder.Entity("Marco.Pms.Model.Authentication.MPINDetails", b =>
                {
                    b.HasOne("Marco.Pms.Model.Entitlements.Tenant", "Tenant")
                        .WithMany()
                        .HasForeignKey("TenantId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Tenant");
                });

            modelBuilder.Entity("Marco.Pms.Model.Authentication.OTPDetails", b =>
                {
                    b.HasOne("Marco.Pms.Model.Entitlements.Tenant", "Tenant")
                        .WithMany()
                        .HasForeignKey("TenantId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Tenant");
                });

            modelBuilder.Entity("Marco.Pms.Model.Authentication.RefreshToken", b =>
                {
                    b.HasOne("Microsoft.AspNetCore.Identity.IdentityUser", "User")
                        .WithMany()
                        .HasForeignKey("UserId")
                        .OnDelete(DeleteBehavior.Cascade);

                    b.Navigation("User");
                });

            modelBuilder.Entity("Marco.Pms.Model.Directory.Bucket", b =>
                {
                    b.HasOne("Marco.Pms.Model.Employees.Employee", "CreatedBy")
                        .WithMany()
                        .HasForeignKey("CreatedByID")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("Marco.Pms.Model.Entitlements.Tenant", "Tenant")
                        .WithMany()
                        .HasForeignKey("TenantId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreatedBy");

                    b.Navigation("Tenant");
                });

            modelBuilder.Entity("Marco.Pms.Model.Directory.Contact", b =>
                {
                    b.HasOne("Marco.Pms.Model.Directory.ContactCategoryMaster", "ContactCategory")
                        .WithMany()
                        .HasForeignKey("ContactCategoryId");

                    b.HasOne("Marco.Pms.Model.Employees.Employee", "CreatedBy")
                        .WithMany()
                        .HasForeignKey("CreatedById")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("Marco.Pms.Model.Entitlements.Tenant", "Tenant")
                        .WithMany()
                        .HasForeignKey("TenantId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("Marco.Pms.Model.Employees.Employee", "UpdatedBy")
                        .WithMany()
                        .HasForeignKey("UpdatedById");

                    b.Navigation("ContactCategory");

                    b.Navigation("CreatedBy");

                    b.Navigation("Tenant");

                    b.Navigation("UpdatedBy");
                });

            modelBuilder.Entity("Marco.Pms.Model.Directory.ContactBucketMapping", b =>
                {
                    b.HasOne("Marco.Pms.Model.Directory.Bucket", "Bucket")
                        .WithMany()
                        .HasForeignKey("BucketId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("Marco.Pms.Model.Directory.Contact", "Contact")
                        .WithMany()
                        .HasForeignKey("ContactId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Bucket");

                    b.Navigation("Contact");
                });

            modelBuilder.Entity("Marco.Pms.Model.Directory.ContactCategoryMaster", b =>
                {
                    b.HasOne("Marco.Pms.Model.Entitlements.Tenant", "Tenant")
                        .WithMany()
                        .HasForeignKey("TenantId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Tenant");
                });

            modelBuilder.Entity("Marco.Pms.Model.Directory.ContactEmail", b =>
                {
                    b.HasOne("Marco.Pms.Model.Directory.Contact", "Contact")
                        .WithMany()
                        .HasForeignKey("ContactId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Contact");
                });

            modelBuilder.Entity("Marco.Pms.Model.Directory.ContactNote", b =>
                {
                    b.HasOne("Marco.Pms.Model.Directory.Contact", "Contact")
                        .WithMany()
                        .HasForeignKey("ContactId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("Marco.Pms.Model.Employees.Employee", "Createdby")
                        .WithMany()
                        .HasForeignKey("CreatedById")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("Marco.Pms.Model.Entitlements.Tenant", "Tenant")
                        .WithMany()
                        .HasForeignKey("TenantId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("Marco.Pms.Model.Employees.Employee", "UpdatedBy")
                        .WithMany()
                        .HasForeignKey("UpdatedById");

                    b.Navigation("Contact");

                    b.Navigation("Createdby");

                    b.Navigation("Tenant");

                    b.Navigation("UpdatedBy");
                });

            modelBuilder.Entity("Marco.Pms.Model.Directory.ContactPhone", b =>
                {
                    b.HasOne("Marco.Pms.Model.Directory.Contact", "Contact")
                        .WithMany()
                        .HasForeignKey("ContactId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Contact");
                });

            modelBuilder.Entity("Marco.Pms.Model.Directory.ContactProjectMapping", b =>
                {
                    b.HasOne("Marco.Pms.Model.Directory.Contact", "Contact")
                        .WithMany()
                        .HasForeignKey("ContactId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("Marco.Pms.Model.Projects.Project", "Project")
                        .WithMany()
                        .HasForeignKey("ProjectId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("Marco.Pms.Model.Entitlements.Tenant", "Tenant")
                        .WithMany()
                        .HasForeignKey("TenantId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Contact");

                    b.Navigation("Project");

                    b.Navigation("Tenant");
                });

            modelBuilder.Entity("Marco.Pms.Model.Directory.ContactTagMapping", b =>
                {
                    b.HasOne("Marco.Pms.Model.Directory.Contact", "Contact")
                        .WithMany()
                        .HasForeignKey("ContactId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("Marco.Pms.Model.Directory.ContactTagMaster", "ContactTag")
                        .WithMany()
                        .HasForeignKey("ContactTagId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Contact");

                    b.Navigation("ContactTag");
                });

            modelBuilder.Entity("Marco.Pms.Model.Directory.ContactTagMaster", b =>
                {
                    b.HasOne("Marco.Pms.Model.Entitlements.Tenant", "Tenant")
                        .WithMany()
                        .HasForeignKey("TenantId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Tenant");
                });

            modelBuilder.Entity("Marco.Pms.Model.Directory.DirectoryUpdateLog", b =>
                {
                    b.HasOne("Marco.Pms.Model.Employees.Employee", "Employee")
                        .WithMany()
                        .HasForeignKey("UpdatedById")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Employee");
                });

            modelBuilder.Entity("Marco.Pms.Model.Directory.EmployeeBucketMapping", b =>
                {
                    b.HasOne("Marco.Pms.Model.Directory.Bucket", "Bucket")
                        .WithMany()
                        .HasForeignKey("BucketId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("Marco.Pms.Model.Employees.Employee", "Employee")
                        .WithMany()
                        .HasForeignKey("EmployeeId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Bucket");

                    b.Navigation("Employee");
                });

            modelBuilder.Entity("Marco.Pms.Model.DocumentManager.Document", b =>
                {
                    b.HasOne("Marco.Pms.Model.Entitlements.Tenant", "Tenant")
                        .WithMany()
                        .HasForeignKey("TenantId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("Marco.Pms.Model.Employees.Employee", "UploadedBy")
                        .WithMany()
                        .HasForeignKey("UploadedById");

                    b.Navigation("Tenant");

                    b.Navigation("UploadedBy");
                });

            modelBuilder.Entity("Marco.Pms.Model.Employees.Employee", b =>
                {
                    b.HasOne("Marco.Pms.Model.Entitlements.ApplicationUser", "ApplicationUser")
                        .WithMany()
                        .HasForeignKey("ApplicationUserId");

                    b.HasOne("Marco.Pms.Model.Roles.JobRole", "JobRole")
                        .WithMany()
                        .HasForeignKey("JobRoleId");

                    b.HasOne("Marco.Pms.Model.Entitlements.Tenant", "Tenant")
                        .WithMany()
                        .HasForeignKey("TenantId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("ApplicationUser");

                    b.Navigation("JobRole");

                    b.Navigation("Tenant");
                });

            modelBuilder.Entity("Marco.Pms.Model.Employees.EmployeeRoleMapping", b =>
                {
                    b.HasOne("Marco.Pms.Model.Employees.Employee", "Employee")
                        .WithMany()
                        .HasForeignKey("EmployeeId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("Marco.Pms.Model.Roles.ApplicationRole", "Role")
                        .WithMany()
                        .HasForeignKey("RoleId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("Marco.Pms.Model.Entitlements.Tenant", "Tenant")
                        .WithMany()
                        .HasForeignKey("TenantId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Employee");

                    b.Navigation("Role");

                    b.Navigation("Tenant");
                });

            modelBuilder.Entity("Marco.Pms.Model.Employees.WorkShift", b =>
                {
                    b.HasOne("Marco.Pms.Model.Entitlements.Tenant", "Tenant")
                        .WithMany()
                        .HasForeignKey("TenantId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Tenant");
                });

            modelBuilder.Entity("Marco.Pms.Model.Entitlements.FeaturePermission", b =>
                {
                    b.HasOne("Marco.Pms.Model.Master.Feature", "Feature")
                        .WithMany("FeaturePermissions")
                        .HasForeignKey("FeatureId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Feature");
                });

            modelBuilder.Entity("Marco.Pms.Model.Entitlements.RolePermissionMappings", b =>
                {
                    b.HasOne("Marco.Pms.Model.Roles.ApplicationRole", null)
                        .WithMany()
                        .HasForeignKey("ApplicationRoleId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("Marco.Pms.Model.Entitlements.FeaturePermission", null)
                        .WithMany()
                        .HasForeignKey("FeaturePermissionId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();
                });

            modelBuilder.Entity("Marco.Pms.Model.Entitlements.Tenant", b =>
                {
                    b.HasOne("Marco.Pms.Model.Master.Industry", "Industry")
                        .WithMany()
                        .HasForeignKey("IndustryId");

                    b.Navigation("Industry");
                });

            modelBuilder.Entity("Marco.Pms.Model.Expenses.BillAttachments", b =>
                {
                    b.HasOne("Marco.Pms.Model.DocumentManager.Document", "Document")
                        .WithMany()
                        .HasForeignKey("DocumentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("Marco.Pms.Model.Expenses.Expenses", "Expenses")
                        .WithMany()
                        .HasForeignKey("ExpensesId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("Marco.Pms.Model.Entitlements.Tenant", "Tenant")
                        .WithMany()
                        .HasForeignKey("TenantId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Document");

                    b.Navigation("Expenses");

                    b.Navigation("Tenant");
                });

            modelBuilder.Entity("Marco.Pms.Model.Expenses.ExpenseLog", b =>
                {
                    b.HasOne("Marco.Pms.Model.Expenses.Expenses", "Expense")
                        .WithMany()
                        .HasForeignKey("ExpenseId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("Marco.Pms.Model.Entitlements.Tenant", "Tenant")
                        .WithMany()
                        .HasForeignKey("TenantId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("Marco.Pms.Model.Employees.Employee", "UpdatedBy")
                        .WithMany()
                        .HasForeignKey("UpdatedById")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Expense");

                    b.Navigation("Tenant");

                    b.Navigation("UpdatedBy");
                });

            modelBuilder.Entity("Marco.Pms.Model.Expenses.Expenses", b =>
                {
                    b.HasOne("Marco.Pms.Model.Employees.Employee", "ApprovedBy")
                        .WithMany()
                        .HasForeignKey("ApprovedById");

                    b.HasOne("Marco.Pms.Model.Employees.Employee", "CreatedBy")
                        .WithMany()
                        .HasForeignKey("CreatedById")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("Marco.Pms.Model.Master.ExpensesTypeMaster", "ExpensesType")
                        .WithMany()
                        .HasForeignKey("ExpensesTypeId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("Marco.Pms.Model.Employees.Employee", "PaidBy")
                        .WithMany()
                        .HasForeignKey("PaidById")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("Marco.Pms.Model.Master.PaymentModeMatser", "PaymentMode")
                        .WithMany()
                        .HasForeignKey("PaymentModeId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("Marco.Pms.Model.Employees.Employee", "ProcessedBy")
                        .WithMany()
                        .HasForeignKey("ProcessedById");

                    b.HasOne("Marco.Pms.Model.Projects.Project", "Project")
                        .WithMany()
                        .HasForeignKey("ProjectId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("Marco.Pms.Model.Employees.Employee", "ReviewedBy")
                        .WithMany()
                        .HasForeignKey("ReviewedById");

                    b.HasOne("Marco.Pms.Model.Master.ExpensesStatusMaster", "Status")
                        .WithMany()
                        .HasForeignKey("StatusId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("Marco.Pms.Model.Entitlements.Tenant", "Tenant")
                        .WithMany()
                        .HasForeignKey("TenantId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("ApprovedBy");

                    b.Navigation("CreatedBy");

                    b.Navigation("ExpensesType");

                    b.Navigation("PaidBy");

                    b.Navigation("PaymentMode");

                    b.Navigation("ProcessedBy");

                    b.Navigation("Project");

                    b.Navigation("ReviewedBy");

                    b.Navigation("Status");

                    b.Navigation("Tenant");
                });

            modelBuilder.Entity("Marco.Pms.Model.Expenses.ExpensesReimburse", b =>
                {
                    b.HasOne("Marco.Pms.Model.Employees.Employee", "ReimburseBy")
                        .WithMany()
                        .HasForeignKey("ReimburseById")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("Marco.Pms.Model.Entitlements.Tenant", "Tenant")
                        .WithMany()
                        .HasForeignKey("TenantId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("ReimburseBy");

                    b.Navigation("Tenant");
                });

            modelBuilder.Entity("Marco.Pms.Model.Expenses.ExpensesReimburseMapping", b =>
                {
                    b.HasOne("Marco.Pms.Model.Expenses.Expenses", "Expenses")
                        .WithMany()
                        .HasForeignKey("ExpensesId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("Marco.Pms.Model.Expenses.ExpensesReimburse", "ExpensesReimburse")
                        .WithMany()
                        .HasForeignKey("ExpensesReimburseId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("Marco.Pms.Model.Entitlements.Tenant", "Tenant")
                        .WithMany()
                        .HasForeignKey("TenantId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Expenses");

                    b.Navigation("ExpensesReimburse");

                    b.Navigation("Tenant");
                });

            modelBuilder.Entity("Marco.Pms.Model.Expenses.ExpensesStatusMapping", b =>
                {
                    b.HasOne("Marco.Pms.Model.Master.ExpensesStatusMaster", "NextStatus")
                        .WithMany()
                        .HasForeignKey("NextStatusId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("Marco.Pms.Model.Master.ExpensesStatusMaster", "Status")
                        .WithMany()
                        .HasForeignKey("StatusId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("NextStatus");

                    b.Navigation("Status");
                });

            modelBuilder.Entity("Marco.Pms.Model.Expenses.StatusPermissionMapping", b =>
                {
                    b.HasOne("Marco.Pms.Model.Entitlements.FeaturePermission", "Permission")
                        .WithMany()
                        .HasForeignKey("PermissionId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("Marco.Pms.Model.Master.ExpensesStatusMaster", "Status")
                        .WithMany()
                        .HasForeignKey("StatusId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Permission");

                    b.Navigation("Status");
                });

            modelBuilder.Entity("Marco.Pms.Model.Forum.TicketAttachment", b =>
                {
                    b.HasOne("Marco.Pms.Model.Forum.TicketComment", "TicketComment")
                        .WithMany("Attachments")
                        .HasForeignKey("CommentId");

                    b.HasOne("Marco.Pms.Model.Forum.TicketForum", "Ticket")
                        .WithMany()
                        .HasForeignKey("TicketId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Ticket");

                    b.Navigation("TicketComment");
                });

            modelBuilder.Entity("Marco.Pms.Model.Forum.TicketComment", b =>
                {
                    b.HasOne("Marco.Pms.Model.Entitlements.Tenant", "Tenant")
                        .WithMany()
                        .HasForeignKey("TenantId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Tenant");
                });

            modelBuilder.Entity("Marco.Pms.Model.Forum.TicketForum", b =>
                {
                    b.HasOne("Marco.Pms.Model.Master.TicketPriorityMaster", "Priority")
                        .WithMany()
                        .HasForeignKey("PriorityId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("Marco.Pms.Model.Master.TicketStatusMaster", "TicketStatusMaster")
                        .WithMany()
                        .HasForeignKey("StatusId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("Marco.Pms.Model.Entitlements.Tenant", "Tenant")
                        .WithMany()
                        .HasForeignKey("TenantId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("Marco.Pms.Model.Forum.TicketTypeMaster", "TicketTypeMaster")
                        .WithMany()
                        .HasForeignKey("TypeId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Priority");

                    b.Navigation("Tenant");

                    b.Navigation("TicketStatusMaster");

                    b.Navigation("TicketTypeMaster");
                });

            modelBuilder.Entity("Marco.Pms.Model.Forum.TicketTag", b =>
                {
                    b.HasOne("Marco.Pms.Model.Master.TicketTagMaster", "Tag")
                        .WithMany()
                        .HasForeignKey("TagId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("Marco.Pms.Model.Forum.TicketForum", "Ticket")
                        .WithMany()
                        .HasForeignKey("TicketId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Tag");

                    b.Navigation("Ticket");
                });

            modelBuilder.Entity("Marco.Pms.Model.Mail.MailDetails", b =>
                {
                    b.HasOne("Marco.Pms.Model.Mail.MailingList", "MailBody")
                        .WithMany()
                        .HasForeignKey("MailListId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("MailBody");
                });

            modelBuilder.Entity("Marco.Pms.Model.Master.ActivityMaster", b =>
                {
                    b.HasOne("Marco.Pms.Model.Entitlements.Tenant", "Tenant")
                        .WithMany()
                        .HasForeignKey("TenantId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Tenant");
                });

            modelBuilder.Entity("Marco.Pms.Model.Master.ExpensesTypeMaster", b =>
                {
                    b.HasOne("Marco.Pms.Model.Entitlements.Tenant", "Tenant")
                        .WithMany()
                        .HasForeignKey("TenantId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Tenant");
                });

            modelBuilder.Entity("Marco.Pms.Model.Master.Feature", b =>
                {
                    b.HasOne("Marco.Pms.Model.Master.Module", "Module")
                        .WithMany()
                        .HasForeignKey("ModuleId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Module");
                });

            modelBuilder.Entity("Marco.Pms.Model.Master.PaymentModeMatser", b =>
                {
                    b.HasOne("Marco.Pms.Model.Entitlements.Tenant", "Tenant")
                        .WithMany()
                        .HasForeignKey("TenantId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Tenant");
                });

            modelBuilder.Entity("Marco.Pms.Model.Master.StatusMaster", b =>
                {
                    b.HasOne("Marco.Pms.Model.Entitlements.Tenant", "Tenant")
                        .WithMany()
                        .HasForeignKey("TenantId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Tenant");
                });

            modelBuilder.Entity("Marco.Pms.Model.Master.WorkCategoryMaster", b =>
                {
                    b.HasOne("Marco.Pms.Model.Entitlements.Tenant", "Tenant")
                        .WithMany()
                        .HasForeignKey("TenantId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Tenant");
                });

            modelBuilder.Entity("Marco.Pms.Model.Master.WorkStatusMaster", b =>
                {
                    b.HasOne("Marco.Pms.Model.Entitlements.Tenant", "Tenant")
                        .WithMany()
                        .HasForeignKey("TenantId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Tenant");
                });

            modelBuilder.Entity("Marco.Pms.Model.Projects.Building", b =>
                {
                    b.HasOne("Marco.Pms.Model.Entitlements.Tenant", "Tenant")
                        .WithMany()
                        .HasForeignKey("TenantId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Tenant");
                });

            modelBuilder.Entity("Marco.Pms.Model.Projects.Floor", b =>
                {
                    b.HasOne("Marco.Pms.Model.Projects.Building", "Building")
                        .WithMany()
                        .HasForeignKey("BuildingId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("Marco.Pms.Model.Entitlements.Tenant", "Tenant")
                        .WithMany()
                        .HasForeignKey("TenantId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Building");

                    b.Navigation("Tenant");
                });

            modelBuilder.Entity("Marco.Pms.Model.Projects.Project", b =>
                {
                    b.HasOne("Marco.Pms.Model.Master.StatusMaster", "ProjectStatus")
                        .WithMany()
                        .HasForeignKey("ProjectStatusId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("Marco.Pms.Model.Entitlements.Tenant", "Tenant")
                        .WithMany()
                        .HasForeignKey("TenantId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("ProjectStatus");

                    b.Navigation("Tenant");
                });

            modelBuilder.Entity("Marco.Pms.Model.Projects.ProjectAllocation", b =>
                {
                    b.HasOne("Marco.Pms.Model.Employees.Employee", "Employee")
                        .WithMany()
                        .HasForeignKey("EmployeeId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("Marco.Pms.Model.Projects.Project", "Project")
                        .WithMany()
                        .HasForeignKey("ProjectId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("Marco.Pms.Model.Entitlements.Tenant", "Tenant")
                        .WithMany()
                        .HasForeignKey("TenantId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Employee");

                    b.Navigation("Project");

                    b.Navigation("Tenant");
                });

            modelBuilder.Entity("Marco.Pms.Model.Projects.WorkArea", b =>
                {
                    b.HasOne("Marco.Pms.Model.Projects.Floor", "Floor")
                        .WithMany()
                        .HasForeignKey("FloorId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("Marco.Pms.Model.Entitlements.Tenant", "Tenant")
                        .WithMany()
                        .HasForeignKey("TenantId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Floor");

                    b.Navigation("Tenant");
                });

            modelBuilder.Entity("Marco.Pms.Model.Projects.WorkItem", b =>
                {
                    b.HasOne("Marco.Pms.Model.Master.ActivityMaster", "ActivityMaster")
                        .WithMany()
                        .HasForeignKey("ActivityId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("Marco.Pms.Model.Entitlements.Tenant", "Tenant")
                        .WithMany()
                        .HasForeignKey("TenantId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("Marco.Pms.Model.Projects.WorkArea", "WorkArea")
                        .WithMany()
                        .HasForeignKey("WorkAreaId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("Marco.Pms.Model.Master.WorkCategoryMaster", "WorkCategoryMaster")
                        .WithMany()
                        .HasForeignKey("WorkCategoryId");

                    b.Navigation("ActivityMaster");

                    b.Navigation("Tenant");

                    b.Navigation("WorkArea");

                    b.Navigation("WorkCategoryMaster");
                });

            modelBuilder.Entity("Marco.Pms.Model.Roles.ApplicationRole", b =>
                {
                    b.HasOne("Marco.Pms.Model.Entitlements.Tenant", null)
                        .WithMany()
                        .HasForeignKey("TenantId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();
                });

            modelBuilder.Entity("Marco.Pms.Model.Roles.JobRole", b =>
                {
                    b.HasOne("Marco.Pms.Model.Entitlements.Tenant", "Tenant")
                        .WithMany()
                        .HasForeignKey("TenantId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Tenant");
                });

            modelBuilder.Entity("Marco.Pms.Model.Utilities.FCMTokenMapping", b =>
                {
                    b.HasOne("Marco.Pms.Model.Entitlements.Tenant", "Tenant")
                        .WithMany()
                        .HasForeignKey("TenantId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Tenant");
                });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim<string>", b =>
                {
                    b.HasOne("Microsoft.AspNetCore.Identity.IdentityRole", null)
                        .WithMany()
                        .HasForeignKey("RoleId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();
                });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim<string>", b =>
                {
                    b.HasOne("Microsoft.AspNetCore.Identity.IdentityUser", null)
                        .WithMany()
                        .HasForeignKey("UserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();
                });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin<string>", b =>
                {
                    b.HasOne("Microsoft.AspNetCore.Identity.IdentityUser", null)
                        .WithMany()
                        .HasForeignKey("UserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();
                });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole<string>", b =>
                {
                    b.HasOne("Microsoft.AspNetCore.Identity.IdentityRole", null)
                        .WithMany()
                        .HasForeignKey("RoleId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("Microsoft.AspNetCore.Identity.IdentityUser", null)
                        .WithMany()
                        .HasForeignKey("UserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();
                });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken<string>", b =>
                {
                    b.HasOne("Microsoft.AspNetCore.Identity.IdentityUser", null)
                        .WithMany()
                        .HasForeignKey("UserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();
                });

            modelBuilder.Entity("Marco.Pms.Model.Forum.TicketComment", b =>
                {
                    b.Navigation("Attachments");
                });

            modelBuilder.Entity("Marco.Pms.Model.Master.Feature", b =>
                {
                    b.Navigation("FeaturePermissions");
                });
#pragma warning restore 612, 618
        }
    }
}
