@startuml class WorkItem { + Id : int <> <> + ActivityId : int <> <> + WorkAreaId : int <> <> + PlannedWork : int <> <> + CompletedWork : int <> <> + TenantId : int <> <> } WorkItem --> "WorkArea" WorkArea WorkItem --> "ActivityMaster" ActivityMaster WorkItem --> "TaskDate" DateTime WorkItem --> "Tenant" Tenant class WorkItemMapping { + Id : int <> <> + WorkAreaId : int <> <> + WorkItemId : int <> <> + TenantId : int <> <> } WorkItemMapping --> "WorkArea" WorkArea WorkItemMapping --> "WorkItem" WorkItem WorkItemMapping --> "Tenant" Tenant class Attendance { + Id : int <> <> + Comment : string <> <> + EmployeeID : int <> <> + ShiftId : int <> <> + Latitude : decimal? <> <> + Longitude : decimal? <> <> + TenantId : int <> <> + UpdatedBy : string? <> <> } Attendance --> "Employee" Employee Attendance --> "InTime" DateTime Attendance --> "OutTime" DateTime Attendance --> "WorkShift" WorkShift Attendance --> "Tenant" Tenant class Employee { + Id : int <> <> + FirstName : string <> <> + LastName : string <> <> + MiddleName : string? <> <> + Gender : string <> <> + PeramnentAddress : string <> <> + CurrentAddress : string <> <> + PhoneNumber : string <> <> + EmergencyPhoneNumber : string <> <> + AadharNumber : string? <> <> + PanNumber : string? <> <> + ApplicationUserId : string? <> <> + TenantId : int <> <> } Employee --> "BirthDate" DateTime Employee --> "ApplicationUser" ApplicationUser Employee --> "Tenant" Tenant class EmployeeAllocation { + Id : int <> <> + EmployeeId : int <> <> + ProjectId : int <> <> + BuildingId : int <> <> + WorkAreaId : int <> <> + TenantId : int <> <> } class "List`1" { } EmployeeAllocation --> "Employee" Employee EmployeeAllocation --> "EmployeeRole" EMP_ROLES EmployeeAllocation --> "Project" Project EmployeeAllocation --> "Building" Building EmployeeAllocation --> "AllocationDate" DateTime EmployeeAllocation --> "WorkArea" WorkArea EmployeeAllocation --> "AllotedTask" "List`1" EmployeeAllocation --> "Tenant" Tenant class EmployeeDetails { + ProjectId : int <> <> } Employee <|-- EmployeeDetails class WorkShift { + Id : int <> <> + Name : string <> <> + TenantId : int <> <> } WorkShift --> "StartTime" TimeOnly WorkShift --> "EndTime" TimeOnly WorkShift --> "Tenant" Tenant class ActivityMaster { + Id : int <> <> + ActivityName : string <> <> + UnitOfMeasurement : string <> <> + TenantId : int <> <> } ActivityMaster --> "Tenant" Tenant class ApplicationUser { + Role : string <> <> + TenantId : int <> <> + IsRootUser : bool? <> <> } IdentityUser <|-- ApplicationUser class AppModule { + Id : int <> <> + Name : string <> <> + ModuleKey : string <> <> } class AppModuleRoleMapping { + AppModuleRoleMapping() + Id : int <> <> + RoleId : int <> <> + ModuleId : int <> <> + TenantId : int <> <> + AllowView : bool <> <> + AllowCreate : bool <> <> + AllowUpdate : bool <> <> + AllowDelete : bool <> <> } AppModuleRoleMapping --> "Role" EmployeeRole AppModuleRoleMapping --> "Module" AppModule AppModuleRoleMapping --> "Tenant" Tenant class EmployeeRole { + Id : int <> <> + Role : string <> <> + TenantId : int <> <> } EmployeeRole --> "Tenant" Tenant class StatusMaster { + Id : int <> <> + Status : string <> <> + TenantId : int <> <> } StatusMaster --> "Tenant" Tenant class Tenant { + Id : int <> <> + Name : string <> <> + Description : string <> <> + DomainName : string <> <> + ContactName : string <> <> + ContactNumber : string <> <> } Tenant --> "OnBoardingDate" DateTime class Building { + Id : int <> <> + Name : string <> <> + ProjectId : int <> <> + TenantId : int <> <> } Building --> "Tenant" Tenant class Floor { + Id : int <> <> + FloorName : string <> <> + BuildingId : int <> <> + TenantId : int <> <> } Floor --> "Building" Building Floor --> "Tenant" Tenant class PhotoGallary { + Id : int <> <> + Description : string <> <> + ProjectId : int <> <> + AddedBy : string <> <> + <> Imagebase64 : string <> <> } PhotoGallary --> "Project" Project PhotoGallary --> "ApplicationUser" ApplicationUser PhotoGallary --> "AddedOn" DateTime class Project { + Id : int <> <> + Name : string <> <> + ProjectAddress : string <> <> + ContactPerson : string <> <> + ProjectStatusId : int <> <> + TenantId : int <> <> } Project --> "StartDate" DateTime Project --> "EndDate" DateTime Project --> "ProjectStatus" StatusMaster Project --> "Tenant" Tenant class WorkArea { + Id : int <> <> + AreaName : string <> <> + FloorId : int <> <> + TenantId : int <> <> } WorkArea --> "Floor" Floor WorkArea --> "Tenant" Tenant class AttendanceVM { } class "IEnumerable`1" { } AttendanceVM --> "Employee" Employee AttendanceVM --> "Attendance" Attendance AttendanceVM --> "AttendanceList" "IEnumerable`1" class ProjectDetailsVM { } class "List`1" { } ProjectDetailsVM --> "project" Project ProjectDetailsVM --> "employeeAllocation" "List`1" ProjectDetailsVM --> "employees" "List`1" ProjectDetailsVM --> "buildings" "List`1" ProjectDetailsVM --> "floors" "List`1" ProjectDetailsVM --> "workAreas" "List`1" ProjectDetailsVM --> "workItems" "List`1" @enduml