//
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("20250813060211_Added_FCMTokenMApping_Table")]
partial class Added_FCMTokenMApping_Table
{
///
protected override void BuildTargetModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("ProductVersion", "8.0.12")
.HasAnnotation("Relational:MaxIdentifierLength", 64);
//MySqlModelBuilderExtensions.AutoIncrementColumns(modelBuilder);
modelBuilder.Entity("Marco.Pms.Model.Activities.TaskAllocation", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("char(36)");
b.Property("ApprovedById")
.HasColumnType("char(36)");
b.Property("ApprovedDate")
.HasColumnType("datetime(6)");
b.Property("AssignedBy")
.HasColumnType("char(36)");
b.Property("AssignmentDate")
.HasColumnType("datetime(6)");
b.Property("CompletedTask")
.HasColumnType("double");
b.Property("Description")
.HasColumnType("longtext");
b.Property("ParentTaskId")
.HasColumnType("char(36)");
b.Property("PlannedTask")
.HasColumnType("double");
b.Property("ReportedById")
.HasColumnType("char(36)");
b.Property("ReportedDate")
.HasColumnType("datetime(6)");
b.Property("ReportedTask")
.HasColumnType("double");
b.Property("TenantId")
.HasColumnType("char(36)");
b.Property("WorkItemId")
.HasColumnType("char(36)");
b.Property("WorkStatusId")
.HasColumnType("char(36)");
b.HasKey("Id");
b.HasIndex("ApprovedById");
b.HasIndex("AssignedBy");
b.HasIndex("ReportedById");
b.HasIndex("TenantId");
b.HasIndex("WorkItemId");
b.HasIndex("WorkStatusId");
b.ToTable("TaskAllocations");
});
modelBuilder.Entity("Marco.Pms.Model.Activities.TaskAttachment", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("char(36)");
b.Property("DocumentId")
.HasColumnType("char(36)");
b.Property("ReferenceId")
.HasColumnType("char(36)");
b.HasKey("Id");
b.ToTable("TaskAttachments");
});
modelBuilder.Entity("Marco.Pms.Model.Activities.TaskComment", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("char(36)");
b.Property("Comment")
.IsRequired()
.HasColumnType("longtext");
b.Property("CommentDate")
.HasColumnType("datetime(6)");
b.Property("CommentedBy")
.HasColumnType("char(36)");
b.Property("TaskAllocationId")
.HasColumnType("char(36)");
b.Property("TenantId")
.HasColumnType("char(36)");
b.HasKey("Id");
b.HasIndex("CommentedBy");
b.HasIndex("TaskAllocationId");
b.HasIndex("TenantId");
b.ToTable("TaskComments");
});
modelBuilder.Entity("Marco.Pms.Model.Activities.TaskMembers", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("char(36)");
b.Property("EmployeeId")
.HasColumnType("char(36)");
b.Property("TaskAllocationId")
.HasColumnType("char(36)");
b.Property("TenantId")
.HasColumnType("char(36)");
b.HasKey("Id");
b.HasIndex("EmployeeId");
b.HasIndex("TaskAllocationId");
b.HasIndex("TenantId");
b.ToTable("TaskMembers");
});
modelBuilder.Entity("Marco.Pms.Model.AttendanceModule.Attendance", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("char(36)");
b.Property("Activity")
.HasColumnType("int");
b.Property("ApprovedBy")
.HasColumnType("char(36)");
b.Property("AttendanceDate")
.HasColumnType("datetime(6)");
b.Property("Comment")
.IsRequired()
.HasColumnType("longtext");
b.Property("Date")
.HasColumnType("datetime(6)");
b.Property("EmployeeID")
.HasColumnType("char(36)");
b.Property("InTime")
.HasColumnType("datetime(6)");
b.Property("IsApproved")
.HasColumnType("tinyint(1)");
b.Property("OutTime")
.HasColumnType("datetime(6)");
b.Property("ProjectID")
.HasColumnType("char(36)");
b.Property("TenantId")
.HasColumnType("char(36)");
b.HasKey("Id");
b.HasIndex("EmployeeID");
b.HasIndex("TenantId");
b.ToTable("Attendes");
});
modelBuilder.Entity("Marco.Pms.Model.AttendanceModule.AttendanceLog", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("char(36)");
b.Property("Activity")
.HasColumnType("int");
b.Property("ActivityTime")
.HasColumnType("datetime(6)");
b.Property("AttendanceId")
.HasColumnType("char(36)");
b.Property("Comment")
.IsRequired()
.HasColumnType("longtext");
b.Property("DocumentId")
.HasColumnType("char(36)");
b.Property("EmployeeID")
.HasColumnType("char(36)");
b.Property("Latitude")
.HasColumnType("longtext");
b.Property("Longitude")
.HasColumnType("longtext");
b.Property("Photo")
.HasColumnType("longblob");
b.Property("TenantId")
.HasColumnType("char(36)");
b.Property("UpdatedBy")
.HasColumnType("char(36)");
b.Property("UpdatedOn")
.HasColumnType("datetime(6)");
b.HasKey("Id");
b.HasIndex("AttendanceId");
b.HasIndex("DocumentId");
b.HasIndex("EmployeeID");
b.HasIndex("TenantId");
b.HasIndex("UpdatedBy");
b.ToTable("AttendanceLogs");
});
modelBuilder.Entity("Marco.Pms.Model.Authentication.MPINDetails", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("char(36)");
b.Property("MPIN")
.IsRequired()
.HasColumnType("longtext");
b.Property("MPINToken")
.IsRequired()
.HasColumnType("longtext");
b.Property("TenantId")
.HasColumnType("char(36)");
b.Property("TimeStamp")
.HasColumnType("datetime(6)");
b.Property("UserId")
.HasColumnType("char(36)");
b.HasKey("Id");
b.HasIndex("TenantId");
b.ToTable("MPINDetails");
});
modelBuilder.Entity("Marco.Pms.Model.Authentication.OTPDetails", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("char(36)");
b.Property("ExpriesInSec")
.HasColumnType("int");
b.Property("IsUsed")
.HasColumnType("tinyint(1)");
b.Property("OTP")
.IsRequired()
.HasColumnType("longtext");
b.Property("TenantId")
.HasColumnType("char(36)");
b.Property("TimeStamp")
.HasColumnType("datetime(6)");
b.Property("UserId")
.HasColumnType("char(36)");
b.HasKey("Id");
b.HasIndex("TenantId");
b.ToTable("OTPDetails");
});
modelBuilder.Entity("Marco.Pms.Model.Authentication.RefreshToken", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("char(36)");
b.Property("CreatedAt")
.HasColumnType("datetime(6)");
b.Property("ExpiryDate")
.HasColumnType("datetime(6)");
b.Property("IsRevoked")
.HasColumnType("tinyint(1)");
b.Property("IsUsed")
.HasColumnType("tinyint(1)");
b.Property("RevokedAt")
.HasColumnType("datetime(6)");
b.Property("Token")
.HasColumnType("longtext");
b.Property("UserId")
.HasColumnType("varchar(255)");
b.HasKey("Id");
b.HasIndex("UserId");
b.ToTable("RefreshTokens");
});
modelBuilder.Entity("Marco.Pms.Model.Directory.Bucket", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("char(36)");
b.Property("CreatedAt")
.HasColumnType("datetime(6)");
b.Property("CreatedByID")
.HasColumnType("char(36)");
b.Property("Description")
.IsRequired()
.HasColumnType("longtext");
b.Property("Name")
.IsRequired()
.HasColumnType("longtext");
b.Property("TenantId")
.HasColumnType("char(36)");
b.HasKey("Id");
b.HasIndex("CreatedByID");
b.HasIndex("TenantId");
b.ToTable("Buckets");
});
modelBuilder.Entity("Marco.Pms.Model.Directory.Contact", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("char(36)");
b.Property("Address")
.HasColumnType("longtext");
b.Property("ContactCategoryId")
.HasColumnType("char(36)");
b.Property("CreatedAt")
.HasColumnType("datetime(6)");
b.Property("CreatedById")
.HasColumnType("char(36)");
b.Property("Description")
.IsRequired()
.HasColumnType("longtext");
b.Property("Designation")
.IsRequired()
.HasColumnType("longtext");
b.Property("IsActive")
.HasColumnType("tinyint(1)");
b.Property("Name")
.IsRequired()
.HasColumnType("longtext");
b.Property("Organization")
.IsRequired()
.HasColumnType("longtext");
b.Property("TenantId")
.HasColumnType("char(36)");
b.Property("UpdatedAt")
.HasColumnType("datetime(6)");
b.Property("UpdatedById")
.HasColumnType("char(36)");
b.HasKey("Id");
b.HasIndex("ContactCategoryId");
b.HasIndex("CreatedById");
b.HasIndex("TenantId");
b.HasIndex("UpdatedById");
b.ToTable("Contacts");
});
modelBuilder.Entity("Marco.Pms.Model.Directory.ContactBucketMapping", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("char(36)");
b.Property("BucketId")
.HasColumnType("char(36)");
b.Property("ContactId")
.HasColumnType("char(36)");
b.HasKey("Id");
b.HasIndex("BucketId");
b.HasIndex("ContactId");
b.ToTable("ContactBucketMappings");
});
modelBuilder.Entity("Marco.Pms.Model.Directory.ContactCategoryMaster", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("char(36)");
b.Property("Description")
.IsRequired()
.HasColumnType("longtext");
b.Property("Name")
.IsRequired()
.HasColumnType("longtext");
b.Property("TenantId")
.HasColumnType("char(36)");
b.HasKey("Id");
b.HasIndex("TenantId");
b.ToTable("ContactCategoryMasters");
});
modelBuilder.Entity("Marco.Pms.Model.Directory.ContactEmail", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("char(36)");
b.Property("ContactId")
.HasColumnType("char(36)");
b.Property("EmailAddress")
.IsRequired()
.HasColumnType("longtext");
b.Property("IsPrimary")
.HasColumnType("tinyint(1)");
b.Property("Label")
.IsRequired()
.HasColumnType("longtext");
b.Property("TenantId")
.HasColumnType("char(36)");
b.HasKey("Id");
b.HasIndex("ContactId");
b.ToTable("ContactsEmails");
});
modelBuilder.Entity("Marco.Pms.Model.Directory.ContactNote", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("char(36)");
b.Property("ContactId")
.HasColumnType("char(36)");
b.Property("CreatedAt")
.HasColumnType("datetime(6)");
b.Property("CreatedById")
.HasColumnType("char(36)");
b.Property("IsActive")
.HasColumnType("tinyint(1)");
b.Property("Note")
.IsRequired()
.HasColumnType("longtext");
b.Property("TenantId")
.HasColumnType("char(36)");
b.Property("UpdatedAt")
.HasColumnType("datetime(6)");
b.Property("UpdatedById")
.HasColumnType("char(36)");
b.HasKey("Id");
b.HasIndex("ContactId");
b.HasIndex("CreatedById");
b.HasIndex("TenantId");
b.HasIndex("UpdatedById");
b.ToTable("ContactNotes");
});
modelBuilder.Entity("Marco.Pms.Model.Directory.ContactPhone", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("char(36)");
b.Property("ContactId")
.HasColumnType("char(36)");
b.Property("IsPrimary")
.HasColumnType("tinyint(1)");
b.Property("Label")
.IsRequired()
.HasColumnType("longtext");
b.Property("PhoneNumber")
.IsRequired()
.HasColumnType("longtext");
b.Property("TenantId")
.HasColumnType("char(36)");
b.HasKey("Id");
b.HasIndex("ContactId");
b.ToTable("ContactsPhones");
});
modelBuilder.Entity("Marco.Pms.Model.Directory.ContactProjectMapping", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("char(36)");
b.Property("ContactId")
.HasColumnType("char(36)");
b.Property("ProjectId")
.HasColumnType("char(36)");
b.Property("TenantId")
.HasColumnType("char(36)");
b.HasKey("Id");
b.HasIndex("ContactId");
b.HasIndex("ProjectId");
b.HasIndex("TenantId");
b.ToTable("ContactProjectMappings");
});
modelBuilder.Entity("Marco.Pms.Model.Directory.ContactTagMapping", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("char(36)");
b.Property("ContactId")
.HasColumnType("char(36)");
b.Property("ContactTagId")
.HasColumnType("char(36)");
b.HasKey("Id");
b.HasIndex("ContactId");
b.HasIndex("ContactTagId");
b.ToTable("ContactTagMappings");
});
modelBuilder.Entity("Marco.Pms.Model.Directory.ContactTagMaster", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("char(36)");
b.Property("Description")
.IsRequired()
.HasColumnType("longtext");
b.Property("Name")
.IsRequired()
.HasColumnType("longtext");
b.Property("TenantId")
.HasColumnType("char(36)");
b.HasKey("Id");
b.HasIndex("TenantId");
b.ToTable("ContactTagMasters");
});
modelBuilder.Entity("Marco.Pms.Model.Directory.DirectoryUpdateLog", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("char(36)");
b.Property("RefereanceId")
.HasColumnType("char(36)");
b.Property("UpdateAt")
.HasColumnType("datetime(6)");
b.Property("UpdatedById")
.HasColumnType("char(36)");
b.HasKey("Id");
b.HasIndex("UpdatedById");
b.ToTable("DirectoryUpdateLogs");
});
modelBuilder.Entity("Marco.Pms.Model.Directory.EmployeeBucketMapping", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("char(36)");
b.Property("BucketId")
.HasColumnType("char(36)");
b.Property("EmployeeId")
.HasColumnType("char(36)");
b.HasKey("Id");
b.HasIndex("BucketId");
b.HasIndex("EmployeeId");
b.ToTable("EmployeeBucketMappings");
});
modelBuilder.Entity("Marco.Pms.Model.DocumentManager.Document", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("char(36)");
b.Property("Base64Data")
.HasColumnType("longtext");
b.Property("BatchId")
.HasColumnType("char(36)");
b.Property("ContentType")
.IsRequired()
.HasColumnType("longtext");
b.Property("FileName")
.IsRequired()
.HasColumnType("longtext");
b.Property("FileSize")
.HasColumnType("bigint");
b.Property("S3Key")
.IsRequired()
.HasColumnType("longtext");
b.Property("TenantId")
.HasColumnType("char(36)");
b.Property("ThumbS3Key")
.HasColumnType("longtext");
b.Property("UploadedAt")
.HasColumnType("datetime(6)");
b.Property("UploadedById")
.HasColumnType("char(36)");
b.HasKey("Id");
b.HasIndex("TenantId");
b.HasIndex("UploadedById");
b.ToTable("Documents");
});
modelBuilder.Entity("Marco.Pms.Model.Employees.Employee", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("char(36)");
b.Property("AadharNumber")
.HasColumnType("longtext");
b.Property("ApplicationUserId")
.HasColumnType("varchar(255)");
b.Property("BirthDate")
.HasColumnType("datetime(6)");
b.Property("CurrentAddress")
.HasColumnType("longtext");
b.Property("Email")
.HasColumnType("longtext");
b.Property("EmergencyContactPerson")
.HasColumnType("longtext");
b.Property("EmergencyPhoneNumber")
.HasColumnType("longtext");
b.Property("FirstName")
.HasColumnType("longtext");
b.Property("Gender")
.HasColumnType("longtext");
b.Property("IsActive")
.HasColumnType("tinyint(1)");
b.Property("IsSystem")
.HasColumnType("tinyint(1)");
b.Property("JobRoleId")
.HasColumnType("char(36)");
b.Property("JoiningDate")
.HasColumnType("datetime(6)");
b.Property("LastName")
.HasColumnType("longtext");
b.Property("MiddleName")
.HasColumnType("longtext");
b.Property("PanNumber")
.HasColumnType("longtext");
b.Property("PermanentAddress")
.HasColumnType("longtext");
b.Property("PhoneNumber")
.HasColumnType("longtext");
b.Property("Photo")
.HasColumnType("longblob");
b.Property("RoleId")
.HasColumnType("char(36)");
b.Property("TenantId")
.HasColumnType("char(36)");
b.HasKey("Id");
b.HasIndex("ApplicationUserId");
b.HasIndex("JobRoleId");
b.HasIndex("TenantId");
b.ToTable("Employees");
});
modelBuilder.Entity("Marco.Pms.Model.Employees.EmployeeRoleMapping", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("char(36)");
b.Property("EmployeeId")
.HasColumnType("char(36)");
b.Property("IsEnabled")
.HasColumnType("tinyint(1)");
b.Property("RoleId")
.HasColumnType("char(36)");
b.Property("TenantId")
.HasColumnType("char(36)");
b.HasKey("Id");
b.HasIndex("EmployeeId");
b.HasIndex("RoleId");
b.HasIndex("TenantId");
b.ToTable("EmployeeRoleMappings");
});
modelBuilder.Entity("Marco.Pms.Model.Employees.WorkShift", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("char(36)");
b.Property("EndTime")
.HasColumnType("time(6)");
b.Property("Name")
.HasColumnType("longtext");
b.Property("StartTime")
.HasColumnType("time(6)");
b.Property("TenantId")
.HasColumnType("char(36)");
b.HasKey("Id");
b.HasIndex("TenantId");
b.ToTable("WorkShifts");
});
modelBuilder.Entity("Marco.Pms.Model.Entitlements.ActivityCheckList", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("char(36)");
b.Property("ActivityId")
.HasColumnType("char(36)");
b.Property("Description")
.HasColumnType("longtext");
b.Property("IsChecked")
.HasColumnType("tinyint(1)");
b.Property("IsMandatory")
.HasColumnType("tinyint(1)");
b.Property("TenantId")
.HasColumnType("char(36)");
b.HasKey("Id");
b.ToTable("ActivityCheckLists");
});
modelBuilder.Entity("Marco.Pms.Model.Entitlements.CheckListMappings", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("char(36)");
b.Property("CheckListId")
.HasColumnType("char(36)");
b.Property("TaskAllocationId")
.HasColumnType("char(36)");
b.HasKey("Id");
b.ToTable("CheckListMappings");
});
modelBuilder.Entity("Marco.Pms.Model.Entitlements.FeaturePermission", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("char(36)");
b.Property("Description")
.HasColumnType("longtext");
b.Property("FeatureId")
.HasColumnType("char(36)");
b.Property("IsEnabled")
.HasColumnType("tinyint(1)");
b.Property("Name")
.HasColumnType("longtext");
b.HasKey("Id");
b.HasIndex("FeatureId");
b.ToTable("FeaturePermissions");
b.HasData(
new
{
Id = new Guid("6ea44136-987e-44ba-9e5d-1cf8f5837ebc"),
Description = "Access all information related to the project.",
FeatureId = new Guid("53176ebf-c75d-42e5-839f-4508ffac3def"),
IsEnabled = true,
Name = "View Project"
},
new
{
Id = new Guid("172fc9b6-755b-4f62-ab26-55c34a330614"),
Description = "Potentially edit the project name, description, start/end dates, or status.",
FeatureId = new Guid("53176ebf-c75d-42e5-839f-4508ffac3def"),
IsEnabled = true,
Name = "Manage Project"
},
new
{
Id = new Guid("b94802ce-0689-4643-9e1d-11c86950c35b"),
Description = "The \"Manage Team\" feature allows authorized users to organize project personnel by adding, removing, and assigning employee to projects.",
FeatureId = new Guid("53176ebf-c75d-42e5-839f-4508ffac3def"),
IsEnabled = true,
Name = "Manage Team"
},
new
{
Id = new Guid("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("ApplicationRoleId")
.HasColumnType("char(36)");
b.Property("FeaturePermissionId")
.HasColumnType("char(36)");
b.HasKey("ApplicationRoleId", "FeaturePermissionId");
b.HasIndex("FeaturePermissionId");
b.ToTable("RolePermissionMappings");
});
modelBuilder.Entity("Marco.Pms.Model.Entitlements.Tenant", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("char(36)");
b.Property("ContactName")
.HasColumnType("longtext");
b.Property("ContactNumber")
.HasColumnType("longtext");
b.Property("Description")
.HasColumnType("longtext");
b.Property("DomainName")
.HasColumnType("longtext");
b.Property("IndustryId")
.HasColumnType("char(36)");
b.Property("IsActive")
.HasColumnType("tinyint(1)");
b.Property("Name")
.HasColumnType("longtext");
b.Property("OnBoardingDate")
.HasColumnType("datetime(6)");
b.Property("OragnizationSize")
.HasColumnType("longtext");
b.HasKey("Id");
b.HasIndex("IndustryId");
b.ToTable("Tenants");
b.HasData(
new
{
Id = new Guid("b3466e83-7e11-464c-b93a-daf047838b26"),
ContactName = "Admin",
ContactNumber = "123456789",
Description = "",
DomainName = "www.marcobms.org",
IndustryId = new Guid("15436ee3-a650-469e-bfc2-59993f7514bb"),
IsActive = true,
Name = "MarcoBMS",
OnBoardingDate = new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified),
OragnizationSize = "100-200"
});
});
modelBuilder.Entity("Marco.Pms.Model.Expenses.BillAttachments", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("char(36)");
b.Property("DocumentId")
.HasColumnType("char(36)");
b.Property("ExpensesId")
.HasColumnType("char(36)");
b.Property("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("Id")
.ValueGeneratedOnAdd()
.HasColumnType("char(36)");
b.Property("Action")
.IsRequired()
.HasColumnType("longtext");
b.Property("Comment")
.HasColumnType("longtext");
b.Property("ExpenseId")
.HasColumnType("char(36)");
b.Property("TenantId")
.HasColumnType("char(36)");
b.Property("UpdateAt")
.HasColumnType("datetime(6)");
b.Property("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("Id")
.ValueGeneratedOnAdd()
.HasColumnType("char(36)");
b.Property("Amount")
.HasColumnType("double");
b.Property("ApprovedById")
.HasColumnType("char(36)");
b.Property("CreatedAt")
.HasColumnType("datetime(6)");
b.Property("CreatedById")
.HasColumnType("char(36)");
b.Property("Description")
.IsRequired()
.HasColumnType("longtext");
b.Property("ExpensesTypeId")
.HasColumnType("char(36)");
b.Property("GSTNumber")
.HasColumnType("longtext");
b.Property("IsActive")
.HasColumnType("tinyint(1)");
b.Property("Location")
.HasColumnType("longtext");
b.Property("NoOfPersons")
.HasColumnType("int");
b.Property("PaidById")
.HasColumnType("char(36)");
b.Property("PaymentModeId")
.HasColumnType("char(36)");
b.Property("PreApproved")
.HasColumnType("tinyint(1)");
b.Property("ProcessedById")
.HasColumnType("char(36)");
b.Property("ProjectId")
.HasColumnType("char(36)");
b.Property("ReviewedById")
.HasColumnType("char(36)");
b.Property("StatusId")
.HasColumnType("char(36)");
b.Property("SupplerName")
.IsRequired()
.HasColumnType("longtext");
b.Property("TenantId")
.HasColumnType("char(36)");
b.Property("TransactionDate")
.HasColumnType("datetime(6)");
b.Property("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("Id")
.ValueGeneratedOnAdd()
.HasColumnType("char(36)");
b.Property("ReimburseById")
.HasColumnType("char(36)");
b.Property("ReimburseDate")
.HasColumnType("datetime(6)");
b.Property("ReimburseNote")
.IsRequired()
.HasColumnType("longtext");
b.Property("ReimburseTransactionId")
.IsRequired()
.HasColumnType("longtext");
b.Property("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("Id")
.ValueGeneratedOnAdd()
.HasColumnType("char(36)");
b.Property("ExpensesId")
.HasColumnType("char(36)");
b.Property("ExpensesReimburseId")
.HasColumnType("char(36)");
b.Property("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("Id")
.ValueGeneratedOnAdd()
.HasColumnType("char(36)");
b.Property("NextStatusId")
.HasColumnType("char(36)");
b.Property("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