diff --git a/0_Framework/Application/ClassificationRangeOfGroupRate.cs b/0_Framework/Application/ClassificationRangeOfGroupRate.cs new file mode 100644 index 00000000..5085e52e --- /dev/null +++ b/0_Framework/Application/ClassificationRangeOfGroupRate.cs @@ -0,0 +1,237 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace _0_Framework.Application; + +/// +/// دامنه امتیازات گروه های طبقه بندی مشاغل +/// +public static class ClassificationRangeOfGroupRate +{ + + /// + /// دریافت فاصله امتیاز گروه + /// + /// + /// + public static ClassificationGroupRate GetGroupDistanceRate(string groupNo) + { + + switch (groupNo) + { + case "1": + return new ClassificationGroupRate() + { + GroupNo = groupNo, + LowRate = 0, + HighRate = 80, + DistanceRate = 0, + }; + break; + case "2": + return new ClassificationGroupRate() + { + GroupNo = groupNo, + LowRate = 81, + HighRate = 95, + DistanceRate = 15, + }; + break; + case "3": + return new ClassificationGroupRate() + { + GroupNo = groupNo, + LowRate = 96, + HighRate = 110, + DistanceRate = 30, //فاصله سقف این گروه تا سقف گروه یک + }; + break; + case "4": + return new ClassificationGroupRate() + { + GroupNo = groupNo, + LowRate = 111, + HighRate = 125, + DistanceRate = 45, //فاصله سقف این گروه تا سقف گروه یک + }; + break; + case "5": + return new ClassificationGroupRate() + { + GroupNo = groupNo, + LowRate = 126, + HighRate = 145, + DistanceRate = 65, //فاصله سقف این گروه تا سقف گروه یک + }; + break; + case "6": + return new ClassificationGroupRate() + { + GroupNo = groupNo, + LowRate = 146, + HighRate = 165, + DistanceRate = 85, + }; + break; + case "7": + return new ClassificationGroupRate() + { + GroupNo = groupNo, + LowRate = 166, + HighRate = 185, + DistanceRate = 105, + }; + break; + case "8": + return new ClassificationGroupRate() + { + GroupNo = groupNo, + LowRate = 186, + HighRate = 210, + DistanceRate = 130, + }; + break; + case "9": + return new ClassificationGroupRate() + { + GroupNo = groupNo, + LowRate = 211, + HighRate = 235, + DistanceRate = 155, + }; + break; + case "10": + return new ClassificationGroupRate() + { + GroupNo = groupNo, + LowRate = 236, + HighRate = 265, + DistanceRate = 185, + }; + break; + case "11": + return new ClassificationGroupRate() + { + GroupNo = groupNo, + LowRate = 266, + HighRate = 295, + DistanceRate = 215, + }; + break; + case "12": + return new ClassificationGroupRate() + { + GroupNo = groupNo, + LowRate = 296, + HighRate = 325, + DistanceRate = 245, + }; + break; + case "13": + return new ClassificationGroupRate() + { + GroupNo = groupNo, + LowRate = 326, + HighRate = 365, + DistanceRate = 285, + }; + break; + case "14": + return new ClassificationGroupRate() + { + GroupNo = groupNo, + LowRate = 366, + HighRate = 405, + DistanceRate = 325, + }; + break; + case "15": + return new ClassificationGroupRate() + { + GroupNo = groupNo, + LowRate = 406, + HighRate = 445, + DistanceRate = 365, + }; + break; + case "16": + return new ClassificationGroupRate() + { + GroupNo = groupNo, + LowRate = 446, + HighRate = 495, + DistanceRate = 415, + }; + break; + case "17": + return new ClassificationGroupRate() + { + GroupNo = groupNo, + LowRate = 496, + HighRate = 545, + DistanceRate = 465, + }; + break; + case "18": + return new ClassificationGroupRate() + { + GroupNo = groupNo, + LowRate = 546, + HighRate = 605, + DistanceRate = 525, + }; + break; + case "19": + return new ClassificationGroupRate() + { + GroupNo = groupNo, + LowRate = 606, + HighRate = 665, + DistanceRate = 585, + }; + break; + case "20": + return new ClassificationGroupRate() + { + GroupNo = groupNo, + LowRate = 666, + HighRate = 740, + DistanceRate = 660, + }; + break; + } + + + return new ClassificationGroupRate(); + } +} + +/// +/// دیتای امتیازات هر گرو +/// +public class ClassificationGroupRate +{ + + /// + /// شمازه گروه + /// + public string GroupNo { get; set; } + + /// + /// امتیاز کف + /// + public int LowRate { get; set; } + + /// + /// امتیاز سقف + /// + public int HighRate { get; set; } + + /// + /// فاصله امتیاز + /// + public int DistanceRate { get; set; } +} \ No newline at end of file diff --git a/0_Framework/Application/Enums/TypeOfCoefficient.cs b/0_Framework/Application/Enums/TypeOfCoefficient.cs new file mode 100644 index 00000000..97475bb8 --- /dev/null +++ b/0_Framework/Application/Enums/TypeOfCoefficient.cs @@ -0,0 +1,14 @@ +namespace _0_Framework.Application.Enums; + +public enum TypeOfCoefficient +{ + /// + /// ضریب ریالی طرح + /// + RialCoefficient, + + /// + /// ضریب ریالی اداره کار + /// + JobOrganization, +} \ No newline at end of file diff --git a/0_Framework/Application/Tools.cs b/0_Framework/Application/Tools.cs index 23afe3cb..9cec9606 100644 --- a/0_Framework/Application/Tools.cs +++ b/0_Framework/Application/Tools.cs @@ -33,6 +33,35 @@ public static class Tools public static string[] DayNames = { "شنبه", "یکشنبه", "دو شنبه", "سه شنبه", "چهار شنبه", "پنج شنبه", "جمعه" }; public static string[] DayNamesG = { "یکشنبه", "دو شنبه", "سه شنبه", "چهار شنبه", "پنج شنبه", "جمعه", "شنبه" }; + /// + /// نام ستون از جدول مزد سنوات طبثه بندی را میگیرد و دیتای داخل آن ستون را برمیگرداند + /// + /// + /// + /// + public static double? GetDynamicDouble(object obj, string propertyName) + { + if (obj == null || string.IsNullOrWhiteSpace(propertyName)) + return null; + + var propertyInfo = obj.GetType().GetProperty(propertyName); + if (propertyInfo == null) + return null; + + var value = propertyInfo.GetValue(obj); + if (value == null) + return null; + + try + { + return Convert.ToDouble(value); + } + catch + { + return null; + } + } + public static bool IsMobileValid(this string mobileNo) { diff --git a/0_Framework/Domain/IRepository.cs b/0_Framework/Domain/IRepository.cs index 209a5f29..0e7bd2ce 100644 --- a/0_Framework/Domain/IRepository.cs +++ b/0_Framework/Domain/IRepository.cs @@ -11,7 +11,8 @@ namespace _0_Framework.Domain; public interface IRepository where T:class { T Get(TKey id); - List Get(); + List Get(); + Task> GetListByIdList(List ids); void Create(T entity); Task CreateAsync(T entity); bool ExistsIgnoreQueryFilter(Expression> expression); diff --git a/0_Framework/InfraStructure/RepositoryBase.cs b/0_Framework/InfraStructure/RepositoryBase.cs index 8f8a9fac..9f3de438 100644 --- a/0_Framework/InfraStructure/RepositoryBase.cs +++ b/0_Framework/InfraStructure/RepositoryBase.cs @@ -53,6 +53,11 @@ namespace _0_Framework.InfraStructure { return _context.Set().ToList(); } + + public async Task> GetListByIdList(List ids) + { + return await _context.Set().Where(e => ids.Contains(EF.Property(e, "id"))).ToListAsync(); + } public void Remove(T entity) { _context.Set().Remove(entity); diff --git a/Company.Domain/ClassificationSchemeAgg/ClassificationEmployee.cs b/Company.Domain/ClassificationSchemeAgg/ClassificationEmployee.cs new file mode 100644 index 00000000..b4f5add6 --- /dev/null +++ b/Company.Domain/ClassificationSchemeAgg/ClassificationEmployee.cs @@ -0,0 +1,93 @@ +using _0_Framework.Domain; +using System; + +namespace Company.Domain.ClassificationSchemeAgg; + +public class ClassificationEmployee : EntityBase +{ + /// + /// ایجاد پرسنل طرح + /// + /// + /// + /// + /// + /// + /// + /// + public ClassificationEmployee(long workshopId, long employeeId, long classificationSchemeId, long classificationGroupId, long classificationGroupJobId, DateTime? startGroupDate) + { + WorkshopId = workshopId; + EmployeeId = employeeId; + ClassificationSchemeId = classificationSchemeId; + ClassificationGroupId = classificationGroupId; + ClassificationGroupJobId = classificationGroupJobId; + StartGroupDate = startGroupDate; + + } + + /// + /// آی دی کارگاه + /// + public long WorkshopId { get; private set; } + + /// + /// آی دی پرسنل + /// + public long EmployeeId { get; private set; } + + /// + /// آی دی طرح + /// + public long ClassificationSchemeId { get; private set; } + + /// + /// آی دی گروه + /// + public long ClassificationGroupId { get; private set; } + + /// + /// آی دی شغل + /// + public long ClassificationGroupJobId { get; private set; } + + + /// + /// تاریخ شروع استفاده از گروه + /// + public DateTime? StartGroupDate{ get; private set; } + + /// + /// تاریخ پایان استفاده از گروه + /// + public DateTime? EndGroupDate { get; private set; } + + public ClassificationGroup ClassificationGroup { get; set; } + + /// + /// ویرایش پرسنل طرح + /// + /// + /// + public void Edit(long classificationGroupId, long classificationGroupJobId) + { + ClassificationGroupId = classificationGroupId; + ClassificationGroupJobId = classificationGroupJobId; + } + + /// + /// ویرایش گروه های چندگانه پرسنل طرح + /// + /// + /// + /// + /// + public void EditMultipleGroupMember(long classificationGroupId, long classificationGroupJobId, DateTime startGroupDate) + { + ClassificationGroupId = classificationGroupId; + ClassificationGroupJobId = classificationGroupJobId; + StartGroupDate = startGroupDate; + + } + +} \ No newline at end of file diff --git a/Company.Domain/ClassificationSchemeAgg/ClassificationGroup.cs b/Company.Domain/ClassificationSchemeAgg/ClassificationGroup.cs new file mode 100644 index 00000000..7220575a --- /dev/null +++ b/Company.Domain/ClassificationSchemeAgg/ClassificationGroup.cs @@ -0,0 +1,43 @@ +using System.Collections.Generic; +using _0_Framework.Domain; + +namespace Company.Domain.ClassificationSchemeAgg; + + +public class ClassificationGroup : EntityBase +{ + /// + /// ایجاد گروه های بیست گانه طرح طبقه بندی + /// + /// + /// + /// + public ClassificationGroup(string groupNo, long workshopId, long classificationSchemeId) + { + GroupNo = groupNo; + WorkshopId = workshopId; + ClassificationSchemeId = classificationSchemeId; + } + + /// + /// شماره گروه + /// + public string GroupNo { get; private set; } + + /// + /// آی دی کارگاه + /// + public long WorkshopId { get; private set; } + /// + /// آی دی طرح + /// + public long ClassificationSchemeId { get; private set; } + + public ClassificationScheme ClassificationScheme { get; set; } + + + public List ClassificationGroupJobs { get; set; } + public List ClassificationGroupSalaries { get; set; } + + public List ClassificationEmployees { get; set; } +} \ No newline at end of file diff --git a/Company.Domain/ClassificationSchemeAgg/ClassificationGroupJob.cs b/Company.Domain/ClassificationSchemeAgg/ClassificationGroupJob.cs new file mode 100644 index 00000000..a4884bae --- /dev/null +++ b/Company.Domain/ClassificationSchemeAgg/ClassificationGroupJob.cs @@ -0,0 +1,55 @@ +using _0_Framework.Domain; +using _0_Framework_b.Domain; + +namespace Company.Domain.ClassificationSchemeAgg; + +public class ClassificationGroupJob : EntityBaseWithoutCreationDate +{ + /// + /// ایجاد لیست مشغال برای گروه های طرح طبقه بندی + /// + /// + /// + /// + /// + /// + public ClassificationGroupJob(long jobId, string jobName, string jobCode, long classificationGroupId, string groupNo) + { + JobId = jobId; + JobName = jobName; + JobCode = jobCode; + ClassificationGroupId = classificationGroupId; + GroupNo = groupNo; + + } + + /// + /// آی دی شغل + /// + public long JobId { get; private set; } + + /// + /// نام شغل + /// + public string JobName { get; private set; } + + /// + /// کد شغل + /// + public string JobCode { get; private set; } + + /// + /// آی دی گروه + /// + public long ClassificationGroupId { get; private set; } + + /// + /// شماره گروه + /// + public string GroupNo { get; private set; } + + + public ClassificationGroup ClassificationGroup { get; set; } + + +} \ No newline at end of file diff --git a/Company.Domain/ClassificationSchemeAgg/ClassificationGroupSalary.cs b/Company.Domain/ClassificationSchemeAgg/ClassificationGroupSalary.cs new file mode 100644 index 00000000..79c1b67c --- /dev/null +++ b/Company.Domain/ClassificationSchemeAgg/ClassificationGroupSalary.cs @@ -0,0 +1,82 @@ +using _0_Framework.Domain; +using System; + +namespace Company.Domain.ClassificationSchemeAgg; + +public class ClassificationGroupSalary : EntityBase +{ + + + /// + /// ایجاد دستمزد برای گروه + /// + /// + /// + /// + /// + /// + /// + public ClassificationGroupSalary(long classificationGroupId, string groupNo, double groupSalary, DateTime startDate, DateTime endDate, int year, long schemeId) + { + ClassificationGroupId = classificationGroupId; + GroupNo = groupNo; + GroupSalary = groupSalary; + StartDate = startDate; + EndDate = endDate; + Year = year; + SchemeId = schemeId; + } + + /// + /// آی دی گروه + /// + public long ClassificationGroupId { get; private set; } + + /// + /// شماره گروه + /// + public string GroupNo { get; private set; } + + /// + /// دستمزد گروه + /// + public double GroupSalary { get; private set; } + + + /// + /// تاریخ شروع + /// + public DateTime StartDate { get; private set; } + + /// + /// تاریخ پایان + /// + public DateTime EndDate { get; private set; } + + /// + /// سال + /// + public int Year { get; private set; } + + public long SchemeId { get; private set; } + + + public ClassificationGroup ClassificationGroup { get; set; } + + /// + /// ویرایش دستمزد گروه + /// + + /// + /// + /// + /// + public void Edit(double groupSalary, DateTime startDate, DateTime endDate, int year) + { + + GroupSalary = groupSalary; + StartDate = startDate; + EndDate = endDate; + Year = year; + } +} \ No newline at end of file diff --git a/Company.Domain/ClassificationSchemeAgg/ClassificationRialCoefficient.cs b/Company.Domain/ClassificationSchemeAgg/ClassificationRialCoefficient.cs new file mode 100644 index 00000000..726bfb0b --- /dev/null +++ b/Company.Domain/ClassificationSchemeAgg/ClassificationRialCoefficient.cs @@ -0,0 +1,68 @@ +using System; +using _0_Framework.Domain; + +namespace Company.Domain.ClassificationSchemeAgg; + +public class ClassificationRialCoefficient : EntityBaseWithoutCreationDate +{ + /// + /// ایچاد ضریب ریالی + /// + /// + /// + /// + /// + /// + public ClassificationRialCoefficient(long classificationSchemeId, double rialCoefficient, DateTime startDate, DateTime endDate, int year) + { + ClassificationSchemeId = classificationSchemeId; + RialCoefficient = rialCoefficient; + StartDate = startDate; + EndDate = endDate; + Year = year; + } + + //آی دی طرح + public long ClassificationSchemeId { get; private set; } + + /// + /// ضریب ریالی + /// + public double RialCoefficient { get; private set; } + + /// + /// تاریخ شروع + /// + public DateTime StartDate { get; private set; } + + /// + /// تاریخ پایان + /// + public DateTime EndDate { get; private set; } + + /// + /// سال + /// + public int Year { get; private set; } + + + public ClassificationScheme ClassificationScheme { get; set; } + + /// + /// ویرایش ضریب ریالی + /// + /// + /// + /// + /// + /// + public void Edit(double rialCoefficient, DateTime startDate, DateTime endDate, int year) + { + + RialCoefficient = rialCoefficient; + StartDate = startDate; + EndDate = endDate; + Year = year; + } + +} \ No newline at end of file diff --git a/Company.Domain/ClassificationSchemeAgg/ClassificationScheme.cs b/Company.Domain/ClassificationSchemeAgg/ClassificationScheme.cs new file mode 100644 index 00000000..bc2c12dd --- /dev/null +++ b/Company.Domain/ClassificationSchemeAgg/ClassificationScheme.cs @@ -0,0 +1,88 @@ +using System; +using System.Collections.Generic; +using _0_Framework.Application.Enums; +using _0_Framework.Domain; + +namespace Company.Domain.ClassificationSchemeAgg; + +public class ClassificationScheme : EntityBase +{ + /// + /// ایجاد طرح طبقه بندی مشاغل + /// + /// + /// + /// + /// + /// + /// + public ClassificationScheme(DateTime includingDateGr, DateTime executionDateGr, string designerFullName, string designerPhone, long workshopId, TypeOfCoefficient typeOfCoefficient) + { + IncludingDateGr = includingDateGr; + ExecutionDateGr = executionDateGr; + DesignerFullName = designerFullName; + DesignerPhone = designerPhone; + WorkshopId = workshopId; + TypeOfCoefficient = typeOfCoefficient; + } + + /// + /// تاریخ شمول طرح + /// + public DateTime IncludingDateGr { get; private set; } + + /// + /// تاریخ اجرای طرح + /// + public DateTime ExecutionDateGr { get; private set; } + + /// + /// تاریخ پایان طرح + /// + public DateTime? EndSchemeDateGr { get; private set; } + + + /// + /// نام کامل طراح + /// + public string DesignerFullName { get; private set; } + + /// + /// شماره همراه طراح + /// + public string DesignerPhone { get; private set; } + + /// + /// آی دی کارگاه + /// + public long WorkshopId { get; private set; } + + + /// + /// نوع ضریب + /// + public TypeOfCoefficient TypeOfCoefficient { get; private set; } + + + public List ClassificationGroups { get; set; } + + public List ClassificationRialCoefficients { get; set; } + + /// + /// ویرایش طرح + /// + /// + /// + /// + /// + /// + public void Edit(DateTime includingDateGr, DateTime executionDateGr,string designerFullName, string designerPhone, TypeOfCoefficient typeOfCoefficient) + { + IncludingDateGr = includingDateGr; + ExecutionDateGr = executionDateGr; + DesignerFullName = designerFullName; + DesignerPhone = designerPhone; + TypeOfCoefficient = typeOfCoefficient; + + } +} \ No newline at end of file diff --git a/Company.Domain/ClassificationSchemeAgg/IClassificationEmployeeRepository.cs b/Company.Domain/ClassificationSchemeAgg/IClassificationEmployeeRepository.cs new file mode 100644 index 00000000..4db0dc93 --- /dev/null +++ b/Company.Domain/ClassificationSchemeAgg/IClassificationEmployeeRepository.cs @@ -0,0 +1,42 @@ +using _0_Framework.Domain; +using CompanyManagment.App.Contracts.ClassificationScheme; +using System.Collections.Generic; +using System.Threading.Tasks; + +namespace Company.Domain.ClassificationSchemeAgg; + +public interface IClassificationEmployeeRepository : IRepository +{ + /// + /// دریافت لیست پرسنل کارگاه + /// تب افزودن پرسنل + /// + /// + /// + Task> GetEmployeeListData(long schemeId); + + + /// + /// دریافت اطلاعات عضویتی پرسنل در گروه + /// + /// + /// + Task> GetEmployeeMemberizeData(long employeeId); + + /// + /// ذخیره انتقال پرسنل به گره های دیگر + ///بصورت گروهی + /// + /// + /// + Task CreateTransferRange(List command); + + + /// + /// حذف پرسنل از گروه از سمت ویرایش + /// + /// + /// + Task RemoveRangeByEdit(List command); + +} \ No newline at end of file diff --git a/Company.Domain/ClassificationSchemeAgg/IClassificationGroupRepository.cs b/Company.Domain/ClassificationSchemeAgg/IClassificationGroupRepository.cs new file mode 100644 index 00000000..e636b438 --- /dev/null +++ b/Company.Domain/ClassificationSchemeAgg/IClassificationGroupRepository.cs @@ -0,0 +1,61 @@ +using System.Collections.Generic; +using System.Threading.Tasks; +using _0_Framework.Domain; +using CompanyManagment.App.Contracts.ClassificationScheme; + +namespace Company.Domain.ClassificationSchemeAgg; + +public interface IClassificationGroupRepository : IRepository +{ + /// + /// دریافت گروه های طرح + /// + /// + /// + Task> GetGroups(long schemeId); + + /// + /// دریافت گروه ها و مشاغلشان برای تب تعیین مشاغل + /// + /// + /// + Task> GetGroupAndJobs(long schemeId); + + + /// + /// دریافت مشاغل گروه توسط آی دی گروه + /// + /// + /// + Task> GetGroupJobs(long groupId); + + /// + /// چک میکند که آی پرسنلی وجود دارد که این شغل به او نسبت داده شده + /// + /// + /// + /// + Task CheckEmployeeHasThisJob(long id, long groupId); + + /// + /// ایجاد مشاغل + /// + /// + /// + /// + Task CreateJobs(List createClassificationGroupJob, List deleteJobList); + + + /// + /// در یافت اطلاعات گروه برای لود مودال ایجاد دستمزد های + /// + /// + Task GetGroupToCreateSalariesModal(long schemeId); + + /// + /// ایجاد گروه های بیست گانه + /// + /// + /// + Task CreateGroups(List groupList); +} \ No newline at end of file diff --git a/Company.Domain/ClassificationSchemeAgg/IClassificationGroupSalariesRepository.cs b/Company.Domain/ClassificationSchemeAgg/IClassificationGroupSalariesRepository.cs new file mode 100644 index 00000000..fc026a2c --- /dev/null +++ b/Company.Domain/ClassificationSchemeAgg/IClassificationGroupSalariesRepository.cs @@ -0,0 +1,34 @@ +using _0_Framework.Domain; +using CompanyManagment.App.Contracts.ClassificationScheme; +using System.Collections.Generic; +using System.Threading.Tasks; + +namespace Company.Domain.ClassificationSchemeAgg; + +public interface IClassificationGroupSalariesRepository : IRepository +{ + /// + /// ایجاد دستمزدهای گروه ها + /// + /// + /// + Task CreateSalaries(List createClassificationGroupSalary); + + + /// + /// دریافت دستمزدها و ضریب ریالی برای مودال ویرایش + /// + /// + /// + /// + /// + Task GetEditSalariesData(long schemeId, string startDate, string endDate); + + /// + /// لیست دستمزدها بر اساس تاریخ و سال برای تب دستمزدها + /// + /// + /// + Task GetSalariesTabData(long schemeId); +} + \ No newline at end of file diff --git a/Company.Domain/ClassificationSchemeAgg/IClassificationRialCoefficientRepository.cs b/Company.Domain/ClassificationSchemeAgg/IClassificationRialCoefficientRepository.cs new file mode 100644 index 00000000..5d41918a --- /dev/null +++ b/Company.Domain/ClassificationSchemeAgg/IClassificationRialCoefficientRepository.cs @@ -0,0 +1,8 @@ +using _0_Framework.Domain; + +namespace Company.Domain.ClassificationSchemeAgg; + +public interface IClassificationRialCoefficientRepository : IRepository +{ + +} \ No newline at end of file diff --git a/Company.Domain/ClassificationSchemeAgg/IClassificationSchemeRepository.cs b/Company.Domain/ClassificationSchemeAgg/IClassificationSchemeRepository.cs new file mode 100644 index 00000000..8d41ae41 --- /dev/null +++ b/Company.Domain/ClassificationSchemeAgg/IClassificationSchemeRepository.cs @@ -0,0 +1,56 @@ +using _0_Framework.Application; +using _0_Framework.Domain; +using CompanyManagment.App.Contracts.ClassificationScheme; +using CompanyManagment.App.Contracts.YearlySalary; +using System; +using System.Collections.Generic; +using System.Threading.Tasks; + +namespace Company.Domain.ClassificationSchemeAgg; + +public interface IClassificationSchemeRepository : IRepository +{ + /// + /// پارشیال صفحه ایجاد طرح + /// + /// + /// + Task GetClassificationSchemeList(long workshopId); + + + /// + /// دریافت اطلاعات طرح برای ویرایش + /// + /// + /// + Task GetClassificationScheme(long id); + + + /// + /// دریافت اطلاعات طر برای محاسبات + /// + /// + /// + Task GetClassificationSchemeToCompute(long id); + + /// + /// متد محاسبه پایه سنوات برا افراد تک گروه + /// + /// تاریخ شروع طرح + /// تاریخ پاین طرح، اجباری نیست + /// تاریخ شروع قراداد + /// تاریخ پایان قراداد + /// شماره گروه + /// آی دی پرسنل + /// آی دی کارگاه + /// + Task BaseYearComputeOneGroup(DateTime schemeStart, DateTime? schemeEnd, + DateTime contractStart, DateTime contractEnd, string groupNo, long employeeId, long workshopId); + + /// + /// حذف طرح + /// + /// + /// + Task DeleteClassificationScheme(long id); +} \ No newline at end of file diff --git a/Company.Domain/JobAgg/IJobRepository.cs b/Company.Domain/JobAgg/IJobRepository.cs index 75e9dfc7..69514cdb 100644 --- a/Company.Domain/JobAgg/IJobRepository.cs +++ b/Company.Domain/JobAgg/IJobRepository.cs @@ -11,6 +11,13 @@ public interface IJobRepository : IRepository EditJob GetDetails(long id); List Search(JobSearchModel searchModel); List SearchJobForMain(JobSearchModel searchModel); + + /// + /// جستجوس مشاغل + /// + /// + /// + Task> JobSearchSelect(string searchtText); // Task> GetJobListByText(string searchtText); List GetJobListByText(string searchtText); List GetJobListByWorkshopId(long workshopId); diff --git a/Company.Domain/WorkshopAgg/Workshop.cs b/Company.Domain/WorkshopAgg/Workshop.cs index 2fe015b4..02b0d0f8 100644 --- a/Company.Domain/WorkshopAgg/Workshop.cs +++ b/Company.Domain/WorkshopAgg/Workshop.cs @@ -185,8 +185,17 @@ public class Workshop : EntityBase public bool AddLeavePay { get; private set; } public string ZoneName { get; private set; } public bool TotalPaymentHide { get; private set; } + + /// + /// آیا طبقه بندی شده است + /// [کارگاه دارای طرح طبقه بندی می باشد ؟] + /// public bool IsClassified { get; private set; } + /// + /// آیا طرح طبقه بندی تکمیل شده است + /// + public bool IsClassificationSchemeCompleted { get; private set; } //نحوه محاسبه مزد مرخصی public string ComputeOptions { get; private set; } diff --git a/CompanyManagment.App.Contracts/ClassificationScheme/AddEmployeeToGroup.cs b/CompanyManagment.App.Contracts/ClassificationScheme/AddEmployeeToGroup.cs new file mode 100644 index 00000000..3e8b495f --- /dev/null +++ b/CompanyManagment.App.Contracts/ClassificationScheme/AddEmployeeToGroup.cs @@ -0,0 +1,84 @@ +using System.Collections.Generic; + +namespace CompanyManagment.App.Contracts.ClassificationScheme; + +/// +/// مدل برای مدال افزودن پرسنل ب گروه +/// +public class AddEmployeeToGroup +{ + /// + /// آی دی + /// + public long Id { get; set; } + + /// + /// نام کامل پرسنل + /// + public string EmployeeFullName { get; set; } + + /// + /// آی دی پرسنل + /// + public long EmployeeId { get; set; } + + /// + /// آی دی طرح + /// + public long SchemeId { get; set; } + + /// + /// آی دی گروه + /// + public long GroupId { get; set; } + + /// + /// شماره گروه + /// + public string GoroupNo { get; set; } + + /// + /// آی دی شغل + /// + public long JobId { get; set; } + + /// + /// نام شغل + /// + public string JobName { get; set; } + + /// + /// کد شغل + /// + public string JobCode { get; set; } + + + /// + /// لیست گروه ها + /// + public List ClassificationGroupList{ get; set; } +} + +/// +/// لیست گروه ها +/// +public class ClassificationGroupList +{ + /// + /// آی دی گروه + /// + public long GroupId { get; set; } + + /// + /// شماره گروه + /// استرینگ + /// + public string GroupNo { get; set; } + + + /// + /// شماره گروه + /// اینتیجر + /// + public int GroupNoInt { get; set; } +} \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/ClassificationScheme/CheckStatusToDeleteScheme.cs b/CompanyManagment.App.Contracts/ClassificationScheme/CheckStatusToDeleteScheme.cs new file mode 100644 index 00000000..deac4a4d --- /dev/null +++ b/CompanyManagment.App.Contracts/ClassificationScheme/CheckStatusToDeleteScheme.cs @@ -0,0 +1,32 @@ +namespace CompanyManagment.App.Contracts.ClassificationScheme; + +public class CheckStatusToDeleteScheme +{ + /// + /// وضعیت طرح برای حذف + /// + public DeleteSchemeStatus DeleteSchemeStatus { get; set; } + + /// + /// پیام سیستم + /// + public string Message { get; set; } +} + +public enum DeleteSchemeStatus +{ + /// + /// مجاز + /// + Valid, + /// + /// مجاز باشرط تایید + /// + ConfirmationNeeded, + + /// + /// غیر مجاز + /// + NotValid, + +} \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/ClassificationScheme/ClassificationGroupAndJobModel.cs b/CompanyManagment.App.Contracts/ClassificationScheme/ClassificationGroupAndJobModel.cs new file mode 100644 index 00000000..2754818c --- /dev/null +++ b/CompanyManagment.App.Contracts/ClassificationScheme/ClassificationGroupAndJobModel.cs @@ -0,0 +1,104 @@ +using System.Collections.Generic; + +namespace CompanyManagment.App.Contracts.ClassificationScheme; + +/// +/// ایجاد گروه +/// +public class ClassificationGroupAndJobModel +{ + /// + /// آی دی گروه + /// + public long GroupId { get; set; } + /// + /// شماره گروه + /// استرینگ + /// + public string GroupNo { get; set; } + + /// + /// شماره گروه نوع عددی + /// + public int GroupNoInt { get; set; } + + /// + /// آی دی کارگاه + /// + public long WorkshopId { get; set; } + /// + /// آی دی طرح + /// + public long ClassificationSchemeId { get; set; } + + /// + /// لیست مشاغل + /// + public List EditClassificationGroupJob { get; set; } +} + +/// +/// ایجاد مشاغل گروه +/// +public class CreateClassificationGroupJob +{ + /// + /// آی دی شغل + /// + public long JobId { get; set; } + + /// + /// نام شغل + /// + public string JobName { get; set; } + + /// + /// کد شغل + /// + public string JobCode { get; set; } + + /// + /// آی دی گروه + /// + public long ClassificationGroupId { get; set; } + + /// + /// شماره گروه + /// + public string GroupNo { get; set; } +} + +/// +/// ویرایش مشاغل گروه +/// +public class EditClassificationGroupJob : CreateClassificationGroupJob +{ + /// + /// ای دی شغل + /// + public long Id { get; set; } +} + +/// +/// ایجاد یا ویرایش مشاغل +/// +public class CreateOrEditGroupJobs +{ + /// + /// آی دی گروه + /// + public long GroupId { get; set; } + + /// + /// شماره گروه + /// استرینگ + /// + public string GroupNo { get; set; } + + /// + /// آی دی مشاغل + /// + public List JobIdList { get; set; } +} + + diff --git a/CompanyManagment.App.Contracts/ClassificationScheme/ClassificationSchemeListDto.cs b/CompanyManagment.App.Contracts/ClassificationScheme/ClassificationSchemeListDto.cs new file mode 100644 index 00000000..aee59eb6 --- /dev/null +++ b/CompanyManagment.App.Contracts/ClassificationScheme/ClassificationSchemeListDto.cs @@ -0,0 +1,24 @@ +using System.Collections.Generic; + +namespace CompanyManagment.App.Contracts.ClassificationScheme; + +/// +/// پارشیال صفحه ایجاد طرح +/// +public class ClassificationSchemeListDto +{ + /// + /// آیا طرح دارد + /// + public bool HasScheme { get; set; } + + /// + /// آی دی کارگاه + /// + public long WorkshopId { get; set; } + + /// + /// لیست طرح + /// + public List ClassificationSchemesList { get; set; } +} \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/ClassificationScheme/CreateClassificationGroupSalaryAndRialCoeficient.cs b/CompanyManagment.App.Contracts/ClassificationScheme/CreateClassificationGroupSalaryAndRialCoeficient.cs new file mode 100644 index 00000000..7baadf53 --- /dev/null +++ b/CompanyManagment.App.Contracts/ClassificationScheme/CreateClassificationGroupSalaryAndRialCoeficient.cs @@ -0,0 +1,204 @@ +using _0_Framework.Application.Enums; +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CompanyManagment.App.Contracts.ClassificationScheme; + +/// +/// ایجاد دستمزد گروه و ضریب ریالی +/// +public class CreateClassificationGroupSalaryAndRialCoefficient +{ + + /// + /// آی دی گروه + /// + public long ClassificationGroupId { get; set; } + + /// + /// شماره گروه + /// + public string GroupNo { get; set; } + + /// + /// دستمزد گروه + /// + public double GroupSalary { get; set; } + + + /// + /// تاریخ شروع + /// + public DateTime StartDate { get; set; } + + /// + /// تاریخ پایان + /// + public DateTime EndDate { get; set; } + + /// + /// سال + /// + public int Year { get; set; } + + + +} + +/// +/// ویرایش دستمزد +/// +public class EditClassificationGroupSalaryAndRialCoefficient : CreateClassificationGroupSalaryAndRialCoefficient +{ + /// + /// آی دی + /// + public long Id { get; set; } + + /// + /// تاریخ شروع + /// شمسی + /// + [DataType(DataType.Text)] + public string StartDateFa { get; set; } + + /// + /// تاریخ پایان + /// شمسی + /// + [DataType(DataType.Text)] + public string EndDateFa { get; set; } + + /// + /// دستمزد گروه + /// + public string GroupSalaryStr { get; set; } +} + +/// +/// لیست دستمزدها و ضرایب ریالی +/// +public class SalaryAndRialCoefficientModel +{ + /// + /// تاریخ شروع + /// میلادی + /// + public DateTime StartDate { get; set; } + + /// + /// تاریخ شروع + /// شمسی + /// + [DataType(DataType.Text)] + public string StartDateFa { get; set; } + + /// + /// تاریخ پایان + /// میلادی + /// + public DateTime EndDate { get; set; } + + /// + /// تاریخ پایان + /// شمسی + /// + [DataType(DataType.Text)] + public string EndDateFa { get; set; } + + /// + /// سال + /// + public int Year { get; set; } + + + /// + /// ضریب ریالی + /// string + /// + public string RialCoefficientStr { get; set; } + + /// + /// ضریب ریالی + /// double + /// + public double RialCoefficient { get; set; } + + /// + /// آی دی طرح + /// + public long SchemeId { get; set; } + + /// + /// نوع ضریب + /// + public TypeOfCoefficient TypeOfCoefficient { get; set; } + + /// + /// آی دی ضریب ریالی + /// + public long CoefficientId { get; set; } + + /// + /// لیست دستمزدها و ضرایب بر اساس سال + /// + public List SalariesAndCoefficientList { get; set; } +} + + +/// +/// تب دستمزد ها و ضرایب ریالی +/// +public class SalaryAndRialCoefficientTab +{ + /// + /// آی دی طرح + /// + public long SchemeId { get; set; } + + /// + /// آیا دستمزدی قبلا ایجاد شده است؟ + /// + public bool HasAnySalaries { get; set; } + + /// + /// لیست دستمزدها و ضرایب + /// + public List SalaryAndRialCoefficientTabDataList { get; set; } +} + +/// +/// لیست دستمزدها +/// +public class SalaryAndRialCoefficientTabDataList +{ + /// + /// تاریخ شروع + /// شمسی + /// + [DataType(DataType.Text)] + public string StartDateFa { get; set; } + + /// + /// تاریخ پایان + /// شمسی + /// + [DataType(DataType.Text)] + public string EndDateFa { get; set; } + + /// + /// سال + /// + public int Year { get; set; } + + /// + /// ضریب ریالی + /// string + /// + public string RialCoefficientStr { get; set; } +} + diff --git a/CompanyManagment.App.Contracts/ClassificationScheme/CreateClassificationScheme.cs b/CompanyManagment.App.Contracts/ClassificationScheme/CreateClassificationScheme.cs new file mode 100644 index 00000000..75f1812d --- /dev/null +++ b/CompanyManagment.App.Contracts/ClassificationScheme/CreateClassificationScheme.cs @@ -0,0 +1,59 @@ +using _0_Framework.Application.Enums; +using System; +using System.ComponentModel.DataAnnotations; + +namespace CompanyManagment.App.Contracts.ClassificationScheme; + +/// +/// ایجاد طرح +/// +public class CreateClassificationScheme +{ + + + /// + /// تاریخ شمول طرح + /// شمسی + /// + public string IncludingDateFa { get; set; } + + /// + /// تاریخ اجرای طرح + /// میلادی + /// + public DateTime ExecutionDateGr { get; set; } + + /// + /// تاریخ اجرای طرح + /// شمسی + /// + public string ExecutionDateFa { get; set; } + + /// + /// تاریخ پایان طرح + /// + public DateTime? EndSchemeDateGr { get; set; } + + + /// + /// نام کامل طراح + /// + public string DesignerFullName { get; set; } + + /// + /// شماره همراه طراح + /// + [RegularExpression("^[0-9]*$", ErrorMessage = "لطفا فقط عدد وارد کنید")] + public string DesignerPhone { get; set; } + + /// + /// آی دی کارگاه + /// + public long WorkshopId { get; set; } + + + /// + /// نوع ضریب + /// + public TypeOfCoefficient TypeOfCoefficient { get; set; } +} \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/ClassificationScheme/CreateClassificationSchemeDto.cs b/CompanyManagment.App.Contracts/ClassificationScheme/CreateClassificationSchemeDto.cs new file mode 100644 index 00000000..130bfcb5 --- /dev/null +++ b/CompanyManagment.App.Contracts/ClassificationScheme/CreateClassificationSchemeDto.cs @@ -0,0 +1,46 @@ +using _0_Framework.Application.Enums; +using System; +using System.ComponentModel.DataAnnotations; + +namespace CompanyManagment.App.Contracts.ClassificationScheme; + +public class CreateClassificationSchemeDto +{ + + + /// + /// تاریخ شمول طرح + /// شمسی + /// + public string IncludingDateFa { get; set; } + + + /// + /// تاریخ اجرای طرح + /// شمسی + /// + public string ExecutionDateFa { get; set; } + + + /// + /// نام کامل طراح + /// + public string DesignerFullName { get; set; } + + /// + /// شماره همراه طراح + /// + [RegularExpression("^[0-9]*$", ErrorMessage = "لطفا فقط عدد وارد کنید")] + public string DesignerPhone { get; set; } + + /// + /// آی دی کارگاه + /// + public long WorkshopId { get; set; } + + + /// + /// نوع ضریب + /// + public TypeOfCoefficient TypeOfCoefficient { get; set; } +} \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/ClassificationScheme/EditClassificationScheme.cs b/CompanyManagment.App.Contracts/ClassificationScheme/EditClassificationScheme.cs new file mode 100644 index 00000000..542a8e93 --- /dev/null +++ b/CompanyManagment.App.Contracts/ClassificationScheme/EditClassificationScheme.cs @@ -0,0 +1,12 @@ +namespace CompanyManagment.App.Contracts.ClassificationScheme; + +/// +/// ویرایش طرح +/// +public class EditClassificationScheme : CreateClassificationScheme +{ + /// + /// آی دی طرح + /// + public long Id { get; set; } +} \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/ClassificationScheme/EditClassificationSchemeDto.cs b/CompanyManagment.App.Contracts/ClassificationScheme/EditClassificationSchemeDto.cs new file mode 100644 index 00000000..904acf5f --- /dev/null +++ b/CompanyManagment.App.Contracts/ClassificationScheme/EditClassificationSchemeDto.cs @@ -0,0 +1,45 @@ +using _0_Framework.Application.Enums; +using System.ComponentModel.DataAnnotations; + +namespace CompanyManagment.App.Contracts.ClassificationScheme; + +public class EditClassificationSchemeDto +{ + /// + /// آی دی طرح + /// + public long Id { get; set; } + + /// + /// تاریخ شمول طرح + /// شمسی + /// + public string IncludingDateFa { get; set; } + + + /// + /// تاریخ اجرای طرح + /// شمسی + /// + public string ExecutionDateFa { get; set; } + + + /// + /// نام کامل طراح + /// + public string DesignerFullName { get; set; } + + /// + /// شماره همراه طراح + /// + [RegularExpression("^[0-9]*$", ErrorMessage = "لطفا فقط عدد وارد کنید")] + public string DesignerPhone { get; set; } + + + + + /// + /// نوع ضریب + /// + public TypeOfCoefficient TypeOfCoefficient { get; set; } +} \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/ClassificationScheme/EditEmployeeGroup.cs b/CompanyManagment.App.Contracts/ClassificationScheme/EditEmployeeGroup.cs new file mode 100644 index 00000000..e680c19e --- /dev/null +++ b/CompanyManagment.App.Contracts/ClassificationScheme/EditEmployeeGroup.cs @@ -0,0 +1,109 @@ +using System; +using System.Collections.Generic; + +namespace CompanyManagment.App.Contracts.ClassificationScheme; +/// +/// ویرایش گروه پرسنل +/// +public class EditEmployeeGroup +{ + /// + /// آیا گروه بندی پرسنل چند گانه است + /// + public bool HasMultipleGroup { get; set; } + + /// + /// نام کامل پرسنل + /// + public string EmployeeFullName { get; set; } + + /// + /// آی دی پرسنل + /// + public long EmployeeId { get; set; } + + /// + /// آی دی طرح + /// + public long SchemeId { get; set; } + + /// + /// لیست گروه های پرسنل + /// + public List EditEmployeeGroupLists { get; set; } + + /// + /// لیست گروه های طرح + /// + public List ClassificationGroupList { get; set; } +} + +/// +/// لیست گروه های پرسنل +/// +public class EditEmployeeGroupList +{ + /// + /// آی دی + /// + public long Id { get; set; } + + /// + /// آی دی کارگاه + /// + public long WorkshopId { get; set; } + + /// + /// آی دی پرسنل + /// + public long EmployeeId { get; set; } + + + /// + /// آی دی گروه + /// + public long ClassificationGroupId { get; set; } + + /// + /// آی دی شغل + /// + public long ClassificationGroupJobId { get; set; } + + + /// + /// تاریخ شروع استفاده از گروه + /// + public DateTime? StartGroupDate { get; set; } + + /// + /// تاریخ پایان استفاده از گروه + /// + public DateTime? EndGroupDate { get; set; } + + /// + /// تاریخ شروع استفاده از گروه + /// + public string StartGroupDateFa { get; set; } + + /// + /// تاریخ پایان استفاده از گروه + /// + public string EndGroupDateFa { get; set; } + + /// + /// آیا حذف شده است + /// + public bool IsRemoved { get; set; } + + /// + /// آی دی طرح + /// + public long SchemeId { get; set; } + + /// + /// شماره گروه + /// + public string GroupNo { get; set; } + + +} \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/ClassificationScheme/EmployeeInfoTab.cs b/CompanyManagment.App.Contracts/ClassificationScheme/EmployeeInfoTab.cs new file mode 100644 index 00000000..a2f9cd5e --- /dev/null +++ b/CompanyManagment.App.Contracts/ClassificationScheme/EmployeeInfoTab.cs @@ -0,0 +1,110 @@ +using System.Collections.Generic; + +namespace CompanyManagment.App.Contracts.ClassificationScheme; + +/// +/// جستجوی پرسنل +/// تب افزودن پرسنل طبقه بندی مشاغل +/// +public class EmployeeInfoTab +{ + /// + /// آی دی کارگاه + /// + public long WorkshopId { get; set; } + + /// + /// آی دی پرسنل + /// + public long EmployeeId { get; set; } + + /// + /// نام کامل پرسنل + /// + public string FullName { get; set; } + + /// + /// آی دی طرح + /// + public long SchemeId { get; set; } + + /// + /// لیست پرسنل + /// + public List EmployeeInfoList { get; set; } + + public List YearlyList { get; set; } +} + +/// +/// لیست پرسنل +/// تب افزودن پرسنل طبقه بندی مشاغل +/// +public class EmployeeInfoList +{ + /// + /// آی دی پرسنل + /// + public long EmployeeId { get; set; } + + /// + /// نام کامل پرسنل + /// + public string FullName { get; set; } + + /// + /// شماره گروه یا گره هایی که پرسنل در آن اضافه شده + /// + public string GroupNo { get; set; } + + /// + /// آیا پرسنل هیچ گروهی دارد؟ + /// + public bool HasGroup { get; set; } + + + /// + /// آخرین تاریخ شروع بکار قراداد + /// + public string LastStartContractWork { get; set; } + + /// + /// آخرین تاریخ ترک کار قراداد + /// + public string LastLeftContractWork { get; set; } + + /// + /// آخرین تاریخ شروع بکار بیمه + /// + public string LastStartInsuranceWork { get; set; } + + /// + /// آخرین تاریخ ترک کار بیمه + /// + public string LastLeftInsuranceWork { get; set; } + + /// + /// آیا پرسنل قرداد است + /// + public bool ContractPerson { get; set; } + + /// + /// آیا پرسنل بیمه است + /// + public bool InsurancePerson { get; set; } + + /// + /// آیا ترک کار قرارداد دارد + /// + public bool ContractLeft { get; set; } + + /// + /// آیا ترک کار بیمه دارد + /// + public bool InsuranceLeft { get; set; } + + /// + /// آیا کلا ترک کار کرده است + /// + public bool Black { get; set; } +} diff --git a/CompanyManagment.App.Contracts/ClassificationScheme/IClassificationSchemeApplication.cs b/CompanyManagment.App.Contracts/ClassificationScheme/IClassificationSchemeApplication.cs new file mode 100644 index 00000000..d87424ba --- /dev/null +++ b/CompanyManagment.App.Contracts/ClassificationScheme/IClassificationSchemeApplication.cs @@ -0,0 +1,202 @@ +using _0_Framework.Application; +using CompanyManagment.App.Contracts.TemporaryClientRegistration; +using CompanyManagment.App.Contracts.YearlySalary; +using System; +using System.Collections.Generic; +using System.Threading.Tasks; + +namespace CompanyManagment.App.Contracts.ClassificationScheme; + +/// +/// اپلیکیش طرح طبقه بندی مشاغل +/// +public interface IClassificationSchemeApplication +{ + /// + /// پارشیال صفحه ایجاد طرح + /// + /// + /// + Task GetClassificationSchemeList(long workshopId); + + /// + /// ایجاد طرح + /// + /// + /// + Task CreateClassificationScheme(CreateClassificationSchemeDto command); + + /// + /// دریافت اطلاعات طرح برای مودال ویرایش + /// + /// + /// + Task GetClassificationScheme(long id); + + /// + /// دریافت اطلاعات طر برای محاسبات + /// + /// + /// + Task GetClassificationSchemeToCompute(long id); + + /// + /// ویرایش طرح + /// + /// + /// + Task EditClassificationScheme(EditClassificationSchemeDto command); + + + + /// + /// دریافت گروه ها و مشاغلشان برای تب تعیین مشاغل + /// + /// + /// + Task> GetGroupAndJobs(long schemeId); + + + /// + /// دریافت مشاغل گروه توسط آی دی گروه + /// + /// + /// + Task> GetGroupJobs(long groupId); + + /// + /// چک میکند که آی پرسنلی وجود دارد که این شغل به او نسبت داده شده + /// + /// + /// + /// + Task CheckEmployeeHasThisJob(long id, long groupId); + + /// + /// ایجاد مشاغل گروه + /// + /// + /// + /// + Task CreateGroupJobs(List createClassificationGroupJob, List deleteJobList); + + + /// + /// چک میکند که آیا برای این طرح تابحال دستمزدی ایجاد شده یا نه + /// + /// + /// + Task GetSalariesTabData(long schemeId); + + /// + /// در یافت اطلاعات گروه برای لود مودال ایجاد دستمزد های + /// + /// + Task GetGroupToCreateSalariesModal(long schemeId); + + /// + /// ایجاد دستمزدها و ضرایب ریالی هر گروه در هر سال + /// + /// + /// + Task CreateGroupSalaryAndCoefficient(SalaryAndRialCoefficientModel command); + + + + /// + /// دریافت دستمزدها و ضریب ریالی برای مودال ویرایش + /// + /// + /// + /// + /// + Task GetEditSalariesData(long schemeId, string startDate, string endDate); + + /// + /// ثبت ویرایش دستمزدها و ضریب + /// + /// + /// + Task EditGroupSalaryAndCoefficient(SalaryAndRialCoefficientModel command); + + + /// + /// دریافت لیست پرسنل برای تب افزودن پرسنل + /// + /// + /// + Task GetEmployeeDataTab(EmployeeInfoTab command); + + + /// + /// دریافت گروه های طرح + /// + /// + /// + Task> GetGroups(long schemeId); + + /// + /// ذخیره پرسنل افزوده شده در گروه + /// + /// + /// + Task AddEmployeeToGroup(AddEmployeeToGroup command); + + /// + /// انتقال پرسنل به گروه جدید + /// + /// + /// + Task TransferEmployeeToNewGroup(List command); + + /// + /// ذخیره ویرایش گروه پرسنل + /// + /// + /// + Task EditGroupMember(AddEmployeeToGroup command); + + /// + /// ذخیره ویرایش گروه چندگانه پرسنل + /// + /// + /// + Task EditMultipleGroupMember(List command); + + /// + /// دریافت اطلاعات عضویتی پرسنل در گروه + /// + /// + /// + Task GetEmployeeMemberizeData(long employeeId); + + + /// + /// متد محاسبه پایه سنوات برا افراد تک گروه + /// + /// تاریخ شروع طرح + /// تاریخ پاین طرح، اجباری نیست + /// تاریخ شروع قراداد + /// تاریخ پایان قراداد + /// شماره گروه + /// آی دی پرسنل + /// آی دی کارگاه + /// + Task BaseYearComputeOneGroup(DateTime schemeStart, DateTime? schemeEnd, + DateTime contractStart, DateTime contractEnd, string groupNo, long employeeId, long workshopId); + + /// + /// چک کردن امکان حذف طرح + /// + /// + /// + Task CheckToDeleteScheme(long id); + + /// + /// حذف طرح + /// + /// + /// + Task DeleteScheme(long id); + +} \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/ClassificationScheme/SchemeListDto.cs b/CompanyManagment.App.Contracts/ClassificationScheme/SchemeListDto.cs new file mode 100644 index 00000000..f1e8133a --- /dev/null +++ b/CompanyManagment.App.Contracts/ClassificationScheme/SchemeListDto.cs @@ -0,0 +1,32 @@ +using System.ComponentModel.DataAnnotations; + +namespace CompanyManagment.App.Contracts.ClassificationScheme; + +public class SchemeListDto +{ + /// + /// آی دی طرح + /// + public long Id { get; set; } + + /// + /// تاریخ شمول طرح + /// شمسی + /// + public string IncludingDateFa { get; set; } + + + /// + /// تاریخ اجرای طرح + /// شمسی + /// + public string ExecutionDateFa { get; set; } + + + /// + /// نام کامل طراح + /// + public string DesignerFullName { get; set; } + + +} \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/Job/IJobApplication.cs b/CompanyManagment.App.Contracts/Job/IJobApplication.cs index 23c98fff..4d4379cf 100644 --- a/CompanyManagment.App.Contracts/Job/IJobApplication.cs +++ b/CompanyManagment.App.Contracts/Job/IJobApplication.cs @@ -13,6 +13,13 @@ public interface IJobApplication List Search(JobSearchModel searchModel); List SearchJobForMain(JobSearchModel searchModel); //Task> GetJobListByText(string searchtText); + + /// + /// جستجوی مشاغل برای سلکت تو + /// + /// + /// + Task> JobSearchSelect(string searchtText); List GetJobListByText(string searchtText); List GetJobListByWorkshopId(long workshopId); List GetJobListByTextAndWorkshopId(string textSearch, long workshopId); diff --git a/CompanyManagment.App.Contracts/YearlySalary/BaseYearDataViewModel.cs b/CompanyManagment.App.Contracts/YearlySalary/BaseYearDataViewModel.cs index 058e3dc2..b4f9a358 100644 --- a/CompanyManagment.App.Contracts/YearlySalary/BaseYearDataViewModel.cs +++ b/CompanyManagment.App.Contracts/YearlySalary/BaseYearDataViewModel.cs @@ -94,4 +94,9 @@ public class BaseYearDataList /// آیا تاریخ پایان کار دارد /// public bool HasLeftWork { get; set; } + + /// + /// شماره گروه + /// + public string GroupNo { get; set; } } \ No newline at end of file diff --git a/CompanyManagment.Application/ClassificationSchemeApplication.cs b/CompanyManagment.Application/ClassificationSchemeApplication.cs new file mode 100644 index 00000000..fdc2f332 --- /dev/null +++ b/CompanyManagment.Application/ClassificationSchemeApplication.cs @@ -0,0 +1,610 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using _0_Framework.Application; +using _0_Framework.Application.Enums; +using Company.Domain.ClassificationSchemeAgg; +using CompanyManagment.App.Contracts.ClassificationScheme; +using CompanyManagment.App.Contracts.YearlySalary; +using Microsoft.EntityFrameworkCore; + +namespace CompanyManagment.Application; + +public class ClassificationSchemeApplication : IClassificationSchemeApplication +{ + private readonly IClassificationSchemeRepository _classificationSchemeRepository; + private readonly IClassificationGroupRepository _classificationGroupRepository; + private readonly IClassificationGroupSalariesRepository _classificationGroupSalariesRepository; + private readonly IClassificationRialCoefficientRepository _classificationRialCoefficientRepository; + private readonly IClassificationEmployeeRepository _classificationEmployeeRepository; + + public ClassificationSchemeApplication(IClassificationSchemeRepository classificationSchemeRepository, IClassificationGroupRepository classificationGroupRepository, IClassificationGroupSalariesRepository classificationGroupSalariesRepository, IClassificationRialCoefficientRepository classificationRialCoefficientRepository, IClassificationEmployeeRepository classificationEmployeeRepository) + { + _classificationSchemeRepository = classificationSchemeRepository; + _classificationGroupRepository = classificationGroupRepository; + _classificationGroupSalariesRepository = classificationGroupSalariesRepository; + _classificationRialCoefficientRepository = classificationRialCoefficientRepository; + _classificationEmployeeRepository = classificationEmployeeRepository; + } + + public Task GetClassificationSchemeList(long workshopId) + { + return _classificationSchemeRepository.GetClassificationSchemeList(workshopId); + } + + public async Task CreateClassificationScheme(CreateClassificationSchemeDto command) + { + var op = new OperationResult(); + + + #region Validation + + if (!command.ExecutionDateFa.TryToGeorgianDateTime(out var executionDateGr)) + { + return op.Failed("تاریخ اجرا صحیح نمی باشد"); + } + if (!command.IncludingDateFa.TryToGeorgianDateTime(out var includingDateGr)) + { + return op.Failed("تاریخ شمول صحیح نمی باشد"); + } + + + + #endregion + //ایجاد طرح + var create = new Company.Domain.ClassificationSchemeAgg.ClassificationScheme(includingDateGr, executionDateGr, + command.DesignerFullName, command.DesignerPhone, command.WorkshopId, command.TypeOfCoefficient); + _classificationSchemeRepository.Create(create); + await _classificationSchemeRepository.SaveChangesAsync(); + //ایجاد گروه های طرح + var groups = new List() + { + new ClassificationGroup("1",command.WorkshopId,create.id), + new ClassificationGroup("2",command.WorkshopId,create.id), + new ClassificationGroup("3",command.WorkshopId,create.id), + new ClassificationGroup("4",command.WorkshopId,create.id), + new ClassificationGroup("5",command.WorkshopId,create.id), + new ClassificationGroup("6",command.WorkshopId,create.id), + new ClassificationGroup("7",command.WorkshopId,create.id), + new ClassificationGroup("8",command.WorkshopId,create.id), + new ClassificationGroup("9",command.WorkshopId,create.id), + new ClassificationGroup("10",command.WorkshopId,create.id), + new ClassificationGroup("11",command.WorkshopId,create.id), + new ClassificationGroup("12",command.WorkshopId,create.id), + new ClassificationGroup("13",command.WorkshopId,create.id), + new ClassificationGroup("14",command.WorkshopId,create.id), + new ClassificationGroup("15",command.WorkshopId,create.id), + new ClassificationGroup("16",command.WorkshopId,create.id), + new ClassificationGroup("17",command.WorkshopId,create.id), + new ClassificationGroup("18",command.WorkshopId,create.id), + new ClassificationGroup("19",command.WorkshopId,create.id), + new ClassificationGroup("20",command.WorkshopId,create.id), + }; + + await _classificationGroupRepository.CreateGroups(groups); + + + + return op.Succcedded(); + } + + public async Task GetClassificationScheme(long id) + { + return await _classificationSchemeRepository.GetClassificationScheme(id); + } + + + public Task GetClassificationSchemeToCompute(long id) + { + return _classificationSchemeRepository.GetClassificationSchemeToCompute(id); + } + + public async Task EditClassificationScheme(EditClassificationSchemeDto command) + { + var op = new OperationResult(); + + + #region Validation + + if (!command.ExecutionDateFa.TryToGeorgianDateTime(out var executionDateGr)) + { + return op.Failed("تاریخ اجرا صحیح نمی باشد"); + } + if (!command.IncludingDateFa.TryToGeorgianDateTime(out var includingDateGr)) + { + return op.Failed("تاریخ شمول صحیح نمی باشد"); + } + var scheme = _classificationSchemeRepository.Get(command.Id); + if (scheme == null) + return op.Failed("رکورد مورد نظر وجود ندارد"); + #endregion + + + scheme.Edit(includingDateGr, executionDateGr, command.DesignerFullName, command.DesignerPhone, command.TypeOfCoefficient); + await _classificationSchemeRepository.SaveChangesAsync(); + return op.Succcedded(); + } + + public async Task> GetGroupAndJobs(long schemeId) + { + return await _classificationGroupRepository.GetGroupAndJobs(schemeId); + } + + public async Task> GetGroupJobs(long groupId) + { + return await _classificationGroupRepository.GetGroupJobs(groupId); + } + + public async Task CheckEmployeeHasThisJob(long id, long groupId) + { + return await _classificationGroupRepository.CheckEmployeeHasThisJob(id, groupId); + } + + public async Task CreateGroupJobs(List createClassificationGroupJob, List deleteJobList) + { + var newJoblist = new List(); + if (createClassificationGroupJob.Count > 0) + { + foreach (var item in createClassificationGroupJob) + { + var newJob = new ClassificationGroupJob(item.JobId, item.JobName, item.JobCode, item.ClassificationGroupId, + item.GroupNo); + newJoblist.Add(newJob); + } + + } + + + + return await _classificationGroupRepository.CreateJobs(newJoblist, deleteJobList); + } + + public async Task GetSalariesTabData(long schemeId) + { + return await _classificationGroupSalariesRepository.GetSalariesTabData(schemeId); + } + + public async Task GetGroupToCreateSalariesModal(long schemeId) + { + return await _classificationGroupRepository.GetGroupToCreateSalariesModal(schemeId); + } + + + + public async Task CreateGroupSalaryAndCoefficient(SalaryAndRialCoefficientModel command) + { + var op = new OperationResult(); + #region Validation + + if (string.IsNullOrWhiteSpace(command.StartDateFa) || string.IsNullOrWhiteSpace(command.StartDateFa)) + return op.Failed("تاریخ شروع و پایان نمی توانند خالی باشند"); + + + if (command.TypeOfCoefficient == TypeOfCoefficient.RialCoefficient && command.RialCoefficient == 0) + return op.Failed("ضریب ریالی وارد نشده است"); + + + if (command.SalariesAndCoefficientList.Any(x => string.IsNullOrWhiteSpace(x.GroupSalaryStr) || x.GroupSalaryStr == "0")) + return op.Failed("دستمزد تمامی گروه ها می بایست تعیین شود"); + + + if (!command.StartDateFa.TryToGeorgianDateTime(out var startDate)) + { + return op.Failed("تاریخ شروع وارد شده صحیح نمی باشد"); + } + if (!command.EndDateFa.TryToGeorgianDateTime(out var endDate)) + { + return op.Failed("تاریخ پایان وارد شده صحیح نمی باشد"); + } + + if (_classificationGroupSalariesRepository.Exists(x => x.StartDate <= endDate && x.EndDate >= startDate && x.SchemeId == command.SchemeId)) + { + return op.Failed("بازه تاریخ وارد شده با داده های ذخیره شده قبل تداخل دارد"); + + } + + var year = Convert.ToInt32(command.StartDateFa.Substring(0, 4)); + + var endDateYear = Convert.ToInt32(command.EndDateFa.Substring(0, 4)); + if (year != endDateYear) + return op.Failed("سال تاریخ شروع از سال تاریخ پایان متفاوت است"); + #endregion + + + + var createSalaries = new List(); + + foreach (var item in command.SalariesAndCoefficientList) + { + item.GroupSalary = item.GroupSalaryStr.MoneyToDouble(); + var create = new ClassificationGroupSalary(item.ClassificationGroupId, item.GroupNo, item.GroupSalary, startDate, endDate, year, command.SchemeId); + createSalaries.Add(create); + } + + await _classificationGroupSalariesRepository.CreateSalaries(createSalaries); + + if (command.TypeOfCoefficient == TypeOfCoefficient.RialCoefficient) + { + try + { + command.RialCoefficient = command.RialCoefficient; + + await _classificationRialCoefficientRepository.CreateAsync(new ClassificationRialCoefficient(command.SchemeId, + command.RialCoefficient, startDate, endDate, year)); + await _classificationRialCoefficientRepository.SaveChangesAsync(); + } + catch (Exception e) + { + return op.Failed("فرمت مبلغ ضریب ریالی اشتباه است"); + } + } + + op.SendId = command.SchemeId; + return op.Succcedded(); + } + + public async Task GetEditSalariesData(long schemeId, string startDate, string endDate) + { + return await _classificationGroupSalariesRepository.GetEditSalariesData(schemeId, startDate, endDate); + } + + public async Task EditGroupSalaryAndCoefficient(SalaryAndRialCoefficientModel command) + { + var op = new OperationResult(); + #region Validation + + if (string.IsNullOrWhiteSpace(command.StartDateFa) || string.IsNullOrWhiteSpace(command.StartDateFa)) + return op.Failed("تاریخ شروع و پایان نمی توانند خالی باشند"); + + + if (command.TypeOfCoefficient == TypeOfCoefficient.RialCoefficient && command.RialCoefficient == 0) + return op.Failed("ضریب ریالی وارد نشده است"); + + + if (command.SalariesAndCoefficientList.Any(x => string.IsNullOrWhiteSpace(x.GroupSalaryStr) || x.GroupSalaryStr == "0")) + return op.Failed("دستمزد تمامی گروه ها می بایست تعیین شود"); + + + if (!command.StartDateFa.TryToGeorgianDateTime(out var startDate)) + { + return op.Failed("تاریخ شروع وارد شده صحیح نمی باشد"); + } + if (!command.EndDateFa.TryToGeorgianDateTime(out var endDate)) + { + return op.Failed("تاریخ پایان وارد شده صحیح نمی باشد"); + } + + var salariesId = command.SalariesAndCoefficientList.Select(x => x.Id).ToList(); + if (_classificationGroupSalariesRepository.Exists(x => x.StartDate <= endDate && x.EndDate >= startDate && x.SchemeId == command.SchemeId && !salariesId.Contains(x.id))) + { + return op.Failed("بازه تاریخ وارد شده با داده های ذخیره شده قبل تداخل دارد"); + + } + + var year = Convert.ToInt32(command.StartDateFa.Substring(0, 4)); + + var endDateYear = Convert.ToInt32(command.EndDateFa.Substring(0, 4)); + if (year != endDateYear) + return op.Failed("سال تاریخ شروع از سال تاریخ پایان متفاوت است"); + #endregion + + + + foreach (var item in command.SalariesAndCoefficientList) + { + var editSalary = _classificationGroupSalariesRepository.Get(item.Id); + + item.GroupSalary = item.GroupSalaryStr.MoneyToDouble(); + + editSalary.Edit(item.GroupSalary, startDate, endDate, year); + await _classificationGroupSalariesRepository.SaveChangesAsync(); + + } + + if (command.TypeOfCoefficient == TypeOfCoefficient.RialCoefficient) + { + var editRialCoefficient = _classificationRialCoefficientRepository.Get(command.CoefficientId); + editRialCoefficient.Edit(command.RialCoefficient, startDate, endDate, year); + await _classificationRialCoefficientRepository.SaveChangesAsync(); + + } + + return op.Succcedded(); + } + + + + public async Task GetEmployeeDataTab(EmployeeInfoTab command) + { + var employeeInfoTab = new EmployeeInfoTab(); + var employeeInfoList = _classificationEmployeeRepository.GetEmployeeListData(command.SchemeId).GetAwaiter().GetResult(); + if (employeeInfoList.Any()) + { + if (!string.IsNullOrWhiteSpace(command.FullName)) + employeeInfoList = employeeInfoList.Where(x => x.FullName.Contains(command.FullName)).ToList(); + + employeeInfoTab.EmployeeInfoList = employeeInfoList; + employeeInfoTab.FullName = command.FullName; + + + } + + + return employeeInfoTab; + } + + public async Task> GetGroups(long schemeId) + { + return await _classificationGroupRepository.GetGroups(schemeId); + } + + + public async Task AddEmployeeToGroup(AddEmployeeToGroup command) + { + var op = new OperationResult(); + #region Validation + + if (command.GroupId == 0) + return op.Failed("لطفا گروه را انتخاب کنید"); + + if (command.JobId == 0) + return op.Failed("لطفا سمت را انتخاب کنید"); + + #endregion + + + var scheme = _classificationSchemeRepository.GetClassificationSchemeToCompute(command.SchemeId).GetAwaiter().GetResult(); + + + var create = new ClassificationEmployee(scheme.WorkshopId, command.EmployeeId, command.SchemeId, + command.GroupId, command.JobId, scheme.ExecutionDateGr); + await _classificationEmployeeRepository.CreateAsync(create); + await _classificationEmployeeRepository.SaveChangesAsync(); + + return op.Succcedded(); + } + + + public async Task EditGroupMember(AddEmployeeToGroup command) + { + var op = new OperationResult(); + #region Validation + + if (command.GroupId == 0) + return op.Failed("لطفا گروه را انتخاب کنید"); + + if (command.JobId == 0) + return op.Failed("لطفا سمت را انتخاب کنید"); + + #endregion + + + var editGroup = _classificationEmployeeRepository.Get(command.Id); + editGroup.Edit(command.GroupId, command.JobId); + await _classificationEmployeeRepository.SaveChangesAsync(); + + return op.Succcedded(); + } + + public async Task TransferEmployeeToNewGroup(List command) + { + var op = new OperationResult(); + if (command.Count < 1) + return op.Failed("هیچ انتقالی ایجاد نشده است"); + var oldGroupsMemberize = await _classificationEmployeeRepository.GetEmployeeMemberizeData(command[0].EmployeeId); + var scheme = await _classificationSchemeRepository.GetClassificationSchemeToCompute(oldGroupsMemberize[0].SchemeId); + var newStartDateList = new List(); + foreach (var item in command) + { + #region Validation + + if (item.ClassificationGroupId == 0) + return op.Failed("لطفا گروه را انتخاب کنید"); + + if (item.ClassificationGroupJobId == 0) + return op.Failed("لطفا سمت را انتخاب کنید"); + + if (!item.StartGroupDateFa.TryToGeorgianDateTime(out var startDate)) + { + string startDateFaild = "تاریخ شروع" + " " + item.StartGroupDateFa + " " + "صحیح نمیباشد"; + return op.Failed(startDateFaild); + } + + if (item.StartGroupDateFa.Substring(8, 2) != "01") + return op.Failed("تاریخ شروع فقط می تواند یکم هر ماه باشد"); + + if (newStartDateList.Any(x => x == startDate)) + return op.Failed($"تاریخ انتقال {item.StartGroupDateFa} با تاریخ های قبل تداخل دارد"); + newStartDateList.Add(startDate); + + if (oldGroupsMemberize.Any(x => x.StartGroupDate == startDate)) + return op.Failed($"تاریخ انتقال {item.StartGroupDateFa} با تاریخ های قبل تداخل دارد"); + if (startDate < scheme.ExecutionDateGr) + return op.Failed($"تاریخ انتقال {item.StartGroupDateFa} کوچکتر از تاریخ شروع طرح : {scheme.ExecutionDateFa} است"); + + #endregion + } + + var lastRecord = oldGroupsMemberize.FirstOrDefault(x => x.EndGroupDate == null); + + if (lastRecord != null) + { + var edit = _classificationEmployeeRepository.Get(lastRecord.Id); + var firstNewRcord = newStartDateList.MinBy(x => x); + + edit.EditMultipleGroupMember(lastRecord.ClassificationGroupId, lastRecord.ClassificationGroupJobId, lastRecord.StartGroupDate.Value); + + } + + + + newStartDateList = newStartDateList.OrderByDescending(x => x).ToList(); + var lastNewRecord = newStartDateList.MaxBy(x => x); + + + var c = command.FirstOrDefault(x => x.StartGroupDateFa == lastNewRecord.ToFarsi()); + var create = new ClassificationEmployee(scheme.WorkshopId, c.EmployeeId, c.SchemeId, + c.ClassificationGroupId, c.ClassificationGroupJobId, lastNewRecord.Date); + await _classificationEmployeeRepository.CreateAsync(create); + newStartDateList.Remove(lastNewRecord); + var createList = new List(); + foreach (var item in newStartDateList) + { + var commandEdit = command.FirstOrDefault(x => x.StartGroupDateFa == item.ToFarsi()); + var createCommand = new ClassificationEmployee(scheme.WorkshopId, commandEdit.EmployeeId, commandEdit.SchemeId, + commandEdit.ClassificationGroupId, commandEdit.ClassificationGroupJobId, item); + createList.Add(createCommand); + lastNewRecord = item; + } + + + if (createList.Any()) + { + createList = createList.OrderBy(x => x.StartGroupDate).ToList(); + await _classificationEmployeeRepository.CreateTransferRange(createList); + } + + + await _classificationEmployeeRepository.SaveChangesAsync(); + + return op.Succcedded(); + + + + } + public async Task EditMultipleGroupMember(List command) + { + var op = new OperationResult(); + var zeroItem = command.First(x => x.Id == 0); + var oldGroupsMemberize = await _classificationEmployeeRepository.GetEmployeeMemberizeData(zeroItem.EmployeeId); + var scheme = await _classificationSchemeRepository.GetClassificationSchemeToCompute(zeroItem.SchemeId); + command = command.Where(x=>x.Id != 0).ToList(); + var newStartDateList = new List(); + foreach (var item in command) + { + #region Validation + + if (item.ClassificationGroupId == 0) + return op.Failed("لطفا گروه را انتخاب کنید"); + + if (item.ClassificationGroupJobId == 0) + return op.Failed("لطفا سمت را انتخاب کنید"); + + if (!item.StartGroupDateFa.TryToGeorgianDateTime(out var startDate)) + { + string startDateFaild = "تاریخ شروع" + " " + item.StartGroupDateFa + " " + "صحیح نمیباشد"; + return op.Failed(startDateFaild); + } + if (item.StartGroupDateFa.Substring(8, 2) != "01") + return op.Failed("تاریخ شروع فقط می تواند یکم هر ماه باشد"); + + if (oldGroupsMemberize.Any(x=>x.StartGroupDate == startDate && x.Id != item.Id)) + return op.Failed($"تاریخ {item.StartGroupDateFa} با تاریخ های قبل یا بعد از خود تداخل دارد"); + + if (startDate < scheme.ExecutionDateGr) + return op.Failed($"تاریخ انتقال {item.StartGroupDateFa} کوچکتر از تاریخ شروع طرح : {scheme.ExecutionDateFa} است"); + newStartDateList.Add(startDate); + #endregion + } + + foreach (var item in command) + { + var edit = _classificationEmployeeRepository.Get(item.Id); + + + edit.EditMultipleGroupMember(item.ClassificationGroupId, item.ClassificationGroupJobId, item.StartGroupDateFa.ToGeorgianDateTime()); + + + + + } + + var removeItemIdList = command.Select(x => x.Id).ToList(); + var toBeRemove = removeItemIdList.Any() ? oldGroupsMemberize.Where(x=> !removeItemIdList.Contains(x.Id)).Select(x=>x.Id).ToList() : oldGroupsMemberize.Select(x=>x.Id).ToList(); + if (toBeRemove.Any()) + { + var getRemoveList =await _classificationEmployeeRepository.GetListByIdList(toBeRemove); + + await _classificationEmployeeRepository.RemoveRangeByEdit(getRemoveList); + } + + await _classificationEmployeeRepository.SaveChangesAsync(); + return op.Succcedded(); + } + + + /// + /// دریافت اطلاعات عضویتی پرسنل در گروه + /// + /// + /// + public async Task GetEmployeeMemberizeData(long employeeId) + { + var result = new EditEmployeeGroup(); + var res = await _classificationEmployeeRepository.GetEmployeeMemberizeData(employeeId); + + if (res.Any()) + { + result.HasMultipleGroup = res.Count > 1; + result.EditEmployeeGroupLists = res; + } + + return result; + + + } + + public async Task BaseYearComputeOneGroup(DateTime schemeStart, DateTime? schemeEnd, DateTime contractStart, DateTime contractEnd, + string groupNo, long employeeId, long workshopId) + { + return await _classificationSchemeRepository.BaseYearComputeOneGroup(schemeStart, schemeEnd, contractStart, + contractEnd, groupNo, employeeId, workshopId); + } + + public async Task CheckToDeleteScheme(long id) + { + var op = new CheckStatusToDeleteScheme(); + var scheme = _classificationSchemeRepository.Get(id); + if (scheme != null) + { + var employeeInfoList =await _classificationEmployeeRepository.GetEmployeeListData(id); + var anyHasGroup = employeeInfoList.Any(x => x.HasGroup); + if (employeeInfoList.Any() && anyHasGroup) + { + + op.DeleteSchemeStatus = DeleteSchemeStatus.ConfirmationNeeded; + op.Message = "برای این طرح پرسنل افزوده شده است، آیا از حذف طرح اطمینان دارید"; + return op; + + } + else + { + + op.DeleteSchemeStatus = DeleteSchemeStatus.Valid; + op.Message = "مجاز برای حذف"; + return op; + } + + } + + op.DeleteSchemeStatus = DeleteSchemeStatus.NotValid; + op.Message = "یافت نشد"; + return op; + } + + public async Task DeleteScheme(long id) + { + var op = new OperationResult(); + var scheme = _classificationSchemeRepository.Get(id); + + if (scheme != null) + { + await _classificationSchemeRepository.DeleteClassificationScheme(id); + return op.Succcedded(); + } + + return op.Failed("یافت نشد"); + } +} \ No newline at end of file diff --git a/CompanyManagment.Application/JobApplication.cs b/CompanyManagment.Application/JobApplication.cs index c48292ad..c10c76fa 100644 --- a/CompanyManagment.Application/JobApplication.cs +++ b/CompanyManagment.Application/JobApplication.cs @@ -1,4 +1,5 @@ using System.Collections.Generic; +using System.Threading.Tasks; using _0_Framework.Application; using Company.Domain.JobAgg; using CompanyManagment.App.Contracts.Job; @@ -66,6 +67,11 @@ public class JobApplication : IJobApplication return _jobRepository.SearchJobForMain(searchModel); } + public async Task> JobSearchSelect(string searchtText) + { + return await _jobRepository.JobSearchSelect(searchtText); + } + //public Task> GetJobListByText(string searchtText) //{ // return _jobRepository.GetJobListByText(searchtText); diff --git a/CompanyManagment.Application/WorkshopAppliction.cs b/CompanyManagment.Application/WorkshopAppliction.cs index c13a9203..d98ac684 100644 --- a/CompanyManagment.Application/WorkshopAppliction.cs +++ b/CompanyManagment.Application/WorkshopAppliction.cs @@ -124,38 +124,37 @@ public class WorkshopAppliction : IWorkshopApplication return operation.Failed("لطفا جمعیت شهر را انتخاب کنید"); } - if (command.IsClassified) - { - if (string.IsNullOrWhiteSpace(command.CreatePlan.ExecutionDateFa) || - command.CreatePlan.ExecutionDateFa.Length < 10) - return operation.Failed("تاریخ اجرای طرح را بصورت صحیح وارد کنید"); - if (string.IsNullOrWhiteSpace(command.CreatePlan.IncludingDateFa) || - command.CreatePlan.IncludingDateFa.Length < 10) - return operation.Failed("تاریخ شمول طرح را بصورت صحیح وارد کنید"); - var groupCounter = 0; - // var planEmployeeCounter = command.CreatePlan.EditWorkshopPlanEmployeeList == null ? 0 : command.CreatePlan.EditWorkshopPlanEmployeeList.Count; - for (int i = 0; i <= command.CreatePlan.EditGroupPlanlist.Count - 1; i++) - { - if (!string.IsNullOrWhiteSpace(command.CreatePlan.EditGroupPlanlist[i].AnnualSalaryStr) - && !string.IsNullOrWhiteSpace(command.CreatePlan.EditGroupPlanlist[i].BaseSalaryStr) - && !string.IsNullOrWhiteSpace(command.CreatePlan.EditGroupPlanlist[i].JobSalaryStr) - && command.CreatePlan.EditGroupPlanlist[i].JobIdList.Count > 0) - { - groupCounter += 1; - } - } + //if (command.IsClassified) + //{ + // if (string.IsNullOrWhiteSpace(command.CreatePlan.ExecutionDateFa) || command.CreatePlan.ExecutionDateFa.Length < 10) + // return operation.Failed("تاریخ اجرای طرح را بصورت صحیح وارد کنید"); + // if(string.IsNullOrWhiteSpace(command.CreatePlan.IncludingDateFa) || command.CreatePlan.IncludingDateFa.Length <10) + // return operation.Failed("تاریخ شمول طرح را بصورت صحیح وارد کنید"); + // var groupCounter = 0; + // // var planEmployeeCounter = command.CreatePlan.EditWorkshopPlanEmployeeList == null ? 0 : command.CreatePlan.EditWorkshopPlanEmployeeList.Count; + // for (int i = 0; i <= command.CreatePlan.EditGroupPlanlist.Count - 1; i++) + // { + // if (!string.IsNullOrWhiteSpace(command.CreatePlan.EditGroupPlanlist[i].AnnualSalaryStr) + // && !string.IsNullOrWhiteSpace(command.CreatePlan.EditGroupPlanlist[i].BaseSalaryStr) + // && !string.IsNullOrWhiteSpace(command.CreatePlan.EditGroupPlanlist[i].JobSalaryStr) + // && command.CreatePlan.EditGroupPlanlist[i].JobIdList.Count > 0) + // { + // groupCounter += 1; - if (groupCounter >= 1) - { - createPlanValidations = true; - } - else - { - createPlanValidations = false; - return operation.Failed("وارد کردن اطلاعات تمامی گروه ها الزامی است"); - } - } + // } + // } + // if (groupCounter >= 1) + // { + // createPlanValidations = true; + + // } + // else + // { + // createPlanValidations = false; + // return operation.Failed("وارد کردن اطلاعات تمامی گروه ها الزامی است"); + // } + //} //if (string.IsNullOrWhiteSpace(command.TypeOfInsuranceSend)) // return operation.Failed("لطفا نوع ارسال لیست بیمه را مشخص کنید"); var account = new AccountViewModel(); diff --git a/CompanyManagment.EFCore/CompanyContext.cs b/CompanyManagment.EFCore/CompanyContext.cs index 194f33c3..cd074c41 100644 --- a/CompanyManagment.EFCore/CompanyContext.cs +++ b/CompanyManagment.EFCore/CompanyContext.cs @@ -7,6 +7,7 @@ using Company.Domain.Board; using Company.Domain.BoardType; using Company.Domain.ChapterAgg; using Company.Domain.CheckoutAgg; +using Company.Domain.ClassificationSchemeAgg; using Company.Domain.ClassifiedSalaryAgg; using Company.Domain.ClientEmployeeWorkshopAgg; using Company.Domain.Contact2Agg; @@ -230,6 +231,42 @@ public class CompanyContext : DbContext public DbSet PlanPercentages { get; set; } + #region ClassificationScheme + + /// + /// جدول طرح طبقه بندی + /// + public DbSet ClassificationSchemes { get; set; } + + /// + /// جدول گروه های طرح + /// + public DbSet ClassificationGroups { get; set; } + + /// + /// جدول ضرایب ریالی + /// + public DbSet ClassificationRialCoefficients { get; set; } + + + /// + /// جدول شغل های گروه + /// + public DbSet ClassificationGroupJobs { get; set; } + + /// + /// جدول مزد شغل گروه ها + /// + public DbSet ClassificationGroupSalaries { get; set; } + + /// + /// جدول پرسنل طرح + /// + public DbSet ClassificationEmployees { get; set; } + + + #endregion + #region TemporaryClientRegisteration public DbSet ContractingPartyTemps { get; set; } diff --git a/CompanyManagment.EFCore/Mapping/ClassificationEmployeeMapping.cs b/CompanyManagment.EFCore/Mapping/ClassificationEmployeeMapping.cs new file mode 100644 index 00000000..44687e7e --- /dev/null +++ b/CompanyManagment.EFCore/Mapping/ClassificationEmployeeMapping.cs @@ -0,0 +1,22 @@ +using Company.Domain.ClassificationSchemeAgg; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Metadata.Builders; + +namespace CompanyManagment.EFCore.Mapping; + +public class ClassificationEmployeeMapping : IEntityTypeConfiguration +{ + public void Configure(EntityTypeBuilder builder) + { + builder.ToTable("ClassificationEmployee"); + builder.HasKey(x => x.id); + + builder.Property(x => x.StartGroupDate).IsRequired(false); + builder.Property(x => x.EndGroupDate).IsRequired(false); + + + builder.HasOne(x => x.ClassificationGroup) + .WithMany(x => x.ClassificationEmployees) + .HasForeignKey(x => x.ClassificationGroupId); + } +} \ No newline at end of file diff --git a/CompanyManagment.EFCore/Mapping/ClassificationGroupJobMapping.cs b/CompanyManagment.EFCore/Mapping/ClassificationGroupJobMapping.cs new file mode 100644 index 00000000..f10497c6 --- /dev/null +++ b/CompanyManagment.EFCore/Mapping/ClassificationGroupJobMapping.cs @@ -0,0 +1,22 @@ +using Company.Domain.ClassificationSchemeAgg; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Metadata.Builders; + +namespace CompanyManagment.EFCore.Mapping; + +public class ClassificationGroupJobMapping : IEntityTypeConfiguration +{ + public void Configure(EntityTypeBuilder builder) + { + builder.ToTable("ClassificationGroupJobs"); + builder.HasKey(x => x.id); + + builder.Property(x => x.JobName).HasMaxLength(255); + builder.Property(x => x.JobCode).HasMaxLength(100); + builder.Property(x => x.GroupNo).HasMaxLength(2); + + builder.HasOne(x => x.ClassificationGroup) + .WithMany(x => x.ClassificationGroupJobs) + .HasForeignKey(x => x.ClassificationGroupId); + } +} \ No newline at end of file diff --git a/CompanyManagment.EFCore/Mapping/ClassificationGroupMapping.cs b/CompanyManagment.EFCore/Mapping/ClassificationGroupMapping.cs new file mode 100644 index 00000000..1cb0b761 --- /dev/null +++ b/CompanyManagment.EFCore/Mapping/ClassificationGroupMapping.cs @@ -0,0 +1,35 @@ +using Company.Domain.ClassificationSchemeAgg; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Metadata.Builders; + +namespace CompanyManagment.EFCore.Mapping; + +public class ClassificationGroupMapping : IEntityTypeConfiguration +{ + public void Configure(EntityTypeBuilder builder) + { + builder.ToTable("ClassificationGroups"); + builder.HasKey(x => x.id); + + builder.Property(x => x.GroupNo).HasMaxLength(2); + + builder.HasOne(x => x.ClassificationScheme) + .WithMany(x => x.ClassificationGroups) + .HasForeignKey(x => x.ClassificationSchemeId); + + + builder.HasMany(x => x.ClassificationGroupJobs) + .WithOne(x => x.ClassificationGroup) + .HasForeignKey(x => x.ClassificationGroupId); + + + builder.HasMany(x => x.ClassificationEmployees) + .WithOne(x => x.ClassificationGroup) + .HasForeignKey(x => x.ClassificationGroupId); + + + builder.HasMany(x => x.ClassificationGroupSalaries) + .WithOne(x => x.ClassificationGroup) + .HasForeignKey(x => x.ClassificationGroupId); + } +} \ No newline at end of file diff --git a/CompanyManagment.EFCore/Mapping/ClassificationGroupSalaryMapping.cs b/CompanyManagment.EFCore/Mapping/ClassificationGroupSalaryMapping.cs new file mode 100644 index 00000000..2230236c --- /dev/null +++ b/CompanyManagment.EFCore/Mapping/ClassificationGroupSalaryMapping.cs @@ -0,0 +1,20 @@ +using Company.Domain.ClassificationSchemeAgg; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Metadata.Builders; + +namespace CompanyManagment.EFCore.Mapping; + +public class ClassificationGroupSalaryMapping : IEntityTypeConfiguration +{ + public void Configure(EntityTypeBuilder builder) + { + builder.ToTable("ClassificationGroupSalaries"); + builder.HasKey(x => x.id); + + builder.Property(x => x.GroupNo).HasMaxLength(2); + + builder.HasOne(x => x.ClassificationGroup) + .WithMany(x => x.ClassificationGroupSalaries) + .HasForeignKey(x => x.ClassificationGroupId); + } +} \ No newline at end of file diff --git a/CompanyManagment.EFCore/Mapping/ClassificationRialCoefficientMapping.cs b/CompanyManagment.EFCore/Mapping/ClassificationRialCoefficientMapping.cs new file mode 100644 index 00000000..ecb31092 --- /dev/null +++ b/CompanyManagment.EFCore/Mapping/ClassificationRialCoefficientMapping.cs @@ -0,0 +1,18 @@ +using Company.Domain.ClassificationSchemeAgg; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Metadata.Builders; + +namespace CompanyManagment.EFCore.Mapping; + +public class ClassificationRialCoefficientMapping : IEntityTypeConfiguration +{ + public void Configure(EntityTypeBuilder builder) + { + builder.ToTable("ClassificationRialCoefficients"); + builder.HasKey(x => x.id); + + builder.HasOne(x => x.ClassificationScheme) + .WithMany(x => x.ClassificationRialCoefficients) + .HasForeignKey(x => x.ClassificationSchemeId); + } +} \ No newline at end of file diff --git a/CompanyManagment.EFCore/Mapping/ClassificationSchemeMapping.cs b/CompanyManagment.EFCore/Mapping/ClassificationSchemeMapping.cs new file mode 100644 index 00000000..b3c25c15 --- /dev/null +++ b/CompanyManagment.EFCore/Mapping/ClassificationSchemeMapping.cs @@ -0,0 +1,38 @@ +using System; +using _0_Framework.Application.Enums; +using Company.Domain.ClassificationSchemeAgg; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Metadata.Builders; + +namespace CompanyManagment.EFCore.Mapping; + +public class ClassificationSchemeMapping : IEntityTypeConfiguration +{ + public void Configure(EntityTypeBuilder builder) + { + builder.ToTable("ClassificationSchemes"); + builder.HasKey(x => x.id); + + + builder.Property(x => x.IncludingDateGr); + builder.Property(x => x.ExecutionDateGr); + builder.Property(x => x.EndSchemeDateGr).IsRequired(false); + builder.Property(x => x.DesignerFullName).HasMaxLength(50); + builder.Property(x => x.DesignerPhone).HasMaxLength(20); + builder.Property(x => x.WorkshopId); + builder.Property(x => x.WorkshopId); + builder.Property(x => x.TypeOfCoefficient).HasConversion( + v => v.ToString(), + v => (TypeOfCoefficient)Enum.Parse(typeof(TypeOfCoefficient), v)).HasMaxLength(30); + + + builder.HasMany(x => x.ClassificationGroups) + .WithOne(x => x.ClassificationScheme) + .HasForeignKey(x => x.ClassificationSchemeId); + + builder.HasMany(x => x.ClassificationRialCoefficients) + .WithOne(x => x.ClassificationScheme) + .HasForeignKey(x => x.ClassificationSchemeId); + + } +} \ No newline at end of file diff --git a/CompanyManagment.EFCore/Migrations/20260101112146_ClassificationScheme.Designer.cs b/CompanyManagment.EFCore/Migrations/20260101112146_ClassificationScheme.Designer.cs new file mode 100644 index 00000000..c13eaba7 --- /dev/null +++ b/CompanyManagment.EFCore/Migrations/20260101112146_ClassificationScheme.Designer.cs @@ -0,0 +1,11806 @@ +// +using System; +using System.Collections.Generic; +using CompanyManagment.EFCore; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; + +#nullable disable + +namespace CompanyManagment.EFCore.Migrations +{ + [DbContext(typeof(CompanyContext))] + [Migration("20260101112146_ClassificationScheme")] + partial class ClassificationScheme + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "10.0.1") + .HasAnnotation("Relational:MaxIdentifierLength", 128); + + SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); + + modelBuilder.Entity("Company.Domain.AdminMonthlyOverviewAgg.AdminMonthlyOverview", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Month") + .HasColumnType("int"); + + b.Property("Status") + .IsRequired() + .HasMaxLength(155) + .HasColumnType("nvarchar(155)"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("Year") + .HasColumnType("int"); + + b.HasKey("id"); + + b.ToTable("AdminMonthlyOverviews"); + }); + + modelBuilder.Entity("Company.Domain.AndroidApkVersionAgg.AndroidApkVersion", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("ApkType") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("IsActive") + .IsRequired() + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("IsForce") + .HasColumnType("bit"); + + b.Property("Path") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Title") + .HasMaxLength(200) + .HasColumnType("nvarchar(200)"); + + b.Property("VersionCode") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("VersionName") + .HasMaxLength(35) + .HasColumnType("nvarchar(35)"); + + b.HasKey("id"); + + b.ToTable("AndroidApkVersions", (string)null); + }); + + modelBuilder.Entity("Company.Domain.AuthorizedBankDetailsAgg.AuthorizedBankDetails", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("AccountNumber") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("BankName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("CardNumber") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("IBan") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.HasKey("id"); + + b.ToTable("AuthorizedBankDetails", (string)null); + }); + + modelBuilder.Entity("Company.Domain.AuthorizedPersonAgg.AuthorizedPerson", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BirthDate") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DeathStatus") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("FatherName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("FirstName") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("Gender") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("IsVerified") + .HasColumnType("bit"); + + b.Property("LastName") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("NationalCode") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("ShenasnameSeri") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("ShenasnameSerial") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("ShenasnamehNumber") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("VerificationDate") + .HasColumnType("datetime2"); + + b.HasKey("id"); + + b.HasIndex("NationalCode") + .IsUnique(); + + b.ToTable("AuthorizedPersons", (string)null); + }); + + modelBuilder.Entity("Company.Domain.BankAgg.Bank", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BankLogoMediaId") + .HasColumnType("bigint"); + + b.Property("BankName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.HasKey("id"); + + b.ToTable("Banks", (string)null); + }); + + modelBuilder.Entity("Company.Domain.BillAgg.EntityBill", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Appointed") + .HasColumnType("nvarchar(max)"); + + b.Property("Contact") + .HasColumnType("nvarchar(max)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Description") + .HasColumnType("nvarchar(max)"); + + b.Property("IsActiveString") + .HasColumnType("nvarchar(max)"); + + b.Property("ProcessingStage") + .HasColumnType("nvarchar(max)"); + + b.Property("SubjectBill") + .IsRequired() + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.HasKey("id"); + + b.ToTable("TextManager_Bill", (string)null); + }); + + modelBuilder.Entity("Company.Domain.Board.Board", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BoardChairman") + .HasColumnType("nvarchar(max)"); + + b.Property("BoardType_Id") + .HasColumnType("int"); + + b.Property("Branch") + .HasColumnType("nvarchar(max)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DisputeResolutionPetitionDate") + .HasColumnType("datetime2"); + + b.Property("ExpertReport") + .HasColumnType("nvarchar(max)"); + + b.Property("File_Id") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("BoardType_Id"); + + b.HasIndex("File_Id"); + + b.ToTable("Boards", (string)null); + }); + + modelBuilder.Entity("Company.Domain.BoardType.BoardType", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("Title") + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + b.ToTable("BoardTypes", (string)null); + }); + + modelBuilder.Entity("Company.Domain.CameraBugReportAgg.CameraBugReport", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("AccountId") + .HasColumnType("bigint"); + + b.Property("AppVersion") + .HasColumnType("nvarchar(max)"); + + b.Property("BatteryLevel") + .HasColumnType("int"); + + b.Property("BuildNumber") + .HasColumnType("nvarchar(max)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Description") + .HasColumnType("nvarchar(max)"); + + b.Property("DeviceId") + .HasColumnType("nvarchar(max)"); + + b.Property("DeviceModel") + .HasColumnType("nvarchar(max)"); + + b.Property("Flavor") + .HasColumnType("nvarchar(max)"); + + b.Property("InstallTime") + .HasColumnType("datetime2"); + + b.Property("IsCharging") + .HasColumnType("bit"); + + b.Property("LastUpdateTime") + .HasColumnType("datetime2"); + + b.Property("Manufacturer") + .HasColumnType("nvarchar(max)"); + + b.Property("MemoryInMB") + .HasColumnType("int"); + + b.Property("NetworkType") + .HasColumnType("nvarchar(max)"); + + b.Property("OsVersion") + .HasColumnType("nvarchar(max)"); + + b.Property("PackageName") + .HasColumnType("nvarchar(max)"); + + b.Property("Platform") + .HasColumnType("nvarchar(max)"); + + b.Property("Priority") + .HasColumnType("int"); + + b.Property("ScreenResolution") + .HasColumnType("nvarchar(max)"); + + b.Property("StackTrace") + .HasColumnType("nvarchar(max)"); + + b.Property("Status") + .HasColumnType("int"); + + b.Property("StorageInMB") + .HasColumnType("int"); + + b.Property("Title") + .HasColumnType("nvarchar(max)"); + + b.Property("Type") + .HasColumnType("int"); + + b.Property("UpdateDate") + .HasColumnType("datetime2"); + + b.Property("UserEmail") + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + b.ToTable("CameraBugReports"); + }); + + modelBuilder.Entity("Company.Domain.CameraBugReportAgg.CameraBugReportLog", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CameraBugReportId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Message") + .HasColumnType("nvarchar(max)"); + + b.Property("Timestamp") + .HasColumnType("datetime2"); + + b.HasKey("id"); + + b.HasIndex("CameraBugReportId"); + + b.ToTable("CameraBugReportLogs"); + }); + + modelBuilder.Entity("Company.Domain.CameraBugReportAgg.CameraBugReportScreenshot", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Base64Data") + .HasColumnType("nvarchar(max)"); + + b.Property("CameraBugReportId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("FileName") + .HasColumnType("nvarchar(max)"); + + b.Property("UploadDate") + .HasColumnType("datetime2"); + + b.HasKey("id"); + + b.HasIndex("CameraBugReportId"); + + b.ToTable("CameraBugReportScreenshots"); + }); + + modelBuilder.Entity("Company.Domain.ChapterAgg.EntityChapter", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Chapter") + .IsRequired() + .HasMaxLength(60) + .HasColumnType("nvarchar(60)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("IsActiveString") + .HasColumnType("nvarchar(max)"); + + b.Property("Subtitle_Id") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("Subtitle_Id"); + + b.ToTable("TextManager_Chapter", (string)null); + }); + + modelBuilder.Entity("Company.Domain.CheckoutAgg.Checkout", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("AbsenceDeduction") + .HasColumnType("float"); + + b.Property("AbsencePeriod") + .HasColumnType("float"); + + b.Property("AbsenceValue") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("ArchiveCode") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("AverageHoursPerDay") + .HasColumnType("float"); + + b.Property("BaseYearsPay") + .HasColumnType("float"); + + b.Property("BonusesPay") + .HasColumnType("float"); + + b.Property("ConsumableItems") + .HasColumnType("float"); + + b.Property("ContractEnd") + .HasColumnType("datetime2"); + + b.Property("ContractId") + .HasColumnType("bigint"); + + b.Property("ContractNo") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("ContractStart") + .HasColumnType("datetime2"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("CreditLeaves") + .HasColumnType("float"); + + b.Property("DateOfBirth") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("EmployeeFullName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("EmployeeMandatoryHours") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("FamilyAllowance") + .HasColumnType("float"); + + b.Property("FathersName") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("FridayPay") + .HasColumnType("float"); + + b.Property("FridayWorkValue") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("HasAmountConflict") + .HasColumnType("bit"); + + b.Property("HasInsuranceShareTheSameAsList") + .HasColumnType("bit"); + + b.Property("HasRollCall") + .HasColumnType("bit"); + + b.Property("HousingAllowance") + .HasColumnType("float"); + + b.Property("InstallmentDeduction") + .HasColumnType("float"); + + b.Property("InsuranceDeduction") + .HasColumnType("float"); + + b.Property("IsActiveString") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("IsUpdateNeeded") + .HasColumnType("bit"); + + b.Property("LeaveCheckout") + .HasColumnType("bit"); + + b.Property("LeavePay") + .HasColumnType("float"); + + b.Property("MarriedAllowance") + .HasColumnType("float"); + + b.Property("MissionPay") + .HasColumnType("float"); + + b.Property("Month") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("MonthlySalary") + .HasColumnType("float"); + + b.Property("NationalCode") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("NightworkPay") + .HasColumnType("float"); + + b.Property("OverNightWorkValue") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("OverTimeWorkValue") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("OvertimePay") + .HasColumnType("float"); + + b.Property("PersonnelCode") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("RewardPay") + .HasColumnType("float"); + + b.Property("RotatingShiftValue") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("SalaryAidDeduction") + .HasColumnType("float"); + + b.Property("ShiftPay") + .HasColumnType("float"); + + b.Property("Signature") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("SumOfWorkingDays") + .HasMaxLength(6) + .HasColumnType("nvarchar(6)"); + + b.Property("TaxDeducation") + .HasColumnType("float"); + + b.Property("TotalClaims") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("TotalDayOfBunosesCompute") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("TotalDayOfLeaveCompute") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("TotalDayOfYearsCompute") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("TotalDeductions") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("TotalPayment") + .HasColumnType("float"); + + b.Property("WorkingHoursId") + .HasColumnType("bigint"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("WorkshopName") + .HasMaxLength(70) + .HasColumnType("nvarchar(70)"); + + b.Property("Year") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)"); + + b.Property("YearsPay") + .HasColumnType("float"); + + b.HasKey("id"); + + b.HasIndex("WorkshopId"); + + b.ToTable("Checkouts", (string)null); + }); + + modelBuilder.Entity("Company.Domain.CheckoutAgg.CheckoutWarningMessage", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CheckoutId") + .HasColumnType("bigint"); + + b.Property("TypeOfCheckoutWarning") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("WarningMessage") + .HasMaxLength(150) + .HasColumnType("nvarchar(150)"); + + b.HasKey("id"); + + b.HasIndex("CheckoutId"); + + b.ToTable("CheckoutWarningMessage", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ClassificationSchemeAgg.ClassificationEmployee", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("ClassificationGroupId") + .HasColumnType("bigint"); + + b.Property("ClassificationGroupJobId") + .HasColumnType("bigint"); + + b.Property("ClassificationSchemeId") + .HasColumnType("bigint"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("EndGroupDate") + .HasColumnType("datetime2"); + + b.Property("StartGroupDate") + .HasColumnType("datetime2"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("ClassificationGroupId"); + + b.ToTable("ClassificationEmployee", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ClassificationSchemeAgg.ClassificationGroup", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("ClassificationSchemeId") + .HasColumnType("bigint"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("GroupNo") + .HasMaxLength(2) + .HasColumnType("nvarchar(2)"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("ClassificationSchemeId"); + + b.ToTable("ClassificationGroups", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ClassificationSchemeAgg.ClassificationGroupJob", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("ClassificationGroupId") + .HasColumnType("bigint"); + + b.Property("GroupNo") + .HasMaxLength(2) + .HasColumnType("nvarchar(2)"); + + b.Property("JobCode") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("JobId") + .HasColumnType("bigint"); + + b.Property("JobName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.HasKey("id"); + + b.HasIndex("ClassificationGroupId"); + + b.ToTable("ClassificationGroupJobs", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ClassificationSchemeAgg.ClassificationGroupSalary", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("ClassificationGroupId") + .HasColumnType("bigint"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EndDate") + .HasColumnType("datetime2"); + + b.Property("GroupNo") + .HasMaxLength(2) + .HasColumnType("nvarchar(2)"); + + b.Property("GroupSalary") + .HasColumnType("float"); + + b.Property("SchemeId") + .HasColumnType("bigint"); + + b.Property("StartDate") + .HasColumnType("datetime2"); + + b.Property("Year") + .HasColumnType("int"); + + b.HasKey("id"); + + b.HasIndex("ClassificationGroupId"); + + b.ToTable("ClassificationGroupSalaries", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ClassificationSchemeAgg.ClassificationRialCoefficient", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("ClassificationSchemeId") + .HasColumnType("bigint"); + + b.Property("EndDate") + .HasColumnType("datetime2"); + + b.Property("RialCoefficient") + .HasColumnType("float"); + + b.Property("StartDate") + .HasColumnType("datetime2"); + + b.Property("Year") + .HasColumnType("int"); + + b.HasKey("id"); + + b.HasIndex("ClassificationSchemeId"); + + b.ToTable("ClassificationRialCoefficients", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ClassificationSchemeAgg.ClassificationScheme", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DesignerFullName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("DesignerPhone") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("EndSchemeDateGr") + .HasColumnType("datetime2"); + + b.Property("ExecutionDateGr") + .HasColumnType("datetime2"); + + b.Property("IncludingDateGr") + .HasColumnType("datetime2"); + + b.Property("TypeOfCoefficient") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.ToTable("ClassificationSchemes", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ClassifiedSalaryAgg.ClassifiedSalary", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EndDate") + .HasColumnType("datetime2"); + + b.Property("Group1") + .HasColumnType("float"); + + b.Property("Group10") + .HasColumnType("float"); + + b.Property("Group11") + .HasColumnType("float"); + + b.Property("Group12") + .HasColumnType("float"); + + b.Property("Group13") + .HasColumnType("float"); + + b.Property("Group14") + .HasColumnType("float"); + + b.Property("Group15") + .HasColumnType("float"); + + b.Property("Group16") + .HasColumnType("float"); + + b.Property("Group17") + .HasColumnType("float"); + + b.Property("Group18") + .HasColumnType("float"); + + b.Property("Group19") + .HasColumnType("float"); + + b.Property("Group2") + .HasColumnType("float"); + + b.Property("Group20") + .HasColumnType("float"); + + b.Property("Group3") + .HasColumnType("float"); + + b.Property("Group4") + .HasColumnType("float"); + + b.Property("Group5") + .HasColumnType("float"); + + b.Property("Group6") + .HasColumnType("float"); + + b.Property("Group7") + .HasColumnType("float"); + + b.Property("Group8") + .HasColumnType("float"); + + b.Property("Group9") + .HasColumnType("float"); + + b.Property("StartDate") + .HasColumnType("datetime2"); + + b.Property("Year") + .HasColumnType("int"); + + b.HasKey("id"); + + b.ToTable("ClassifiedSalaries", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ClientEmployeeWorkshopAgg.ClientEmployeeWorkshop", b => + { + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.HasKey("WorkshopId", "EmployeeId"); + + b.HasIndex("EmployeeId"); + + b.ToTable("ClientWorkshopEmployee", (string)null); + }); + + modelBuilder.Entity("Company.Domain.Contact2Agg.EntityContact", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("IsActiveString") + .HasColumnType("nvarchar(max)"); + + b.Property("NameContact") + .HasColumnType("nvarchar(max)"); + + b.Property("Signature") + .HasColumnType("nvarchar(max)"); + + b.HasKey("id"); + + b.ToTable("TextManager_Contact", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ContactUsAgg.ContactUs", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Email") + .HasMaxLength(200) + .HasColumnType("nvarchar(200)"); + + b.Property("FirstName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("FullName") + .HasMaxLength(200) + .HasColumnType("nvarchar(200)"); + + b.Property("LastName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("Message") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("PhoneNumber") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("Title") + .HasMaxLength(200) + .HasColumnType("nvarchar(200)"); + + b.HasKey("id"); + + b.ToTable("ContactUs"); + }); + + modelBuilder.Entity("Company.Domain.ContarctingPartyAgg.PersonalContractingParty", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Address") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("AgentPhone") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("ArchiveCode") + .HasColumnType("int"); + + b.Property("BlockTimes") + .HasColumnType("int"); + + b.Property("CeoFName") + .HasColumnType("nvarchar(max)"); + + b.Property("CeoLName") + .HasColumnType("nvarchar(max)"); + + b.Property("City") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DateOfBirth") + .HasColumnType("datetime2"); + + b.Property("FName") + .IsRequired() + .HasMaxLength(150) + .HasColumnType("nvarchar(150)"); + + b.Property("FatherName") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("Gender") + .IsRequired() + .HasMaxLength(6) + .HasColumnType("nvarchar(6)"); + + b.Property("IdNumber") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("IdNumberSeri") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("IdNumberSerial") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("IsActiveString") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("IsAuthenticated") + .HasColumnType("bit"); + + b.Property("IsBlock") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("IsLegal") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("LName") + .IsRequired() + .HasMaxLength(150) + .HasColumnType("nvarchar(150)"); + + b.Property("LegalPosition") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("NationalId") + .IsRequired() + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("Nationalcode") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("Phone") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("RegisterId") + .IsRequired() + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("RepresentativeFullName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("RepresentativeId") + .HasColumnType("bigint"); + + b.Property("State") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("SureName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("Zone") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.HasKey("id"); + + b.HasIndex("RepresentativeId"); + + b.ToTable("PersonalContractingParties", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ContractAgg.Contract", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("AgreementSalary") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("ArchiveCode") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("BaseYearAffected") + .HasColumnType("float"); + + b.Property("BaseYearUnAffected") + .HasColumnType("float"); + + b.Property("ConsumableItems") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("ContarctStart") + .HasColumnType("datetime2"); + + b.Property("ContractEnd") + .HasColumnType("datetime2"); + + b.Property("ContractNo") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("ContractPeriod") + .HasMaxLength(2) + .HasColumnType("nvarchar(2)"); + + b.Property("ContractType") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DailySalaryAffected") + .HasColumnType("float"); + + b.Property("DailySalaryUnAffected") + .HasColumnType("float"); + + b.Property("DailyWageType") + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("DayliWage") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("EmployerId") + .HasColumnType("bigint"); + + b.Property("FamilyAllowance") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("GetWorkDate") + .HasColumnType("datetime2"); + + b.Property("HasManualDailyWage") + .HasColumnType("bit"); + + b.Property("HousingAllowance") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("IsActiveString") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("JobType") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("JobTypeId") + .HasColumnType("bigint"); + + b.Property("MandatoryHoursid") + .HasColumnType("bigint"); + + b.Property("PersonnelCode") + .HasColumnType("bigint"); + + b.Property("SetContractDate") + .HasColumnType("datetime2"); + + b.Property("Signature") + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b.Property("WorkingHoursWeekly") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("WorkshopAddress1") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("WorkshopAddress2") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("WorkshopIds") + .HasColumnType("bigint"); + + b.Property("YearlySalaryId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("EmployeeId"); + + b.HasIndex("EmployerId"); + + b.HasIndex("JobTypeId"); + + b.HasIndex("MandatoryHoursid"); + + b.HasIndex("WorkshopIds"); + + b.HasIndex("YearlySalaryId"); + + b.ToTable("Contracts", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ContractingPartyAccountAgg.ContractingPartyAccount", b => + { + b.Property("PersonalContractingPartyId") + .HasColumnType("bigint"); + + b.Property("AccountId") + .HasColumnType("bigint"); + + b.HasKey("PersonalContractingPartyId", "AccountId"); + + b.ToTable("ContractingPartyAccount", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ContractingPartyBankAccountsAgg.ContractingPartyBankAccount", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("AccountHolderName") + .HasMaxLength(200) + .HasColumnType("nvarchar(200)"); + + b.Property("AccountNumber") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("CardNumber") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("ContractingPartyId") + .HasColumnType("bigint"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("IBan") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("IsAuth") + .HasColumnType("bit"); + + b.HasKey("id"); + + b.HasIndex("ContractingPartyId"); + + b.ToTable("ContractingPartyBankAccounts", (string)null); + }); + + modelBuilder.Entity("Company.Domain.CrossJobAgg.CrossJob", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("CrossJobGuildId") + .HasColumnType("bigint"); + + b.Property("EquivalentRialOver") + .HasColumnType("bigint"); + + b.Property("EquivalentRialUnder") + .HasColumnType("bigint"); + + b.Property("SalaryRatioOver") + .HasColumnType("float"); + + b.Property("SalaryRatioUnder") + .HasColumnType("float"); + + b.HasKey("id"); + + b.HasIndex("CrossJobGuildId"); + + b.ToTable("CrossJobs", (string)null); + }); + + modelBuilder.Entity("Company.Domain.CrossJobGuildAgg.CrossJobGuild", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EconomicCode") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Title") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Year") + .HasMaxLength(4) + .HasColumnType("int"); + + b.HasKey("id"); + + b.ToTable("CrossJobGuilds", (string)null); + }); + + modelBuilder.Entity("Company.Domain.CrossJobItemsAgg.CrossJobItems", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("CrossJobId") + .HasColumnType("bigint"); + + b.Property("JobId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("CrossJobId"); + + b.HasIndex("JobId"); + + b.ToTable("CrossJobItems", (string)null); + }); + + modelBuilder.Entity("Company.Domain.CustomizeCheckoutAgg.CustomizeCheckout", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BaseYearsPay") + .HasColumnType("float"); + + b.Property("BonusesPay") + .HasColumnType("float"); + + b.Property("ContractEnd") + .HasColumnType("datetime2"); + + b.Property("ContractId") + .HasColumnType("bigint"); + + b.Property("ContractNo") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("ContractStart") + .HasColumnType("datetime2"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DailyWage") + .HasColumnType("float"); + + b.Property("DateOfBirth") + .HasColumnType("datetime2"); + + b.Property("EarlyExitDeduction") + .HasColumnType("float"); + + b.Property("EmployeeFName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("EmployeeLName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("FamilyAllowance") + .HasColumnType("float"); + + b.Property("FineAbsenceDeduction") + .HasColumnType("float"); + + b.Property("FineDeduction") + .HasColumnType("float"); + + b.Property("FridayPay") + .HasColumnType("float"); + + b.Property("HasAmountConflict") + .HasColumnType("bit"); + + b.Property("InstallmentDeduction") + .HasColumnType("float"); + + b.Property("InsuranceDeduction") + .HasColumnType("float"); + + b.Property("LateToWorkDeduction") + .HasColumnType("float"); + + b.Property("LateToWorkValue") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("LeavePay") + .HasColumnType("float"); + + b.Property("MarriedAllowance") + .HasColumnType("float"); + + b.Property("MonthInt") + .HasColumnType("int"); + + b.Property("MonthlySalary") + .HasColumnType("float"); + + b.Property("NationalCode") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("NightWorkPay") + .HasColumnType("float"); + + b.Property("OverTimePay") + .HasColumnType("float"); + + b.Property("RewardPay") + .HasColumnType("float"); + + b.Property("SalaryAidDeduction") + .HasColumnType("float"); + + b.Property("SettingSalary") + .HasColumnType("float"); + + b.Property("ShiftPay") + .HasColumnType("float"); + + b.Property("ShiftStatus") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("SumOfWorkingDays") + .HasColumnType("nvarchar(max)"); + + b.Property("TaxDeduction") + .HasColumnType("float"); + + b.Property("TotalClaims") + .HasColumnType("nvarchar(max)"); + + b.Property("TotalDeductions") + .HasColumnType("nvarchar(max)"); + + b.Property("TotalPayment") + .HasColumnType("float"); + + b.Property("WorkshopFullName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("YearInt") + .HasColumnType("int"); + + b.HasKey("id"); + + b.HasIndex("EmployeeId"); + + b.HasIndex("WorkshopId"); + + b.ToTable("CustomizeCheckouts", (string)null); + }); + + modelBuilder.Entity("Company.Domain.CustomizeCheckoutTempAgg.CustomizeCheckoutTemp", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BaseYearsPay") + .HasColumnType("float"); + + b.Property("BonusesPay") + .HasColumnType("float"); + + b.Property("ContractEnd") + .HasColumnType("datetime2"); + + b.Property("ContractId") + .HasColumnType("bigint"); + + b.Property("ContractNo") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("ContractStart") + .HasColumnType("datetime2"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DailyWage") + .HasColumnType("float"); + + b.Property("DateOfBirth") + .HasColumnType("datetime2"); + + b.Property("EarlyExitDeduction") + .HasColumnType("float"); + + b.Property("EmployeeFName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("EmployeeLName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("FamilyAllowance") + .HasColumnType("float"); + + b.Property("FineAbsenceDeduction") + .HasColumnType("float"); + + b.Property("FineDeduction") + .HasColumnType("float"); + + b.Property("FridayPay") + .HasColumnType("float"); + + b.Property("HasAmountConflict") + .HasColumnType("bit"); + + b.Property("InstallmentDeduction") + .HasColumnType("float"); + + b.Property("InsuranceDeduction") + .HasColumnType("float"); + + b.Property("LateToWorkDeduction") + .HasColumnType("float"); + + b.Property("LateToWorkValue") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("LeavePay") + .HasColumnType("float"); + + b.Property("MarriedAllowance") + .HasColumnType("float"); + + b.Property("MonthInt") + .HasColumnType("int"); + + b.Property("MonthlySalary") + .HasColumnType("float"); + + b.Property("NationalCode") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("NightWorkPay") + .HasColumnType("float"); + + b.Property("OverTimePay") + .HasColumnType("float"); + + b.Property("RewardPay") + .HasColumnType("float"); + + b.Property("SalaryAidDeduction") + .HasColumnType("float"); + + b.Property("SettingSalary") + .HasColumnType("float"); + + b.Property("ShiftPay") + .HasColumnType("float"); + + b.Property("ShiftStatus") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("SumOfWorkingDays") + .HasColumnType("nvarchar(max)"); + + b.Property("TaxDeduction") + .HasColumnType("float"); + + b.Property("TotalClaims") + .HasColumnType("nvarchar(max)"); + + b.Property("TotalDeductions") + .HasColumnType("nvarchar(max)"); + + b.Property("TotalPayment") + .HasColumnType("float"); + + b.Property("WorkshopFullName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("YearInt") + .HasColumnType("int"); + + b.HasKey("id"); + + b.HasIndex("EmployeeId"); + + b.HasIndex("WorkshopId"); + + b.ToTable("CustomizeCheckoutTemps", (string)null); + }); + + modelBuilder.Entity("Company.Domain.CustomizeWorkshopEmployeeSettingsAgg.Entities.CustomizeWorkshopEmployeeSettings", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("CustomizeWorkshopGroupSettingId") + .HasColumnType("bigint"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("FridayWork") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b.Property("HolidayWork") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b.Property("IsSettingChanged") + .HasColumnType("bit"); + + b.Property("IsShiftChanged") + .HasColumnType("bit"); + + b.Property("LeavePermittedDays") + .HasColumnType("int"); + + b.Property("Salary") + .HasColumnType("float"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("WorkshopShiftStatus") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b.HasKey("id"); + + b.HasIndex("CustomizeWorkshopGroupSettingId"); + + b.ToTable("CustomizeWorkshopEmployeeSettings", (string)null); + }); + + modelBuilder.Entity("Company.Domain.CustomizeWorkshopGroupSettingsAgg.Entities.CustomizeWorkshopGroupSettings", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("CustomizeWorkshopSettingId") + .HasColumnType("bigint"); + + b.Property("FridayWork") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b.Property("GroupName") + .HasMaxLength(120) + .HasColumnType("nvarchar(120)"); + + b.Property("HolidayWork") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b.Property("IsSettingChange") + .HasColumnType("bit"); + + b.Property("IsShiftChange") + .HasColumnType("bit"); + + b.Property("LeavePermittedDays") + .HasColumnType("int"); + + b.Property("MainGroup") + .HasColumnType("bit"); + + b.Property("Salary") + .HasColumnType("float"); + + b.Property("WorkshopShiftStatus") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b.HasKey("id"); + + b.HasIndex("CustomizeWorkshopSettingId"); + + b.ToTable("CustomizeWorkshopGroupSettings", (string)null); + }); + + modelBuilder.Entity("Company.Domain.CustomizeWorkshopSettingsAgg.Entities.CustomizeWorkshopSettings", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BaseYearsPayInEndOfYear") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b.Property("BonusesPaysInEndOfMonth") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Currency") + .HasColumnType("int"); + + b.Property("EndTimeOffSet") + .HasColumnType("time"); + + b.Property("FridayWork") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b.Property("HolidayWork") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b.Property("LeavePermittedDays") + .HasColumnType("int"); + + b.Property("MaxMonthDays") + .HasColumnType("int"); + + b.Property("OverTimeThresholdMinute") + .HasColumnType("int"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("WorkshopShiftStatus") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b.HasKey("id"); + + b.HasIndex("WorkshopId") + .IsUnique(); + + b.ToTable("CustomizeWorkshopSettings", (string)null); + }); + + modelBuilder.Entity("Company.Domain.DateSalaryAgg.DateSalary", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EndDateFa") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("EndDateGr") + .HasColumnType("datetime2"); + + b.Property("StartDateFa") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("StartDateGr") + .HasColumnType("datetime2"); + + b.Property("Year") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)"); + + b.HasKey("id"); + + b.ToTable("DateSalaries", (string)null); + }); + + modelBuilder.Entity("Company.Domain.DateSalaryItemAgg.DateSalaryItem", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DateSalaryId") + .HasColumnType("bigint"); + + b.Property("Percent") + .HasColumnType("float"); + + b.Property("PercentageId") + .HasColumnType("bigint"); + + b.Property("Salary") + .HasColumnType("float"); + + b.HasKey("id"); + + b.HasIndex("DateSalaryId"); + + b.HasIndex("PercentageId"); + + b.ToTable("DateSalaryItems", (string)null); + }); + + modelBuilder.Entity("Company.Domain.EmployeeAccountAgg.EmployeeAccount", b => + { + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("AccountId") + .HasColumnType("bigint"); + + b.HasKey("EmployeeId", "AccountId"); + + b.ToTable("EmployeeAccounts", (string)null); + }); + + modelBuilder.Entity("Company.Domain.EmployeeAgg.Employee", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Address") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("BankBranch") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("BankCardNumber") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("City") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DateOfBirth") + .HasColumnType("datetime2"); + + b.Property("DateOfIssue") + .HasColumnType("datetime2"); + + b.Property("EservicePassword") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("EserviceUserName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("FName") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("FatherName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("FieldOfStudy") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Gender") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("IdNumber") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("IdNumberSeri") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("IdNumberSerial") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("InsuranceCode") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("InsuranceHistoryByMonth") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("InsuranceHistoryByYear") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("IsActive") + .HasColumnType("bit"); + + b.Property("IsActiveString") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("IsAuthorized") + .HasColumnType("bit"); + + b.Property("LName") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("LevelOfEducation") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("MaritalStatus") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("MclsPassword") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("MclsUserName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("MilitaryService") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("NationalCode") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("Nationality") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("NumberOfChildren") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("OfficePhone") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("Phone") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("PlaceOfIssue") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("SanaPassword") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("SanaUserName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("State") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("TaxOfficeUserName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("TaxOfficepassword") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.HasKey("id"); + + b.ToTable("Employees", (string)null); + }); + + modelBuilder.Entity("Company.Domain.EmployeeAuthorizeTempAgg.EmployeeAuthorizeTemp", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BirthDate") + .HasColumnType("datetime2"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("FName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("FatherName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("Gender") + .IsRequired() + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("IdNumber") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("IdNumberSeri") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("IdNumberSerial") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("LName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("NationalCode") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.HasKey("id"); + + b.HasIndex("NationalCode") + .IsUnique() + .HasFilter("[NationalCode] IS NOT NULL"); + + b.ToTable("EmployeeAuthorizeTemps", (string)null); + }); + + modelBuilder.Entity("Company.Domain.EmployeeBankInformationAgg.EmployeeBankInformation", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BankAccountNumber") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("BankId") + .HasColumnType("bigint"); + + b.Property("CardNumber") + .HasMaxLength(16) + .HasColumnType("nvarchar(16)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("IsDefault") + .HasColumnType("bit"); + + b.Property("ShebaNumber") + .HasMaxLength(26) + .HasColumnType("nvarchar(26)"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("BankId"); + + b.HasIndex("EmployeeId"); + + b.ToTable("EmployeeBankInformationSet", (string)null); + }); + + modelBuilder.Entity("Company.Domain.EmployeeChildrenAgg.EmployeeChildren", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DateOfBirth") + .HasColumnType("datetime2"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("FName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("ParentNationalCode") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.HasKey("id"); + + b.HasIndex("EmployeeId"); + + b.ToTable("EmployeeChildren", (string)null); + }); + + modelBuilder.Entity("Company.Domain.EmployeeClientTempAgg.EmployeeClientTemp", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployeeFullName") + .HasColumnType("nvarchar(max)"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("MaritalStatus") + .HasColumnType("nvarchar(max)"); + + b.Property("StartWorkDate") + .HasColumnType("datetime2"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.ToTable("EmployeeClientTemps"); + }); + + modelBuilder.Entity("Company.Domain.EmployeeComputeOptionsAgg.EmployeeComputeOptions", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BonusesOptions") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("ComputeOptions") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("ContractTerm") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("CreateCheckout") + .HasColumnType("bit"); + + b.Property("CreateContract") + .HasColumnType("bit"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("CutContractEndOfYear") + .IsRequired() + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("SignCheckout") + .HasColumnType("bit"); + + b.Property("SignContract") + .HasColumnType("bit"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("YearsOptions") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.HasKey("id"); + + b.ToTable("EmployeeComputeOptions", (string)null); + }); + + modelBuilder.Entity("Company.Domain.EmployeeDocumentItemAgg.EmployeeDocumentItem", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("ConfirmationDateTime") + .HasColumnType("datetime2"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DocumentLabel") + .IsRequired() + .HasMaxLength(31) + .HasColumnType("nvarchar(31)"); + + b.Property("DocumentStatus") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("EmployeeDocumentId") + .HasColumnType("bigint"); + + b.Property("EmployeeDocumentsAdminViewId") + .HasColumnType("bigint"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("MediaId") + .HasColumnType("bigint"); + + b.Property("RejectionReason") + .HasMaxLength(150) + .HasColumnType("nvarchar(150)"); + + b.Property("ReviewedById") + .HasMaxLength(120) + .HasColumnType("bigint"); + + b.Property("UploaderId") + .HasColumnType("bigint"); + + b.Property("UploaderRoleId") + .HasColumnType("bigint"); + + b.Property("UploaderType") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("EmployeeDocumentId"); + + b.HasIndex("EmployeeDocumentsAdminViewId"); + + b.ToTable("EmployeeDocumentItems", (string)null); + }); + + modelBuilder.Entity("Company.Domain.EmployeeDocumentsAdminSelectionAgg.EmployeeDocumentsAdminSelection", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("EmployeeId") + .IsUnique(); + + b.ToTable("EmployeeDocumentsAdminSelection", (string)null); + }); + + modelBuilder.Entity("Company.Domain.EmployeeDocumentsAgg.EmployeeDocuments", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("Gender") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("HasRejectedItems") + .HasColumnType("bit"); + + b.Property("IsConfirmed") + .HasColumnType("bit"); + + b.Property("IsSentToChecker") + .HasColumnType("bit"); + + b.Property("RequiredItemsSubmittedByClient") + .HasColumnType("bit"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("EmployeeId"); + + b.HasIndex("WorkshopId"); + + b.ToTable("EmployeeDocuments", (string)null); + }); + + modelBuilder.Entity("Company.Domain.EmployeeInsurancListDataAgg.EmployeeInsurancListData", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BaseYears") + .HasColumnType("float"); + + b.Property("BenefitsIncludedContinuous") + .HasColumnType("float"); + + b.Property("BenefitsIncludedNonContinuous") + .HasColumnType("float"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DailyWage") + .HasColumnType("float"); + + b.Property("DailyWagePlusBaseYears") + .HasColumnType("float"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("FamilyAllowance") + .HasColumnType("float"); + + b.Property("IncludeStatus") + .HasColumnType("bit"); + + b.Property("InsuranceListId") + .HasColumnType("bigint"); + + b.Property("InsuranceShare") + .HasColumnType("float"); + + b.Property("JobId") + .HasColumnType("bigint"); + + b.Property("LeftWorkDate") + .HasColumnType("datetime2(7)"); + + b.Property("MarriedAllowance") + .HasColumnType("float"); + + b.Property("MonthlyBenefits") + .HasColumnType("float"); + + b.Property("MonthlyBenefitsIncluded") + .HasColumnType("float"); + + b.Property("MonthlySalary") + .HasColumnType("float"); + + b.Property("OverTimePay") + .HasColumnType("float"); + + b.Property("StartWorkDate") + .HasColumnType("datetime2"); + + b.Property("WorkingDays") + .HasColumnType("int"); + + b.HasKey("id"); + + b.ToTable("EmployeeInsurancListData", (string)null); + }); + + modelBuilder.Entity("Company.Domain.EmployeeInsuranceRecordAgg.EmployeeInsuranceRecord", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DateOfEnd") + .HasColumnType("datetime2"); + + b.Property("DateOfStart") + .HasColumnType("datetime2"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("WorkShopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("EmployeeId"); + + b.HasIndex("WorkShopId"); + + b.ToTable("EmployeeInsuranceRecord", (string)null); + }); + + modelBuilder.Entity("Company.Domain.EmployerAccountAgg.EmployerAccount", b => + { + b.Property("EmployerId") + .HasColumnType("bigint"); + + b.Property("AccountId") + .HasColumnType("bigint"); + + b.HasKey("EmployerId", "AccountId"); + + b.ToTable("EmployerAccounts", (string)null); + }); + + modelBuilder.Entity("Company.Domain.Evidence.Evidence", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BoardType_Id") + .HasColumnType("int"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Description") + .HasColumnType("nvarchar(max)"); + + b.Property("File_Id") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("BoardType_Id"); + + b.HasIndex("File_Id"); + + b.ToTable("Evidences", (string)null); + }); + + modelBuilder.Entity("Company.Domain.EvidenceDetail.EvidenceDetail", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Day") + .HasColumnType("nvarchar(max)"); + + b.Property("Description") + .HasColumnType("nvarchar(max)"); + + b.Property("Evidence_Id") + .HasColumnType("bigint"); + + b.Property("FromDate") + .HasColumnType("datetime2"); + + b.Property("Title") + .HasColumnType("nvarchar(max)"); + + b.Property("ToDate") + .HasColumnType("datetime2"); + + b.HasKey("id"); + + b.HasIndex("Evidence_Id"); + + b.ToTable("EvidenceDetails", (string)null); + }); + + modelBuilder.Entity("Company.Domain.File1.File1", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("ArchiveNo") + .HasColumnType("bigint"); + + b.Property("Client") + .HasColumnType("int"); + + b.Property("ClientVisitDate") + .HasColumnType("datetime2"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Description") + .HasColumnType("nvarchar(max)"); + + b.Property("FileClass") + .HasColumnType("nvarchar(max)"); + + b.Property("HasMandate") + .HasColumnType("int"); + + b.Property("ProceederReference") + .HasColumnType("nvarchar(max)"); + + b.Property("Reqester") + .HasColumnType("bigint"); + + b.Property("Status") + .HasColumnType("int"); + + b.Property("Summoned") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.ToTable("Files", (string)null); + }); + + modelBuilder.Entity("Company.Domain.FileAlert.FileAlert", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("AdditionalDeadline") + .HasColumnType("int"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("FileState_Id") + .HasColumnType("bigint"); + + b.Property("File_Id") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("FileState_Id"); + + b.HasIndex("File_Id"); + + b.ToTable("File_Alerts", (string)null); + }); + + modelBuilder.Entity("Company.Domain.FileAndFileEmployerAgg.FileAndFileEmployer", b => + { + b.Property("FileId") + .HasColumnType("bigint"); + + b.Property("FileEmployerId") + .HasColumnType("bigint"); + + b.HasKey("FileId", "FileEmployerId"); + + b.HasIndex("FileEmployerId"); + + b.ToTable("FileAndFileEmployers", (string)null); + }); + + modelBuilder.Entity("Company.Domain.FileEmployeeAgg.FileEmployee", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DateOfBirth") + .HasColumnType("datetime2"); + + b.Property("EservicePassword") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("EserviceUserName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("FName") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("FatherName") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("FieldOfStudy") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("Gender") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("IdNumber") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("InsuranceCode") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("IsActive") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("LName") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("LevelOfEducation") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("MaritalStatus") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("MclsPassword") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("MclsUserName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("NationalCode") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("OfficePhone") + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("Phone") + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("RepresentativeFullName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("RepresentativeId") + .HasColumnType("bigint"); + + b.Property("SanaPassword") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("SanaUserName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("TaxOfficeUserName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("TaxOfficepassword") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.HasKey("id"); + + b.HasIndex("RepresentativeId"); + + b.ToTable("FileEmployee", (string)null); + }); + + modelBuilder.Entity("Company.Domain.FileEmployerAgg.FileEmployer", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DateOfBirth") + .HasColumnType("datetime2"); + + b.Property("EservicePassword") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("EserviceUserName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("FName") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("FieldOfStudy") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("FullName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("Gender") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("IdNumber") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("InsuranceWorkshopCode") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("IsActive") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("IsLegal") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("LName") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("LegalName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("LevelOfEducation") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("MaritalStatus") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("MclsPassword") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("MclsUserName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("NationalCode") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("NationalId") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("OfficePhone") + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("Phone") + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("RegisterId") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("RepresentativeFullName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("RepresentativeId") + .HasColumnType("bigint"); + + b.Property("SanaPassword") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("SanaUserName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("TaxOfficeUserName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("TaxOfficepassword") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.HasKey("id"); + + b.HasIndex("RepresentativeId"); + + b.ToTable("FileEmployer", (string)null); + }); + + modelBuilder.Entity("Company.Domain.FileState.FileState", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("FileTiming_Id") + .HasColumnType("bigint"); + + b.Property("State") + .HasColumnType("int"); + + b.Property("Title") + .HasColumnType("nvarchar(max)"); + + b.HasKey("id"); + + b.HasIndex("FileTiming_Id"); + + b.ToTable("File_States", (string)null); + }); + + modelBuilder.Entity("Company.Domain.FileTiming.FileTiming", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Deadline") + .HasColumnType("int"); + + b.Property("Tips") + .HasColumnType("nvarchar(max)"); + + b.Property("Title") + .HasColumnType("nvarchar(max)"); + + b.HasKey("id"); + + b.ToTable("File_Timings", (string)null); + }); + + modelBuilder.Entity("Company.Domain.FileTitle.FileTitle", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Title") + .HasColumnType("nvarchar(max)"); + + b.Property("Type") + .HasColumnType("nvarchar(max)"); + + b.HasKey("id"); + + b.ToTable("File_Titles", (string)null); + }); + + modelBuilder.Entity("Company.Domain.FinancialInvoiceAgg.FinancialInvoice", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Amount") + .HasColumnType("float"); + + b.Property("ContractingPartyId") + .HasColumnType("bigint"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Description") + .HasMaxLength(800) + .HasColumnType("nvarchar(800)"); + + b.Property("InvoiceNumber") + .HasMaxLength(22) + .HasColumnType("nvarchar(22)"); + + b.Property("IsActive") + .HasColumnType("bit"); + + b.Property("PaidAt") + .HasColumnType("datetime2"); + + b.Property("PublicId") + .HasColumnType("uniqueidentifier"); + + b.Property("Status") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.HasKey("id"); + + b.ToTable("FinancialInvoices"); + }); + + modelBuilder.Entity("Company.Domain.FinancialInvoiceAgg.FinancialInvoiceItem", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Amount") + .HasColumnType("float"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Description") + .HasMaxLength(800) + .HasColumnType("nvarchar(800)"); + + b.Property("EntityId") + .HasColumnType("bigint"); + + b.Property("FinancialInvoiceId") + .HasColumnType("bigint"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.HasKey("id"); + + b.HasIndex("FinancialInvoiceId"); + + b.ToTable("FinancialInvoiceItem"); + }); + + modelBuilder.Entity("Company.Domain.FinancialStatmentAgg.FinancialStatment", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("ContractingPartyId") + .HasColumnType("bigint"); + + b.Property("ContractingPartyName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("PublicId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("id"); + + b.ToTable("FinancialStatments", (string)null); + }); + + modelBuilder.Entity("Company.Domain.FinancialTransactionAgg.FinancialTransaction", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Balance") + .HasColumnType("float"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Creditor") + .HasColumnType("float"); + + b.Property("Deptor") + .HasColumnType("float"); + + b.Property("Description") + .HasMaxLength(600) + .HasColumnType("nvarchar(600)"); + + b.Property("DescriptionOption") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("FinancialStatementId") + .HasColumnType("bigint"); + + b.Property("MessageText") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("SentSms") + .HasColumnType("bit"); + + b.Property("SentSmsDateFa") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("TdateFa") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("TdateGr") + .HasColumnType("datetime2"); + + b.Property("TypeOfTransaction") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.HasKey("id"); + + b.HasIndex("FinancialStatementId"); + + b.ToTable("FinancialTransactions", (string)null); + }); + + modelBuilder.Entity("Company.Domain.FineAgg.Fine", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Amount") + .HasColumnType("float"); + + b.Property("CreatedByAccountId") + .HasColumnType("bigint"); + + b.Property("CreatedByUserType") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("FineDate") + .HasColumnType("datetime2"); + + b.Property("IsActive") + .IsRequired() + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("LastModifiedByAccountId") + .HasColumnType("bigint"); + + b.Property("LastModifiedByUserType") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("Title") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.ToTable("Fines", (string)null); + }); + + modelBuilder.Entity("Company.Domain.FineSubjectAgg.FineSubject", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Amount") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Title") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.ToTable("FineSubjects", (string)null); + }); + + modelBuilder.Entity("Company.Domain.GroupPlanAgg.GroupPlan", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("AnnualSalary") + .HasColumnType("float"); + + b.Property("BaseSalary") + .HasColumnType("float"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("GroupNo") + .HasMaxLength(2) + .HasColumnType("nvarchar(2)"); + + b.Property("JobSalary") + .HasColumnType("float"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("WorkshopPlanId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("WorkshopPlanId"); + + b.ToTable("GroupPlans", (string)null); + }); + + modelBuilder.Entity("Company.Domain.GroupPlanJobItemAgg.GroupPlanJobItem", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("GroupNo") + .HasMaxLength(2) + .HasColumnType("nvarchar(2)"); + + b.Property("GroupPlanId") + .HasColumnType("bigint"); + + b.Property("JobId") + .HasColumnType("bigint"); + + b.Property("JobName") + .HasMaxLength(150) + .HasColumnType("nvarchar(150)"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("WorkshopPlanId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("GroupPlanId"); + + b.ToTable("GroupPlanJobItems", (string)null); + }); + + modelBuilder.Entity("Company.Domain.HolidayAgg.Holiday", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Year") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)"); + + b.HasKey("id"); + + b.ToTable("Holidays", (string)null); + }); + + modelBuilder.Entity("Company.Domain.HolidayItemAgg.HolidayItem", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("HolidayId") + .HasColumnType("bigint"); + + b.Property("HolidayYear") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)"); + + b.Property("Holidaydate") + .HasColumnType("datetime2"); + + b.HasKey("id"); + + b.HasIndex("HolidayId"); + + b.ToTable("Holidayitems", (string)null); + }); + + modelBuilder.Entity("Company.Domain.InstitutionContractAgg.InstitutionContract", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Address") + .HasMaxLength(250) + .HasColumnType("nvarchar(250)"); + + b.Property("City") + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("ContractAmount") + .HasColumnType("float"); + + b.Property("ContractDateFa") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("ContractDateGr") + .HasColumnType("datetime2"); + + b.Property("ContractEndFa") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("ContractEndGr") + .HasColumnType("datetime2"); + + b.Property("ContractNo") + .HasMaxLength(40) + .HasColumnType("nvarchar(40)"); + + b.Property("ContractStartFa") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("ContractStartGr") + .HasColumnType("datetime2"); + + b.Property("ContractingPartyId") + .HasColumnType("bigint"); + + b.Property("ContractingPartyName") + .HasMaxLength(80) + .HasColumnType("nvarchar(80)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DailyCompenseation") + .HasColumnType("float"); + + b.Property("Description") + .HasMaxLength(10000) + .HasColumnType("nvarchar(max)"); + + b.Property("DiscountAmount") + .HasColumnType("float"); + + b.Property("DiscountPercentage") + .HasColumnType("int"); + + b.Property("EmployeeManualCount") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("ExtensionNo") + .HasColumnType("int"); + + b.Property("HasValueAddedTax") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("IsActiveString") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("IsInstallment") + .HasColumnType("bit"); + + b.Property("LawId") + .HasColumnType("bigint"); + + b.Property("Obligation") + .HasColumnType("float"); + + b.Property("OfficialCompany") + .HasMaxLength(12) + .HasColumnType("nvarchar(12)"); + + b.Property("PublicId") + .HasColumnType("uniqueidentifier"); + + b.Property("RepresentativeId") + .HasColumnType("bigint"); + + b.Property("RepresentativeName") + .HasMaxLength(80) + .HasColumnType("nvarchar(80)"); + + b.Property("Signature") + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b.Property("SigningType") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("State") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("TotalAmount") + .HasColumnType("float"); + + b.Property("TypeOfContract") + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("ValueAddedTax") + .HasColumnType("float"); + + b.Property("VerificationStatus") + .IsRequired() + .HasMaxLength(122) + .HasColumnType("nvarchar(122)"); + + b.Property("VerifierFullName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("VerifierPhoneNumber") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("VerifyCode") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("VerifyCodeCreation") + .HasColumnType("datetime2"); + + b.Property("WorkshopManualCount") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.HasKey("id"); + + b.ToTable("InstitutionContracts", (string)null); + }); + + modelBuilder.Entity("Company.Domain.InstitutionContractAgg.InstitutionContractAmendment", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Amount") + .HasColumnType("float"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("HasInstallment") + .HasColumnType("bit"); + + b.Property("InstitutionContractId") + .HasColumnType("bigint"); + + b.Property("LawId") + .HasColumnType("bigint"); + + b.Property("VerificationCreation") + .HasColumnType("datetime2"); + + b.Property("VerifierFullName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("VerifierPhoneNumber") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("VerifyCode") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("VerifyCodeCreation") + .HasColumnType("datetime2"); + + b.HasKey("id"); + + b.HasIndex("InstitutionContractId"); + + b.ToTable("InstitutionContractAmendments", (string)null); + }); + + modelBuilder.Entity("Company.Domain.InstitutionContractAgg.InstitutionContractAmendmentChange", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("ChangeDateGr") + .HasColumnType("datetime2"); + + b.Property("ChangeType") + .HasColumnType("int"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("HasContractPlan") + .HasColumnType("bit"); + + b.Property("HasContractPlanInPerson") + .HasColumnType("bit"); + + b.Property("HasCustomizeCheckoutPlan") + .HasColumnType("bit"); + + b.Property("HasInsurancePlan") + .HasColumnType("bit"); + + b.Property("HasInsurancePlanInPerson") + .HasColumnType("bit"); + + b.Property("HasRollCallPlan") + .HasColumnType("bit"); + + b.Property("InstitutionContractAmendmentId") + .HasColumnType("bigint"); + + b.Property("PersonnelCount") + .HasColumnType("int"); + + b.Property("WorkshopDetailsId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("InstitutionContractAmendmentId"); + + b.ToTable("InstitutionContractAmendmentChange"); + }); + + modelBuilder.Entity("Company.Domain.InstitutionContractAgg.InstitutionContractInstallment", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("Amount") + .HasColumnType("float"); + + b.Property("Description") + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("InstallmentDateFa") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("InstallmentDateGr") + .HasColumnType("datetime2"); + + b.Property("InstitutionContractAmendmentId") + .HasColumnType("bigint"); + + b.Property("InstitutionContractId") + .HasColumnType("bigint"); + + b.HasKey("Id"); + + b.HasIndex("InstitutionContractAmendmentId"); + + b.HasIndex("InstitutionContractId"); + + b.ToTable("InstitutionContractInstallments", (string)null); + }); + + modelBuilder.Entity("Company.Domain.InstitutionContractAgg.InstitutionContractWorkshopCurrent", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("InitialWorkshopId") + .HasColumnType("bigint"); + + b.Property("InstitutionContractId") + .HasColumnType("bigint"); + + b.Property("InstitutionContractWorkshopGroupId") + .HasColumnType("bigint"); + + b.Property("PersonnelCount") + .HasColumnType("int"); + + b.Property("Price") + .HasColumnType("float"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("WorkshopName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.HasKey("id"); + + b.HasIndex("InstitutionContractWorkshopGroupId"); + + b.ToTable("InstitutionContractWorkshopCurrents", (string)null); + }); + + modelBuilder.Entity("Company.Domain.InstitutionContractAgg.InstitutionContractWorkshopGroup", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("InstitutionContractId") + .HasColumnType("bigint"); + + b.Property("LastModifiedDate") + .HasColumnType("datetime2"); + + b.HasKey("id"); + + b.HasIndex("InstitutionContractId") + .IsUnique(); + + b.ToTable("InstitutionContractWorkshopGroups"); + }); + + modelBuilder.Entity("Company.Domain.InstitutionContractAgg.InstitutionContractWorkshopInitial", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("InstitutionContractId") + .HasColumnType("bigint"); + + b.Property("InstitutionContractWorkshopCurrentId") + .HasColumnType("bigint"); + + b.Property("InstitutionContractWorkshopGroupId") + .HasColumnType("bigint"); + + b.Property("PersonnelCount") + .HasColumnType("int"); + + b.Property("Price") + .HasColumnType("float"); + + b.Property("WorkshopCreated") + .HasColumnType("bit"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("WorkshopName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.HasKey("id"); + + b.HasIndex("InstitutionContractWorkshopCurrentId") + .IsUnique() + .HasFilter("[InstitutionContractWorkshopCurrentId] IS NOT NULL"); + + b.HasIndex("InstitutionContractWorkshopGroupId"); + + b.ToTable("InstitutionContractWorkshopInitials", (string)null); + }); + + modelBuilder.Entity("Company.Domain.InstitutionContractContactInfoAgg.InstitutionContractContactInfo", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("FnameLname") + .HasMaxLength(150) + .HasColumnType("nvarchar(150)"); + + b.Property("InstitutionContractId") + .HasColumnType("bigint"); + + b.Property("PhoneNumber") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("PhoneType") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("Position") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("SendSms") + .HasColumnType("bit"); + + b.HasKey("id"); + + b.HasIndex("InstitutionContractId"); + + b.ToTable("InstitutinContractContactInfo", (string)null); + }); + + modelBuilder.Entity("Company.Domain.InstitutionPlanAgg.InstitutionPlan", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BaseContractAmont") + .HasColumnType("float"); + + b.Property("CountPerson") + .HasColumnType("int"); + + b.Property("FinalContractAmont") + .HasColumnType("float"); + + b.Property("IncreasePercentage") + .HasColumnType("float"); + + b.HasKey("id"); + + b.ToTable("InstitutionPlan", (string)null); + }); + + modelBuilder.Entity("Company.Domain.InstitutionPlanAgg.PlanPercentage", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("ContractAndCheckoutInPersonPercent") + .HasColumnType("int"); + + b.Property("ContractAndCheckoutPercent") + .HasColumnType("int"); + + b.Property("CustomizeCheckoutPercent") + .HasColumnType("int"); + + b.Property("InsuranceInPersonPercent") + .HasColumnType("int"); + + b.Property("InsurancePercent") + .HasColumnType("int"); + + b.Property("RollCallPercent") + .HasColumnType("int"); + + b.HasKey("id"); + + b.ToTable("PlanPercentage", (string)null); + }); + + modelBuilder.Entity("Company.Domain.InsurancJobAgg.InsuranceJob", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EconomicCode") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("InsuranceJobTitle") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("Year") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)"); + + b.Property("YearlySalaryId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.ToTable("InsuranceJobs", (string)null); + }); + + modelBuilder.Entity("Company.Domain.InsurancWorkshopInfoAgg.InsuranceWorkshopInfo", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Address") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("AgreementNumber") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployerName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("InsuranceCode") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("ListNumber") + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("WorkshopName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.HasKey("id"); + + b.HasIndex("WorkshopId") + .IsUnique(); + + b.ToTable("InsuranceWorkshopInformation", (string)null); + }); + + modelBuilder.Entity("Company.Domain.InsuranceAgg.Insurance", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Address") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployerStr") + .HasColumnType("nvarchar(max)"); + + b.Property("ListNumber") + .HasColumnType("nvarchar(max)"); + + b.Property("Month") + .HasMaxLength(2) + .HasColumnType("int"); + + b.Property("WorkShopId") + .HasColumnType("bigint"); + + b.Property("WorkShopStr") + .HasColumnType("nvarchar(max)"); + + b.Property("Year") + .HasMaxLength(4) + .HasColumnType("int"); + + b.HasKey("id"); + + b.HasIndex("WorkShopId"); + + b.ToTable("Insurances", (string)null); + }); + + modelBuilder.Entity("Company.Domain.InsuranceEmployeeInfoAgg.InsuranceEmployeeInfo", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DateOfBirth") + .HasColumnType("datetime2"); + + b.Property("DateOfIssue") + .HasColumnType("datetime2"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("FName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("FatherName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("Gender") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("IdNumber") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("InsuranceCode") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("LName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("NationalCode") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("PlaceOfIssue") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.HasKey("id"); + + b.HasIndex("EmployeeId") + .IsUnique(); + + b.ToTable("InsuranceEmployeeInformation", (string)null); + }); + + modelBuilder.Entity("Company.Domain.InsuranceJobAndJobsAgg.InsuranceJobAndJobs", b => + { + b.Property("JobId") + .HasColumnType("bigint"); + + b.Property("InsuranceJobItemId") + .HasColumnType("bigint"); + + b.HasKey("JobId", "InsuranceJobItemId"); + + b.HasIndex("InsuranceJobItemId"); + + b.ToTable("InsuranceJobAndJobs", (string)null); + }); + + modelBuilder.Entity("Company.Domain.InsuranceJobItemAgg.InsuranceJobItem", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EndDate") + .HasColumnType("datetime2"); + + b.Property("InsuranceJobId") + .HasColumnType("bigint"); + + b.Property("PercentageLessThan") + .HasColumnType("float"); + + b.Property("PercentageMoreThan") + .HasColumnType("float"); + + b.Property("SalaeyLessThan") + .HasColumnType("float"); + + b.Property("SalaryMoreThan") + .HasColumnType("float"); + + b.Property("StartDate") + .HasColumnType("datetime2"); + + b.HasKey("id"); + + b.HasIndex("InsuranceJobId"); + + b.ToTable("InsuranceJobItems", (string)null); + }); + + modelBuilder.Entity("Company.Domain.InsuranceListAgg.InsuranceList", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("ConfirmSentlist") + .HasColumnType("bit"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DifficultJobsInsuranc") + .HasColumnType("float"); + + b.Property("EmployerShare") + .HasColumnType("float"); + + b.Property("EndDate") + .HasColumnType("datetime2"); + + b.Property("Included") + .HasColumnType("float"); + + b.Property("IncludedAndNotIncluded") + .HasColumnType("float"); + + b.Property("InsuredShare") + .HasColumnType("float"); + + b.Property("Month") + .HasMaxLength(2) + .HasColumnType("nvarchar(2)"); + + b.Property("StartDate") + .HasColumnType("datetime2"); + + b.Property("SumOfBaseYears") + .HasColumnType("float"); + + b.Property("SumOfBenefitsIncluded") + .HasColumnType("float"); + + b.Property("SumOfDailyWage") + .HasColumnType("float"); + + b.Property("SumOfDailyWagePlusBaseYears") + .HasColumnType("float"); + + b.Property("SumOfEmployees") + .HasColumnType("int"); + + b.Property("SumOfMarriedAllowance") + .HasColumnType("float"); + + b.Property("SumOfSalaries") + .HasColumnType("float"); + + b.Property("SumOfWorkingDays") + .HasColumnType("int"); + + b.Property("UnEmploymentInsurance") + .HasColumnType("float"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("Year") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)"); + + b.ComplexProperty(typeof(Dictionary), "Debt", "Company.Domain.InsuranceListAgg.InsuranceList.Debt#InsuranceListDebt", b1 => + { + b1.IsRequired(); + + b1.Property("Amount") + .HasColumnType("float"); + + b1.Property("DebtDate") + .HasColumnType("datetime2"); + + b1.Property("IsDone") + .HasColumnType("bit"); + + b1.Property("MediaId") + .HasColumnType("bigint"); + + b1.Property("Type") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + }); + + b.ComplexProperty(typeof(Dictionary), "EmployerApproval", "Company.Domain.InsuranceListAgg.InsuranceList.EmployerApproval#InsuranceListEmployerApproval", b1 => + { + b1.IsRequired(); + + b1.Property("Description") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b1.Property("IsDone") + .HasColumnType("bit"); + + b1.Property("Status") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + }); + + b.ComplexProperty(typeof(Dictionary), "Inspection", "Company.Domain.InsuranceListAgg.InsuranceList.Inspection#InsuranceListInspection", b1 => + { + b1.IsRequired(); + + b1.Property("IsDone") + .HasColumnType("bit"); + + b1.Property("LastInspectionDateTime") + .HasColumnType("datetime2"); + + b1.Property("MediaId") + .HasColumnType("bigint"); + + b1.Property("Type") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + }); + + b.HasKey("id"); + + b.ToTable("InsuranceLists", (string)null); + }); + + modelBuilder.Entity("Company.Domain.InsuranceWorkshopAgg.InsuranceListWorkshop", b => + { + b.Property("InsurancListId") + .HasColumnType("bigint"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("InsurancListId", "WorkshopId"); + + b.HasIndex("WorkshopId"); + + b.ToTable("InsuranceListWorkshops", (string)null); + }); + + modelBuilder.Entity("Company.Domain.InsuranceYearlySalaryAgg.InsuranceYearlySalary", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EndDate") + .HasColumnType("datetime2"); + + b.Property("Group1") + .HasColumnType("float"); + + b.Property("Group10") + .HasColumnType("float"); + + b.Property("Group11") + .HasColumnType("float"); + + b.Property("Group12") + .HasColumnType("float"); + + b.Property("Group13") + .HasColumnType("float"); + + b.Property("Group14") + .HasColumnType("float"); + + b.Property("Group15") + .HasColumnType("float"); + + b.Property("Group16") + .HasColumnType("float"); + + b.Property("Group17") + .HasColumnType("float"); + + b.Property("Group18") + .HasColumnType("float"); + + b.Property("Group19") + .HasColumnType("float"); + + b.Property("Group2") + .HasColumnType("float"); + + b.Property("Group20") + .HasColumnType("float"); + + b.Property("Group21") + .HasColumnType("float"); + + b.Property("Group22") + .HasColumnType("float"); + + b.Property("Group23") + .HasColumnType("float"); + + b.Property("Group24") + .HasColumnType("float"); + + b.Property("Group25") + .HasColumnType("float"); + + b.Property("Group26") + .HasColumnType("float"); + + b.Property("Group27") + .HasColumnType("float"); + + b.Property("Group28") + .HasColumnType("float"); + + b.Property("Group29") + .HasColumnType("float"); + + b.Property("Group3") + .HasColumnType("float"); + + b.Property("Group30") + .HasColumnType("float"); + + b.Property("Group4") + .HasColumnType("float"); + + b.Property("Group5") + .HasColumnType("float"); + + b.Property("Group6") + .HasColumnType("float"); + + b.Property("Group7") + .HasColumnType("float"); + + b.Property("Group8") + .HasColumnType("float"); + + b.Property("Group9") + .HasColumnType("float"); + + b.Property("StartDate") + .HasColumnType("datetime2"); + + b.Property("Year") + .HasColumnType("int"); + + b.HasKey("id"); + + b.ToTable("InsuranceYearlySalaries", (string)null); + }); + + modelBuilder.Entity("Company.Domain.JobAgg.Job", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("JobCode") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("JobName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.HasKey("id"); + + b.ToTable("Jobs", (string)null); + }); + + modelBuilder.Entity("Company.Domain.LawAgg.Law", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("HeadTitle") + .HasMaxLength(200) + .HasColumnType("nvarchar(200)"); + + b.Property("IsActive") + .HasColumnType("bit"); + + b.Property("NotificationsJson") + .HasMaxLength(3000) + .HasColumnType("nvarchar(3000)") + .HasColumnName("Notifications"); + + b.Property("Title") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("Version") + .HasColumnType("int"); + + b.HasKey("id"); + + b.ToTable("Law", (string)null); + }); + + modelBuilder.Entity("Company.Domain.LeaveAgg.Leave", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Decription") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("EmployeeFullName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("EndLeave") + .HasColumnType("datetime2"); + + b.Property("HasShiftDuration") + .HasColumnType("bit"); + + b.Property("IsAccepted") + .HasColumnType("bit"); + + b.Property("IsInvalid") + .HasColumnType("bit"); + + b.Property("LeaveHourses") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("LeaveType") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("Month") + .HasColumnType("int"); + + b.Property("PaidLeaveType") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("ShiftDuration") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("StartLeave") + .HasColumnType("datetime2"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("WorkshopName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Year") + .HasColumnType("int"); + + b.HasKey("id"); + + b.ToTable("Leave", (string)null); + }); + + modelBuilder.Entity("Company.Domain.LeftWorkAgg.LeftWork", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("AddBonusesPay") + .HasColumnType("bit"); + + b.Property("AddLeavePay") + .HasColumnType("bit"); + + b.Property("AddYearsPay") + .HasColumnType("bit"); + + b.Property("BonusesOptions") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("ComputeOptions") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployeeFullName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("IncludeStatus") + .HasColumnType("bit"); + + b.Property("JobId") + .HasColumnType("bigint"); + + b.Property("LeftWorkDate") + .HasColumnType("datetime2"); + + b.Property("StartWorkDate") + .HasColumnType("datetime2"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("WorkshopName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.HasKey("id"); + + b.HasIndex("EmployeeId"); + + b.HasIndex("WorkshopId"); + + b.ToTable("LeftWork", (string)null); + }); + + modelBuilder.Entity("Company.Domain.LeftWorkInsuranceAgg.LeftWorkInsurance", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployeeFullName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("IncludeStatus") + .HasColumnType("bit"); + + b.Property("JobId") + .HasColumnType("bigint"); + + b.Property("LeftWorkDate") + .HasColumnType("datetime2(7)"); + + b.Property("StartWorkDate") + .HasColumnType("datetime2"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("WorkshopName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.HasKey("id"); + + b.HasIndex("EmployeeId"); + + b.HasIndex("WorkshopId"); + + b.ToTable("LeftWorkInsurances", (string)null); + }); + + modelBuilder.Entity("Company.Domain.LeftWorkTempAgg.LeftWorkTemp", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("JobId") + .HasColumnType("bigint"); + + b.Property("LastDayStanding") + .HasColumnType("datetime2"); + + b.Property("LeftWork") + .HasColumnType("datetime2"); + + b.Property("LeftWorkId") + .HasColumnType("bigint"); + + b.Property("LeftWorkType") + .HasColumnType("int"); + + b.Property("StartWork") + .HasColumnType("datetime2"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.ToTable("LeftWorkTemps"); + }); + + modelBuilder.Entity("Company.Domain.LoanAgg.Entities.Loan", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Amount") + .HasColumnType("float"); + + b.Property("AmountPerMonth") + .HasColumnType("float"); + + b.Property("Count") + .HasMaxLength(3) + .HasColumnType("nvarchar(3)"); + + b.Property("CreatedByAccountId") + .HasColumnType("bigint"); + + b.Property("CreatedByUserType") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("GetRounded") + .HasColumnType("bit"); + + b.Property("LoanGrantDate") + .HasColumnType("datetime2"); + + b.Property("StartInstallmentPayment") + .HasColumnType("datetime2"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.ToTable("Loan", (string)null); + }); + + modelBuilder.Entity("Company.Domain.MandatoryHoursAgg.MandatoryHours", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Aban") + .HasColumnType("float"); + + b.Property("AbanFridays") + .HasColumnType("int"); + + b.Property("AbanHolidays") + .HasColumnType("int"); + + b.Property("AbanMonadatoryDays") + .HasColumnType("int"); + + b.Property("Azar") + .HasColumnType("float"); + + b.Property("AzarFridays") + .HasColumnType("int"); + + b.Property("AzarHolidays") + .HasColumnType("int"); + + b.Property("AzarMonadatoryDays") + .HasColumnType("int"); + + b.Property("Bahman") + .HasColumnType("float"); + + b.Property("BahmanFridays") + .HasColumnType("int"); + + b.Property("BahmanHolidays") + .HasColumnType("int"); + + b.Property("BahmanMonadatoryDays") + .HasColumnType("int"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Dey") + .HasColumnType("float"); + + b.Property("DeyFridays") + .HasColumnType("int"); + + b.Property("DeyHolidays") + .HasColumnType("int"); + + b.Property("DeyMonadatoryDays") + .HasColumnType("int"); + + b.Property("Esfand") + .HasColumnType("float"); + + b.Property("EsfandFridays") + .HasColumnType("int"); + + b.Property("EsfandHolidays") + .HasColumnType("int"); + + b.Property("EsfandMonadatoryDays") + .HasColumnType("int"); + + b.Property("Farvardin") + .HasColumnType("float"); + + b.Property("FarvardinFridays") + .HasColumnType("int"); + + b.Property("FarvardinHolidays") + .HasColumnType("int"); + + b.Property("FarvardinMonadatoryDays") + .HasColumnType("int"); + + b.Property("Khordad") + .HasColumnType("float"); + + b.Property("KhordadFridays") + .HasColumnType("int"); + + b.Property("KhordadHolidays") + .HasColumnType("int"); + + b.Property("KhordadMonadatoryDays") + .HasColumnType("int"); + + b.Property("Mehr") + .HasColumnType("float"); + + b.Property("MehrFridays") + .HasColumnType("int"); + + b.Property("MehrHolidays") + .HasColumnType("int"); + + b.Property("MehrMonadatoryDays") + .HasColumnType("int"); + + b.Property("Mordad") + .HasColumnType("float"); + + b.Property("MordadFridays") + .HasColumnType("int"); + + b.Property("MordadHolidays") + .HasColumnType("int"); + + b.Property("MordadMonadatoryDays") + .HasColumnType("int"); + + b.Property("Ordibehesht") + .HasColumnType("float"); + + b.Property("OrdibeheshtFridays") + .HasColumnType("int"); + + b.Property("OrdibeheshtHolidays") + .HasColumnType("int"); + + b.Property("OrdibeheshtMonadatoryDays") + .HasColumnType("int"); + + b.Property("Shahrivar") + .HasColumnType("float"); + + b.Property("ShahrivarFridays") + .HasColumnType("int"); + + b.Property("ShahrivarHolidays") + .HasColumnType("int"); + + b.Property("ShahrivarMonadatoryDays") + .HasColumnType("int"); + + b.Property("Tir") + .HasColumnType("float"); + + b.Property("TirFridays") + .HasColumnType("int"); + + b.Property("TirHolidays") + .HasColumnType("int"); + + b.Property("TirMonadatoryDays") + .HasColumnType("int"); + + b.Property("Year") + .HasMaxLength(4) + .HasColumnType("int"); + + b.HasKey("id"); + + b.ToTable("MandatoryHours", (string)null); + }); + + modelBuilder.Entity("Company.Domain.MasterPenaltyTitle.MasterPenaltyTitle", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Day") + .HasColumnType("nvarchar(max)"); + + b.Property("FromDate") + .HasColumnType("datetime2"); + + b.Property("MasterPetition_Id") + .HasColumnType("bigint"); + + b.Property("PaidAmount") + .HasColumnType("nvarchar(max)"); + + b.Property("RemainingAmount") + .HasColumnType("nvarchar(max)"); + + b.Property("Title") + .HasColumnType("nvarchar(max)"); + + b.Property("ToDate") + .HasColumnType("datetime2"); + + b.HasKey("id"); + + b.HasIndex("MasterPetition_Id"); + + b.ToTable("Master_PenaltyTitles", (string)null); + }); + + modelBuilder.Entity("Company.Domain.MasterPetition.MasterPetition", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BoardType_Id") + .HasColumnType("int"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Description") + .HasColumnType("nvarchar(max)"); + + b.Property("File_Id") + .HasColumnType("bigint"); + + b.Property("MasterName") + .HasColumnType("nvarchar(max)"); + + b.Property("WorkHistoryDescreption") + .HasColumnType("nvarchar(max)"); + + b.HasKey("id"); + + b.HasIndex("BoardType_Id"); + + b.HasIndex("File_Id"); + + b.ToTable("Master_Petitions", (string)null); + }); + + modelBuilder.Entity("Company.Domain.MasterWorkHistory.MasterWorkHistory", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Description") + .HasColumnType("nvarchar(max)"); + + b.Property("FromDate") + .HasColumnType("datetime2"); + + b.Property("MasterPetition_Id") + .HasColumnType("bigint"); + + b.Property("ToDate") + .HasColumnType("datetime2"); + + b.Property("WorkingHoursPerDay") + .HasColumnType("int"); + + b.Property("WorkingHoursPerWeek") + .HasColumnType("int"); + + b.HasKey("id"); + + b.HasIndex("MasterPetition_Id"); + + b.ToTable("Master_WorkHistories", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ModuleAgg.EntityModule", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("IsActiveString") + .HasColumnType("nvarchar(max)"); + + b.Property("NameSubModule") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("id"); + + b.ToTable("TextManager_Module", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ModuleTextManagerAgg.EntityModuleTextManager", b => + { + b.Property("TextManagerId") + .HasColumnType("bigint"); + + b.Property("ModuleId") + .HasColumnType("bigint"); + + b.HasKey("TextManagerId", "ModuleId"); + + b.HasIndex("ModuleId"); + + b.ToTable("TextManager_ModuleTextManager", (string)null); + }); + + modelBuilder.Entity("Company.Domain.OriginalTitleAgg.EntityOriginalTitle", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("IsActiveString") + .HasColumnType("nvarchar(max)"); + + b.Property("Title") + .IsRequired() + .HasMaxLength(60) + .HasColumnType("nvarchar(60)"); + + b.HasKey("id"); + + b.ToTable("TextManager_OriginalTitle", (string)null); + }); + + modelBuilder.Entity("Company.Domain.PaymentInstrumentAgg.PaymentInstrument", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("AccountHolderName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("AccountNumber") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("CardNumber") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Description") + .HasMaxLength(200) + .HasColumnType("nvarchar(200)"); + + b.Property("IBan") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("IsAuth") + .HasColumnType("bit"); + + b.Property("PaymentInstrumentGroupId") + .HasColumnType("bigint"); + + b.Property("PosTerminalId") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.HasKey("id"); + + b.HasIndex("PaymentInstrumentGroupId"); + + b.ToTable("PaymentInstruments"); + }); + + modelBuilder.Entity("Company.Domain.PaymentInstrumentAgg.PaymentInstrumentGroup", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("IsActive") + .HasColumnType("int"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(120) + .HasColumnType("nvarchar(120)"); + + b.HasKey("id"); + + b.ToTable("PaymentInstrumentGroups"); + }); + + modelBuilder.Entity("Company.Domain.PaymentToEmployeeAgg.PaymentToEmployee", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("Month") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("Year") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)"); + + b.HasKey("id"); + + b.ToTable("PaymentToEmployees", (string)null); + }); + + modelBuilder.Entity("Company.Domain.PaymentToEmployeeItemAgg.PaymentToEmployeeItem", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BankCheckNumber") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("CashDescription") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DestinationBankAccountNumber") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("DestinationBankName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("PayDate") + .HasColumnType("datetime2"); + + b.Property("Payment") + .HasColumnType("float"); + + b.Property("PaymentMetod") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("PaymentTitle") + .HasMaxLength(150) + .HasColumnType("nvarchar(150)"); + + b.Property("PaymentToEmployeeId") + .HasColumnType("bigint"); + + b.Property("SourceBankAccountNumber") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("SourceBankName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("TypeDestinationBankNumber") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("TypeSourceBankNumber") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("PaymentToEmployeeId"); + + b.ToTable("PaymentToEmployeeItems", (string)null); + }); + + modelBuilder.Entity("Company.Domain.PaymentTransactionAgg.PaymentTransaction", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Amount") + .HasColumnType("float"); + + b.Property("BankName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("CallBackUrl") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("CardNumber") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("ContractingPartyId") + .HasColumnType("bigint"); + + b.Property("ContractingPartyName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DigitalReceipt") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("FinancialInvoiceId") + .HasColumnType("bigint"); + + b.Property("Gateway") + .IsRequired() + .HasMaxLength(35) + .HasColumnType("nvarchar(35)"); + + b.Property("Rrn") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("Status") + .IsRequired() + .HasMaxLength(35) + .HasColumnType("nvarchar(35)"); + + b.Property("TransactionDate") + .HasColumnType("datetime2"); + + b.Property("TransactionId") + .HasMaxLength(60) + .HasColumnType("nvarchar(60)"); + + b.HasKey("id"); + + b.HasIndex("FinancialInvoiceId"); + + b.ToTable("PaymentTransactions", (string)null); + }); + + modelBuilder.Entity("Company.Domain.PenaltyTitle.PenaltyTitle", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Day") + .HasColumnType("nvarchar(max)"); + + b.Property("FromDate") + .HasColumnType("datetime2(7)"); + + b.Property("PaidAmount") + .HasColumnType("nvarchar(max)"); + + b.Property("Petition_Id") + .HasColumnType("bigint"); + + b.Property("RemainingAmount") + .HasColumnType("nvarchar(max)"); + + b.Property("Title") + .HasColumnType("nvarchar(max)"); + + b.Property("ToDate") + .HasColumnType("datetime2(7)"); + + b.HasKey("id"); + + b.HasIndex("Petition_Id"); + + b.ToTable("PenaltyTitles", (string)null); + }); + + modelBuilder.Entity("Company.Domain.PercentageAgg.Percentage", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Percent") + .HasColumnType("float"); + + b.HasKey("id"); + + b.ToTable("Percentages", (string)null); + }); + + modelBuilder.Entity("Company.Domain.PersonnelCodeAgg.PersonnelCodeDomain", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("PersonnelCode") + .HasColumnType("bigint"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("EmployeeId"); + + b.HasIndex("WorkshopId"); + + b.ToTable("PersonnelCodes", (string)null); + }); + + modelBuilder.Entity("Company.Domain.Petition.Petition", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BoardType_Id") + .HasColumnType("int"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Description") + .HasColumnType("nvarchar(max)"); + + b.Property("File_Id") + .HasColumnType("bigint"); + + b.Property("NotificationPetitionDate") + .HasColumnType("datetime2"); + + b.Property("PetitionIssuanceDate") + .HasColumnType("datetime2"); + + b.Property("PetitionNo") + .HasColumnType("nvarchar(max)"); + + b.Property("TotalPenalty") + .HasColumnType("nvarchar(max)"); + + b.Property("TotalPenaltyTitles") + .HasColumnType("nvarchar(max)"); + + b.Property("WorkHistoryDescreption") + .HasColumnType("nvarchar(max)"); + + b.HasKey("id"); + + b.HasIndex("BoardType_Id"); + + b.HasIndex("File_Id"); + + b.ToTable("Petitions", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ProceedingSession.ProceedingSession", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Board_Id") + .HasColumnType("bigint"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Date") + .HasColumnType("datetime2"); + + b.Property("Status") + .HasColumnType("int"); + + b.Property("Time") + .HasColumnType("nvarchar(max)"); + + b.HasKey("id"); + + b.HasIndex("Board_Id"); + + b.ToTable("ProceedingSessions", (string)null); + }); + + modelBuilder.Entity("Company.Domain.RepresentativeAgg.Representative", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Address") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("AgentPhone") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("FName") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("FullName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("IdNumber") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("IsActive") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("IsLegal") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("LName") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("LegalName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("NationalId") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("Nationalcode") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("Phone") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("RegisterId") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.HasKey("id"); + + b.ToTable("Representative", (string)null); + }); + + modelBuilder.Entity("Company.Domain.RewardAgg.Reward", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Amount") + .HasColumnType("float"); + + b.Property("CreatedByAccountId") + .HasColumnType("bigint"); + + b.Property("CreatedByUserType") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Description") + .HasColumnType("ntext"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("GrantDate") + .HasColumnType("datetime2"); + + b.Property("IsActive") + .IsRequired() + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("LastModifiedByAccountId") + .HasColumnType("bigint"); + + b.Property("LastModifiedByUserType") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("RewardType") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("Title") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.ToTable("Rewards", (string)null); + }); + + modelBuilder.Entity("Company.Domain.RollCallAgg.RollCall", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BreakTimeSpan") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EarlyEntryDuration") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("EarlyExitDuration") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("EmployeeFullName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("EndDate") + .HasColumnType("datetime2"); + + b.Property("FridayWorkTimeSpan") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("LateEntryDuration") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("LateExitDuration") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("Month") + .HasColumnType("int"); + + b.Property("NightWorkTimeSpan") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("RollCallModifyType") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("ShiftDate") + .HasColumnType("datetime2"); + + b.Property("ShiftDurationTimeSpan") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("ShiftType") + .IsRequired() + .HasMaxLength(22) + .HasColumnType("nvarchar(22)"); + + b.Property("StartDate") + .HasColumnType("datetime2"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("Year") + .HasColumnType("int"); + + b.HasKey("id"); + + b.ToTable("RollCall", (string)null); + }); + + modelBuilder.Entity("Company.Domain.RollCallEmployeeAgg.RollCallEmployee", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("EmployeeFullName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("FName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("HasChangedName") + .HasColumnType("bit"); + + b.Property("HasUploadedImage") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("IsActiveString") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("LName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.ToTable("RollCallEmployees", (string)null); + }); + + modelBuilder.Entity("Company.Domain.RollCallEmployeeStatusAgg.RollCallEmployeeStatus", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("EndDate") + .HasColumnType("datetime2"); + + b.Property("RollCallEmployeeId") + .HasColumnType("bigint"); + + b.Property("StartDate") + .HasColumnType("datetime2"); + + b.HasKey("id"); + + b.HasIndex("RollCallEmployeeId"); + + b.ToTable("RollCallEmployeesStatus"); + }); + + modelBuilder.Entity("Company.Domain.RollCallPlanAgg.RollCallPlan", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BaseAmont") + .HasColumnType("float"); + + b.Property("FinalAmont") + .HasColumnType("float"); + + b.Property("IncreasePercentage") + .HasColumnType("float"); + + b.Property("MaxPersonValid") + .HasColumnType("int"); + + b.HasKey("id"); + + b.ToTable("RollCallPlans", (string)null); + }); + + modelBuilder.Entity("Company.Domain.RollCallServiceAgg.RollCallService", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("AccountId") + .HasColumnType("bigint"); + + b.Property("Amount") + .HasColumnType("float"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("CustomizeCheckoutAmount") + .HasColumnType("float"); + + b.Property("CustomizeCheckoutServiceEnd") + .HasColumnType("datetime2"); + + b.Property("CustomizeCheckoutServiceStart") + .HasColumnType("datetime2"); + + b.Property("Duration") + .HasMaxLength(2) + .HasColumnType("nvarchar(2)"); + + b.Property("EndService") + .HasColumnType("datetime2"); + + b.Property("HasCustomizeCheckoutService") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("IsActiveString") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("MaxPersonValid") + .HasColumnType("int"); + + b.Property("ServiceType") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("StartService") + .HasColumnType("datetime2"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("WorkshopId"); + + b.ToTable("RollCallServices", (string)null); + }); + + modelBuilder.Entity("Company.Domain.SalaryAidAgg.SalaryAid", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Amount") + .HasColumnType("float"); + + b.Property("CalculationDate") + .HasColumnType("datetime2"); + + b.Property("CalculationMonth") + .HasColumnType("int"); + + b.Property("CalculationYear") + .HasColumnType("int"); + + b.Property("CreatedByAccountId") + .HasColumnType("bigint"); + + b.Property("CreatedByUserType") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("LastModifiedByAccountId") + .HasColumnType("bigint"); + + b.Property("LastModifiedByUserType") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("SalaryAidDateTime") + .HasColumnType("datetime2"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.ToTable("SalaryAids", (string)null); + }); + + modelBuilder.Entity("Company.Domain.SmsResultAgg.SmsResult", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("ContractingPartyName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("ContractingPatyId") + .HasColumnType("bigint"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("InstitutionContractId") + .HasColumnType("bigint"); + + b.Property("MessageId") + .HasColumnType("int"); + + b.Property("Mobile") + .HasMaxLength(12) + .HasColumnType("nvarchar(12)"); + + b.Property("Status") + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("TypeOfSms") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.HasKey("id"); + + b.ToTable("SmsResults", (string)null); + }); + + modelBuilder.Entity("Company.Domain.SmsResultAgg.SmsSetting", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("DayOfMonth") + .HasColumnType("int"); + + b.Property("IsActive") + .HasColumnType("bit"); + + b.Property("TimeOfDay") + .HasColumnType("time(0)"); + + b.Property("TypeOfSmsSetting") + .IsRequired() + .HasMaxLength(70) + .HasColumnType("nvarchar(70)"); + + b.HasKey("id"); + + b.ToTable("SmsSettings", (string)null); + }); + + modelBuilder.Entity("Company.Domain.SubtitleAgg.EntitySubtitle", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EntitySubtitleid") + .HasColumnType("bigint"); + + b.Property("IsActiveString") + .HasColumnType("nvarchar(max)"); + + b.Property("OriginalTitle_Id") + .HasColumnType("bigint"); + + b.Property("Subtitle") + .IsRequired() + .HasMaxLength(60) + .HasColumnType("nvarchar(60)"); + + b.HasKey("id"); + + b.HasIndex("EntitySubtitleid"); + + b.HasIndex("OriginalTitle_Id"); + + b.ToTable("TextManager_Subtitle", (string)null); + }); + + modelBuilder.Entity("Company.Domain.TaxJobCategoryAgg.TaxJobCategory", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("JobCategoryCode") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("JobCategoryName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.HasKey("id"); + + b.ToTable("TaxJobCategory", (string)null); + }); + + modelBuilder.Entity("Company.Domain.TaxLeftWorkCategoryAgg.TaxLeftWorkCategory", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BudgetLawExceptions") + .HasMaxLength(3) + .HasColumnType("nvarchar(3)"); + + b.Property("Country") + .HasMaxLength(3) + .HasColumnType("nvarchar(3)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("CurrencyType") + .HasMaxLength(3) + .HasColumnType("nvarchar(3)"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("EmployeeName") + .HasMaxLength(150) + .HasColumnType("nvarchar(150)"); + + b.Property("EmploymentLocationStatus") + .HasMaxLength(3) + .HasColumnType("nvarchar(3)"); + + b.Property("ExchangeRate") + .HasMaxLength(3) + .HasColumnType("nvarchar(3)"); + + b.Property("InsuranceBranch") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("InsuranceName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("JobCategoryCode") + .HasMaxLength(3) + .HasColumnType("nvarchar(3)"); + + b.Property("JobCategoryId") + .HasColumnType("bigint"); + + b.Property("JobTitle") + .HasMaxLength(150) + .HasColumnType("nvarchar(150)"); + + b.Property("PaymentType") + .HasMaxLength(3) + .HasColumnType("nvarchar(3)"); + + b.Property("RetirementDate") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("TaxExempt") + .HasMaxLength(3) + .HasColumnType("nvarchar(3)"); + + b.Property("TypeOfEmployment") + .HasMaxLength(3) + .HasColumnType("nvarchar(3)"); + + b.Property("TypeOfInsurance") + .HasMaxLength(3) + .HasColumnType("nvarchar(3)"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("WorkshopName") + .HasMaxLength(150) + .HasColumnType("nvarchar(150)"); + + b.HasKey("id"); + + b.HasIndex("WorkshopId"); + + b.ToTable("TaxLeftWorkCategory", (string)null); + }); + + modelBuilder.Entity("Company.Domain.TaxLeftWorkItemAgg.TaxLeftWorkItem", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("LeftWork") + .HasColumnType("datetime2"); + + b.Property("StartWork") + .HasColumnType("datetime2"); + + b.Property("TaxLeftWorkCategoryId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("TaxLeftWorkCategoryId"); + + b.ToTable("TaxLeftWorkItem", (string)null); + }); + + modelBuilder.Entity("Company.Domain.TemporaryClientRegistrationAgg.ContractingPartyTemp", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Address") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("City") + .HasMaxLength(35) + .HasColumnType("nvarchar(35)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DateOfBirth") + .HasColumnType("datetime2"); + + b.Property("FName") + .IsRequired() + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("FatherName") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("Gender") + .IsRequired() + .HasMaxLength(6) + .HasColumnType("nvarchar(6)"); + + b.Property("IdNumber") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("IdNumberSeri") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("IdNumberSerial") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("LName") + .IsRequired() + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("NationalCode") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("Phone") + .HasMaxLength(12) + .HasColumnType("nvarchar(12)"); + + b.Property("PublicId") + .HasColumnType("uniqueidentifier"); + + b.Property("State") + .HasMaxLength(35) + .HasColumnType("nvarchar(35)"); + + b.Property("Status") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("VerifyCode") + .HasMaxLength(12) + .HasColumnType("nvarchar(12)"); + + b.Property("VerifyCodeSentDateTime") + .HasColumnType("datetime2"); + + b.HasKey("id"); + + b.ToTable("ContractingPartyTemp", (string)null); + }); + + modelBuilder.Entity("Company.Domain.TemporaryClientRegistrationAgg.InstitutionContractContactInfoTemp", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("FullName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("InstitutionContractTempId") + .HasColumnType("bigint"); + + b.Property("PhoneNumber") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("PhoneType") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("Position") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("SendSms") + .HasColumnType("bit"); + + b.HasKey("id"); + + b.HasIndex("InstitutionContractTempId"); + + b.ToTable("InstitutionContractContactInfoTemp", (string)null); + }); + + modelBuilder.Entity("Company.Domain.TemporaryClientRegistrationAgg.InstitutionContractTemp", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("ContractEndGr") + .HasColumnType("datetime2"); + + b.Property("ContractStartGr") + .HasColumnType("datetime2"); + + b.Property("ContractingPartyTempId") + .HasColumnType("bigint"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("MessageId") + .HasColumnType("int"); + + b.Property("OfficialCompany") + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("PaymentModel") + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("PeriodModel") + .HasMaxLength(3) + .HasColumnType("nvarchar(3)"); + + b.Property("PublicId") + .HasColumnType("uniqueidentifier"); + + b.Property("RegistrationStatus") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("SendVerifyCodeTime") + .HasColumnType("datetime2"); + + b.Property("TotalPayment") + .HasColumnType("float"); + + b.Property("ValueAddedTax") + .HasColumnType("float"); + + b.Property("VerifyCode") + .HasMaxLength(6) + .HasColumnType("nvarchar(6)"); + + b.Property("VerifyCodeEndTime") + .HasColumnType("datetime2"); + + b.HasKey("id"); + + b.ToTable("InstitutionContractTemps", (string)null); + }); + + modelBuilder.Entity("Company.Domain.TemporaryClientRegistrationAgg.WorkshopServicesTemp", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CountPerson") + .HasColumnType("int"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("ServiceName") + .HasMaxLength(40) + .HasColumnType("nvarchar(40)"); + + b.Property("WorkshopTempId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("WorkshopTempId"); + + b.ToTable("WorkshopServicesTemps", (string)null); + }); + + modelBuilder.Entity("Company.Domain.TemporaryClientRegistrationAgg.WorkshopTemp", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("ContractingPartyTempId") + .HasColumnType("bigint"); + + b.Property("CountPerson") + .HasColumnType("int"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("WorkshopName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("WorkshopServicesAmount") + .HasColumnType("float"); + + b.HasKey("id"); + + b.ToTable("WorkshopTemps", (string)null); + }); + + modelBuilder.Entity("Company.Domain.TextManagerAgg.EntityTextManager", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Chapter_Id") + .HasColumnType("bigint"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DateTextManager") + .HasColumnType("nvarchar(max)"); + + b.Property("Description") + .HasColumnType("nvarchar(max)"); + + b.Property("IsActiveString") + .HasColumnType("nvarchar(max)"); + + b.Property("NoteNumber") + .HasColumnType("nvarchar(max)"); + + b.Property("NumberTextManager") + .HasColumnType("nvarchar(max)"); + + b.Property("OriginalTitle_Id") + .HasColumnType("bigint"); + + b.Property("Paragraph") + .HasColumnType("nvarchar(max)"); + + b.Property("SubjectTextManager") + .HasColumnType("nvarchar(max)"); + + b.Property("Subtitle_Id") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.ToTable("TextManager_TextManager", (string)null); + }); + + modelBuilder.Entity("Company.Domain.WorkHistory.WorkHistory", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Description") + .HasColumnType("nvarchar(max)"); + + b.Property("FromDate") + .HasColumnType("datetime2"); + + b.Property("Petition_Id") + .HasColumnType("bigint"); + + b.Property("ToDate") + .HasColumnType("datetime2"); + + b.Property("WorkingHoursPerDay") + .HasColumnType("int"); + + b.Property("WorkingHoursPerWeek") + .HasColumnType("int"); + + b.HasKey("id"); + + b.HasIndex("Petition_Id"); + + b.ToTable("WorkHistories", (string)null); + }); + + modelBuilder.Entity("Company.Domain.WorkingHoursAgg.WorkingHours", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("ContractId") + .HasColumnType("bigint"); + + b.Property("ContractNo") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("NumberOfFriday") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("NumberOfWorkingDays") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("OverNightWorkH") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("OverNightWorkM") + .HasMaxLength(2) + .HasColumnType("nvarchar(2)"); + + b.Property("OverTimeWorkH") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("OverTimeWorkM") + .HasMaxLength(2) + .HasColumnType("nvarchar(2)"); + + b.Property("ShiftWork") + .HasMaxLength(2) + .HasColumnType("nvarchar(2)"); + + b.Property("TotalHoursesH") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("TotalHoursesM") + .HasMaxLength(2) + .HasColumnType("nvarchar(2)"); + + b.Property("WeeklyWorkingTime") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.HasKey("id"); + + b.HasIndex("ContractId"); + + b.ToTable("WorkingHours", (string)null); + }); + + modelBuilder.Entity("Company.Domain.WorkingHoursItemsAgg.WorkingHoursItems", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("ComplexEnd") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("ComplexStart") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DayOfWork") + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b.Property("End1") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("End2") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("End3") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("RestTime") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("Start1") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("Start2") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("Start3") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("WeekNumber") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("WorkingHoursId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("WorkingHoursId"); + + b.ToTable("WorkingHoursItems", (string)null); + }); + + modelBuilder.Entity("Company.Domain.WorkingHoursTempAgg.WorkingHoursTemp", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("ShiftWork") + .HasMaxLength(2) + .HasColumnType("nvarchar(2)"); + + b.Property("WorkShopAddress2") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.ToTable("WorkingHoursTemp", (string)null); + }); + + modelBuilder.Entity("Company.Domain.WorkingHoursTempItemAgg.WorkingHoursTempItem", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("ComplexEnd") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("ComplexStart") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DayOfWork") + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b.Property("End1") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("End2") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("RestTime") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("Start1") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("Start2") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("WeekNumber") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("WorkingHoursTempId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("WorkingHoursTempId"); + + b.ToTable("WorkingHoursTempItem", (string)null); + }); + + modelBuilder.Entity("Company.Domain.WorkshopAccountAgg.WorkshopAccount", b => + { + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("AccountId") + .HasColumnType("bigint"); + + b.Property("ContractAndCheckout") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("Insurance") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("IsActiveSting") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("Tax") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.HasKey("WorkshopId", "AccountId"); + + b.ToTable("WorkshopeAccounts", (string)null); + }); + + modelBuilder.Entity("Company.Domain.WorkshopAgg.Workshop", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("AddBonusesPay") + .HasColumnType("bit"); + + b.Property("AddLeavePay") + .HasColumnType("bit"); + + b.Property("AddYearsPay") + .HasColumnType("bit"); + + b.Property("Address") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("AgentName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("AgentPhone") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("AgreementNumber") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("ArchiveCode") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("BonusesOptions") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("City") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("ComputeOptions") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("ContractTerm") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("ContractingPartyId") + .HasColumnType("bigint"); + + b.Property("CreateCheckout") + .HasColumnType("bit"); + + b.Property("CreateContract") + .HasColumnType("bit"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("CutContractEndOfYear") + .IsRequired() + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("FixedSalary") + .HasColumnType("bit"); + + b.Property("HasRollCallFreeVip") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("InsuranceCheckoutFamilyAllowance") + .HasColumnType("bit"); + + b.Property("InsuranceCheckoutOvertime") + .HasColumnType("bit"); + + b.Property("InsuranceCode") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("InsuranceJobId") + .HasColumnType("bigint"); + + b.Property("IsActive") + .HasColumnType("bit"); + + b.Property("IsActiveString") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("IsClassificationSchemeCompleted") + .HasColumnType("bit"); + + b.Property("IsClassified") + .HasColumnType("bit"); + + b.Property("IsOldContract") + .HasColumnType("bit"); + + b.Property("IsStaticCheckout") + .HasColumnType("bit"); + + b.Property("Population") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("RotatingShiftCompute") + .HasColumnType("bit"); + + b.Property("SignCheckout") + .HasColumnType("bit"); + + b.Property("SignContract") + .HasColumnType("bit"); + + b.Property("State") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("TotalPaymentHide") + .HasColumnType("bit"); + + b.Property("TypeOfContract") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("TypeOfInsuranceSend") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("TypeOfOwnership") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("WorkshopFullName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("WorkshopHolidayWorking") + .HasColumnType("bit"); + + b.Property("WorkshopName") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("WorkshopSureName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("YearsOptions") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("ZoneName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.HasKey("id"); + + b.ToTable("Workshops", (string)null); + }); + + modelBuilder.Entity("Company.Domain.WorkshopEmployerAgg.WorkshopEmployer", b => + { + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("EmployerId") + .HasColumnType("bigint"); + + b.HasKey("WorkshopId", "EmployerId"); + + b.HasIndex("EmployerId"); + + b.ToTable("WorkshopeEmployers", (string)null); + }); + + modelBuilder.Entity("Company.Domain.WorkshopPlanAgg.WorkshopPlan", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Designer") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("DesignerPhone") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("ExecutionDateFa") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("ExecutionDateGr") + .HasColumnType("datetime2"); + + b.Property("IncludingDateFa") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("IncludingDateGr") + .HasColumnType("datetime2"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.ToTable("WorkshopPlan", (string)null); + }); + + modelBuilder.Entity("Company.Domain.WorkshopPlanEmployeeAgg.WorkshopPlanEmployee", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployeeFullName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("WorkshopPlanId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("WorkshopPlanId"); + + b.ToTable("WorkshopPlanEmployees", (string)null); + }); + + modelBuilder.Entity("Company.Domain.WorkshopSubAccountAgg.WorkshopSubAccount", b => + { + b.Property("SubAccountId") + .HasColumnType("bigint"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("IsActive") + .HasMaxLength(5) + .HasColumnType("int"); + + b.HasKey("SubAccountId", "WorkshopId"); + + b.HasIndex("WorkshopId"); + + b.ToTable("WorkshopSubAccounts", (string)null); + }); + + modelBuilder.Entity("Company.Domain.YearlySalaryAgg.YearlySalary", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("ConnectionId") + .HasColumnType("int"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EndDate") + .HasColumnType("datetime2"); + + b.Property("StartDate") + .HasColumnType("datetime2"); + + b.Property("Year") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.HasKey("id"); + + b.ToTable("YearlySalariess", (string)null); + }); + + modelBuilder.Entity("Company.Domain.YearlySalaryItemsAgg.YearlySalaryItem", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("ItemName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("ItemValue") + .HasColumnType("float"); + + b.Property("ParentConnectionId") + .HasColumnType("int"); + + b.Property("ValueType") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("YearlySalaryId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("YearlySalaryId"); + + b.ToTable("YearlyItems", (string)null); + }); + + modelBuilder.Entity("Company.Domain.YearlysSalaryTitleAgg.YearlySalaryTitle", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Title1") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Title10") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Title2") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Title3") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Title4") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Title5") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Title6") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Title7") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Title8") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Title9") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.HasKey("id"); + + b.ToTable("YearlySalaryTitles", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ZoneAgg.Zone", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CityId") + .HasColumnType("int"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("ZoneName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.HasKey("id"); + + b.ToTable("Zones", (string)null); + }); + + modelBuilder.Entity("Company.Domain.empolyerAgg.Employer", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Address") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("AgentPhone") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("ContractingPartyId") + .HasColumnType("bigint"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DateOfBirth") + .HasColumnType("datetime2"); + + b.Property("DateOfIssue") + .HasColumnType("datetime2"); + + b.Property("EmployerLName") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("EmployerNo") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("EservicePassword") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("EserviceUserName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("FName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("FatherName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("FullName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Gender") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("IdNumber") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("IdNumberSeri") + .HasColumnType("nvarchar(max)"); + + b.Property("IdNumberSerial") + .HasColumnType("nvarchar(max)"); + + b.Property("IsActive") + .HasColumnType("bit"); + + b.Property("IsAuth") + .HasColumnType("bit"); + + b.Property("IsLegal") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("LName") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("MclsPassword") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("MclsUserName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("NationalId") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("Nationalcode") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("Nationality") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("Phone") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("PlaceOfIssue") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("RegisterId") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("SanaPassword") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("SanaUserName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("TaxOfficeUserName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("TaxOfficepassword") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.HasKey("id"); + + b.HasIndex("ContractingPartyId"); + + b.ToTable("Employers", (string)null); + }); + + modelBuilder.Entity("EmployerWorkshop", b => + { + b.Property("EmployersListid") + .HasColumnType("bigint"); + + b.Property("WorkshopsListid") + .HasColumnType("bigint"); + + b.HasKey("EmployersListid", "WorkshopsListid"); + + b.HasIndex("WorkshopsListid"); + + b.ToTable("EmployerWorkshop"); + }); + + modelBuilder.Entity("Company.Domain.AuthorizedBankDetailsAgg.AuthorizedBankDetails", b => + { + b.OwnsMany("Company.Domain.AuthorizedBankDetailsAgg.AuthorizedBankDetailsOwner", "OwnersList", b1 => + { + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("AuthorizedBankDetailsId") + .HasColumnType("bigint"); + + b1.Property("CustomerType") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b1.Property("FName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b1.Property("LName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b1.Property("NationalIdentifier") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b1.HasKey("Id"); + + b1.HasIndex("AuthorizedBankDetailsId"); + + b1.ToTable("AuthorizedBankDetailsOwners", (string)null); + + b1.WithOwner() + .HasForeignKey("AuthorizedBankDetailsId"); + }); + + b.Navigation("OwnersList"); + }); + + modelBuilder.Entity("Company.Domain.Board.Board", b => + { + b.HasOne("Company.Domain.BoardType.BoardType", "BoardType") + .WithMany("BoardsList") + .HasForeignKey("BoardType_Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.File1.File1", "File1") + .WithMany("BoardsList") + .HasForeignKey("File_Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("BoardType"); + + b.Navigation("File1"); + }); + + modelBuilder.Entity("Company.Domain.CameraBugReportAgg.CameraBugReportLog", b => + { + b.HasOne("Company.Domain.CameraBugReportAgg.CameraBugReport", null) + .WithMany("Logs") + .HasForeignKey("CameraBugReportId"); + }); + + modelBuilder.Entity("Company.Domain.CameraBugReportAgg.CameraBugReportScreenshot", b => + { + b.HasOne("Company.Domain.CameraBugReportAgg.CameraBugReport", null) + .WithMany("Screenshots") + .HasForeignKey("CameraBugReportId"); + }); + + modelBuilder.Entity("Company.Domain.ChapterAgg.EntityChapter", b => + { + b.HasOne("Company.Domain.SubtitleAgg.EntitySubtitle", "EntitySubtitle") + .WithMany("Chapters") + .HasForeignKey("Subtitle_Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("EntitySubtitle"); + }); + + modelBuilder.Entity("Company.Domain.CheckoutAgg.Checkout", b => + { + b.HasOne("Company.Domain.WorkshopAgg.Workshop", "Workshop") + .WithMany("Checkouts") + .HasForeignKey("WorkshopId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.OwnsOne("Company.Domain.CheckoutAgg.CheckoutRollCall", "CheckoutRollCall", b1 => + { + b1.Property("Checkoutid") + .HasColumnType("bigint"); + + b1.Property("TotalBreakTimeSpan") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b1.Property("TotalMandatoryTimeSpan") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b1.Property("TotalPaidLeaveTmeSpan") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b1.Property("TotalPresentTimeSpan") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b1.Property("TotalSickLeaveTimeSpan") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b1.Property("TotalWorkingTimeSpan") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b1.HasKey("Checkoutid"); + + b1.ToTable("Checkouts"); + + b1.WithOwner() + .HasForeignKey("Checkoutid"); + + b1.OwnsMany("Company.Domain.CheckoutAgg.CheckoutRollCallDay", "RollCallDaysCollection", b2 => + { + b2.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b2.Property("Id")); + + b2.Property("BreakTimeSpan") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b2.Property("CheckoutId") + .HasColumnType("bigint"); + + b2.Property("Date") + .HasColumnType("datetime2"); + + b2.Property("FirstEndDate") + .HasMaxLength(18) + .HasColumnType("nvarchar(18)"); + + b2.Property("FirstStartDate") + .HasMaxLength(18) + .HasColumnType("nvarchar(18)"); + + b2.Property("IsAbsent") + .HasColumnType("bit"); + + b2.Property("IsFriday") + .HasColumnType("bit"); + + b2.Property("IsHoliday") + .HasColumnType("bit"); + + b2.Property("IsSliced") + .HasColumnType("bit"); + + b2.Property("LeaveType") + .HasMaxLength(18) + .HasColumnType("nvarchar(18)"); + + b2.Property("SecondEndDate") + .HasMaxLength(18) + .HasColumnType("nvarchar(18)"); + + b2.Property("SecondStartDate") + .HasMaxLength(18) + .HasColumnType("nvarchar(18)"); + + b2.Property("WorkingTimeSpan") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b2.HasKey("Id"); + + b2.HasIndex("CheckoutId"); + + b2.ToTable("CheckoutRollCallDay"); + + b2.WithOwner() + .HasForeignKey("CheckoutId"); + }); + + b1.Navigation("RollCallDaysCollection"); + }); + + b.OwnsMany("Company.Domain.CheckoutAgg.ValueObjects.CheckoutLoanInstallment", "LoanInstallments", b1 => + { + b1.Property("Checkoutid") + .HasColumnType("bigint"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("AmountForMonth") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b1.Property("EntityId") + .HasColumnType("bigint"); + + b1.Property("IsActive") + .IsRequired() + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b1.Property("LoanAmount") + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b1.Property("LoanRemaining") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b1.Property("Month") + .HasMaxLength(2) + .HasColumnType("nvarchar(2)"); + + b1.Property("Year") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)"); + + b1.HasKey("Checkoutid", "Id"); + + b1.ToTable("CheckoutLoanInstallment"); + + b1.WithOwner() + .HasForeignKey("Checkoutid"); + }); + + b.OwnsMany("Company.Domain.CheckoutAgg.ValueObjects.CheckoutSalaryAid", "SalaryAids", b1 => + { + b1.Property("Checkoutid") + .HasColumnType("bigint"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("Amount") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b1.Property("CalculationDateTime") + .HasColumnType("datetime2"); + + b1.Property("CalculationDateTimeFa") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b1.Property("EntityId") + .HasColumnType("bigint"); + + b1.Property("SalaryAidDateTime") + .HasColumnType("datetime2"); + + b1.Property("SalaryAidDateTimeFa") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b1.HasKey("Checkoutid", "Id"); + + b1.ToTable("CheckoutSalaryAid"); + + b1.WithOwner() + .HasForeignKey("Checkoutid"); + }); + + b.Navigation("CheckoutRollCall"); + + b.Navigation("LoanInstallments"); + + b.Navigation("SalaryAids"); + + b.Navigation("Workshop"); + }); + + modelBuilder.Entity("Company.Domain.CheckoutAgg.CheckoutWarningMessage", b => + { + b.HasOne("Company.Domain.CheckoutAgg.Checkout", "Checkout") + .WithMany("CheckoutWarningMessageList") + .HasForeignKey("CheckoutId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Checkout"); + }); + + modelBuilder.Entity("Company.Domain.ClassificationSchemeAgg.ClassificationEmployee", b => + { + b.HasOne("Company.Domain.ClassificationSchemeAgg.ClassificationGroup", "ClassificationGroup") + .WithMany("ClassificationEmployees") + .HasForeignKey("ClassificationGroupId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClassificationGroup"); + }); + + modelBuilder.Entity("Company.Domain.ClassificationSchemeAgg.ClassificationGroup", b => + { + b.HasOne("Company.Domain.ClassificationSchemeAgg.ClassificationScheme", "ClassificationScheme") + .WithMany("ClassificationGroups") + .HasForeignKey("ClassificationSchemeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClassificationScheme"); + }); + + modelBuilder.Entity("Company.Domain.ClassificationSchemeAgg.ClassificationGroupJob", b => + { + b.HasOne("Company.Domain.ClassificationSchemeAgg.ClassificationGroup", "ClassificationGroup") + .WithMany("ClassificationGroupJobs") + .HasForeignKey("ClassificationGroupId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClassificationGroup"); + }); + + modelBuilder.Entity("Company.Domain.ClassificationSchemeAgg.ClassificationGroupSalary", b => + { + b.HasOne("Company.Domain.ClassificationSchemeAgg.ClassificationGroup", "ClassificationGroup") + .WithMany("ClassificationGroupSalaries") + .HasForeignKey("ClassificationGroupId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClassificationGroup"); + }); + + modelBuilder.Entity("Company.Domain.ClassificationSchemeAgg.ClassificationRialCoefficient", b => + { + b.HasOne("Company.Domain.ClassificationSchemeAgg.ClassificationScheme", "ClassificationScheme") + .WithMany("ClassificationRialCoefficients") + .HasForeignKey("ClassificationSchemeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClassificationScheme"); + }); + + modelBuilder.Entity("Company.Domain.ClientEmployeeWorkshopAgg.ClientEmployeeWorkshop", b => + { + b.HasOne("Company.Domain.EmployeeAgg.Employee", "Employee") + .WithMany("ClientEmployeeWorkshopList") + .HasForeignKey("EmployeeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.WorkshopAgg.Workshop", "Workshop") + .WithMany("ClientEmployeeWorkshopList") + .HasForeignKey("WorkshopId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Employee"); + + b.Navigation("Workshop"); + }); + + modelBuilder.Entity("Company.Domain.ContarctingPartyAgg.PersonalContractingParty", b => + { + b.HasOne("Company.Domain.RepresentativeAgg.Representative", "Representative") + .WithMany("ContractingParties") + .HasForeignKey("RepresentativeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Representative"); + }); + + modelBuilder.Entity("Company.Domain.ContractAgg.Contract", b => + { + b.HasOne("Company.Domain.EmployeeAgg.Employee", "Employee") + .WithMany("Contracts") + .HasForeignKey("EmployeeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.empolyerAgg.Employer", "Employer") + .WithMany("Contracts") + .HasForeignKey("EmployerId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.JobAgg.Job", "Job") + .WithMany("ContractsList") + .HasForeignKey("JobTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.MandatoryHoursAgg.MandatoryHours", null) + .WithMany("Contracts") + .HasForeignKey("MandatoryHoursid"); + + b.HasOne("Company.Domain.WorkshopAgg.Workshop", "Workshop") + .WithMany("Contracts2") + .HasForeignKey("WorkshopIds") + .OnDelete(DeleteBehavior.NoAction) + .IsRequired(); + + b.HasOne("Company.Domain.YearlySalaryAgg.YearlySalary", "YearlySalary") + .WithMany("Contracts") + .HasForeignKey("YearlySalaryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Employee"); + + b.Navigation("Employer"); + + b.Navigation("Job"); + + b.Navigation("Workshop"); + + b.Navigation("YearlySalary"); + }); + + modelBuilder.Entity("Company.Domain.ContractingPartyAccountAgg.ContractingPartyAccount", b => + { + b.HasOne("Company.Domain.ContarctingPartyAgg.PersonalContractingParty", "PersonalContractingParty") + .WithMany() + .HasForeignKey("PersonalContractingPartyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("PersonalContractingParty"); + }); + + modelBuilder.Entity("Company.Domain.ContractingPartyBankAccountsAgg.ContractingPartyBankAccount", b => + { + b.HasOne("Company.Domain.ContarctingPartyAgg.PersonalContractingParty", "ContractingParty") + .WithMany("ContractingPartyBankAccounts") + .HasForeignKey("ContractingPartyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ContractingParty"); + }); + + modelBuilder.Entity("Company.Domain.CrossJobAgg.CrossJob", b => + { + b.HasOne("Company.Domain.CrossJobGuildAgg.CrossJobGuild", "CrossJobGuild") + .WithMany("CrossJobList") + .HasForeignKey("CrossJobGuildId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CrossJobGuild"); + }); + + modelBuilder.Entity("Company.Domain.CrossJobItemsAgg.CrossJobItems", b => + { + b.HasOne("Company.Domain.CrossJobAgg.CrossJob", "CrossJob") + .WithMany("CrossJobItemsList") + .HasForeignKey("CrossJobId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.JobAgg.Job", "Job") + .WithMany("CrossJobItemsList") + .HasForeignKey("JobId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CrossJob"); + + b.Navigation("Job"); + }); + + modelBuilder.Entity("Company.Domain.CustomizeCheckoutAgg.CustomizeCheckout", b => + { + b.HasOne("Company.Domain.EmployeeAgg.Employee", "Employee") + .WithMany("CustomizeCheckouts") + .HasForeignKey("EmployeeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.WorkshopAgg.Workshop", "Workshop") + .WithMany("CustomizeCheckouts") + .HasForeignKey("WorkshopId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.OwnsMany("_0_Framework.Application.Enums.CheckoutDynamicDeductionItem", "CheckoutDynamicDeductions", b1 => + { + b1.Property("CustomizeCheckoutid") + .HasColumnType("bigint"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("Amount") + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b1.Property("Count") + .HasColumnType("int"); + + b1.Property("Name") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b1.HasKey("CustomizeCheckoutid", "Id"); + + b1.ToTable("CustomizeCheckouts_CheckoutDynamicDeductions"); + + b1.WithOwner() + .HasForeignKey("CustomizeCheckoutid"); + }); + + b.OwnsMany("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.CustomizeRotatingShift", "CustomizeRotatingShifts", b1 => + { + b1.Property("CustomizeCheckoutid") + .HasColumnType("bigint"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("EndTime") + .HasColumnType("time"); + + b1.Property("StartTime") + .HasColumnType("time"); + + b1.HasKey("CustomizeCheckoutid", "Id"); + + b1.ToTable("CustomizeCheckouts_CustomizeRotatingShifts"); + + b1.WithOwner() + .HasForeignKey("CustomizeCheckoutid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.IrregularShift", "IrregularShift", b1 => + { + b1.Property("CustomizeCheckoutid") + .HasColumnType("bigint"); + + b1.Property("EndTime") + .HasColumnType("time"); + + b1.Property("StartTime") + .HasColumnType("time"); + + b1.Property("WorkshopIrregularShifts") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b1.HasKey("CustomizeCheckoutid"); + + b1.ToTable("CustomizeCheckouts"); + + b1.WithOwner() + .HasForeignKey("CustomizeCheckoutid"); + }); + + b.OwnsMany("Company.Domain.CustomizeCheckoutAgg.ValueObjects.CustomizeCheckoutRegularShift", "RegularShifts", b1 => + { + b1.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("id")); + + b1.Property("CreationDate") + .HasColumnType("datetime2"); + + b1.Property("CustomizeCheckoutid") + .HasColumnType("bigint"); + + b1.Property("EndTime") + .HasColumnType("time"); + + b1.Property("Placement") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b1.Property("StartTime") + .HasColumnType("time"); + + b1.HasKey("id"); + + b1.HasIndex("CustomizeCheckoutid"); + + b1.ToTable("CustomizeCheckouts_RegularShifts"); + + b1.WithOwner() + .HasForeignKey("CustomizeCheckoutid"); + }); + + b.OwnsMany("Company.Domain.CustomizeCheckoutAgg.ValueObjects.CustomizeCheckoutFine", "CheckoutFines", b1 => + { + b1.Property("CustomizeCheckoutid") + .HasColumnType("bigint"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("Amount") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b1.Property("CreationDate") + .HasColumnType("datetime2"); + + b1.Property("EntityId") + .HasColumnType("bigint"); + + b1.Property("FineDateFa") + .HasMaxLength(12) + .HasColumnType("nvarchar(12)"); + + b1.Property("FineDateGr") + .HasColumnType("datetime2"); + + b1.Property("IsActive") + .IsRequired() + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b1.Property("Title") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b1.HasKey("CustomizeCheckoutid", "Id"); + + b1.ToTable("CustomizeCheckoutFine"); + + b1.WithOwner() + .HasForeignKey("CustomizeCheckoutid"); + }); + + b.OwnsMany("Company.Domain.CustomizeCheckoutAgg.ValueObjects.CustomizeCheckoutLoanInstallments", "CustomizeCheckoutLoanInstallments", b1 => + { + b1.Property("CustomizeCheckoutid") + .HasColumnType("bigint"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("AmountForMonth") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b1.Property("EntityId") + .HasColumnType("bigint"); + + b1.Property("IsActive") + .IsRequired() + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b1.Property("LoanAmount") + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b1.Property("LoanRemaining") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b1.Property("Month") + .HasMaxLength(2) + .HasColumnType("nvarchar(2)"); + + b1.Property("Year") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)"); + + b1.HasKey("CustomizeCheckoutid", "Id"); + + b1.ToTable("CustomizeCheckoutLoanInstallments"); + + b1.WithOwner() + .HasForeignKey("CustomizeCheckoutid"); + }); + + b.OwnsMany("Company.Domain.CustomizeCheckoutAgg.ValueObjects.CustomizeCheckoutReward", "CustomizeCheckoutRewards", b1 => + { + b1.Property("CustomizeCheckoutid") + .HasColumnType("bigint"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("Amount") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b1.Property("Description") + .HasColumnType("ntext"); + + b1.Property("EntityId") + .HasColumnType("bigint"); + + b1.Property("GrantDate") + .HasColumnType("datetime2"); + + b1.Property("GrantDateFa") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b1.Property("IsActive") + .IsRequired() + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b1.Property("Title") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b1.HasKey("CustomizeCheckoutid", "Id"); + + b1.ToTable("CustomizeCheckoutReward"); + + b1.WithOwner() + .HasForeignKey("CustomizeCheckoutid"); + }); + + b.OwnsMany("Company.Domain.CustomizeCheckoutAgg.ValueObjects.CustomizeCheckoutSalaryAid", "CustomizeCheckoutSalaryAids", b1 => + { + b1.Property("CustomizeCheckoutid") + .HasColumnType("bigint"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("Amount") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b1.Property("CalculationDateTime") + .HasColumnType("datetime2"); + + b1.Property("CalculationDateTimeFa") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b1.Property("EntityId") + .HasColumnType("bigint"); + + b1.Property("SalaryAidDateTime") + .HasColumnType("datetime2"); + + b1.Property("SalaryAidDateTimeFa") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b1.HasKey("CustomizeCheckoutid", "Id"); + + b1.ToTable("CustomizeCheckoutSalaryAid"); + + b1.WithOwner() + .HasForeignKey("CustomizeCheckoutid"); + }); + + b.Navigation("CheckoutDynamicDeductions"); + + b.Navigation("CheckoutFines"); + + b.Navigation("CustomizeCheckoutLoanInstallments"); + + b.Navigation("CustomizeCheckoutRewards"); + + b.Navigation("CustomizeCheckoutSalaryAids"); + + b.Navigation("CustomizeRotatingShifts"); + + b.Navigation("Employee"); + + b.Navigation("IrregularShift"); + + b.Navigation("RegularShifts"); + + b.Navigation("Workshop"); + }); + + modelBuilder.Entity("Company.Domain.CustomizeCheckoutTempAgg.CustomizeCheckoutTemp", b => + { + b.HasOne("Company.Domain.EmployeeAgg.Employee", "Employee") + .WithMany() + .HasForeignKey("EmployeeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.WorkshopAgg.Workshop", "Workshop") + .WithMany() + .HasForeignKey("WorkshopId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.OwnsMany("_0_Framework.Application.Enums.CheckoutDynamicDeductionItem", "CheckoutDynamicDeductions", b1 => + { + b1.Property("CustomizeCheckoutTempid") + .HasColumnType("bigint"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("Amount") + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b1.Property("Count") + .HasColumnType("int"); + + b1.Property("Name") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b1.HasKey("CustomizeCheckoutTempid", "Id"); + + b1.ToTable("CustomizeCheckoutTemps_CheckoutDynamicDeductions"); + + b1.WithOwner() + .HasForeignKey("CustomizeCheckoutTempid"); + }); + + b.OwnsMany("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.CustomizeRotatingShift", "CustomizeRotatingShifts", b1 => + { + b1.Property("CustomizeCheckoutTempid") + .HasColumnType("bigint"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("EndTime") + .HasColumnType("time"); + + b1.Property("StartTime") + .HasColumnType("time"); + + b1.HasKey("CustomizeCheckoutTempid", "Id"); + + b1.ToTable("CustomizeCheckoutTemps_CustomizeRotatingShifts"); + + b1.WithOwner() + .HasForeignKey("CustomizeCheckoutTempid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.IrregularShift", "IrregularShift", b1 => + { + b1.Property("CustomizeCheckoutTempid") + .HasColumnType("bigint"); + + b1.Property("EndTime") + .HasColumnType("time"); + + b1.Property("StartTime") + .HasColumnType("time"); + + b1.Property("WorkshopIrregularShifts") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b1.HasKey("CustomizeCheckoutTempid"); + + b1.ToTable("CustomizeCheckoutTemps"); + + b1.WithOwner() + .HasForeignKey("CustomizeCheckoutTempid"); + }); + + b.OwnsMany("Company.Domain.CustomizeCheckoutAgg.ValueObjects.CustomizeCheckoutRegularShift", "RegularShifts", b1 => + { + b1.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("id")); + + b1.Property("CreationDate") + .HasColumnType("datetime2"); + + b1.Property("CustomizeCheckoutTempid") + .HasColumnType("bigint"); + + b1.Property("EndTime") + .HasColumnType("time"); + + b1.Property("Placement") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b1.Property("StartTime") + .HasColumnType("time"); + + b1.HasKey("id"); + + b1.HasIndex("CustomizeCheckoutTempid"); + + b1.ToTable("CustomizeCheckoutTemps_RegularShifts"); + + b1.WithOwner() + .HasForeignKey("CustomizeCheckoutTempid"); + }); + + b.OwnsMany("Company.Domain.CustomizeCheckoutTempAgg.ValueObjects.CustomizeCheckoutTempFine", "CheckoutFines", b1 => + { + b1.Property("CustomizeCheckoutTempid") + .HasColumnType("bigint"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("Amount") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b1.Property("CreationDate") + .HasColumnType("datetime2"); + + b1.Property("EntityId") + .HasColumnType("bigint"); + + b1.Property("FineDateFa") + .HasMaxLength(12) + .HasColumnType("nvarchar(12)"); + + b1.Property("FineDateGr") + .HasColumnType("datetime2"); + + b1.Property("IsActive") + .IsRequired() + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b1.Property("Title") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b1.HasKey("CustomizeCheckoutTempid", "Id"); + + b1.ToTable("CustomizeCheckoutTempFine"); + + b1.WithOwner() + .HasForeignKey("CustomizeCheckoutTempid"); + }); + + b.OwnsMany("Company.Domain.CustomizeCheckoutTempAgg.ValueObjects.CustomizeCheckoutTempLoanInstallments", "CustomizeCheckoutLoanInstallments", b1 => + { + b1.Property("CustomizeCheckoutTempid") + .HasColumnType("bigint"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("AmountForMonth") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b1.Property("EntityId") + .HasColumnType("bigint"); + + b1.Property("IsActive") + .IsRequired() + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b1.Property("LoanAmount") + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b1.Property("LoanRemaining") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b1.Property("Month") + .HasMaxLength(2) + .HasColumnType("nvarchar(2)"); + + b1.Property("Year") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)"); + + b1.HasKey("CustomizeCheckoutTempid", "Id"); + + b1.ToTable("CustomizeCheckoutTempLoanInstallments"); + + b1.WithOwner() + .HasForeignKey("CustomizeCheckoutTempid"); + }); + + b.OwnsMany("Company.Domain.CustomizeCheckoutTempAgg.ValueObjects.CustomizeCheckoutTempReward", "CustomizeCheckoutRewards", b1 => + { + b1.Property("CustomizeCheckoutTempid") + .HasColumnType("bigint"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("Amount") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b1.Property("Description") + .HasColumnType("ntext"); + + b1.Property("EntityId") + .HasColumnType("bigint"); + + b1.Property("GrantDate") + .HasColumnType("datetime2"); + + b1.Property("GrantDateFa") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b1.Property("IsActive") + .IsRequired() + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b1.Property("Title") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b1.HasKey("CustomizeCheckoutTempid", "Id"); + + b1.ToTable("CustomizeCheckoutTempReward"); + + b1.WithOwner() + .HasForeignKey("CustomizeCheckoutTempid"); + }); + + b.OwnsMany("Company.Domain.CustomizeCheckoutTempAgg.ValueObjects.CustomizeCheckoutTempSalaryAid", "CustomizeCheckoutSalaryAids", b1 => + { + b1.Property("CustomizeCheckoutTempid") + .HasColumnType("bigint"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("Amount") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b1.Property("CalculationDateTime") + .HasColumnType("datetime2"); + + b1.Property("CalculationDateTimeFa") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b1.Property("EntityId") + .HasColumnType("bigint"); + + b1.Property("SalaryAidDateTime") + .HasColumnType("datetime2"); + + b1.Property("SalaryAidDateTimeFa") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b1.HasKey("CustomizeCheckoutTempid", "Id"); + + b1.ToTable("CustomizeCheckoutTempSalaryAid"); + + b1.WithOwner() + .HasForeignKey("CustomizeCheckoutTempid"); + }); + + b.Navigation("CheckoutDynamicDeductions"); + + b.Navigation("CheckoutFines"); + + b.Navigation("CustomizeCheckoutLoanInstallments"); + + b.Navigation("CustomizeCheckoutRewards"); + + b.Navigation("CustomizeCheckoutSalaryAids"); + + b.Navigation("CustomizeRotatingShifts"); + + b.Navigation("Employee"); + + b.Navigation("IrregularShift"); + + b.Navigation("RegularShifts"); + + b.Navigation("Workshop"); + }); + + modelBuilder.Entity("Company.Domain.CustomizeWorkshopEmployeeSettingsAgg.Entities.CustomizeWorkshopEmployeeSettings", b => + { + b.HasOne("Company.Domain.CustomizeWorkshopGroupSettingsAgg.Entities.CustomizeWorkshopGroupSettings", "CustomizeWorkshopGroupSettings") + .WithMany("CustomizeWorkshopEmployeeSettingsCollection") + .HasForeignKey("CustomizeWorkshopGroupSettingId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.OwnsMany("Company.Domain.CustomizeWorkshopEmployeeSettingsAgg.Entities.CustomizeWorkshopEmployeeSettingsShift", "CustomizeWorkshopEmployeeSettingsShifts", b1 => + { + b1.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("id")); + + b1.Property("CreationDate") + .HasColumnType("datetime2"); + + b1.Property("CustomizeWorkshopEmployeeSettingsId") + .HasColumnType("bigint"); + + b1.Property("EndTime") + .HasColumnType("time"); + + b1.Property("Placement") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b1.Property("PreviousShiftThreshold") + .HasColumnType("time"); + + b1.Property("StartTime") + .HasColumnType("time"); + + b1.HasKey("id"); + + b1.HasIndex("CustomizeWorkshopEmployeeSettingsId"); + + b1.ToTable("CustomizeWorkshopEmployeeSettingsShifts", (string)null); + + b1.WithOwner("CustomizeWorkshopEmployeeSettings") + .HasForeignKey("CustomizeWorkshopEmployeeSettingsId"); + + b1.Navigation("CustomizeWorkshopEmployeeSettings"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.BaseYearsPay", "BaseYearsPay", b1 => + { + b1.Property("CustomizeWorkshopEmployeeSettingsid") + .HasColumnType("bigint"); + + b1.Property("BaseYearsPayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("BaseYearsPay_BaseYearsPayType"); + + b1.Property("PaymentType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("BaseYearsPay_PaymentType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("BaseYearsPay_Value"); + + b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.ToTable("CustomizeWorkshopEmployeeSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.BonusesPay", "BonusesPay", b1 => + { + b1.Property("CustomizeWorkshopEmployeeSettingsid") + .HasColumnType("bigint"); + + b1.Property("BonusesPayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("BonusesPay_BonusesPayType"); + + b1.Property("PaymentType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("BonusesPay_PaymentType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("BonusesPay_Value"); + + b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.ToTable("CustomizeWorkshopEmployeeSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.BreakTime", "BreakTime", b1 => + { + b1.Property("CustomizeWorkshopEmployeeSettingsid") + .HasColumnType("bigint"); + + b1.Property("BreakTimeType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b1.Property("BreakTimeValue") + .HasColumnType("time"); + + b1.Property("HasBreakTimeValue") + .HasColumnType("bit"); + + b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.ToTable("CustomizeWorkshopEmployeeSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); + }); + + b.OwnsMany("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.CustomizeRotatingShift", "CustomizeRotatingShifts", b1 => + { + b1.Property("CustomizeWorkshopEmployeeSettingsid") + .HasColumnType("bigint"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("EndTime") + .HasColumnType("time"); + + b1.Property("StartTime") + .HasColumnType("time"); + + b1.HasKey("CustomizeWorkshopEmployeeSettingsid", "Id"); + + b1.ToTable("CustomizeWorkshopEmployeeSettings_CustomizeRotatingShifts"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.EarlyExit", "EarlyExit", b1 => + { + b1.Property("CustomizeWorkshopEmployeeSettingsid") + .HasColumnType("bigint"); + + b1.Property("EarlyExitType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("EarlyExit_EarlyExitType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("EarlyExitTimeFines_Value"); + + b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.ToTable("CustomizeWorkshopEmployeeSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.OwnsMany("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.EarlyExitTimeFine", "EarlyExitTimeFines", b2 => + { + b2.Property("CustomizeWorkshopEmployeeSettingsId") + .HasColumnType("bigint"); + + b2.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b2.Property("Id")); + + b2.Property("FineMoney") + .HasColumnType("float") + .HasColumnName("EarlyExitTimeFines_FineMoney"); + + b2.Property("Minute") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)") + .HasColumnName("EarlyExitTimeFines_Minute"); + + b2.HasKey("CustomizeWorkshopEmployeeSettingsId", "Id"); + + b2.ToTable("CustomizeWorkshopEmployeeSettings_EarlyExitTimeFines"); + + b2.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsId"); + }); + + b1.Navigation("EarlyExitTimeFines"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FamilyAllowance", "FamilyAllowance", b1 => + { + b1.Property("CustomizeWorkshopEmployeeSettingsid") + .HasColumnType("bigint"); + + b1.Property("FamilyAllowanceType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("FamilyAllowance_FamilyAllowanceType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("FamilyAllowance_Value"); + + b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.ToTable("CustomizeWorkshopEmployeeSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FineAbsenceDeduction", "FineAbsenceDeduction", b1 => + { + b1.Property("CustomizeWorkshopEmployeeSettingsid") + .HasColumnType("bigint"); + + b1.Property("FineAbsenceDeductionType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("FineAbsenceDeduction_FineAbsenceDeductionType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("FineAbsenceDeduction_Value"); + + b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.ToTable("CustomizeWorkshopEmployeeSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.OwnsMany("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FineAbsenceDayOfWeek", "FineAbsenceDayOfWeekCollection", b2 => + { + b2.Property("CustomizeWorkshopEmployeeSettingsId") + .HasColumnType("bigint"); + + b2.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b2.Property("Id")); + + b2.Property("DayOfWeek") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("FineAbsenceDayOfWeekCollection_DayOfWeek"); + + b2.HasKey("CustomizeWorkshopEmployeeSettingsId", "Id"); + + b2.ToTable("CustomizeWorkshopEmployeeSettings_FineAbsenceDayOfWeekCollection"); + + b2.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsId"); + }); + + b1.Navigation("FineAbsenceDayOfWeekCollection"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FridayPay", "FridayPay", b1 => + { + b1.Property("CustomizeWorkshopEmployeeSettingsid") + .HasColumnType("bigint"); + + b1.Property("FridayPayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("FridayPay_Value"); + + b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.ToTable("CustomizeWorkshopEmployeeSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.InsuranceDeduction", "InsuranceDeduction", b1 => + { + b1.Property("CustomizeWorkshopEmployeeSettingsid") + .HasColumnType("bigint"); + + b1.Property("InsuranceDeductionType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("InsuranceDeduction_InsuranceDeductionType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("InsuranceDeduction_Value"); + + b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.ToTable("CustomizeWorkshopEmployeeSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.IrregularShift", "IrregularShift", b1 => + { + b1.Property("CustomizeWorkshopEmployeeSettingsid") + .HasColumnType("bigint"); + + b1.Property("EndTime") + .HasColumnType("time"); + + b1.Property("StartTime") + .HasColumnType("time"); + + b1.Property("WorkshopIrregularShifts") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.ToTable("CustomizeWorkshopEmployeeSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.LateToWork", "LateToWork", b1 => + { + b1.Property("CustomizeWorkshopEmployeeSettingsid") + .HasColumnType("bigint"); + + b1.Property("LateToWorkType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("LateToWork_LateToWorkType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("LateToWork_Value"); + + b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.ToTable("CustomizeWorkshopEmployeeSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.OwnsMany("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.LateToWorkTimeFine", "LateToWorkTimeFines", b2 => + { + b2.Property("CustomizeWorkshopEmployeeSettingsId") + .HasColumnType("bigint"); + + b2.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b2.Property("Id")); + + b2.Property("FineMoney") + .HasColumnType("float") + .HasColumnName("LateToWorkTimeFines_FineMoney"); + + b2.Property("Minute") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)") + .HasColumnName("LateToWorkTimeFines_Minute"); + + b2.HasKey("CustomizeWorkshopEmployeeSettingsId", "Id"); + + b2.ToTable("CustomizeWorkshopEmployeeSettings_LateToWorkTimeFines"); + + b2.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsId"); + }); + + b1.Navigation("LateToWorkTimeFines"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.LeavePay", "LeavePay", b1 => + { + b1.Property("CustomizeWorkshopEmployeeSettingsid") + .HasColumnType("bigint"); + + b1.Property("LeavePayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("LeavePay_LeavePayType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("LeavePay_Value"); + + b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.ToTable("CustomizeWorkshopEmployeeSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.MarriedAllowance", "MarriedAllowance", b1 => + { + b1.Property("CustomizeWorkshopEmployeeSettingsid") + .HasColumnType("bigint"); + + b1.Property("MarriedAllowanceType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("MarriedAllowance_MarriedAllowanceType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("MarriedAllowance_Value"); + + b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.ToTable("CustomizeWorkshopEmployeeSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.NightWorkPay", "NightWorkPay", b1 => + { + b1.Property("CustomizeWorkshopEmployeeSettingsid") + .HasColumnType("bigint"); + + b1.Property("NightWorkingType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("NightWorkPay_NightWorkingType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("NightWorkPay_Value"); + + b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.ToTable("CustomizeWorkshopEmployeeSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.OverTimePay", "OverTimePay", b1 => + { + b1.Property("CustomizeWorkshopEmployeeSettingsid") + .HasColumnType("bigint"); + + b1.Property("OverTimePayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("OverTimePay_OverTimePayType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("OverTimePay_Value"); + + b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.ToTable("CustomizeWorkshopEmployeeSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.ShiftPay", "ShiftPay", b1 => + { + b1.Property("CustomizeWorkshopEmployeeSettingsid") + .HasColumnType("bigint"); + + b1.Property("ShiftPayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("ShiftPay_ShiftPayType"); + + b1.Property("ShiftType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("ShiftPay_ShiftType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("ShiftPay_Value"); + + b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.ToTable("CustomizeWorkshopEmployeeSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); + }); + + b.OwnsMany("_0_Framework.Domain.CustomizeCheckoutShared.Base.WeeklyOffDay", "WeeklyOffDays", b1 => + { + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("DayOfWeek") + .IsRequired() + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b1.Property("ParentId") + .HasColumnType("bigint"); + + b1.HasKey("Id"); + + b1.HasIndex("ParentId"); + + b1.ToTable("CustomizeWorkshopEmployeeSettings_WeeklyOffDays"); + + b1.WithOwner() + .HasForeignKey("ParentId"); + }); + + b.Navigation("BaseYearsPay"); + + b.Navigation("BonusesPay"); + + b.Navigation("BreakTime"); + + b.Navigation("CustomizeRotatingShifts"); + + b.Navigation("CustomizeWorkshopEmployeeSettingsShifts"); + + b.Navigation("CustomizeWorkshopGroupSettings"); + + b.Navigation("EarlyExit"); + + b.Navigation("FamilyAllowance"); + + b.Navigation("FineAbsenceDeduction"); + + b.Navigation("FridayPay"); + + b.Navigation("InsuranceDeduction"); + + b.Navigation("IrregularShift"); + + b.Navigation("LateToWork"); + + b.Navigation("LeavePay"); + + b.Navigation("MarriedAllowance"); + + b.Navigation("NightWorkPay"); + + b.Navigation("OverTimePay"); + + b.Navigation("ShiftPay"); + + b.Navigation("WeeklyOffDays"); + }); + + modelBuilder.Entity("Company.Domain.CustomizeWorkshopGroupSettingsAgg.Entities.CustomizeWorkshopGroupSettings", b => + { + b.HasOne("Company.Domain.CustomizeWorkshopSettingsAgg.Entities.CustomizeWorkshopSettings", "CustomizeWorkshopSettings") + .WithMany("CustomizeWorkshopGroupSettingsCollection") + .HasForeignKey("CustomizeWorkshopSettingId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.OwnsMany("Company.Domain.CustomizeWorkshopGroupSettingsAgg.Entities.CustomizeWorkshopGroupSettingsShift", "CustomizeWorkshopGroupSettingsShifts", b1 => + { + b1.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("id")); + + b1.Property("CreationDate") + .HasColumnType("datetime2"); + + b1.Property("CustomizeWorkshopGroupSettingsId") + .HasColumnType("bigint"); + + b1.Property("EndTime") + .HasColumnType("time"); + + b1.Property("Placement") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b1.Property("StartTime") + .HasColumnType("time"); + + b1.HasKey("id"); + + b1.HasIndex("CustomizeWorkshopGroupSettingsId"); + + b1.ToTable("CustomizeWorkshopGroupSettingsShifts", (string)null); + + b1.WithOwner("CustomizeWorkshopGroupSettings") + .HasForeignKey("CustomizeWorkshopGroupSettingsId"); + + b1.Navigation("CustomizeWorkshopGroupSettings"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.BaseYearsPay", "BaseYearsPay", b1 => + { + b1.Property("CustomizeWorkshopGroupSettingsid") + .HasColumnType("bigint"); + + b1.Property("BaseYearsPayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("BaseYearsPay_BaseYearsPayType"); + + b1.Property("PaymentType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("BaseYearsPay_PaymentType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("BaseYearsPay_Value"); + + b1.HasKey("CustomizeWorkshopGroupSettingsid"); + + b1.ToTable("CustomizeWorkshopGroupSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.BonusesPay", "BonusesPay", b1 => + { + b1.Property("CustomizeWorkshopGroupSettingsid") + .HasColumnType("bigint"); + + b1.Property("BonusesPayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("BonusesPay_BonusesPayType"); + + b1.Property("PaymentType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("BonusesPay_PaymentType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("BonusesPay_Value"); + + b1.HasKey("CustomizeWorkshopGroupSettingsid"); + + b1.ToTable("CustomizeWorkshopGroupSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.BreakTime", "BreakTime", b1 => + { + b1.Property("CustomizeWorkshopGroupSettingsid") + .HasColumnType("bigint"); + + b1.Property("BreakTimeType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b1.Property("BreakTimeValue") + .HasColumnType("time"); + + b1.Property("HasBreakTimeValue") + .HasColumnType("bit"); + + b1.HasKey("CustomizeWorkshopGroupSettingsid"); + + b1.ToTable("CustomizeWorkshopGroupSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsid"); + }); + + b.OwnsMany("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.CustomizeRotatingShift", "CustomizeRotatingShifts", b1 => + { + b1.Property("CustomizeWorkshopGroupSettingsid") + .HasColumnType("bigint"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("EndTime") + .HasColumnType("time"); + + b1.Property("StartTime") + .HasColumnType("time"); + + b1.HasKey("CustomizeWorkshopGroupSettingsid", "Id"); + + b1.ToTable("CustomizeWorkshopGroupSettings_CustomizeRotatingShifts"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.EarlyExit", "EarlyExit", b1 => + { + b1.Property("CustomizeWorkshopGroupSettingsid") + .HasColumnType("bigint"); + + b1.Property("EarlyExitType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("EarlyExit_EarlyExitType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("EarlyExitTimeFines_Value"); + + b1.HasKey("CustomizeWorkshopGroupSettingsid"); + + b1.ToTable("CustomizeWorkshopGroupSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsid"); + + b1.OwnsMany("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.EarlyExitTimeFine", "EarlyExitTimeFines", b2 => + { + b2.Property("CustomizeWorkshopGroupSettingsId") + .HasColumnType("bigint"); + + b2.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b2.Property("Id")); + + b2.Property("FineMoney") + .HasColumnType("float") + .HasColumnName("EarlyExitTimeFines_FineMoney"); + + b2.Property("Minute") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)") + .HasColumnName("EarlyExitTimeFines_Minute"); + + b2.HasKey("CustomizeWorkshopGroupSettingsId", "Id"); + + b2.ToTable("CustomizeWorkshopGroupSettings_EarlyExitTimeFines"); + + b2.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsId"); + }); + + b1.Navigation("EarlyExitTimeFines"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FamilyAllowance", "FamilyAllowance", b1 => + { + b1.Property("CustomizeWorkshopGroupSettingsid") + .HasColumnType("bigint"); + + b1.Property("FamilyAllowanceType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("FamilyAllowance_FamilyAllowanceType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("FamilyAllowance_Value"); + + b1.HasKey("CustomizeWorkshopGroupSettingsid"); + + b1.ToTable("CustomizeWorkshopGroupSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FineAbsenceDeduction", "FineAbsenceDeduction", b1 => + { + b1.Property("CustomizeWorkshopGroupSettingsid") + .HasColumnType("bigint"); + + b1.Property("FineAbsenceDeductionType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("FineAbsenceDeduction_FineAbsenceDeductionType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("FineAbsenceDeduction_Value"); + + b1.HasKey("CustomizeWorkshopGroupSettingsid"); + + b1.ToTable("CustomizeWorkshopGroupSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsid"); + + b1.OwnsMany("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FineAbsenceDayOfWeek", "FineAbsenceDayOfWeekCollection", b2 => + { + b2.Property("CustomizeWorkshopGroupSettingsId") + .HasColumnType("bigint"); + + b2.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b2.Property("Id")); + + b2.Property("DayOfWeek") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("FineAbsenceDayOfWeekCollection_DayOfWeek"); + + b2.HasKey("CustomizeWorkshopGroupSettingsId", "Id"); + + b2.ToTable("CustomizeWorkshopGroupSettings_FineAbsenceDayOfWeekCollection"); + + b2.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsId"); + }); + + b1.Navigation("FineAbsenceDayOfWeekCollection"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FridayPay", "FridayPay", b1 => + { + b1.Property("CustomizeWorkshopGroupSettingsid") + .HasColumnType("bigint"); + + b1.Property("FridayPayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("FridayPay_Value"); + + b1.HasKey("CustomizeWorkshopGroupSettingsid"); + + b1.ToTable("CustomizeWorkshopGroupSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.InsuranceDeduction", "InsuranceDeduction", b1 => + { + b1.Property("CustomizeWorkshopGroupSettingsid") + .HasColumnType("bigint"); + + b1.Property("InsuranceDeductionType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("InsuranceDeduction_InsuranceDeductionType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("InsuranceDeduction_Value"); + + b1.HasKey("CustomizeWorkshopGroupSettingsid"); + + b1.ToTable("CustomizeWorkshopGroupSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.IrregularShift", "IrregularShift", b1 => + { + b1.Property("CustomizeWorkshopGroupSettingsid") + .HasColumnType("bigint"); + + b1.Property("EndTime") + .HasColumnType("time"); + + b1.Property("StartTime") + .HasColumnType("time"); + + b1.Property("WorkshopIrregularShifts") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b1.HasKey("CustomizeWorkshopGroupSettingsid"); + + b1.ToTable("CustomizeWorkshopGroupSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.LateToWork", "LateToWork", b1 => + { + b1.Property("CustomizeWorkshopGroupSettingsid") + .HasColumnType("bigint"); + + b1.Property("LateToWorkType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("LateToWork_LateToWorkType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("LateToWork_Value"); + + b1.HasKey("CustomizeWorkshopGroupSettingsid"); + + b1.ToTable("CustomizeWorkshopGroupSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsid"); + + b1.OwnsMany("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.LateToWorkTimeFine", "LateToWorkTimeFines", b2 => + { + b2.Property("CustomizeWorkshopGroupSettingsId") + .HasColumnType("bigint"); + + b2.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b2.Property("Id")); + + b2.Property("FineMoney") + .HasColumnType("float") + .HasColumnName("LateToWorkTimeFines_FineMoney"); + + b2.Property("Minute") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)") + .HasColumnName("LateToWorkTimeFines_Minute"); + + b2.HasKey("CustomizeWorkshopGroupSettingsId", "Id"); + + b2.ToTable("CustomizeWorkshopGroupSettings_LateToWorkTimeFines"); + + b2.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsId"); + }); + + b1.Navigation("LateToWorkTimeFines"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.LeavePay", "LeavePay", b1 => + { + b1.Property("CustomizeWorkshopGroupSettingsid") + .HasColumnType("bigint"); + + b1.Property("LeavePayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("LeavePay_LeavePayType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("LeavePay_Value"); + + b1.HasKey("CustomizeWorkshopGroupSettingsid"); + + b1.ToTable("CustomizeWorkshopGroupSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.MarriedAllowance", "MarriedAllowance", b1 => + { + b1.Property("CustomizeWorkshopGroupSettingsid") + .HasColumnType("bigint"); + + b1.Property("MarriedAllowanceType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("MarriedAllowance_MarriedAllowanceType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("MarriedAllowance_Value"); + + b1.HasKey("CustomizeWorkshopGroupSettingsid"); + + b1.ToTable("CustomizeWorkshopGroupSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.NightWorkPay", "NightWorkPay", b1 => + { + b1.Property("CustomizeWorkshopGroupSettingsid") + .HasColumnType("bigint"); + + b1.Property("NightWorkingType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("NightWorkPay_NightWorkingType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("NightWorkPay_Value"); + + b1.HasKey("CustomizeWorkshopGroupSettingsid"); + + b1.ToTable("CustomizeWorkshopGroupSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.OverTimePay", "OverTimePay", b1 => + { + b1.Property("CustomizeWorkshopGroupSettingsid") + .HasColumnType("bigint"); + + b1.Property("OverTimePayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("OverTimePay_OverTimePayType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("OverTimePay_Value"); + + b1.HasKey("CustomizeWorkshopGroupSettingsid"); + + b1.ToTable("CustomizeWorkshopGroupSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.ShiftPay", "ShiftPay", b1 => + { + b1.Property("CustomizeWorkshopGroupSettingsid") + .HasColumnType("bigint"); + + b1.Property("ShiftPayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("ShiftPay_ShiftPayType"); + + b1.Property("ShiftType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("ShiftPay_ShiftType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("ShiftPay_Value"); + + b1.HasKey("CustomizeWorkshopGroupSettingsid"); + + b1.ToTable("CustomizeWorkshopGroupSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsid"); + }); + + b.OwnsMany("_0_Framework.Domain.CustomizeCheckoutShared.Base.WeeklyOffDay", "WeeklyOffDays", b1 => + { + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("DayOfWeek") + .IsRequired() + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b1.Property("ParentId") + .HasColumnType("bigint"); + + b1.HasKey("Id"); + + b1.HasIndex("ParentId"); + + b1.ToTable("CustomizeWorkshopGroupSettings_WeeklyOffDays"); + + b1.WithOwner() + .HasForeignKey("ParentId"); + }); + + b.Navigation("BaseYearsPay"); + + b.Navigation("BonusesPay"); + + b.Navigation("BreakTime"); + + b.Navigation("CustomizeRotatingShifts"); + + b.Navigation("CustomizeWorkshopGroupSettingsShifts"); + + b.Navigation("CustomizeWorkshopSettings"); + + b.Navigation("EarlyExit"); + + b.Navigation("FamilyAllowance"); + + b.Navigation("FineAbsenceDeduction"); + + b.Navigation("FridayPay"); + + b.Navigation("InsuranceDeduction"); + + b.Navigation("IrregularShift"); + + b.Navigation("LateToWork"); + + b.Navigation("LeavePay"); + + b.Navigation("MarriedAllowance"); + + b.Navigation("NightWorkPay"); + + b.Navigation("OverTimePay"); + + b.Navigation("ShiftPay"); + + b.Navigation("WeeklyOffDays"); + }); + + modelBuilder.Entity("Company.Domain.CustomizeWorkshopSettingsAgg.Entities.CustomizeWorkshopSettings", b => + { + b.HasOne("Company.Domain.WorkshopAgg.Workshop", "Workshop") + .WithOne("CustomizeWorkshopSettings") + .HasForeignKey("Company.Domain.CustomizeWorkshopSettingsAgg.Entities.CustomizeWorkshopSettings", "WorkshopId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.OwnsMany("Company.Domain.CustomizeWorkshopSettingsAgg.Entities.CustomizeWorkshopSettingsShift", "CustomizeWorkshopSettingsShifts", b1 => + { + b1.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("id")); + + b1.Property("CreationDate") + .HasColumnType("datetime2"); + + b1.Property("CustomizeWorkshopSettingsId") + .HasColumnType("bigint"); + + b1.Property("EndTime") + .HasColumnType("time"); + + b1.Property("Placement") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b1.Property("StartTime") + .HasColumnType("time"); + + b1.HasKey("id"); + + b1.HasIndex("CustomizeWorkshopSettingsId"); + + b1.ToTable("CustomizeWorkshopSettingsShifts", (string)null); + + b1.WithOwner("CustomizeWorkshopSettings") + .HasForeignKey("CustomizeWorkshopSettingsId"); + + b1.Navigation("CustomizeWorkshopSettings"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.BaseYearsPay", "BaseYearsPay", b1 => + { + b1.Property("CustomizeWorkshopSettingsid") + .HasColumnType("bigint"); + + b1.Property("BaseYearsPayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("BaseYearsPay_BaseYearsPayType"); + + b1.Property("PaymentType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("BaseYearsPay_PaymentType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("BaseYearsPay_Value"); + + b1.HasKey("CustomizeWorkshopSettingsid"); + + b1.ToTable("CustomizeWorkshopSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.BonusesPay", "BonusesPay", b1 => + { + b1.Property("CustomizeWorkshopSettingsid") + .HasColumnType("bigint"); + + b1.Property("BonusesPayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("BonusesPay_BonusesPayType"); + + b1.Property("PaymentType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("BonusesPay_PaymentType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("BonusesPay_Value"); + + b1.HasKey("CustomizeWorkshopSettingsid"); + + b1.ToTable("CustomizeWorkshopSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.EarlyExit", "EarlyExit", b1 => + { + b1.Property("CustomizeWorkshopSettingsid") + .HasColumnType("bigint"); + + b1.Property("EarlyExitType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("EarlyExit_EarlyExitType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("EarlyExitTimeFines_Value"); + + b1.HasKey("CustomizeWorkshopSettingsid"); + + b1.ToTable("CustomizeWorkshopSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopSettingsid"); + + b1.OwnsMany("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.EarlyExitTimeFine", "EarlyExitTimeFines", b2 => + { + b2.Property("CustomizeWorkshopSettingsId") + .HasColumnType("bigint"); + + b2.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b2.Property("Id")); + + b2.Property("FineMoney") + .HasColumnType("float") + .HasColumnName("EarlyExitTimeFines_FineMoney"); + + b2.Property("Minute") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)") + .HasColumnName("EarlyExitTimeFines_Minute"); + + b2.HasKey("CustomizeWorkshopSettingsId", "Id"); + + b2.ToTable("CustomizeWorkshopSettings_EarlyExitTimeFines"); + + b2.WithOwner() + .HasForeignKey("CustomizeWorkshopSettingsId"); + }); + + b1.Navigation("EarlyExitTimeFines"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FamilyAllowance", "FamilyAllowance", b1 => + { + b1.Property("CustomizeWorkshopSettingsid") + .HasColumnType("bigint"); + + b1.Property("FamilyAllowanceType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("FamilyAllowance_FamilyAllowanceType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("FamilyAllowance_Value"); + + b1.HasKey("CustomizeWorkshopSettingsid"); + + b1.ToTable("CustomizeWorkshopSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FineAbsenceDeduction", "FineAbsenceDeduction", b1 => + { + b1.Property("CustomizeWorkshopSettingsid") + .HasColumnType("bigint"); + + b1.Property("FineAbsenceDeductionType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("FineAbsenceDeduction_FineAbsenceDeductionType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("FineAbsenceDeduction_Value"); + + b1.HasKey("CustomizeWorkshopSettingsid"); + + b1.ToTable("CustomizeWorkshopSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopSettingsid"); + + b1.OwnsMany("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FineAbsenceDayOfWeek", "FineAbsenceDayOfWeekCollection", b2 => + { + b2.Property("CustomizeWorkshopSettingsId") + .HasColumnType("bigint"); + + b2.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b2.Property("Id")); + + b2.Property("DayOfWeek") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("FineAbsenceDayOfWeekCollection_DayOfWeek"); + + b2.HasKey("CustomizeWorkshopSettingsId", "Id"); + + b2.ToTable("CustomizeWorkshopSettings_FineAbsenceDayOfWeekCollection"); + + b2.WithOwner() + .HasForeignKey("CustomizeWorkshopSettingsId"); + }); + + b1.Navigation("FineAbsenceDayOfWeekCollection"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FridayPay", "FridayPay", b1 => + { + b1.Property("CustomizeWorkshopSettingsid") + .HasColumnType("bigint"); + + b1.Property("FridayPayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("FridayPay_Value"); + + b1.HasKey("CustomizeWorkshopSettingsid"); + + b1.ToTable("CustomizeWorkshopSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.InsuranceDeduction", "InsuranceDeduction", b1 => + { + b1.Property("CustomizeWorkshopSettingsid") + .HasColumnType("bigint"); + + b1.Property("InsuranceDeductionType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("InsuranceDeduction_InsuranceDeductionType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("InsuranceDeduction_Value"); + + b1.HasKey("CustomizeWorkshopSettingsid"); + + b1.ToTable("CustomizeWorkshopSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.LateToWork", "LateToWork", b1 => + { + b1.Property("CustomizeWorkshopSettingsid") + .HasColumnType("bigint"); + + b1.Property("LateToWorkType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("LateToWork_LateToWorkType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("LateToWork_Value"); + + b1.HasKey("CustomizeWorkshopSettingsid"); + + b1.ToTable("CustomizeWorkshopSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopSettingsid"); + + b1.OwnsMany("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.LateToWorkTimeFine", "LateToWorkTimeFines", b2 => + { + b2.Property("CustomizeWorkshopSettingsId") + .HasColumnType("bigint"); + + b2.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b2.Property("Id")); + + b2.Property("FineMoney") + .HasColumnType("float") + .HasColumnName("LateToWorkTimeFines_FineMoney"); + + b2.Property("Minute") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)") + .HasColumnName("LateToWorkTimeFines_Minute"); + + b2.HasKey("CustomizeWorkshopSettingsId", "Id"); + + b2.ToTable("CustomizeWorkshopSettings_LateToWorkTimeFines"); + + b2.WithOwner() + .HasForeignKey("CustomizeWorkshopSettingsId"); + }); + + b1.Navigation("LateToWorkTimeFines"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.LeavePay", "LeavePay", b1 => + { + b1.Property("CustomizeWorkshopSettingsid") + .HasColumnType("bigint"); + + b1.Property("LeavePayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("LeavePay_LeavePayType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("LeavePay_Value"); + + b1.HasKey("CustomizeWorkshopSettingsid"); + + b1.ToTable("CustomizeWorkshopSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.MarriedAllowance", "MarriedAllowance", b1 => + { + b1.Property("CustomizeWorkshopSettingsid") + .HasColumnType("bigint"); + + b1.Property("MarriedAllowanceType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("MarriedAllowance_MarriedAllowanceType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("MarriedAllowance_Value"); + + b1.HasKey("CustomizeWorkshopSettingsid"); + + b1.ToTable("CustomizeWorkshopSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.NightWorkPay", "NightWorkPay", b1 => + { + b1.Property("CustomizeWorkshopSettingsid") + .HasColumnType("bigint"); + + b1.Property("NightWorkingType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("NightWorkPay_NightWorkingType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("NightWorkPay_Value"); + + b1.HasKey("CustomizeWorkshopSettingsid"); + + b1.ToTable("CustomizeWorkshopSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.OverTimePay", "OverTimePay", b1 => + { + b1.Property("CustomizeWorkshopSettingsid") + .HasColumnType("bigint"); + + b1.Property("OverTimePayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("OverTimePay_OverTimePayType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("OverTimePay_Value"); + + b1.HasKey("CustomizeWorkshopSettingsid"); + + b1.ToTable("CustomizeWorkshopSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.ShiftPay", "ShiftPay", b1 => + { + b1.Property("CustomizeWorkshopSettingsid") + .HasColumnType("bigint"); + + b1.Property("ShiftPayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("ShiftPay_ShiftPayType"); + + b1.Property("ShiftType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("ShiftPay_ShiftType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("ShiftPay_Value"); + + b1.HasKey("CustomizeWorkshopSettingsid"); + + b1.ToTable("CustomizeWorkshopSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopSettingsid"); + }); + + b.OwnsMany("_0_Framework.Domain.CustomizeCheckoutShared.Base.WeeklyOffDay", "WeeklyOffDays", b1 => + { + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("DayOfWeek") + .IsRequired() + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b1.Property("ParentId") + .HasColumnType("bigint"); + + b1.HasKey("Id"); + + b1.HasIndex("ParentId"); + + b1.ToTable("CustomizeWorkshopSettings_WeeklyOffDays"); + + b1.WithOwner() + .HasForeignKey("ParentId"); + }); + + b.Navigation("BaseYearsPay"); + + b.Navigation("BonusesPay"); + + b.Navigation("CustomizeWorkshopSettingsShifts"); + + b.Navigation("EarlyExit"); + + b.Navigation("FamilyAllowance"); + + b.Navigation("FineAbsenceDeduction"); + + b.Navigation("FridayPay"); + + b.Navigation("InsuranceDeduction"); + + b.Navigation("LateToWork"); + + b.Navigation("LeavePay"); + + b.Navigation("MarriedAllowance"); + + b.Navigation("NightWorkPay"); + + b.Navigation("OverTimePay"); + + b.Navigation("ShiftPay"); + + b.Navigation("WeeklyOffDays"); + + b.Navigation("Workshop"); + }); + + modelBuilder.Entity("Company.Domain.DateSalaryItemAgg.DateSalaryItem", b => + { + b.HasOne("Company.Domain.DateSalaryAgg.DateSalary", "DateSalary") + .WithMany("DateSalaryItemList") + .HasForeignKey("DateSalaryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.PercentageAgg.Percentage", "Percentage") + .WithMany("DateSalaryItemList") + .HasForeignKey("PercentageId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("DateSalary"); + + b.Navigation("Percentage"); + }); + + modelBuilder.Entity("Company.Domain.EmployeeAccountAgg.EmployeeAccount", b => + { + b.HasOne("Company.Domain.EmployeeAgg.Employee", "Employee") + .WithMany() + .HasForeignKey("EmployeeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Employee"); + }); + + modelBuilder.Entity("Company.Domain.EmployeeBankInformationAgg.EmployeeBankInformation", b => + { + b.HasOne("Company.Domain.BankAgg.Bank", "Bank") + .WithMany() + .HasForeignKey("BankId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.EmployeeAgg.Employee", "Employee") + .WithMany("EmployeeBankInformationList") + .HasForeignKey("EmployeeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Bank"); + + b.Navigation("Employee"); + }); + + modelBuilder.Entity("Company.Domain.EmployeeChildrenAgg.EmployeeChildren", b => + { + b.HasOne("Company.Domain.EmployeeAgg.Employee", "Employee") + .WithMany("EmployeeChildrenList") + .HasForeignKey("EmployeeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Employee"); + }); + + modelBuilder.Entity("Company.Domain.EmployeeDocumentItemAgg.EmployeeDocumentItem", b => + { + b.HasOne("Company.Domain.EmployeeDocumentsAgg.EmployeeDocuments", "EmployeeDocuments") + .WithMany("EmployeeDocumentItemCollection") + .HasForeignKey("EmployeeDocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.EmployeeDocumentsAdminSelectionAgg.EmployeeDocumentsAdminSelection", "EmployeeDocumentsAdminSelection") + .WithMany("SelectedEmployeeDocumentItems") + .HasForeignKey("EmployeeDocumentsAdminViewId"); + + b.OwnsMany("Company.Domain.EmployeeDocumentItemAgg.EmployeeDocumentItemLog", "ItemLogs", b1 => + { + b1.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("id")); + + b1.Property("AdminMessage") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b1.Property("CreationDate") + .HasColumnType("datetime2"); + + b1.Property("EmployeeDocumentItemId") + .HasColumnType("bigint"); + + b1.Property("OperationType") + .IsRequired() + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b1.Property("OperatorId") + .HasColumnType("bigint"); + + b1.Property("OperatorType") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b1.HasKey("id"); + + b1.HasIndex("EmployeeDocumentItemId"); + + b1.ToTable("EmployeeDocumentItemLogs", (string)null); + + b1.WithOwner("EmployeeDocumentItem") + .HasForeignKey("EmployeeDocumentItemId"); + + b1.Navigation("EmployeeDocumentItem"); + }); + + b.Navigation("EmployeeDocuments"); + + b.Navigation("EmployeeDocumentsAdminSelection"); + + b.Navigation("ItemLogs"); + }); + + modelBuilder.Entity("Company.Domain.EmployeeDocumentsAdminSelectionAgg.EmployeeDocumentsAdminSelection", b => + { + b.HasOne("Company.Domain.EmployeeAgg.Employee", "Employee") + .WithOne("EmployeeDocumentsAdminSelection") + .HasForeignKey("Company.Domain.EmployeeDocumentsAdminSelectionAgg.EmployeeDocumentsAdminSelection", "EmployeeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Employee"); + }); + + modelBuilder.Entity("Company.Domain.EmployeeDocumentsAgg.EmployeeDocuments", b => + { + b.HasOne("Company.Domain.EmployeeAgg.Employee", "Employee") + .WithMany("EmployeeDocuments") + .HasForeignKey("EmployeeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.WorkshopAgg.Workshop", "Workshop") + .WithMany() + .HasForeignKey("WorkshopId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Employee"); + + b.Navigation("Workshop"); + }); + + modelBuilder.Entity("Company.Domain.EmployeeInsuranceRecordAgg.EmployeeInsuranceRecord", b => + { + b.HasOne("Company.Domain.EmployeeAgg.Employee", "Employee") + .WithMany("EmployeeInsuranceRecords") + .HasForeignKey("EmployeeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.WorkshopAgg.Workshop", "Workshop") + .WithMany("EmployeeInsuranceRecords") + .HasForeignKey("WorkShopId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Employee"); + + b.Navigation("Workshop"); + }); + + modelBuilder.Entity("Company.Domain.EmployerAccountAgg.EmployerAccount", b => + { + b.HasOne("Company.Domain.empolyerAgg.Employer", "Employer") + .WithMany() + .HasForeignKey("EmployerId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Employer"); + }); + + modelBuilder.Entity("Company.Domain.Evidence.Evidence", b => + { + b.HasOne("Company.Domain.BoardType.BoardType", "BoardType") + .WithMany("EvidencesList") + .HasForeignKey("BoardType_Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.File1.File1", "File1") + .WithMany("EvidencesList") + .HasForeignKey("File_Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("BoardType"); + + b.Navigation("File1"); + }); + + modelBuilder.Entity("Company.Domain.EvidenceDetail.EvidenceDetail", b => + { + b.HasOne("Company.Domain.Evidence.Evidence", "Evidence") + .WithMany("EvidenceDetailsList") + .HasForeignKey("Evidence_Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Evidence"); + }); + + modelBuilder.Entity("Company.Domain.FileAlert.FileAlert", b => + { + b.HasOne("Company.Domain.FileState.FileState", "FileState") + .WithMany("FileAlertsList") + .HasForeignKey("FileState_Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.File1.File1", "File") + .WithMany("FileAlertsList") + .HasForeignKey("File_Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("File"); + + b.Navigation("FileState"); + }); + + modelBuilder.Entity("Company.Domain.FileAndFileEmployerAgg.FileAndFileEmployer", b => + { + b.HasOne("Company.Domain.FileEmployerAgg.FileEmployer", "FileEmployer") + .WithMany("FileAndFileEmployers") + .HasForeignKey("FileEmployerId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.File1.File1", "File1") + .WithMany("FileAndFileEmployers") + .HasForeignKey("FileId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("File1"); + + b.Navigation("FileEmployer"); + }); + + modelBuilder.Entity("Company.Domain.FileEmployeeAgg.FileEmployee", b => + { + b.HasOne("Company.Domain.RepresentativeAgg.Representative", "Representative") + .WithMany("FileEmployeeList") + .HasForeignKey("RepresentativeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Representative"); + }); + + modelBuilder.Entity("Company.Domain.FileEmployerAgg.FileEmployer", b => + { + b.HasOne("Company.Domain.RepresentativeAgg.Representative", "Representative") + .WithMany("FileEmployerList") + .HasForeignKey("RepresentativeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Representative"); + }); + + modelBuilder.Entity("Company.Domain.FileState.FileState", b => + { + b.HasOne("Company.Domain.FileTiming.FileTiming", "FileTiming") + .WithMany("FileStates") + .HasForeignKey("FileTiming_Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("FileTiming"); + }); + + modelBuilder.Entity("Company.Domain.FinancialInvoiceAgg.FinancialInvoiceItem", b => + { + b.HasOne("Company.Domain.FinancialInvoiceAgg.FinancialInvoice", "FinancialInvoice") + .WithMany("Items") + .HasForeignKey("FinancialInvoiceId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("FinancialInvoice"); + }); + + modelBuilder.Entity("Company.Domain.FinancialTransactionAgg.FinancialTransaction", b => + { + b.HasOne("Company.Domain.FinancialStatmentAgg.FinancialStatment", "FinancialStatment") + .WithMany("FinancialTransactionList") + .HasForeignKey("FinancialStatementId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("FinancialStatment"); + }); + + modelBuilder.Entity("Company.Domain.GroupPlanAgg.GroupPlan", b => + { + b.HasOne("Company.Domain.WorkshopPlanAgg.WorkshopPlan", "WorkshopPlan") + .WithMany("GroupPlans") + .HasForeignKey("WorkshopPlanId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("WorkshopPlan"); + }); + + modelBuilder.Entity("Company.Domain.GroupPlanJobItemAgg.GroupPlanJobItem", b => + { + b.HasOne("Company.Domain.GroupPlanAgg.GroupPlan", "GroupPlan") + .WithMany("GroupPlanJobItems") + .HasForeignKey("GroupPlanId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("GroupPlan"); + }); + + modelBuilder.Entity("Company.Domain.HolidayItemAgg.HolidayItem", b => + { + b.HasOne("Company.Domain.HolidayAgg.Holiday", "Holidayss") + .WithMany("HolidayItems") + .HasForeignKey("HolidayId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Holidayss"); + }); + + modelBuilder.Entity("Company.Domain.InstitutionContractAgg.InstitutionContractAmendment", b => + { + b.HasOne("Company.Domain.InstitutionContractAgg.InstitutionContract", "InstitutionContract") + .WithMany("Amendments") + .HasForeignKey("InstitutionContractId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("InstitutionContract"); + }); + + modelBuilder.Entity("Company.Domain.InstitutionContractAgg.InstitutionContractAmendmentChange", b => + { + b.HasOne("Company.Domain.InstitutionContractAgg.InstitutionContractAmendment", "InstitutionContractAmendment") + .WithMany("AmendmentChanges") + .HasForeignKey("InstitutionContractAmendmentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("InstitutionContractAmendment"); + }); + + modelBuilder.Entity("Company.Domain.InstitutionContractAgg.InstitutionContractInstallment", b => + { + b.HasOne("Company.Domain.InstitutionContractAgg.InstitutionContractAmendment", "InstitutionContractAmendment") + .WithMany("Installments") + .HasForeignKey("InstitutionContractAmendmentId"); + + b.HasOne("Company.Domain.InstitutionContractAgg.InstitutionContract", "InstitutionContract") + .WithMany("Installments") + .HasForeignKey("InstitutionContractId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("InstitutionContract"); + + b.Navigation("InstitutionContractAmendment"); + }); + + modelBuilder.Entity("Company.Domain.InstitutionContractAgg.InstitutionContractWorkshopCurrent", b => + { + b.HasOne("Company.Domain.InstitutionContractAgg.InstitutionContractWorkshopGroup", "WorkshopGroup") + .WithMany("CurrentWorkshops") + .HasForeignKey("InstitutionContractWorkshopGroupId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.OwnsMany("Company.Domain.InstitutionContractAgg.InstitutionContractWorkshopDetailEmployer", "Employers", b1 => + { + b1.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("id")); + + b1.Property("CreationDate") + .HasColumnType("datetime2"); + + b1.Property("EmployerId") + .HasColumnType("bigint"); + + b1.Property("InstitutionContractWorkshopCurrentid") + .HasColumnType("bigint"); + + b1.HasKey("id"); + + b1.HasIndex("InstitutionContractWorkshopCurrentid"); + + b1.ToTable("InstitutionContractWorkshopCurrentEmployers", (string)null); + + b1.WithOwner() + .HasForeignKey("InstitutionContractWorkshopCurrentid"); + }); + + b.OwnsOne("Company.Domain.InstitutionContractAgg.WorkshopServices", "Services", b1 => + { + b1.Property("InstitutionContractWorkshopCurrentid") + .HasColumnType("bigint"); + + b1.Property("Contract") + .HasColumnType("bit"); + + b1.Property("ContractInPerson") + .HasColumnType("bit"); + + b1.Property("CustomizeCheckout") + .HasColumnType("bit"); + + b1.Property("Insurance") + .HasColumnType("bit"); + + b1.Property("InsuranceInPerson") + .HasColumnType("bit"); + + b1.Property("RollCall") + .HasColumnType("bit"); + + b1.Property("RollCallInPerson") + .HasColumnType("bit"); + + b1.HasKey("InstitutionContractWorkshopCurrentid"); + + b1.ToTable("InstitutionContractWorkshopCurrents"); + + b1.WithOwner() + .HasForeignKey("InstitutionContractWorkshopCurrentid"); + }); + + b.Navigation("Employers"); + + b.Navigation("Services"); + + b.Navigation("WorkshopGroup"); + }); + + modelBuilder.Entity("Company.Domain.InstitutionContractAgg.InstitutionContractWorkshopGroup", b => + { + b.HasOne("Company.Domain.InstitutionContractAgg.InstitutionContract", "InstitutionContract") + .WithOne("WorkshopGroup") + .HasForeignKey("Company.Domain.InstitutionContractAgg.InstitutionContractWorkshopGroup", "InstitutionContractId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("InstitutionContract"); + }); + + modelBuilder.Entity("Company.Domain.InstitutionContractAgg.InstitutionContractWorkshopInitial", b => + { + b.HasOne("Company.Domain.InstitutionContractAgg.InstitutionContractWorkshopCurrent", "WorkshopCurrent") + .WithOne("WorkshopInitial") + .HasForeignKey("Company.Domain.InstitutionContractAgg.InstitutionContractWorkshopInitial", "InstitutionContractWorkshopCurrentId"); + + b.HasOne("Company.Domain.InstitutionContractAgg.InstitutionContractWorkshopGroup", "WorkshopGroup") + .WithMany("InitialWorkshops") + .HasForeignKey("InstitutionContractWorkshopGroupId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.OwnsMany("Company.Domain.InstitutionContractAgg.InstitutionContractWorkshopDetailEmployer", "Employers", b1 => + { + b1.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("id")); + + b1.Property("CreationDate") + .HasColumnType("datetime2"); + + b1.Property("EmployerId") + .HasColumnType("bigint"); + + b1.Property("InstitutionContractWorkshopInitialid") + .HasColumnType("bigint"); + + b1.HasKey("id"); + + b1.HasIndex("InstitutionContractWorkshopInitialid"); + + b1.ToTable("InstitutionContractWorkshopInitialEmployers", (string)null); + + b1.WithOwner() + .HasForeignKey("InstitutionContractWorkshopInitialid"); + }); + + b.OwnsOne("Company.Domain.InstitutionContractAgg.WorkshopServices", "Services", b1 => + { + b1.Property("InstitutionContractWorkshopInitialid") + .HasColumnType("bigint"); + + b1.Property("Contract") + .HasColumnType("bit"); + + b1.Property("ContractInPerson") + .HasColumnType("bit"); + + b1.Property("CustomizeCheckout") + .HasColumnType("bit"); + + b1.Property("Insurance") + .HasColumnType("bit"); + + b1.Property("InsuranceInPerson") + .HasColumnType("bit"); + + b1.Property("RollCall") + .HasColumnType("bit"); + + b1.Property("RollCallInPerson") + .HasColumnType("bit"); + + b1.HasKey("InstitutionContractWorkshopInitialid"); + + b1.ToTable("InstitutionContractWorkshopInitials"); + + b1.WithOwner() + .HasForeignKey("InstitutionContractWorkshopInitialid"); + }); + + b.Navigation("Employers"); + + b.Navigation("Services"); + + b.Navigation("WorkshopCurrent"); + + b.Navigation("WorkshopGroup"); + }); + + modelBuilder.Entity("Company.Domain.InstitutionContractContactInfoAgg.InstitutionContractContactInfo", b => + { + b.HasOne("Company.Domain.InstitutionContractAgg.InstitutionContract", "InstitutionContracts") + .WithMany("ContactInfoList") + .HasForeignKey("InstitutionContractId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("InstitutionContracts"); + }); + + modelBuilder.Entity("Company.Domain.InsurancWorkshopInfoAgg.InsuranceWorkshopInfo", b => + { + b.HasOne("Company.Domain.WorkshopAgg.Workshop", "Workshop") + .WithOne("InsuranceWorkshopInfo") + .HasForeignKey("Company.Domain.InsurancWorkshopInfoAgg.InsuranceWorkshopInfo", "WorkshopId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Workshop"); + }); + + modelBuilder.Entity("Company.Domain.InsuranceAgg.Insurance", b => + { + b.HasOne("Company.Domain.WorkshopAgg.Workshop", "Workshop") + .WithMany("Insurances") + .HasForeignKey("WorkShopId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Workshop"); + }); + + modelBuilder.Entity("Company.Domain.InsuranceEmployeeInfoAgg.InsuranceEmployeeInfo", b => + { + b.HasOne("Company.Domain.EmployeeAgg.Employee", "Employee") + .WithOne("InsuranceEmployeeInfo") + .HasForeignKey("Company.Domain.InsuranceEmployeeInfoAgg.InsuranceEmployeeInfo", "EmployeeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Employee"); + }); + + modelBuilder.Entity("Company.Domain.InsuranceJobAndJobsAgg.InsuranceJobAndJobs", b => + { + b.HasOne("Company.Domain.InsuranceJobItemAgg.InsuranceJobItem", "InsuranceJobItem") + .WithMany("InsuranceJobAndJobs") + .HasForeignKey("InsuranceJobItemId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.JobAgg.Job", "Jobs") + .WithMany("InsuranceJobAndJobs") + .HasForeignKey("JobId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("InsuranceJobItem"); + + b.Navigation("Jobs"); + }); + + modelBuilder.Entity("Company.Domain.InsuranceJobItemAgg.InsuranceJobItem", b => + { + b.HasOne("Company.Domain.InsurancJobAgg.InsuranceJob", "InsuranceJob") + .WithMany("InsuranceJobItemList") + .HasForeignKey("InsuranceJobId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("InsuranceJob"); + }); + + modelBuilder.Entity("Company.Domain.InsuranceWorkshopAgg.InsuranceListWorkshop", b => + { + b.HasOne("Company.Domain.InsuranceListAgg.InsuranceList", "InsuranceList") + .WithMany("InsuranceListWorkshops") + .HasForeignKey("InsurancListId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.WorkshopAgg.Workshop", "Workshop") + .WithMany("InsuranceListWorkshops") + .HasForeignKey("WorkshopId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("InsuranceList"); + + b.Navigation("Workshop"); + }); + + modelBuilder.Entity("Company.Domain.LawAgg.Law", b => + { + b.OwnsMany("Company.Domain.LawAgg.LawItem", "Items", b1 => + { + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("Details") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b1.Property("Header") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b1.Property("LawId") + .HasColumnType("bigint"); + + b1.Property("OrderNumber") + .HasColumnType("int"); + + b1.HasKey("Id"); + + b1.HasIndex("LawId"); + + b1.ToTable("LawItem", (string)null); + + b1.WithOwner() + .HasForeignKey("LawId"); + }); + + b.Navigation("Items"); + }); + + modelBuilder.Entity("Company.Domain.LeftWorkAgg.LeftWork", b => + { + b.HasOne("Company.Domain.EmployeeAgg.Employee", "Employee") + .WithMany("LeftWorks") + .HasForeignKey("EmployeeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.WorkshopAgg.Workshop", "Workshop") + .WithMany("LeftWorks") + .HasForeignKey("WorkshopId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Employee"); + + b.Navigation("Workshop"); + }); + + modelBuilder.Entity("Company.Domain.LeftWorkInsuranceAgg.LeftWorkInsurance", b => + { + b.HasOne("Company.Domain.EmployeeAgg.Employee", "Employee") + .WithMany("LeftWorkInsurances") + .HasForeignKey("EmployeeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.WorkshopAgg.Workshop", "Workshop") + .WithMany("LeftWorkInsurances") + .HasForeignKey("WorkshopId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Employee"); + + b.Navigation("Workshop"); + }); + + modelBuilder.Entity("Company.Domain.LoanAgg.Entities.Loan", b => + { + b.OwnsMany("Company.Domain.LoanAgg.Entities.LoanInstallment", "LoanInstallments", b1 => + { + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("AmountForMonth") + .HasColumnType("float"); + + b1.Property("InstallmentDate") + .HasColumnType("datetime2"); + + b1.Property("IsActive") + .IsRequired() + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b1.Property("LoanId") + .HasColumnType("bigint"); + + b1.Property("Month") + .HasMaxLength(2) + .HasColumnType("nvarchar(2)"); + + b1.Property("Year") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)"); + + b1.HasKey("Id"); + + b1.HasIndex("LoanId"); + + b1.ToTable("LoanInstallment"); + + b1.WithOwner() + .HasForeignKey("LoanId"); + }); + + b.Navigation("LoanInstallments"); + }); + + modelBuilder.Entity("Company.Domain.MasterPenaltyTitle.MasterPenaltyTitle", b => + { + b.HasOne("Company.Domain.MasterPetition.MasterPetition", "MasterPetition") + .WithMany("MasterPenaltyTitlesList") + .HasForeignKey("MasterPetition_Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("MasterPetition"); + }); + + modelBuilder.Entity("Company.Domain.MasterPetition.MasterPetition", b => + { + b.HasOne("Company.Domain.BoardType.BoardType", "BoardType") + .WithMany("MasterPetitionsList") + .HasForeignKey("BoardType_Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.File1.File1", "File1") + .WithMany("MasterPetitionsList") + .HasForeignKey("File_Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("BoardType"); + + b.Navigation("File1"); + }); + + modelBuilder.Entity("Company.Domain.MasterWorkHistory.MasterWorkHistory", b => + { + b.HasOne("Company.Domain.MasterPetition.MasterPetition", "MasterPetition") + .WithMany("MasterWorkHistoriesList") + .HasForeignKey("MasterPetition_Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("MasterPetition"); + }); + + modelBuilder.Entity("Company.Domain.ModuleTextManagerAgg.EntityModuleTextManager", b => + { + b.HasOne("Company.Domain.ModuleAgg.EntityModule", "Module") + .WithMany("EntityModuleTextManagers") + .HasForeignKey("ModuleId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.TextManagerAgg.EntityTextManager", "TextManager") + .WithMany("EntityModuleTextManagers") + .HasForeignKey("TextManagerId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Module"); + + b.Navigation("TextManager"); + }); + + modelBuilder.Entity("Company.Domain.PaymentInstrumentAgg.PaymentInstrument", b => + { + b.HasOne("Company.Domain.PaymentInstrumentAgg.PaymentInstrumentGroup", "PaymentInstrumentGroup") + .WithMany("PaymentInstruments") + .HasForeignKey("PaymentInstrumentGroupId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("PaymentInstrumentGroup"); + }); + + modelBuilder.Entity("Company.Domain.PaymentToEmployeeItemAgg.PaymentToEmployeeItem", b => + { + b.HasOne("Company.Domain.PaymentToEmployeeAgg.PaymentToEmployee", "PaymentToEmployee") + .WithMany("PaymentToEmployeeItemList") + .HasForeignKey("PaymentToEmployeeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("PaymentToEmployee"); + }); + + modelBuilder.Entity("Company.Domain.PaymentTransactionAgg.PaymentTransaction", b => + { + b.HasOne("Company.Domain.FinancialInvoiceAgg.FinancialInvoice", "FinancialInvoice") + .WithMany("PaymentTransactions") + .HasForeignKey("FinancialInvoiceId") + .OnDelete(DeleteBehavior.NoAction); + + b.Navigation("FinancialInvoice"); + }); + + modelBuilder.Entity("Company.Domain.PenaltyTitle.PenaltyTitle", b => + { + b.HasOne("Company.Domain.Petition.Petition", "Petition") + .WithMany("PenaltyTitlesList") + .HasForeignKey("Petition_Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Petition"); + }); + + modelBuilder.Entity("Company.Domain.PersonnelCodeAgg.PersonnelCodeDomain", b => + { + b.HasOne("Company.Domain.EmployeeAgg.Employee", "Employee") + .WithMany("PersonnelCodeList") + .HasForeignKey("EmployeeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.WorkshopAgg.Workshop", "Workshop") + .WithMany("PersonnelCodeList") + .HasForeignKey("WorkshopId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Employee"); + + b.Navigation("Workshop"); + }); + + modelBuilder.Entity("Company.Domain.Petition.Petition", b => + { + b.HasOne("Company.Domain.BoardType.BoardType", "BoardType") + .WithMany("PetitionsList") + .HasForeignKey("BoardType_Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.File1.File1", "File1") + .WithMany("PetitionsList") + .HasForeignKey("File_Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("BoardType"); + + b.Navigation("File1"); + }); + + modelBuilder.Entity("Company.Domain.ProceedingSession.ProceedingSession", b => + { + b.HasOne("Company.Domain.Board.Board", "Board") + .WithMany("ProceedingSessionsList") + .HasForeignKey("Board_Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Board"); + }); + + modelBuilder.Entity("Company.Domain.RollCallEmployeeStatusAgg.RollCallEmployeeStatus", b => + { + b.HasOne("Company.Domain.RollCallEmployeeAgg.RollCallEmployee", "RollCallEmployee") + .WithMany("EmployeesStatus") + .HasForeignKey("RollCallEmployeeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("RollCallEmployee"); + }); + + modelBuilder.Entity("Company.Domain.RollCallServiceAgg.RollCallService", b => + { + b.HasOne("Company.Domain.WorkshopAgg.Workshop", "Workshop") + .WithMany("RollCallServicesList") + .HasForeignKey("WorkshopId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Workshop"); + }); + + modelBuilder.Entity("Company.Domain.SubtitleAgg.EntitySubtitle", b => + { + b.HasOne("Company.Domain.SubtitleAgg.EntitySubtitle", null) + .WithMany("Subtitles") + .HasForeignKey("EntitySubtitleid"); + + b.HasOne("Company.Domain.OriginalTitleAgg.EntityOriginalTitle", "EntityOriginalTitle") + .WithMany("Subtitles") + .HasForeignKey("OriginalTitle_Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("EntityOriginalTitle"); + }); + + modelBuilder.Entity("Company.Domain.TaxLeftWorkCategoryAgg.TaxLeftWorkCategory", b => + { + b.HasOne("Company.Domain.WorkshopAgg.Workshop", "Workshop") + .WithMany("TaxLeftWorkCategoryList") + .HasForeignKey("WorkshopId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Workshop"); + }); + + modelBuilder.Entity("Company.Domain.TaxLeftWorkItemAgg.TaxLeftWorkItem", b => + { + b.HasOne("Company.Domain.TaxLeftWorkCategoryAgg.TaxLeftWorkCategory", "TaxLeftWorkCategory") + .WithMany("TaxLeftWorkItemList") + .HasForeignKey("TaxLeftWorkCategoryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("TaxLeftWorkCategory"); + }); + + modelBuilder.Entity("Company.Domain.TemporaryClientRegistrationAgg.InstitutionContractContactInfoTemp", b => + { + b.HasOne("Company.Domain.TemporaryClientRegistrationAgg.InstitutionContractTemp", "InstitutionContractTemp") + .WithMany("ContactInfoList") + .HasForeignKey("InstitutionContractTempId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("InstitutionContractTemp"); + }); + + modelBuilder.Entity("Company.Domain.TemporaryClientRegistrationAgg.WorkshopServicesTemp", b => + { + b.HasOne("Company.Domain.TemporaryClientRegistrationAgg.WorkshopTemp", "WorkshopTemp") + .WithMany("WorkshopServicesTemps") + .HasForeignKey("WorkshopTempId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("WorkshopTemp"); + }); + + modelBuilder.Entity("Company.Domain.WorkHistory.WorkHistory", b => + { + b.HasOne("Company.Domain.Petition.Petition", "Petition") + .WithMany("WorkHistoriesList") + .HasForeignKey("Petition_Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Petition"); + }); + + modelBuilder.Entity("Company.Domain.WorkingHoursAgg.WorkingHours", b => + { + b.HasOne("Company.Domain.ContractAgg.Contract", "Contracts") + .WithMany("WorkingHoursList") + .HasForeignKey("ContractId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Contracts"); + }); + + modelBuilder.Entity("Company.Domain.WorkingHoursItemsAgg.WorkingHoursItems", b => + { + b.HasOne("Company.Domain.WorkingHoursAgg.WorkingHours", "WorkingHourses") + .WithMany("WorkingHoursItemsList") + .HasForeignKey("WorkingHoursId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("WorkingHourses"); + }); + + modelBuilder.Entity("Company.Domain.WorkingHoursTempItemAgg.WorkingHoursTempItem", b => + { + b.HasOne("Company.Domain.WorkingHoursTempAgg.WorkingHoursTemp", "WorkingHoursTemp") + .WithMany("WorkingHoursTempItemList") + .HasForeignKey("WorkingHoursTempId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("WorkingHoursTemp"); + }); + + modelBuilder.Entity("Company.Domain.WorkshopAccountAgg.WorkshopAccount", b => + { + b.HasOne("Company.Domain.WorkshopAgg.Workshop", "Workshop") + .WithMany() + .HasForeignKey("WorkshopId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Workshop"); + }); + + modelBuilder.Entity("Company.Domain.WorkshopEmployerAgg.WorkshopEmployer", b => + { + b.HasOne("Company.Domain.empolyerAgg.Employer", "Employer") + .WithMany("WorkshopEmployers") + .HasForeignKey("EmployerId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.WorkshopAgg.Workshop", "Workshop") + .WithMany("WorkshopEmployers") + .HasForeignKey("WorkshopId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Employer"); + + b.Navigation("Workshop"); + }); + + modelBuilder.Entity("Company.Domain.WorkshopPlanEmployeeAgg.WorkshopPlanEmployee", b => + { + b.HasOne("Company.Domain.WorkshopPlanAgg.WorkshopPlan", "WorkshopPlan") + .WithMany("WorkshopPlanEmployees") + .HasForeignKey("WorkshopPlanId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("WorkshopPlan"); + }); + + modelBuilder.Entity("Company.Domain.WorkshopSubAccountAgg.WorkshopSubAccount", b => + { + b.HasOne("Company.Domain.WorkshopAgg.Workshop", "Workshop") + .WithMany("WorkshopSubAccounts") + .HasForeignKey("WorkshopId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Workshop"); + }); + + modelBuilder.Entity("Company.Domain.YearlySalaryItemsAgg.YearlySalaryItem", b => + { + b.HasOne("Company.Domain.YearlySalaryAgg.YearlySalary", "YearlySalary") + .WithMany("YearlySalaryItemsList") + .HasForeignKey("YearlySalaryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("YearlySalary"); + }); + + modelBuilder.Entity("Company.Domain.empolyerAgg.Employer", b => + { + b.HasOne("Company.Domain.ContarctingPartyAgg.PersonalContractingParty", "ContractingParty") + .WithMany("Employers") + .HasForeignKey("ContractingPartyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ContractingParty"); + }); + + modelBuilder.Entity("EmployerWorkshop", b => + { + b.HasOne("Company.Domain.empolyerAgg.Employer", null) + .WithMany() + .HasForeignKey("EmployersListid") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.WorkshopAgg.Workshop", null) + .WithMany() + .HasForeignKey("WorkshopsListid") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Company.Domain.Board.Board", b => + { + b.Navigation("ProceedingSessionsList"); + }); + + modelBuilder.Entity("Company.Domain.BoardType.BoardType", b => + { + b.Navigation("BoardsList"); + + b.Navigation("EvidencesList"); + + b.Navigation("MasterPetitionsList"); + + b.Navigation("PetitionsList"); + }); + + modelBuilder.Entity("Company.Domain.CameraBugReportAgg.CameraBugReport", b => + { + b.Navigation("Logs"); + + b.Navigation("Screenshots"); + }); + + modelBuilder.Entity("Company.Domain.CheckoutAgg.Checkout", b => + { + b.Navigation("CheckoutWarningMessageList"); + }); + + modelBuilder.Entity("Company.Domain.ClassificationSchemeAgg.ClassificationGroup", b => + { + b.Navigation("ClassificationEmployees"); + + b.Navigation("ClassificationGroupJobs"); + + b.Navigation("ClassificationGroupSalaries"); + }); + + modelBuilder.Entity("Company.Domain.ClassificationSchemeAgg.ClassificationScheme", b => + { + b.Navigation("ClassificationGroups"); + + b.Navigation("ClassificationRialCoefficients"); + }); + + modelBuilder.Entity("Company.Domain.ContarctingPartyAgg.PersonalContractingParty", b => + { + b.Navigation("ContractingPartyBankAccounts"); + + b.Navigation("Employers"); + }); + + modelBuilder.Entity("Company.Domain.ContractAgg.Contract", b => + { + b.Navigation("WorkingHoursList"); + }); + + modelBuilder.Entity("Company.Domain.CrossJobAgg.CrossJob", b => + { + b.Navigation("CrossJobItemsList"); + }); + + modelBuilder.Entity("Company.Domain.CrossJobGuildAgg.CrossJobGuild", b => + { + b.Navigation("CrossJobList"); + }); + + modelBuilder.Entity("Company.Domain.CustomizeWorkshopGroupSettingsAgg.Entities.CustomizeWorkshopGroupSettings", b => + { + b.Navigation("CustomizeWorkshopEmployeeSettingsCollection"); + }); + + modelBuilder.Entity("Company.Domain.CustomizeWorkshopSettingsAgg.Entities.CustomizeWorkshopSettings", b => + { + b.Navigation("CustomizeWorkshopGroupSettingsCollection"); + }); + + modelBuilder.Entity("Company.Domain.DateSalaryAgg.DateSalary", b => + { + b.Navigation("DateSalaryItemList"); + }); + + modelBuilder.Entity("Company.Domain.EmployeeAgg.Employee", b => + { + b.Navigation("ClientEmployeeWorkshopList"); + + b.Navigation("Contracts"); + + b.Navigation("CustomizeCheckouts"); + + b.Navigation("EmployeeBankInformationList"); + + b.Navigation("EmployeeChildrenList"); + + b.Navigation("EmployeeDocuments"); + + b.Navigation("EmployeeDocumentsAdminSelection"); + + b.Navigation("EmployeeInsuranceRecords"); + + b.Navigation("InsuranceEmployeeInfo"); + + b.Navigation("LeftWorkInsurances"); + + b.Navigation("LeftWorks"); + + b.Navigation("PersonnelCodeList"); + }); + + modelBuilder.Entity("Company.Domain.EmployeeDocumentsAdminSelectionAgg.EmployeeDocumentsAdminSelection", b => + { + b.Navigation("SelectedEmployeeDocumentItems"); + }); + + modelBuilder.Entity("Company.Domain.EmployeeDocumentsAgg.EmployeeDocuments", b => + { + b.Navigation("EmployeeDocumentItemCollection"); + }); + + modelBuilder.Entity("Company.Domain.Evidence.Evidence", b => + { + b.Navigation("EvidenceDetailsList"); + }); + + modelBuilder.Entity("Company.Domain.File1.File1", b => + { + b.Navigation("BoardsList"); + + b.Navigation("EvidencesList"); + + b.Navigation("FileAlertsList"); + + b.Navigation("FileAndFileEmployers"); + + b.Navigation("MasterPetitionsList"); + + b.Navigation("PetitionsList"); + }); + + modelBuilder.Entity("Company.Domain.FileEmployerAgg.FileEmployer", b => + { + b.Navigation("FileAndFileEmployers"); + }); + + modelBuilder.Entity("Company.Domain.FileState.FileState", b => + { + b.Navigation("FileAlertsList"); + }); + + modelBuilder.Entity("Company.Domain.FileTiming.FileTiming", b => + { + b.Navigation("FileStates"); + }); + + modelBuilder.Entity("Company.Domain.FinancialInvoiceAgg.FinancialInvoice", b => + { + b.Navigation("Items"); + + b.Navigation("PaymentTransactions"); + }); + + modelBuilder.Entity("Company.Domain.FinancialStatmentAgg.FinancialStatment", b => + { + b.Navigation("FinancialTransactionList"); + }); + + modelBuilder.Entity("Company.Domain.GroupPlanAgg.GroupPlan", b => + { + b.Navigation("GroupPlanJobItems"); + }); + + modelBuilder.Entity("Company.Domain.HolidayAgg.Holiday", b => + { + b.Navigation("HolidayItems"); + }); + + modelBuilder.Entity("Company.Domain.InstitutionContractAgg.InstitutionContract", b => + { + b.Navigation("Amendments"); + + b.Navigation("ContactInfoList"); + + b.Navigation("Installments"); + + b.Navigation("WorkshopGroup"); + }); + + modelBuilder.Entity("Company.Domain.InstitutionContractAgg.InstitutionContractAmendment", b => + { + b.Navigation("AmendmentChanges"); + + b.Navigation("Installments"); + }); + + modelBuilder.Entity("Company.Domain.InstitutionContractAgg.InstitutionContractWorkshopCurrent", b => + { + b.Navigation("WorkshopInitial"); + }); + + modelBuilder.Entity("Company.Domain.InstitutionContractAgg.InstitutionContractWorkshopGroup", b => + { + b.Navigation("CurrentWorkshops"); + + b.Navigation("InitialWorkshops"); + }); + + modelBuilder.Entity("Company.Domain.InsurancJobAgg.InsuranceJob", b => + { + b.Navigation("InsuranceJobItemList"); + }); + + modelBuilder.Entity("Company.Domain.InsuranceJobItemAgg.InsuranceJobItem", b => + { + b.Navigation("InsuranceJobAndJobs"); + }); + + modelBuilder.Entity("Company.Domain.InsuranceListAgg.InsuranceList", b => + { + b.Navigation("InsuranceListWorkshops"); + }); + + modelBuilder.Entity("Company.Domain.JobAgg.Job", b => + { + b.Navigation("ContractsList"); + + b.Navigation("CrossJobItemsList"); + + b.Navigation("InsuranceJobAndJobs"); + }); + + modelBuilder.Entity("Company.Domain.MandatoryHoursAgg.MandatoryHours", b => + { + b.Navigation("Contracts"); + }); + + modelBuilder.Entity("Company.Domain.MasterPetition.MasterPetition", b => + { + b.Navigation("MasterPenaltyTitlesList"); + + b.Navigation("MasterWorkHistoriesList"); + }); + + modelBuilder.Entity("Company.Domain.ModuleAgg.EntityModule", b => + { + b.Navigation("EntityModuleTextManagers"); + }); + + modelBuilder.Entity("Company.Domain.OriginalTitleAgg.EntityOriginalTitle", b => + { + b.Navigation("Subtitles"); + }); + + modelBuilder.Entity("Company.Domain.PaymentInstrumentAgg.PaymentInstrumentGroup", b => + { + b.Navigation("PaymentInstruments"); + }); + + modelBuilder.Entity("Company.Domain.PaymentToEmployeeAgg.PaymentToEmployee", b => + { + b.Navigation("PaymentToEmployeeItemList"); + }); + + modelBuilder.Entity("Company.Domain.PercentageAgg.Percentage", b => + { + b.Navigation("DateSalaryItemList"); + }); + + modelBuilder.Entity("Company.Domain.Petition.Petition", b => + { + b.Navigation("PenaltyTitlesList"); + + b.Navigation("WorkHistoriesList"); + }); + + modelBuilder.Entity("Company.Domain.RepresentativeAgg.Representative", b => + { + b.Navigation("ContractingParties"); + + b.Navigation("FileEmployeeList"); + + b.Navigation("FileEmployerList"); + }); + + modelBuilder.Entity("Company.Domain.RollCallEmployeeAgg.RollCallEmployee", b => + { + b.Navigation("EmployeesStatus"); + }); + + modelBuilder.Entity("Company.Domain.SubtitleAgg.EntitySubtitle", b => + { + b.Navigation("Chapters"); + + b.Navigation("Subtitles"); + }); + + modelBuilder.Entity("Company.Domain.TaxLeftWorkCategoryAgg.TaxLeftWorkCategory", b => + { + b.Navigation("TaxLeftWorkItemList"); + }); + + modelBuilder.Entity("Company.Domain.TemporaryClientRegistrationAgg.InstitutionContractTemp", b => + { + b.Navigation("ContactInfoList"); + }); + + modelBuilder.Entity("Company.Domain.TemporaryClientRegistrationAgg.WorkshopTemp", b => + { + b.Navigation("WorkshopServicesTemps"); + }); + + modelBuilder.Entity("Company.Domain.TextManagerAgg.EntityTextManager", b => + { + b.Navigation("EntityModuleTextManagers"); + }); + + modelBuilder.Entity("Company.Domain.WorkingHoursAgg.WorkingHours", b => + { + b.Navigation("WorkingHoursItemsList"); + }); + + modelBuilder.Entity("Company.Domain.WorkingHoursTempAgg.WorkingHoursTemp", b => + { + b.Navigation("WorkingHoursTempItemList"); + }); + + modelBuilder.Entity("Company.Domain.WorkshopAgg.Workshop", b => + { + b.Navigation("Checkouts"); + + b.Navigation("ClientEmployeeWorkshopList"); + + b.Navigation("Contracts2"); + + b.Navigation("CustomizeCheckouts"); + + b.Navigation("CustomizeWorkshopSettings"); + + b.Navigation("EmployeeInsuranceRecords"); + + b.Navigation("InsuranceListWorkshops"); + + b.Navigation("InsuranceWorkshopInfo"); + + b.Navigation("Insurances"); + + b.Navigation("LeftWorkInsurances"); + + b.Navigation("LeftWorks"); + + b.Navigation("PersonnelCodeList"); + + b.Navigation("RollCallServicesList"); + + b.Navigation("TaxLeftWorkCategoryList"); + + b.Navigation("WorkshopEmployers"); + + b.Navigation("WorkshopSubAccounts"); + }); + + modelBuilder.Entity("Company.Domain.WorkshopPlanAgg.WorkshopPlan", b => + { + b.Navigation("GroupPlans"); + + b.Navigation("WorkshopPlanEmployees"); + }); + + modelBuilder.Entity("Company.Domain.YearlySalaryAgg.YearlySalary", b => + { + b.Navigation("Contracts"); + + b.Navigation("YearlySalaryItemsList"); + }); + + modelBuilder.Entity("Company.Domain.empolyerAgg.Employer", b => + { + b.Navigation("Contracts"); + + b.Navigation("WorkshopEmployers"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/CompanyManagment.EFCore/Migrations/20260101112146_ClassificationScheme.cs b/CompanyManagment.EFCore/Migrations/20260101112146_ClassificationScheme.cs new file mode 100644 index 00000000..485c94fc --- /dev/null +++ b/CompanyManagment.EFCore/Migrations/20260101112146_ClassificationScheme.cs @@ -0,0 +1,213 @@ +using System; +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace CompanyManagment.EFCore.Migrations +{ + /// + public partial class ClassificationScheme : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.AddColumn( + name: "IsClassificationSchemeCompleted", + table: "Workshops", + type: "bit", + nullable: false, + defaultValue: false); + + migrationBuilder.CreateTable( + name: "ClassificationSchemes", + columns: table => new + { + id = table.Column(type: "bigint", nullable: false) + .Annotation("SqlServer:Identity", "1, 1"), + IncludingDateGr = table.Column(type: "datetime2", nullable: false), + ExecutionDateGr = table.Column(type: "datetime2", nullable: false), + EndSchemeDateGr = table.Column(type: "datetime2", nullable: true), + DesignerFullName = table.Column(type: "nvarchar(50)", maxLength: 50, nullable: true), + DesignerPhone = table.Column(type: "nvarchar(20)", maxLength: 20, nullable: true), + WorkshopId = table.Column(type: "bigint", nullable: false), + TypeOfCoefficient = table.Column(type: "nvarchar(30)", maxLength: 30, nullable: false), + CreationDate = table.Column(type: "datetime2", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_ClassificationSchemes", x => x.id); + }); + + migrationBuilder.CreateTable( + name: "ClassificationGroups", + columns: table => new + { + id = table.Column(type: "bigint", nullable: false) + .Annotation("SqlServer:Identity", "1, 1"), + GroupNo = table.Column(type: "nvarchar(2)", maxLength: 2, nullable: true), + WorkshopId = table.Column(type: "bigint", nullable: false), + ClassificationSchemeId = table.Column(type: "bigint", nullable: false), + CreationDate = table.Column(type: "datetime2", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_ClassificationGroups", x => x.id); + table.ForeignKey( + name: "FK_ClassificationGroups_ClassificationSchemes_ClassificationSchemeId", + column: x => x.ClassificationSchemeId, + principalTable: "ClassificationSchemes", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "ClassificationRialCoefficients", + columns: table => new + { + id = table.Column(type: "bigint", nullable: false) + .Annotation("SqlServer:Identity", "1, 1"), + ClassificationSchemeId = table.Column(type: "bigint", nullable: false), + RialCoefficient = table.Column(type: "float", nullable: false), + StartDate = table.Column(type: "datetime2", nullable: false), + EndDate = table.Column(type: "datetime2", nullable: false), + Year = table.Column(type: "int", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_ClassificationRialCoefficients", x => x.id); + table.ForeignKey( + name: "FK_ClassificationRialCoefficients_ClassificationSchemes_ClassificationSchemeId", + column: x => x.ClassificationSchemeId, + principalTable: "ClassificationSchemes", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "ClassificationEmployee", + columns: table => new + { + id = table.Column(type: "bigint", nullable: false) + .Annotation("SqlServer:Identity", "1, 1"), + WorkshopId = table.Column(type: "bigint", nullable: false), + EmployeeId = table.Column(type: "bigint", nullable: false), + ClassificationSchemeId = table.Column(type: "bigint", nullable: false), + ClassificationGroupId = table.Column(type: "bigint", nullable: false), + ClassificationGroupJobId = table.Column(type: "bigint", nullable: false), + StartGroupDate = table.Column(type: "datetime2", nullable: true), + EndGroupDate = table.Column(type: "datetime2", nullable: true), + CreationDate = table.Column(type: "datetime2", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_ClassificationEmployee", x => x.id); + table.ForeignKey( + name: "FK_ClassificationEmployee_ClassificationGroups_ClassificationGroupId", + column: x => x.ClassificationGroupId, + principalTable: "ClassificationGroups", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "ClassificationGroupJobs", + columns: table => new + { + id = table.Column(type: "bigint", nullable: false) + .Annotation("SqlServer:Identity", "1, 1"), + JobId = table.Column(type: "bigint", nullable: false), + JobName = table.Column(type: "nvarchar(255)", maxLength: 255, nullable: true), + JobCode = table.Column(type: "nvarchar(100)", maxLength: 100, nullable: true), + ClassificationGroupId = table.Column(type: "bigint", nullable: false), + GroupNo = table.Column(type: "nvarchar(2)", maxLength: 2, nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_ClassificationGroupJobs", x => x.id); + table.ForeignKey( + name: "FK_ClassificationGroupJobs_ClassificationGroups_ClassificationGroupId", + column: x => x.ClassificationGroupId, + principalTable: "ClassificationGroups", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "ClassificationGroupSalaries", + columns: table => new + { + id = table.Column(type: "bigint", nullable: false) + .Annotation("SqlServer:Identity", "1, 1"), + ClassificationGroupId = table.Column(type: "bigint", nullable: false), + GroupNo = table.Column(type: "nvarchar(2)", maxLength: 2, nullable: true), + GroupSalary = table.Column(type: "float", nullable: false), + StartDate = table.Column(type: "datetime2", nullable: false), + EndDate = table.Column(type: "datetime2", nullable: false), + Year = table.Column(type: "int", nullable: false), + SchemeId = table.Column(type: "bigint", nullable: false), + CreationDate = table.Column(type: "datetime2", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_ClassificationGroupSalaries", x => x.id); + table.ForeignKey( + name: "FK_ClassificationGroupSalaries_ClassificationGroups_ClassificationGroupId", + column: x => x.ClassificationGroupId, + principalTable: "ClassificationGroups", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateIndex( + name: "IX_ClassificationEmployee_ClassificationGroupId", + table: "ClassificationEmployee", + column: "ClassificationGroupId"); + + migrationBuilder.CreateIndex( + name: "IX_ClassificationGroupJobs_ClassificationGroupId", + table: "ClassificationGroupJobs", + column: "ClassificationGroupId"); + + migrationBuilder.CreateIndex( + name: "IX_ClassificationGroups_ClassificationSchemeId", + table: "ClassificationGroups", + column: "ClassificationSchemeId"); + + migrationBuilder.CreateIndex( + name: "IX_ClassificationGroupSalaries_ClassificationGroupId", + table: "ClassificationGroupSalaries", + column: "ClassificationGroupId"); + + migrationBuilder.CreateIndex( + name: "IX_ClassificationRialCoefficients_ClassificationSchemeId", + table: "ClassificationRialCoefficients", + column: "ClassificationSchemeId"); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropTable( + name: "ClassificationEmployee"); + + migrationBuilder.DropTable( + name: "ClassificationGroupJobs"); + + migrationBuilder.DropTable( + name: "ClassificationGroupSalaries"); + + migrationBuilder.DropTable( + name: "ClassificationRialCoefficients"); + + migrationBuilder.DropTable( + name: "ClassificationGroups"); + + migrationBuilder.DropTable( + name: "ClassificationSchemes"); + + migrationBuilder.DropColumn( + name: "IsClassificationSchemeCompleted", + table: "Workshops"); + } + } +} diff --git a/CompanyManagment.EFCore/Migrations/CompanyContextModelSnapshot.cs b/CompanyManagment.EFCore/Migrations/CompanyContextModelSnapshot.cs index 24d4721b..46bf783c 100644 --- a/CompanyManagment.EFCore/Migrations/CompanyContextModelSnapshot.cs +++ b/CompanyManagment.EFCore/Migrations/CompanyContextModelSnapshot.cs @@ -733,6 +733,217 @@ namespace CompanyManagment.EFCore.Migrations b.ToTable("CheckoutWarningMessage", (string)null); }); + modelBuilder.Entity("Company.Domain.ClassificationSchemeAgg.ClassificationEmployee", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("ClassificationGroupId") + .HasColumnType("bigint"); + + b.Property("ClassificationGroupJobId") + .HasColumnType("bigint"); + + b.Property("ClassificationSchemeId") + .HasColumnType("bigint"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("EndGroupDate") + .HasColumnType("datetime2"); + + b.Property("StartGroupDate") + .HasColumnType("datetime2"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("ClassificationGroupId"); + + b.ToTable("ClassificationEmployee", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ClassificationSchemeAgg.ClassificationGroup", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("ClassificationSchemeId") + .HasColumnType("bigint"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("GroupNo") + .HasMaxLength(2) + .HasColumnType("nvarchar(2)"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("ClassificationSchemeId"); + + b.ToTable("ClassificationGroups", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ClassificationSchemeAgg.ClassificationGroupJob", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("ClassificationGroupId") + .HasColumnType("bigint"); + + b.Property("GroupNo") + .HasMaxLength(2) + .HasColumnType("nvarchar(2)"); + + b.Property("JobCode") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("JobId") + .HasColumnType("bigint"); + + b.Property("JobName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.HasKey("id"); + + b.HasIndex("ClassificationGroupId"); + + b.ToTable("ClassificationGroupJobs", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ClassificationSchemeAgg.ClassificationGroupSalary", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("ClassificationGroupId") + .HasColumnType("bigint"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EndDate") + .HasColumnType("datetime2"); + + b.Property("GroupNo") + .HasMaxLength(2) + .HasColumnType("nvarchar(2)"); + + b.Property("GroupSalary") + .HasColumnType("float"); + + b.Property("SchemeId") + .HasColumnType("bigint"); + + b.Property("StartDate") + .HasColumnType("datetime2"); + + b.Property("Year") + .HasColumnType("int"); + + b.HasKey("id"); + + b.HasIndex("ClassificationGroupId"); + + b.ToTable("ClassificationGroupSalaries", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ClassificationSchemeAgg.ClassificationRialCoefficient", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("ClassificationSchemeId") + .HasColumnType("bigint"); + + b.Property("EndDate") + .HasColumnType("datetime2"); + + b.Property("RialCoefficient") + .HasColumnType("float"); + + b.Property("StartDate") + .HasColumnType("datetime2"); + + b.Property("Year") + .HasColumnType("int"); + + b.HasKey("id"); + + b.HasIndex("ClassificationSchemeId"); + + b.ToTable("ClassificationRialCoefficients", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ClassificationSchemeAgg.ClassificationScheme", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DesignerFullName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("DesignerPhone") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("EndSchemeDateGr") + .HasColumnType("datetime2"); + + b.Property("ExecutionDateGr") + .HasColumnType("datetime2"); + + b.Property("IncludingDateGr") + .HasColumnType("datetime2"); + + b.Property("TypeOfCoefficient") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.ToTable("ClassificationSchemes", (string)null); + }); + modelBuilder.Entity("Company.Domain.ClassifiedSalaryAgg.ClassifiedSalary", b => { b.Property("id") @@ -6791,6 +7002,9 @@ namespace CompanyManagment.EFCore.Migrations .HasMaxLength(10) .HasColumnType("nvarchar(10)"); + b.Property("IsClassificationSchemeCompleted") + .HasColumnType("bit"); + b.Property("IsClassified") .HasColumnType("bit"); @@ -7578,6 +7792,61 @@ namespace CompanyManagment.EFCore.Migrations b.Navigation("Checkout"); }); + modelBuilder.Entity("Company.Domain.ClassificationSchemeAgg.ClassificationEmployee", b => + { + b.HasOne("Company.Domain.ClassificationSchemeAgg.ClassificationGroup", "ClassificationGroup") + .WithMany("ClassificationEmployees") + .HasForeignKey("ClassificationGroupId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClassificationGroup"); + }); + + modelBuilder.Entity("Company.Domain.ClassificationSchemeAgg.ClassificationGroup", b => + { + b.HasOne("Company.Domain.ClassificationSchemeAgg.ClassificationScheme", "ClassificationScheme") + .WithMany("ClassificationGroups") + .HasForeignKey("ClassificationSchemeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClassificationScheme"); + }); + + modelBuilder.Entity("Company.Domain.ClassificationSchemeAgg.ClassificationGroupJob", b => + { + b.HasOne("Company.Domain.ClassificationSchemeAgg.ClassificationGroup", "ClassificationGroup") + .WithMany("ClassificationGroupJobs") + .HasForeignKey("ClassificationGroupId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClassificationGroup"); + }); + + modelBuilder.Entity("Company.Domain.ClassificationSchemeAgg.ClassificationGroupSalary", b => + { + b.HasOne("Company.Domain.ClassificationSchemeAgg.ClassificationGroup", "ClassificationGroup") + .WithMany("ClassificationGroupSalaries") + .HasForeignKey("ClassificationGroupId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClassificationGroup"); + }); + + modelBuilder.Entity("Company.Domain.ClassificationSchemeAgg.ClassificationRialCoefficient", b => + { + b.HasOne("Company.Domain.ClassificationSchemeAgg.ClassificationScheme", "ClassificationScheme") + .WithMany("ClassificationRialCoefficients") + .HasForeignKey("ClassificationSchemeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClassificationScheme"); + }); + modelBuilder.Entity("Company.Domain.ClientEmployeeWorkshopAgg.ClientEmployeeWorkshop", b => { b.HasOne("Company.Domain.EmployeeAgg.Employee", "Employee") @@ -11194,6 +11463,22 @@ namespace CompanyManagment.EFCore.Migrations b.Navigation("CheckoutWarningMessageList"); }); + modelBuilder.Entity("Company.Domain.ClassificationSchemeAgg.ClassificationGroup", b => + { + b.Navigation("ClassificationEmployees"); + + b.Navigation("ClassificationGroupJobs"); + + b.Navigation("ClassificationGroupSalaries"); + }); + + modelBuilder.Entity("Company.Domain.ClassificationSchemeAgg.ClassificationScheme", b => + { + b.Navigation("ClassificationGroups"); + + b.Navigation("ClassificationRialCoefficients"); + }); + modelBuilder.Entity("Company.Domain.ContarctingPartyAgg.PersonalContractingParty", b => { b.Navigation("ContractingPartyBankAccounts"); diff --git a/CompanyManagment.EFCore/Repository/ClassificationEmployeeRepository.cs b/CompanyManagment.EFCore/Repository/ClassificationEmployeeRepository.cs new file mode 100644 index 00000000..a855e97f --- /dev/null +++ b/CompanyManagment.EFCore/Repository/ClassificationEmployeeRepository.cs @@ -0,0 +1,224 @@ +using System.Collections.Generic; +using System.Linq; +using System; +using System.Threading.Tasks; +using _0_Framework.Application; +using _0_Framework.InfraStructure; +using Company.Domain.ClassificationSchemeAgg; +using CompanyManagment.App.Contracts.ClassificationScheme; +using CompanyManagment.App.Contracts.Workshop; +using Microsoft.EntityFrameworkCore; + +namespace CompanyManagment.EFCore.Repository; + +public class ClassificationEmployeeRepository : RepositoryBase, IClassificationEmployeeRepository +{ + private readonly CompanyContext _context; + public ClassificationEmployeeRepository(CompanyContext context) : base(context) + { + _context = context; + } + + + public async Task> GetEmployeeListData(long schemeId) + { + var leftDate = new DateTime(2121, 3, 21); + var workshopId = _context.ClassificationSchemes.FirstOrDefault(x => x.id == schemeId)!.WorkshopId; + var join = new List(); + var contractLeftWork =await _context.LeftWorkList.Include(em=>em.Employee).Select(x => new PersonnelInfoViewModel() + { + WorkshopId = x.WorkshopId, + EmployeeId = x.EmployeeId, + FullName = x.Employee.FullName, + PersonnelCode = 0, + ContractPerson = true, + ContractLeft = x.LeftWorkDate != leftDate, + StartWork = x.StartWorkDate, + LeftWork = x.LeftWorkDate, + LastStartInsuranceWork = "-", + LastLeftInsuranceWork = "-", + }).Where(x => x.WorkshopId == workshopId) + .OrderByDescending(x => x.StartWork) + .ToListAsync(); + + contractLeftWork = contractLeftWork.Select(x => new PersonnelInfoViewModel() + { + WorkshopId = x.WorkshopId, + EmployeeId = x.EmployeeId, + FullName = x.FullName, + + ContractPerson = true, + ContractLeft = x.ContractLeft, + LastStartContractWork = x.StartWork.ToFarsi(), + LastLeftContractWork = x.LeftWork != leftDate ? x.LeftWork.ToFarsi() : "-", + StartWork = x.StartWork, + LeftWork = x.LeftWork, + LastStartInsuranceWork = x.LastStartInsuranceWork, + LastLeftInsuranceWork = x.LastLeftInsuranceWork, + }).ToList(); + + var insuranceLeftWork =await _context.LeftWorkInsuranceList.Include(em=> em.Employee).Select(x => new PersonnelInfoViewModel() + { + WorkshopId = x.WorkshopId, + EmployeeId = x.EmployeeId, + FullName = x.Employee.FullName, + PersonnelCode = 0, + InsurancePerson = true, + InsuranceLeft = x.LeftWorkDate != null, + StartWork = x.StartWorkDate, + LastStartInsuranceWork = x.StartWorkDate.ToFarsi(), + LastLeftInsuranceWork = x.LeftWorkDate != null ? x.LeftWorkDate.ToFarsi() : "-", + }).Where(x => x.WorkshopId == workshopId) + .OrderByDescending(x => x.StartWork).ToListAsync(); + + insuranceLeftWork = insuranceLeftWork.Select(x => new PersonnelInfoViewModel() + { + WorkshopId = x.WorkshopId, + EmployeeId = x.EmployeeId, + FullName = x.FullName, + PersonnelCode = _context.PersonnelCodeSet.Any(p => p.EmployeeId == x.EmployeeId && p.WorkshopId == x.WorkshopId) ? + _context.PersonnelCodeSet.FirstOrDefault(p => p.EmployeeId == x.EmployeeId && p.WorkshopId == x.WorkshopId)!.PersonnelCode : 0, + InsurancePerson = true, + InsuranceLeft = x.InsuranceLeft, + StartWork = x.StartWork, + LastStartInsuranceWork = x.LastStartInsuranceWork, + LastLeftInsuranceWork = x.LastLeftInsuranceWork, + }).ToList(); + + var joinEqualList = contractLeftWork.Join(insuranceLeftWork, + x => x.EmployeeId, + c => c.EmployeeId, + (first, second) => new PersonnelInfoViewModel + { + EmployeeId = first.EmployeeId, + ContractPerson = first.ContractPerson, + ContractLeft = first.ContractLeft, + InsurancePerson = second.InsurancePerson, + InsuranceLeft = second.InsuranceLeft, + LastStartContractWork = first.LastStartContractWork, + LastLeftContractWork = first.LastLeftContractWork, + StartWork = first.StartWork, + LeftWork = first.LeftWork, + LastStartInsuranceWork = second.LastStartInsuranceWork, + LastLeftInsuranceWork = second.LastLeftInsuranceWork, + }).ToList(); + + if (contractLeftWork.Any() && !insuranceLeftWork.Any()) + { + join = contractLeftWork.ToList(); + } + else if (!contractLeftWork.Any() && insuranceLeftWork.Any()) + { + join = insuranceLeftWork.ToList(); + } + else if (contractLeftWork.Any() && insuranceLeftWork.Any()) + { + join = contractLeftWork.Concat(insuranceLeftWork).ToList(); + } + + //if (joinEqualList.Count == 0) + // return new List(); + + //join = join.GroupBy(x => x.EmployeeId).Select(d => d.First()).ToList(); + + + var employeeWhitGroup = _context.ClassificationEmployees.Include(g=>g.ClassificationGroup) + .Where(x => x.ClassificationSchemeId == schemeId); + + + + + + var finalList = join.Select(x => + { + var hasGroup = employeeWhitGroup.Any(em => em.EmployeeId == x.EmployeeId); + var groupNo = ""; + if (hasGroup) + { + var group = employeeWhitGroup.Where(g => g.EmployeeId == x.EmployeeId) + .Select(n => n.ClassificationGroup.GroupNo).ToList(); + if (group.Count > 0) + groupNo = string.Join(" - ", group); + + + + } + + + var contractPerson = joinEqualList.Any(c => c.EmployeeId == x.EmployeeId) ? joinEqualList.FirstOrDefault(c => c.EmployeeId == x.EmployeeId)!.ContractPerson : x.ContractPerson; + var insurancePerson = joinEqualList.Any(c => c.EmployeeId == x.EmployeeId) ? joinEqualList.FirstOrDefault(c => c.EmployeeId == x.EmployeeId)!.InsurancePerson : x.InsurancePerson; + var contractLeft = joinEqualList.Any(c => c.EmployeeId == x.EmployeeId) ? joinEqualList.FirstOrDefault(c => c.EmployeeId == x.EmployeeId)!.ContractLeft : x.ContractLeft; + var insuranceLeft = joinEqualList.Any(c => c.EmployeeId == x.EmployeeId) ? joinEqualList.FirstOrDefault(c => c.EmployeeId == x.EmployeeId)!.InsuranceLeft : x.InsuranceLeft; + + + var lastStartInsuranceWork = joinEqualList.Any(c => c.EmployeeId == x.EmployeeId) ? joinEqualList.FirstOrDefault(c => c.EmployeeId == x.EmployeeId)!.LastStartInsuranceWork : x.LastStartInsuranceWork; + var lastLeftInsuranceWork = joinEqualList.Any(c => c.EmployeeId == x.EmployeeId) ? joinEqualList.FirstOrDefault(c => c.EmployeeId == x.EmployeeId)!.LastLeftInsuranceWork : x.LastLeftInsuranceWork; + + return new EmployeeInfoList + { + HasGroup = hasGroup, + GroupNo = groupNo, + EmployeeId = x.EmployeeId, + FullName = x.FullName, + ContractPerson = contractPerson, + InsurancePerson = insurancePerson, + ContractLeft = contractLeft, + InsuranceLeft = insuranceLeft, + Black = ((contractPerson && insurancePerson && insuranceLeft && contractLeft) || (contractPerson && !insurancePerson && contractLeft) || (insurancePerson && !contractPerson && insuranceLeft)) ? true : false, + LastStartContractWork = x.LastStartContractWork, + LastLeftContractWork = x.LastLeftContractWork, + LastStartInsuranceWork = lastStartInsuranceWork, + LastLeftInsuranceWork = lastLeftInsuranceWork, + }; + }).ToList(); + + + var final = finalList.GroupBy(x => x.EmployeeId).Select(x => x.First()).ToList(); + return final; + } + + + /// + /// دریافت اطلاعات عضویتی پرسنل در گروه + /// + /// + /// + public async Task> GetEmployeeMemberizeData(long employeeId) + { + return await _context.ClassificationEmployees.Where(x => x.EmployeeId == employeeId).Include(x=>x.ClassificationGroup).Select(x=> new EditEmployeeGroupList + { + Id = x.id, + WorkshopId = x.WorkshopId, + SchemeId = x.ClassificationSchemeId, + ClassificationGroupId = x.ClassificationGroupId, + ClassificationGroupJobId = x.ClassificationGroupJobId, + StartGroupDate = x.StartGroupDate, + EndGroupDate = x.EndGroupDate, + StartGroupDateFa = x.StartGroupDate.HasValue ? x.StartGroupDate.ToFarsi() : "", + EndGroupDateFa = x.EndGroupDate.HasValue ? x.EndGroupDate.ToFarsi() : "", + GroupNo = x.ClassificationGroup.GroupNo + + + }).OrderBy(x=>x.StartGroupDate).ToListAsync(); + + + } + + + public async Task CreateTransferRange(List command) + { + await _context.AddRangeAsync(command); + await _context.SaveChangesAsync(); + } + + /// + /// حذف پرسنل از گروه از سمت ویرایش + /// + /// + /// + public async Task RemoveRangeByEdit(List command) + { + _context.RemoveRange(command); + + } +} \ No newline at end of file diff --git a/CompanyManagment.EFCore/Repository/ClassificationGroupRepository.cs b/CompanyManagment.EFCore/Repository/ClassificationGroupRepository.cs new file mode 100644 index 00000000..9b33ab36 --- /dev/null +++ b/CompanyManagment.EFCore/Repository/ClassificationGroupRepository.cs @@ -0,0 +1,167 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using _0_Framework.InfraStructure; +using Company.Domain.ClassificationSchemeAgg; +using CompanyManagment.App.Contracts.ClassificationScheme; +using Microsoft.EntityFrameworkCore; + +namespace CompanyManagment.EFCore.Repository; + +public class ClassificationGroupRepository : RepositoryBase, IClassificationGroupRepository +{ + private readonly CompanyContext _context; + public ClassificationGroupRepository(CompanyContext context) : base(context) + { + _context = context; + } + + /// + /// دریافت گروه های طرح + /// + /// + /// + public async Task> GetGroups(long schemeId) + { + return await _context.ClassificationGroups + .Where(x => x.ClassificationSchemeId == schemeId) + .Select(x=> new ClassificationGroupList + { + + GroupId = x.id, + GroupNo = x.GroupNo, + GroupNoInt = Convert.ToInt32(x.GroupNo) + + }).OrderBy(x=>x.GroupNoInt).ToListAsync(); + } + + /// + /// دریافت گروه ها و مشاغلشان برای تب تعیین مشاغل + /// + /// + /// + public async Task> GetGroupAndJobs(long schemeId) + { + return await _context.ClassificationGroups.Where(x => x.ClassificationSchemeId == schemeId) + .Include(x => x.ClassificationGroupJobs).Select(x => new ClassificationGroupAndJobModel + { + GroupId = x.id, + GroupNo = x.GroupNo, + GroupNoInt = Convert.ToInt32(x.GroupNo), + WorkshopId = x.WorkshopId, + ClassificationSchemeId = x.ClassificationSchemeId, + EditClassificationGroupJob = x.ClassificationGroupJobs.Select(jobs => new EditClassificationGroupJob() + { + Id = jobs.id, + JobId = jobs.JobId, + JobName = jobs.JobName, + JobCode = jobs.JobCode, + ClassificationGroupId = jobs.ClassificationGroupId, + GroupNo = jobs.GroupNo, + + }).ToList(), + + }).OrderBy(x=>x.GroupNoInt).ToListAsync(); + } + + /// + /// دریافت مشاغل گروه توسط آی دی گروه + /// + /// + /// + public async Task> GetGroupJobs(long groupId) + { + + return await _context.ClassificationGroupJobs + .Where(x => x.ClassificationGroupId == groupId).Select(jobs => new EditClassificationGroupJob() + { + Id = jobs.id, + JobId = jobs.JobId, + JobName = jobs.JobName, + JobCode = jobs.JobCode, + ClassificationGroupId = jobs.ClassificationGroupId, + GroupNo = jobs.GroupNo, + + }).ToListAsync(); + + + } + + /// + /// چک میکند که آی پرسنلی وجود دارد که این شغل به او نسبت داده شده + /// + /// + /// + /// + public async Task CheckEmployeeHasThisJob(long id, long groupId) + { + return await _context.ClassificationEmployees.AnyAsync(x => + x.ClassificationGroupJobId == id && x.ClassificationGroupId == groupId); + } + + /// + /// ایجاد مشاغل + /// + /// + /// + /// + public async Task CreateJobs(List createClassificationGroupJob, List deleteJobList) + { + if (createClassificationGroupJob.Count > 0) + { + await _context.ClassificationGroupJobs.AddRangeAsync(createClassificationGroupJob); + await _context.SaveChangesAsync(); + } + + if (deleteJobList.Count > 0) + { + var deleteItems = _context.ClassificationGroupJobs.Where(x => deleteJobList.Contains(x.id)); + _context.ClassificationGroupJobs.RemoveRange(deleteItems); + await _context.SaveChangesAsync(); + } + + + + return true; + } + + /// + /// در یافت اطلاعات گروه برای لود مودال ایجاد دستمزد های + /// + /// + public async Task GetGroupToCreateSalariesModal(long schemeId) + { + var result = new SalaryAndRialCoefficientModel(); + var scheme =await _context.ClassificationSchemes.FirstOrDefaultAsync(x => x.id == schemeId); + var groups =await _context.ClassificationGroups.Where(x => x.ClassificationSchemeId == schemeId).ToListAsync(); + + if (scheme != null) + { + result.TypeOfCoefficient = scheme.TypeOfCoefficient; + result.SchemeId = schemeId; + + result.SalariesAndCoefficientList = groups.Select(x => new EditClassificationGroupSalaryAndRialCoefficient + { + ClassificationGroupId = x.id, + GroupNo = x.GroupNo, + + }).ToList(); + } + + return result; + } + + + + /// + /// ایجاد گروه های بیست گانه + /// + /// + /// + public async Task CreateGroups(List groupList) + { + await _context.AddRangeAsync(groupList); + await _context.SaveChangesAsync(); + } +} \ No newline at end of file diff --git a/CompanyManagment.EFCore/Repository/ClassificationGroupSalariesRepository.cs b/CompanyManagment.EFCore/Repository/ClassificationGroupSalariesRepository.cs new file mode 100644 index 00000000..997fc970 --- /dev/null +++ b/CompanyManagment.EFCore/Repository/ClassificationGroupSalariesRepository.cs @@ -0,0 +1,143 @@ +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using _0_Framework.Application; +using _0_Framework.Application.Enums; +using _0_Framework.InfraStructure; +using Company.Domain.ClassificationSchemeAgg; +using CompanyManagment.App.Contracts.ClassificationScheme; +using Microsoft.EntityFrameworkCore; + +namespace CompanyManagment.EFCore.Repository; + +public class ClassificationGroupSalariesRepository : RepositoryBase, IClassificationGroupSalariesRepository +{ + private readonly CompanyContext _context; + public ClassificationGroupSalariesRepository(CompanyContext context) : base(context) + { + _context = context; + } + + + public async Task CreateSalaries(List createClassificationGroupSalary) + { + if (createClassificationGroupSalary.Count > 0) + { + await _context.ClassificationGroupSalaries.AddRangeAsync(createClassificationGroupSalary); + await _context.SaveChangesAsync(); + } + } + + /// + /// دریافت دستمزدها و ضریب ریالی برای مودال ویرایش + /// + /// + /// + /// + /// + public async Task GetEditSalariesData(long schemeId, string startDate, string endDate) + { + var salaryAndRialCoefficientModel = new SalaryAndRialCoefficientModel(); + + try + { + var scheme = _context.ClassificationSchemes.FirstOrDefaultAsync(x => x.id == schemeId).GetAwaiter().GetResult(); + var startDatGr = startDate.ToGeorgian(); + + + var rialCoEfficient = await _context.ClassificationRialCoefficients + .FirstOrDefaultAsync(x => x.ClassificationSchemeId == schemeId && x.StartDate == startDatGr); + salaryAndRialCoefficientModel.SchemeId = schemeId; + salaryAndRialCoefficientModel.StartDateFa = startDate; + salaryAndRialCoefficientModel.EndDateFa = endDate; + salaryAndRialCoefficientModel.TypeOfCoefficient = scheme.TypeOfCoefficient; + if (rialCoEfficient == null) + { + salaryAndRialCoefficientModel.RialCoefficient = 0; + salaryAndRialCoefficientModel.CoefficientId = 0; + } + else + { + salaryAndRialCoefficientModel.RialCoefficient = scheme.TypeOfCoefficient == TypeOfCoefficient.RialCoefficient ? rialCoEfficient.RialCoefficient : 0; + salaryAndRialCoefficientModel.CoefficientId = scheme.TypeOfCoefficient == TypeOfCoefficient.RialCoefficient ? rialCoEfficient.id : 0; + } + + salaryAndRialCoefficientModel.SalariesAndCoefficientList = _context.ClassificationGroupSalaries.Where(x => x.SchemeId == schemeId && x.StartDate == startDatGr).Select(x => new EditClassificationGroupSalaryAndRialCoefficient + { + Id = x.id, + ClassificationGroupId = x.ClassificationGroupId, + GroupNo = x.GroupNo, + GroupSalaryStr = x.GroupSalary.ToMoney(), + GroupSalary = x.GroupSalary + + }) + .ToList(); + } + catch (System.Exception) + { + return new SalaryAndRialCoefficientModel(); + + } + + + + return salaryAndRialCoefficientModel; + } + public async Task GetSalariesTabData(long schemeId) + { + var scheme = await _context.ClassificationSchemes.AsSplitQuery().Include(xc=>xc.ClassificationRialCoefficients) + .Include(xg => xg.ClassificationGroups) + .ThenInclude(xs => xs.ClassificationGroupSalaries) + .FirstOrDefaultAsync(x => x.id == schemeId); + + if (scheme == null) + return null; + + // جمع‌آوری همه‌ی حقوق‌ها از تمام گروه‌ها + var allSalaries = scheme.ClassificationGroups + .SelectMany(g => g.ClassificationGroupSalaries) + .ToList(); + + // اگر هیچ حقوقی وجود ندارد + if (!allSalaries.Any()) + { + return new SalaryAndRialCoefficientTab + { + SchemeId = scheme.id, + HasAnySalaries = false, + SalaryAndRialCoefficientTabDataList = new List() + }; + } + + // گروه‌بندی بر اساس StartDate و EndDate برای حذف موارد تکراری + var distinctPeriods = allSalaries + .GroupBy(s => new { s.StartDate, s.EndDate }) + .Select(g => g.First()) // فقط یکی از هر بازه تاریخ + .OrderByDescending(x => x.StartDate) + .ToList(); + + //تبدیل به مدل خروجی + var dataList = distinctPeriods + .Select(s => new SalaryAndRialCoefficientTabDataList + { + RialCoefficientStr = $"{scheme.ClassificationRialCoefficients.FirstOrDefault(x=>x.StartDate.Date == s.StartDate.Date && x.EndDate.Date == s.EndDate.Date)?.RialCoefficient}", + StartDateFa = s.StartDate.ToFarsi(), + EndDateFa = s.EndDate.ToFarsi(), + Year = s.Year + }) + .ToList(); + + var result = new SalaryAndRialCoefficientTab + { + SchemeId = scheme.id, + HasAnySalaries = allSalaries.Any(), + SalaryAndRialCoefficientTabDataList = dataList + }; + + return result; + + + } + + +} \ No newline at end of file diff --git a/CompanyManagment.EFCore/Repository/ClassificationRialCoefficientRepository.cs b/CompanyManagment.EFCore/Repository/ClassificationRialCoefficientRepository.cs new file mode 100644 index 00000000..a957b480 --- /dev/null +++ b/CompanyManagment.EFCore/Repository/ClassificationRialCoefficientRepository.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.Linq.Expressions; +using System.Threading.Tasks; +using _0_Framework.InfraStructure; +using Company.Domain.ClassificationSchemeAgg; +using Microsoft.EntityFrameworkCore; + +namespace CompanyManagment.EFCore.Repository; + +public class ClassificationRialCoefficientRepository : RepositoryBase, IClassificationRialCoefficientRepository +{ + private readonly CompanyContext _context; + public ClassificationRialCoefficientRepository(CompanyContext context) : base(context) + { + _context = context; + } +} \ No newline at end of file diff --git a/CompanyManagment.EFCore/Repository/ClassificationSchemeRepository.cs b/CompanyManagment.EFCore/Repository/ClassificationSchemeRepository.cs new file mode 100644 index 00000000..1b425196 --- /dev/null +++ b/CompanyManagment.EFCore/Repository/ClassificationSchemeRepository.cs @@ -0,0 +1,609 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using _0_Framework.Application; +using _0_Framework.InfraStructure; +using Company.Domain.ClassificationSchemeAgg; +using CompanyManagment.App.Contracts.ClassificationScheme; +using CompanyManagment.App.Contracts.LeftWork; +using CompanyManagment.App.Contracts.YearlySalary; +using Microsoft.EntityFrameworkCore; +using PersianTools.Core; + +namespace CompanyManagment.EFCore.Repository; + +public class ClassificationSchemeRepository :RepositoryBase, IClassificationSchemeRepository +{ + private readonly CompanyContext _context; + public ClassificationSchemeRepository(CompanyContext context) : base(context) + { + _context = context; + } + + public async Task GetClassificationSchemeList(long workshopId) + { + var hasScheme =await _context.ClassificationSchemes.AnyAsync(x => x.WorkshopId == workshopId); + if (!hasScheme) + return new ClassificationSchemeListDto() + { + HasScheme = false, + + }; + + var schemeList =await _context.ClassificationSchemes.Where(x => x.WorkshopId == workshopId).Select(x => + new SchemeListDto() + { + Id = x.id, + IncludingDateFa = x.IncludingDateGr.ToFarsi(), + ExecutionDateFa = x.ExecutionDateGr.ToFarsi(), + DesignerFullName = x.DesignerFullName, + + }).ToListAsync(); + return new ClassificationSchemeListDto() + { + HasScheme = true, + WorkshopId = workshopId, + ClassificationSchemesList = schemeList + }; + + } + + /// + /// دریافت اطلاعات طرح برای ویرایش + /// + /// + /// + public Task GetClassificationScheme(long id) + { + return _context.ClassificationSchemes.Select(x => + new EditClassificationSchemeDto() + { + + Id = x.id, + IncludingDateFa = x.IncludingDateGr.ToFarsi(), + ExecutionDateFa = x.ExecutionDateGr.ToFarsi(), + DesignerFullName = x.DesignerFullName, + DesignerPhone = x.DesignerPhone, + TypeOfCoefficient = x.TypeOfCoefficient + + }).FirstOrDefaultAsync(x => x.Id == id); + } + + + + /// + /// دریافت اطلاعات طر برای محاسبات + /// + /// + /// + public Task GetClassificationSchemeToCompute(long id) + { + return _context.ClassificationSchemes.Select(x => + new EditClassificationScheme() + { + + Id = x.id, + WorkshopId = x.WorkshopId, + ExecutionDateGr = x.ExecutionDateGr, + EndSchemeDateGr = x.EndSchemeDateGr, + IncludingDateFa = x.IncludingDateGr.ToFarsi(), + ExecutionDateFa = x.ExecutionDateGr.ToFarsi(), + DesignerFullName = x.DesignerFullName, + DesignerPhone = x.DesignerPhone, + TypeOfCoefficient = x.TypeOfCoefficient + + }).FirstOrDefaultAsync(x => x.Id == id); + } + + /// + /// متد محاسبه پایه سنوات برا افراد تک گروه + /// + /// تاریخ شروع طرح + /// تاریخ پاین طرح، اجباری نیست + /// تاریخ شروع قراداد + /// تاریخ پایان قراداد + /// شماره گروه + /// آی دی پرسنل + /// آی دی کارگاه + /// + public async Task BaseYearComputeOneGroup(DateTime schemeStart, DateTime? schemeEnd, + DateTime contractStart, DateTime contractEnd, string groupNo, long employeeId, long workshopId) + { + //خروجی متد + var baseYearResult = new BaseYearDataViewModel(); + baseYearResult.WorkshopId = workshopId; + baseYearResult.EmployeeId = employeeId; + + //بدست آوردن اطلاعات گروهبندی پرسنل + var employeeGroupMember = await _context.ClassificationEmployees.Include(x=>x.ClassificationGroup) + .Where(x => x.WorkshopId == workshopId && x.EmployeeId == employeeId).OrderBy(x=>x.StartGroupDate) + .Select(x=> new{x.StartGroupDate, x.EndGroupDate, x.ClassificationGroup.GroupNo}) + .OrderByDescending(x=>x.StartGroupDate) + .ToListAsync(); + var employeeGroupMemberData = new List<(DateTime startGroupDate, DateTime EndGroupDate, string GroupNo)>(); + if (employeeGroupMember.Any()) + { + + var lastGroup = employeeGroupMember.FirstOrDefault(); + foreach (var group in employeeGroupMember) + { + if (group == lastGroup) + { + + employeeGroupMemberData.Add(new ValueTuple(group.StartGroupDate.Value, contractEnd, group.GroupNo)); + } + else + { + var endOfGroup = employeeGroupMemberData.Last().startGroupDate.AddDays(-1); + employeeGroupMemberData.Add(new ValueTuple(group.StartGroupDate.Value, endOfGroup, group.GroupNo)); + + } + } + + } + + + + + + + + + //لیست شروع بکار / ترک کار پرسنل + var leftWorkList = await _context.LeftWorkList + .Where(x => x.EmployeeId == employeeId && x.WorkshopId == workshopId).Select(x=> new LeftWorkViewModel + { + Id = x.id, + StartWorkDateGr = x.StartWorkDate, + StartWorkDate = x.StartWorkDate.ToFarsi(), + LeftWorkDateGr = x.LeftWorkDate, + HasLeft = x.HasLeft, + }).OrderBy(x=>x.StartWorkDateGr).ToListAsync(); + //اولین شروع بکار + var firstStartWorkDate = leftWorkList.First().StartWorkDateGr; + var firstStartWork = leftWorkList.First().StartWorkDate; + //اگر شروع طرح بعد از اولین شروع بکار بود + if (schemeStart > firstStartWorkDate) + { + var leftWorkStart = leftWorkList.FirstOrDefault(x => x.StartWorkDateGr <= schemeStart && x.LeftWorkDateGr > schemeStart); + + if (leftWorkStart != null) + { + //اگر تاریخ شروع طرح بین بازه اولین شروع بکار و ترک کار قرار گرفت + if (leftWorkStart.StartWorkDateGr == firstStartWorkDate) + { + var changedLeftwork = new LeftWorkViewModel() + { + Id = leftWorkStart.Id, + StartWorkDateGr = schemeStart, + StartWorkDate = schemeStart.ToFarsi(), + LeftWorkDateGr = leftWorkStart.LeftWorkDateGr, + HasLeft = leftWorkStart.HasLeft, + }; + + leftWorkList.Remove(leftWorkStart); + leftWorkList.Add(changedLeftwork); + firstStartWork = schemeStart.ToFarsi(); + } + else //اگر تاریخ شروع طرح در بازه شروع به ترک کارهایی بعد از اولین قرارگرفت + { + //لیست شروع بکار/ ترک کارهایی که باید حذف شوند + var leftWorksToBeRemove = leftWorkList.Where(x => x.StartWorkDateGr < leftWorkStart.StartWorkDateGr) + .ToList(); + foreach (var item in leftWorksToBeRemove.ToList()) + { + leftWorkList.Remove(item); + } + + var changedLeftwork = new LeftWorkViewModel() + { + Id = leftWorkStart.Id, + StartWorkDateGr = schemeStart, + StartWorkDate = schemeStart.ToFarsi(), + LeftWorkDateGr = leftWorkStart.LeftWorkDateGr, + HasLeft = leftWorkStart.HasLeft, + }; + firstStartWork = schemeStart.ToFarsi(); + leftWorkList.Remove(leftWorkStart); + leftWorkList.Add(changedLeftwork); + } + + } + else //اگر شروع طرح در فاصله بین شروع بکار/ترک کارها بود + { + //لیست شروع بکار/ ترک کارهایی که باید حذف شوند + var leftWorksToBeRemove = leftWorkList.Where(x => x.StartWorkDateGr < schemeStart) + .ToList(); + foreach (var item in leftWorksToBeRemove.ToList()) + { + leftWorkList.Remove(item); + } + + leftWorkList = leftWorkList.OrderBy(x => x.StartWorkDateGr).ToList(); + firstStartWork = leftWorkList.First().StartWorkDate; + + } + } + //مرتب سازی + leftWorkList = leftWorkList.OrderBy(x => x.StartWorkDateGr).ToList(); + + + //مقادیر سالانه + var salary = await _context.YearlySalaries.OrderByDescending(x => x.EndDate).Include(x => x.YearlySalaryItemsList).ToListAsync(); + + //مزد سنوات طبقه بندی + var classifiedBaseYearList =await _context.ClassifiedSalaries.ToListAsync(); + + //آیا در حلقه کبیشه بودن چک شود + bool checkKabiseh = true; + var isKabiseh = false; + var EndOfYaerDate = new DateTime(); + //لیست تاریخ هایی که پایه سنوات تعلق گرفته + var baseYearDateList = new List(); + + double baseYear = 0; + + //اگر تاریخ پایان طرح خالی نبود + if (schemeEnd.HasValue) + { + //اگر تاریخ پایان طرخ از تاریخ پایان قرارداد کوچکتر بود + //در نتیجه تاریخ پاینه محاسبات همان پایان طرح است + if (schemeEnd.Value < contractEnd) + contractEnd = schemeEnd.Value; + } + + //اگر فقط یک شروع بکار داشت + if (leftWorkList.Count < 2) + { + var leftWork = leftWorkList.First(); + //اگر ترک کار کرده بود پایان چرخه تاریخ آخرین روز کاری اوست + var endComputeDate = leftWork.HasLeft && leftWork.LeftWorkDateGr <= contractEnd ? leftWork.LeftWorkDateGr.AddDays(-1) : contractEnd; + //شروع چرخه شروع بکار پرسنل + var startComputeDate = leftWork.StartWorkDateGr; + + + for (var current = startComputeDate; current <= endComputeDate; current = current.AddDays(1)) + { + var currentChanges = new DateTime(current.Year, current.Month, current.Day); + + if (checkKabiseh) + { + + isKabiseh = ($"{current.ToFarsi()}").YearTotalDays() == 367 ? true : false; + string kabise = ""; + if (isKabiseh) + kabise = "kabise"; + var currentChangesPc = currentChanges.ToPersianDateTime(); + EndOfYaerDate = isKabiseh ? ($"{currentChangesPc.AddDays(365)}").ToGeorgianDateTime() : ($"{currentChangesPc.AddDays(364)}").ToGeorgianDateTime(); + Console.WriteLine($" start : {current.ToFarsi()} {kabise}"); + } + + checkKabiseh = false; + if (current == EndOfYaerDate) + { + + + + var a = current.AddDays(1); + if (a <= endComputeDate) + { + checkKabiseh = true; + baseYearDateList.Add(a); + Console.WriteLine($" End : {a.ToFarsi()}"); + } + + } + + + } + } + else //اگر بیش از یک شروع بکار داشت + { + int max365 = 0; + int dayCounter = 0; + bool hasCute = false; + foreach (var leftWork in leftWorkList) + { + //اگر ترک کار کرده بود پایان چرخه تاریخ آخرین روز کاری اوست + var endComputeDate = leftWork.HasLeft && leftWork.LeftWorkDateGr <= contractEnd ? leftWork.LeftWorkDateGr.AddDays(-1) : contractEnd; + //شروع چرخه شروع بکار پرسنل + var startComputeDate = leftWork.StartWorkDateGr; + + for (var current = startComputeDate; current <= endComputeDate; current = current.AddDays(1)) + { + + if (checkKabiseh && dayCounter == 0) + { + + isKabiseh = ($"{current.ToFarsi()}").YearTotalDays() == 367 ? true : false; + string kabise = ""; + if (isKabiseh) + kabise = "kabise"; + + max365 = isKabiseh ? 366 : 365; + Console.WriteLine($" start : {current.ToFarsi()} {kabise}"); + } + + dayCounter += 1; + checkKabiseh = false; + + if (dayCounter == max365) + { + + var a = !hasCute ? current.AddDays(1) : current; + if (a <= endComputeDate) + { + checkKabiseh = true; + baseYearDateList.Add(a); + Console.WriteLine($" End : {a.ToFarsi()}"); + Console.WriteLine(dayCounter); + if (hasCute) + { + dayCounter = 1; + isKabiseh = ($"{current.ToFarsi()}").YearTotalDays() == 367 ? true : false; + max365 = isKabiseh ? 366 : 365; + + string kabise = ""; + if (isKabiseh) + kabise = "kabise"; + Console.WriteLine($" start : {current.ToFarsi()} {kabise}"); + } + else + { + dayCounter = 0; + } + hasCute = false; + } + else + { + hasCute = true; + max365 += 1; + } + + + + + + } + + } + + } + } + + double selectBase = 0; + var baseList = new List<(double baseYaer, DateTime start, DateTime end, string baseYearPay, DateTime baseYearPayGr, string year, bool hasStartWork, bool hasLeftWork, string groupNo)>(); + + + if (baseYearDateList.Count > 0) + { + var firstBaseYearDate = baseYearDateList.First(); + var res = MonthByMonthList(firstBaseYearDate, contractEnd); + var firstbasicSalari = + salary.FirstOrDefault(x => x.StartDate <= firstBaseYearDate && x.EndDate >= firstBaseYearDate); + var firstClassifiedBaseYear = classifiedBaseYearList.FirstOrDefault(x => x.StartDate <= firstBaseYearDate && x.EndDate >= firstBaseYearDate); + + //پایه سنوات سال جاری + var firstGroupData = employeeGroupMemberData.FirstOrDefault(x => x.startGroupDate <= firstBaseYearDate && x.EndGroupDate >= firstBaseYearDate); + + groupNo = firstGroupData.GroupNo; + var firstBasicObject = Tools.GetDynamicDouble(firstClassifiedBaseYear, $"Group{groupNo}"); + double firstBasic = firstBasicObject != null ? firstBasicObject.Value : 0; + var firstfixFeePercentage = firstbasicSalari + .YearlySalaryItemsList.Where(x => x.ItemName == "درصد مزد ثابت").Select(x => x.ItemValue).FirstOrDefault(); + + // پایه سنوات سال قبل ضربدر درصد مزد ثابت تقسیم بر صد + //var beforePercntBaseYear = ((beforBaseStart * firstfixFeePercentage) / 100) + beforBaseStart; + //firstBasic += beforePercntBaseYear; + baseYear = firstBasic; + res = res.Where(x => x.start != firstBaseYearDate).OrderBy(x => x.start).ToList(); + //var afterSalary = salary.Where(x => x.StartDate > firstbasicSalari.EndDate).ToList(); + + + var first = (firstBasic, firstbasicSalari.StartDate, firstbasicSalari.EndDate, firstBaseYearDate.ToFarsi(), firstBaseYearDate, firstbasicSalari.Year, false, false, $"گروه {groupNo}"); + baseList.Add(first); + Console.ForegroundColor = ConsoleColor.Green; + Console.WriteLine($"{1398} -> firstBasic : {firstBasic}"); + var lastItem = res.Count > 1 ? res.Last() : res.FirstOrDefault(); + foreach (var item in res) + { + var lastReecord = baseList.Last(); + var year = Convert.ToInt32(item.start.ToFarsi().Substring(0, 4)); + if (item.start > lastReecord.end && lastReecord.year != $"{year}") + { + + + var selectedSalary = salary.Where(x => x.Year == $"{year}").OrderBy(x => x.StartDate).ToList(); + var currentSalary = selectedSalary.First(); + if (selectedSalary.Count > 1) + { + currentSalary = selectedSalary.Last(); + var firstSalery = selectedSalary.First(); + if (baseYearDateList.Any(x => x >= firstSalery.StartDate && x <= firstSalery.EndDate) || lastItem.end < currentSalary.StartDate) + { + currentSalary = firstSalery; + } + + } + + var selectedBaseYear = classifiedBaseYearList.Where(x => x.Year == year).OrderBy(x => x.StartDate).ToList(); + var currentBaseYear = selectedBaseYear.First(); + if (selectedBaseYear.Count > 1) + { + currentBaseYear = selectedBaseYear.Last(); + var firstBaseYear = selectedBaseYear.First(); + if (baseYearDateList.Any(x => x >= firstBaseYear.StartDate && x <= firstBaseYear.EndDate) || lastItem.end < currentBaseYear.StartDate) + { + currentBaseYear = firstBaseYear; + } + } + + //درصد مزد ثابت تاریخ جاری + var fixFeePercentage = currentSalary + .YearlySalaryItemsList.Where(x => x.ItemName == "درصد مزد ثابت").Select(x => x.ItemValue).FirstOrDefault(); + + // پایه سنوات سال قبل ضربدر درصد مزد ثابت تقسیم بر صد + var percntBaseYear = ((lastReecord.baseYaer * fixFeePercentage) / 100) + lastReecord.baseYaer; + Console.ForegroundColor = ConsoleColor.Green; + + + var transferGroupData = employeeGroupMemberData.FirstOrDefault(x => x.startGroupDate <= currentBaseYear.EndDate && x.EndGroupDate >= currentBaseYear.StartDate); + + groupNo = transferGroupData.GroupNo; + + var currentBasicObject = Tools.GetDynamicDouble(currentBaseYear, $"Group{groupNo}"); + double currentBasic = currentBasicObject != null ? currentBasicObject.Value : 0; + //var currentBasic = currentSalary + // .YearlySalaryItemsList.Where(x => x.ItemName == "پایه سنوات").Select(x => x.ItemValue).FirstOrDefault(); + Console.WriteLine($"{year} -> [{lastReecord.baseYaer} * {fixFeePercentage} /100 + {lastReecord.baseYaer}] = {percntBaseYear} => [{currentBasic} + {percntBaseYear}] = {currentBasic + percntBaseYear} "); + + if (!baseYearDateList.Any(x => x >= currentBaseYear.StartDate && x <= currentBaseYear.EndDate)) + currentBasic = 0; + + var currentBase = currentBasic + percntBaseYear; + + baseYear = currentBase; + var baseYearPay = "-"; + var baseYearPayDayGr = new DateTime(); + if (baseYearDateList.Any(x => x >= currentBaseYear.StartDate && x <= currentBaseYear.EndDate)) + { + var existBaseYear = baseYearDateList.FirstOrDefault(x => x >= currentBaseYear.StartDate && x <= currentBaseYear.EndDate); + baseYearPay = existBaseYear.ToFarsi(); + baseYearPayDayGr = new DateTime(existBaseYear.Year, existBaseYear.Month, existBaseYear.Day, 17, 01, 01); + } + else + { + baseYearPayDayGr = new DateTime(item.start.Year, item.start.Month, item.start.Day, 17, 01, 01); + + } + + + Console.ForegroundColor = ConsoleColor.DarkYellow; + Console.WriteLine(baseYearPay); + Console.ResetColor(); + + // var round = GetCurrectFirstDailyFee(currentBase, $"{year}"); + var record = (baseYear, currentSalary.StartDate, currentSalary.EndDate, baseYearPay, baseYearPayDayGr, currentSalary.Year, false, false, $"گروه {groupNo}"); + baseList.Add(record); + + + + } + + } + Console.ResetColor(); + + + + } + + selectBase = baseList.Any() ? baseList.Last().baseYaer : 0; + //افزودن تاریخ های شروع بکار و ترک کار به لیست + foreach (var left in leftWorkList) + { + var startWork = (0, new DateTime(), new DateTime(), left.StartWorkDateGr.ToFarsi(), left.StartWorkDateGr, "-", true, false, ""); + baseList.Add(startWork); + + if (left.HasLeft) + { + var leftWork = (0, new DateTime(), new DateTime(), left.LeftWorkDateGr.ToFarsi(), left.LeftWorkDateGr, "-", false, true, ""); + baseList.Add(leftWork); + } + + + } + + + baseYearResult = new BaseYearDataViewModel() + { + WorkshopId = workshopId, + EmployeeId = employeeId, + BaseYearResult = selectBase, + FirstWorkDayInLeftWork = firstStartWork, + BaseYearDataList = baseList.Select(x => new BaseYearDataList() + { + BaseYear = x.baseYaer, + + StartDateGr = x.start, + EndDateGr = x.end, + BaseYearPayDay = x.baseYearPay, + BaseYearPayDayGr = x.baseYearPayGr, + StartDateFa = x.start.ToFarsi(), + EndDateFa = x.end.ToFarsi(), + Year = x.year, + HasLeftWork = x.hasLeftWork, + HasStartWork = x.hasStartWork, + GroupNo = x.groupNo, + }).OrderBy(x => x.BaseYearPayDayGr).ToList(), + + }; + Console.WriteLine("BaseYear : " + selectBase); + return baseYearResult; + } + + public async Task DeleteClassificationScheme(long id) + { + var scheme = Get(id); + if (scheme != null) + { + _context.Remove(scheme); + await _context.SaveChangesAsync(); + } + } + + + /// + /// متد کمکی پایه سنوات + /// + /// + /// + /// + private List<(DateTime start, DateTime end)> MonthByMonthList(DateTime startDate, DateTime endDate) + { + + var start = startDate.ToFarsi(); + var end = endDate.ToFarsi(); + var ContractPreiodsList = new List<(DateTime start, DateTime end)>(); + + + var syear = Convert.ToInt32(start.Substring(0, 4)); + var smonth = Convert.ToInt32(start.Substring(5, 2)); + var sday = Convert.ToInt32(start.Substring(8, 2)); + + var eyear = Convert.ToInt32(end.Substring(0, 4)); + var emonth = Convert.ToInt32(end.Substring(5, 2)); + var eday = Convert.ToInt32(end.Substring(8, 2)); + + var PersianStartDate = new PersianDateTime(syear, smonth, sday); + var PersianStartDateAddingMount = new PersianDateTime(syear, smonth, 1); + var PersianEndDate = new PersianDateTime(eyear, emonth, eday); + + + + var totalmonth = ((PersianEndDate.Year - PersianStartDateAddingMount.Year) * 12) + (PersianEndDate.Month - PersianStartDateAddingMount.Month) + 1; + for (int i = 0; i < totalmonth; i++) + { + + + var currentEndDate = PersianStartDateAddingMount.AddMonths(1).AddDays(-1); + if (currentEndDate > PersianEndDate) + { + currentEndDate = PersianEndDate; + } + + DateTime startPeriod = ($"{PersianStartDate}").ToGeorgianDateTime(); + DateTime endPeriod = ($"{currentEndDate}").ToGeorgianDateTime(); + var record = (startPeriod, endPeriod); + ContractPreiodsList.Add(record); + //Console.WriteLine($"Month {i + 1} : {PersianStartDate.ToString("yyyy-MM-dd")} to {currentEndDate.ToString("yyyy-MM-dd")}"); + + PersianStartDate = PersianStartDate.AddMonths(1); + PersianStartDate = new PersianDateTime(PersianStartDate.Year, PersianStartDate.Month, 1); + + + } + + return ContractPreiodsList; + } +} \ No newline at end of file diff --git a/CompanyManagment.EFCore/Repository/InstitutionContractRepository.cs b/CompanyManagment.EFCore/Repository/InstitutionContractRepository.cs index e01948f4..d2b77817 100644 --- a/CompanyManagment.EFCore/Repository/InstitutionContractRepository.cs +++ b/CompanyManagment.EFCore/Repository/InstitutionContractRepository.cs @@ -2008,7 +2008,7 @@ public class InstitutionContractRepository : RepositoryBase, IJobRepository } + public async Task> JobSearchSelect(string searchtText) + { + + if (!string.IsNullOrWhiteSpace(searchtText)) + { + var query =_context.Jobs.Select(x => new JobViewModel + { + Id = x.id, + JobName = x.JobName, + JobCode = x.JobCode + }); + query = query.Where(x => x.JobName.Contains(searchtText)); + var jobViewModelList =await query.Take(100).Select(x => new JobViewModel + { + Id = x.Id, + JobName = x.JobName, + JobCode = x.JobCode + }).ToListAsync(); + return jobViewModelList; + } + else + { + return new List(); + } + } + // public async Task> GetJobListByText(string searchtText) public List GetJobListByText(string searchtText) { diff --git a/PersonalContractingParty.Config/PersonalBootstrapper.cs b/PersonalContractingParty.Config/PersonalBootstrapper.cs index 4765fafb..840f8faf 100644 --- a/PersonalContractingParty.Config/PersonalBootstrapper.cs +++ b/PersonalContractingParty.Config/PersonalBootstrapper.cs @@ -233,6 +233,128 @@ using File.EfCore.Repository; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.DependencyInjection; using P_TextManager.Domin.TextManagerAgg; +using CompanyManagment.App.Contracts.CrossJobItems; +using Company.Domain.CrossJobItemsAgg; +using Company.Domain.DateSalaryAgg; +using Company.Domain.DateSalaryItemAgg; +using Company.Domain.FinancialStatmentAgg; +using Company.Domain.FinancialTransactionAgg; +using Company.Domain.GroupPlanAgg; +using Company.Domain.GroupPlanJobItemAgg; +using Company.Domain.InstitutionContractAgg; +using Company.Domain.InstitutionContractContactInfoAgg; +using CompanyManagment.App.Contracts.Insurance; +using Company.Domain.InsuranceAgg; +using Company.Domain.InsuranceEmployeeInfoAgg; +using Company.Domain.InsuranceJobItemAgg; +using Company.Domain.InsuranceListAgg; +using Company.Domain.InsurancJobAgg; +using Company.Domain.InsurancWorkshopInfoAgg; +using Company.Domain.LeftWorkInsuranceAgg; +using Company.Domain.PaymentToEmployeeAgg; +using Company.Domain.PaymentToEmployeeItemAgg; +using Company.Domain.PercentageAgg; +using Company.Domain.PersonnelCodeAgg; +using Company.Domain.SmsResultAgg; +using Company.Domain.WorkingHoursTempAgg; +using Company.Domain.WorkingHoursTempItemAgg; +using Company.Domain.WorkshopPlanAgg; +using Company.Domain.WorkshopPlanEmployeeAgg; +using Company.Domain.ZoneAgg; +using CompanyManagment.App.Contracts.ClassifiedSalary; +using CompanyManagment.App.Contracts.DateSalary; +using CompanyManagment.App.Contracts.DateSalaryItem; +using CompanyManagment.App.Contracts.EmployeeInsurancListData; +using CompanyManagment.App.Contracts.FinancialStatment; +using CompanyManagment.App.Contracts.FinancilTransaction; +using CompanyManagment.App.Contracts.InstitutionContract; +using CompanyManagment.App.Contracts.InstitutionContractContactinfo; +using CompanyManagment.App.Contracts.InsuranceEmployeeInfo; +using CompanyManagment.App.Contracts.InsuranceJob; +using CompanyManagment.App.Contracts.InsuranceList; +using CompanyManagment.App.Contracts.InsuranceWorkshopInfo; +using CompanyManagment.App.Contracts.LeftWorkInsurance; +using CompanyManagment.App.Contracts.PaymentToEmployee; +using CompanyManagment.App.Contracts.Percentage; +using CompanyManagment.App.Contracts.PersonnleCode; +using CompanyManagment.App.Contracts.SmsResult; +using CompanyManagment.App.Contracts.WorkingHoursTemp; +using CompanyManagment.App.Contracts.WorkingHoursTempItem; +using CompanyManagment.App.Contracts.WorkshopPlan; +using CompanyManagment.App.Contracts.Zone; +using CompanyManagment.App.Contracts.EmployeeComputeOptions; +using Company.Domain.EmployeeComputeOptionsAgg; +using Company.Domain.InsuranceYearlySalaryAgg; +using Company.Domain.ReportAgg; +using Company.Domain.RollCallAgg; +using Company.Domain.RollCallEmployeeAgg; +using Company.Domain.RollCallPlanAgg; +using Company.Domain.RollCallServiceAgg; +using CompanyManagment.App.Contracts.InsuranceYearlySalary; +using CompanyManagment.App.Contracts.Report; +using CompanyManagment.App.Contracts.RollCall; +using CompanyManagment.App.Contracts.RollCallEmployee; +using CompanyManagment.App.Contracts.RollCallService; +using CompanyManagment.App.Contracts.RollCallPlan; +using Company.Domain.ReportClientAgg; +using Company.Domain.TaxJobCategoryAgg; +using Company.Domain.WorkshopAccountAgg; +using CompanyManagment.App.Contracts.ReportClient; +using CompanyManagment.App.Contracts.TaxJobCategory; +using Company.Domain.RollCallEmployeeStatusAgg; +using CompanyManagment.App.Contracts.RollCallEmployeeStatus; +using Company.Domain.CustomizeWorkshopEmployeeSettingsAgg; +using Company.Domain.CustomizeWorkshopGroupSettingsAgg; +using Company.Domain.CustomizeWorkshopSettingsAgg; +using Company.Domain.FineAgg; +using Company.Domain.LoanAgg; +using Company.Domain.RewardAgg; +using Company.Domain.SalaryAidAgg; +using CompanyManagment.App.Contracts.CustomizeWorkshopSettings; +using CompanyManagment.App.Contracts.Fine; +using CompanyManagment.App.Contracts.Loan; +using CompanyManagment.App.Contracts.Reward; +using CompanyManagment.App.Contracts.SalaryAid; +using Company.Domain.AndroidApkVersionAgg; +using Company.Domain.BankAgg; +using CompanyManagment.App.Contracts.AndroidApkVersion; +using Company.Domain.FineSubjectAgg; +using CompanyManagment.App.Contracts.FineSubject; +using Company.Domain.CustomizeCheckoutAgg; +using CompanyManagment.App.Contracts.CustomizeCheckout; +using Company.Domain.WorkshopSubAccountAgg; +using Company.Domain.CustomizeCheckoutTempAgg; +using Company.Domain.EmployeeBankInformationAgg; +using Company.Domain.RollCallAgg.DomainService; +using CompanyManagment.App.Contracts.Bank; +using CompanyManagment.App.Contracts.EmployeeBankInformation; +using Company.Domain.EmployeeDocumentItemAgg; +using Company.Domain.EmployeeDocumentsAdminSelectionAgg; +using Company.Domain.EmployeeDocumentsAgg; +using CompanyManagement.Infrastructure.Excel.SalaryAid; +using CompanyManagment.App.Contracts.EmployeeDocuments; +using CompanyManagment.App.Contracts.EmployeeDocumentsAdminSelection; +using Company.Domain.EmployeeClientTempAgg; +using Company.Domain.InstitutionPlanAgg; +using Company.Domain.LeftWorkTempAgg; +using Company.Domain.TemporaryClientRegistrationAgg; +using CompanyManagment.App.Contracts.EmployeeClientTemp; +using CompanyManagment.App.Contracts.InstitutionPlan; +using CompanyManagment.App.Contracts.LeftWorkTemp; +using CompanyManagment.App.Contracts.TemporaryClientRegistration; +using Company.Domain.ContactUsAgg; +using CompanyManagment.App.Contracts.ContactUs; +using Company.Domain.EmployeeAuthorizeTempAgg; +using Company.Domain.AdminMonthlyOverviewAgg; +using Company.Domain.ClassificationSchemeAgg; +using Company.Domain.ContractingPartyBankAccountsAgg; +using Company.Domain.PaymentInstrumentAgg; +using Company.Domain.PaymentTransactionAgg; +using CompanyManagment.App.Contracts.AdminMonthlyOverview; +using CompanyManagment.App.Contracts.ClassificationScheme; +using CompanyManagment.App.Contracts.ContractingPartyBankAccounts; +using CompanyManagment.App.Contracts.PaymentInstrument; +using CompanyManagment.App.Contracts.PaymentTransaction; using CompanyManagment.App.Contracts.PaymentCallback; using CompanyManagment.App.Contracts.SepehrPaymentGateway; using Company.Domain.CameraBugReportAgg; @@ -571,6 +693,21 @@ public class PersonalBootstrapper #endregion //=========End Of Main==================================== + + #region ClassificationScheme + + services.AddTransient(); + services.AddTransient(); + + + services.AddTransient(); + services.AddTransient(); + services.AddTransient(); + services.AddTransient(); + + #endregion + //=========End Of Main==================================== + //---File Project------------------------------------ services.AddTransient(); diff --git a/ServiceHost/Areas/Admin/Controllers/ClassificationSchemeController.cs b/ServiceHost/Areas/Admin/Controllers/ClassificationSchemeController.cs new file mode 100644 index 00000000..a5a4e598 --- /dev/null +++ b/ServiceHost/Areas/Admin/Controllers/ClassificationSchemeController.cs @@ -0,0 +1,96 @@ +using _0_Framework.Application; +using CompanyManagment.App.Contracts.ClassificationScheme; +using CompanyManagment.App.Contracts.Employee; +using CompanyManagment.App.Contracts.PaymentInstrument; +using CompanyManagment.Application; +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Mvc; +using ServiceHost.BaseControllers; + +namespace ServiceHost.Areas.Admin.Controllers; + +public class ClassificationSchemeController : AdminBaseController +{ + private readonly IClassificationSchemeApplication _classificationSchemeApplication; + private readonly IAuthHelper _authHelper; + + + public ClassificationSchemeController(IClassificationSchemeApplication classificationSchemeApplication, IAuthHelper authHelper) + { + _classificationSchemeApplication = classificationSchemeApplication; + _authHelper = authHelper; + } + + /// + /// لیست طرح + /// + /// + /// + [HttpGet] + public async Task> GetList(long workshopId) + { + var result =await _classificationSchemeApplication.GetClassificationSchemeList(workshopId); + return result; + + } + + /// + /// ایجاد طرح + /// + /// + /// + [HttpPost("Scheme")] + public async Task> CreateScheme([FromBody] CreateClassificationSchemeDto command) + { + var result = await _classificationSchemeApplication.CreateClassificationScheme(command); + return result; + } + + /// + /// دریافت اطلاعات طرح برای ویرایش + /// + /// + /// + [HttpGet("GetSchemeToEdit")] + public async Task GetSchemeToEdit(long id) + { + var result = await _classificationSchemeApplication.GetClassificationScheme(id); + return result; + } + + /// + /// ویرایش طرح + /// + /// + /// + [HttpPut("Scheme")] + public async Task> EditScheme([FromBody] EditClassificationSchemeDto command) + { + var result =await _classificationSchemeApplication.EditClassificationScheme(command); + return result; + } + + /// + /// چگ کردن شرایط حذف طرح + /// + /// + /// + [HttpGet("CheckToDeleteScheme")] + public async Task CheckToDeleteScheme(long id) + { + var result =await _classificationSchemeApplication.CheckToDeleteScheme(id); + return result; + } + + + /// + /// حذف طرح + /// + /// + [HttpDelete] + public async Task> DeleteScheme(long id) + { + var result = await _classificationSchemeApplication.DeleteScheme(id); + return result; + } +} \ No newline at end of file diff --git a/ServiceHost/Areas/Admin/Controllers/RegistrationWorkflowController.cs b/ServiceHost/Areas/Admin/Controllers/RegistrationWorkflowController.cs index 77aa7314..c6564d5f 100644 --- a/ServiceHost/Areas/Admin/Controllers/RegistrationWorkflowController.cs +++ b/ServiceHost/Areas/Admin/Controllers/RegistrationWorkflowController.cs @@ -8,102 +8,101 @@ using CompanyManagment.App.Contracts.Workshop; using Microsoft.AspNetCore.Mvc; using ServiceHost.BaseControllers; -namespace ServiceHost.Areas.Admin.Controllers +namespace ServiceHost.Areas.Admin.Controllers; + +public class RegistrationWorkflowController : AdminBaseController { - public class RegistrationWorkflowController : AdminBaseController + private readonly ITemporaryClientRegistrationApplication _temporaryClientRegistrationApplication; + private readonly IInstitutionContractApplication _institutionContractApplication; + private readonly IEmployerApplication _employerApplication; + private readonly IWorkshopApplication _workshopApplication; + + + public RegistrationWorkflowController(ITemporaryClientRegistrationApplication temporaryClientRegistrationApplication, + IInstitutionContractApplication institutionContractApplication, IEmployerApplication employerApplication, IWorkshopApplication workshopApplication) { - private readonly ITemporaryClientRegistrationApplication _temporaryClientRegistrationApplication; - private readonly IInstitutionContractApplication _institutionContractApplication; - private readonly IEmployerApplication _employerApplication; - private readonly IWorkshopApplication _workshopApplication; - - - public RegistrationWorkflowController(ITemporaryClientRegistrationApplication temporaryClientRegistrationApplication, - IInstitutionContractApplication institutionContractApplication, IEmployerApplication employerApplication, IWorkshopApplication workshopApplication) - { - _temporaryClientRegistrationApplication = temporaryClientRegistrationApplication; - _institutionContractApplication = institutionContractApplication; - _employerApplication = employerApplication; - _workshopApplication = workshopApplication; - } - - /// - /// لیست کارپوشه ثبت نام - /// - /// - [HttpGet] - public async Task>> GetList() - { - var result = await _institutionContractApplication.RegistrationWorkflowMainList(); - return result; - } - - [HttpGet("items/{institutionContractId}")] - public async Task>> RegistrationWorkflowItems( - long institutionContractId) - { - var result = await _institutionContractApplication.RegistrationWorkflowItems(institutionContractId); - return result; - } - [HttpPost("create-employer")] - public async Task> CreateEmployerForWorkshopDetails([FromBody]CreateEmployerWorkflowRegistration command) - { - var result = await _employerApplication.CreateWorkflowRegistration(command); - return result; - } - - [HttpGet("create-workshop")] - public async Task> GetWorkshopDetails(long workshopDetailsId) - { - var res =await _institutionContractApplication.GetWorkshopInitialDetails(workshopDetailsId); - return res; - } - - [HttpPost("create-workshop")] - public async Task> CreateWorkshop( - [FromBody]CreateWorkshopWorkflowRegistration command) - { - var result = await _workshopApplication.CreateWorkshopWorkflowRegistration(command); - return result; - } - [HttpPost("auth-employer")] - public async Task>> AuthenticateEmployer( [FromBody]AuthenticateEmployerWorkflowRequest command) - { - var result = await _employerApplication.AuthenticateEmployer(command.NationalCode, command.DateOfBirth, command.Mobile); - return result; - } - [HttpPut("edit-employer")] - public async Task> EditEmployerForWorkshopDetails([FromBody]EditEmployerWorkflowRegistration command) - { - var result = await _employerApplication.EditWorkflowRegistration(command); - return result; - } -[HttpGet("edit-employer/{employerId}/{institutionWorkshopDetailsId}")] - - public async Task> GetEmployerForEdit(long employerId, long institutionWorkshopDetailsId) - { - var result = await _employerApplication.GetWorkflowRegistrationForEdit(employerId, institutionWorkshopDetailsId); - return result; - } - - /// - /// حذف کارفرما از گردش کار ثبت نام - /// - /// شناسه کارفرما - /// شناسه جزئیات کارگاه موسسه - /// - [HttpDelete("delete-employer/{employerId}/{institutionWorkshopDetailsId}")] - public async Task> DeleteEmployerWorkflowRegistration(long employerId, long institutionWorkshopDetailsId) - { - var result = await _employerApplication.DeleteWorkflowRegistration(employerId, institutionWorkshopDetailsId); - return result; - } + _temporaryClientRegistrationApplication = temporaryClientRegistrationApplication; + _institutionContractApplication = institutionContractApplication; + _employerApplication = employerApplication; + _workshopApplication = workshopApplication; } - public class AuthenticateEmployerWorkflowRequest + /// + /// لیست کارپوشه ثبت نام + /// + /// + [HttpGet] + public async Task>> GetList() { - public string NationalCode { get; set; } - public string DateOfBirth { get; set; } - public string Mobile { get; set; } + var result = await _institutionContractApplication.RegistrationWorkflowMainList(); + return result; + } + + [HttpGet("items/{institutionContractId}")] + public async Task>> RegistrationWorkflowItems( + long institutionContractId) + { + var result = await _institutionContractApplication.RegistrationWorkflowItems(institutionContractId); + return result; + } + [HttpPost("create-employer")] + public async Task> CreateEmployerForWorkshopDetails([FromBody]CreateEmployerWorkflowRegistration command) + { + var result = await _employerApplication.CreateWorkflowRegistration(command); + return result; + } + + [HttpGet("create-workshop")] + public async Task> GetWorkshopDetails(long workshopDetailsId) + { + var res =await _institutionContractApplication.GetWorkshopInitialDetails(workshopDetailsId); + return res; + } + + [HttpPost("create-workshop")] + public async Task> CreateWorkshop( + [FromBody]CreateWorkshopWorkflowRegistration command) + { + var result = await _workshopApplication.CreateWorkshopWorkflowRegistration(command); + return result; + } + [HttpPost("auth-employer")] + public async Task>> AuthenticateEmployer( [FromBody]AuthenticateEmployerWorkflowRequest command) + { + var result = await _employerApplication.AuthenticateEmployer(command.NationalCode, command.DateOfBirth, command.Mobile); + return result; + } + [HttpPut("edit-employer")] + public async Task> EditEmployerForWorkshopDetails([FromBody]EditEmployerWorkflowRegistration command) + { + var result = await _employerApplication.EditWorkflowRegistration(command); + return result; + } + [HttpGet("edit-employer/{employerId}/{institutionWorkshopDetailsId}")] + + public async Task> GetEmployerForEdit(long employerId, long institutionWorkshopDetailsId) + { + var result = await _employerApplication.GetWorkflowRegistrationForEdit(employerId, institutionWorkshopDetailsId); + return result; + } + + /// + /// حذف کارفرما از گردش کار ثبت نام + /// + /// شناسه کارفرما + /// شناسه جزئیات کارگاه موسسه + /// + [HttpDelete("delete-employer/{employerId}/{institutionWorkshopDetailsId}")] + public async Task> DeleteEmployerWorkflowRegistration(long employerId, long institutionWorkshopDetailsId) + { + var result = await _employerApplication.DeleteWorkflowRegistration(employerId, institutionWorkshopDetailsId); + return result; } } + +public class AuthenticateEmployerWorkflowRequest +{ + public string NationalCode { get; set; } + public string DateOfBirth { get; set; } + public string Mobile { get; set; } +} \ No newline at end of file diff --git a/ServiceHost/Areas/Admin/Controllers/TicketController.cs b/ServiceHost/Areas/Admin/Controllers/TicketController.cs index 3dbf3eef..0f9a6c02 100644 --- a/ServiceHost/Areas/Admin/Controllers/TicketController.cs +++ b/ServiceHost/Areas/Admin/Controllers/TicketController.cs @@ -7,545 +7,544 @@ using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using ServiceHost.BaseControllers; -namespace ServiceHost.Areas.Admin.Controllers +namespace ServiceHost.Areas.Admin.Controllers; + +/// +/// API controller for admin ticket management functionality +/// +public class TicketController : AdminBaseController { + private readonly ITicketApplication _ticketApplication; + private readonly IWorkshopApplication _workshopApplication; + private readonly IAuthHelper _authHelper; + private readonly ITicketAccessAccountApplication _ticketAccessAccountApplication; + /// - /// API controller for admin ticket management functionality + /// Initialize a new instance of the TicketController /// - public class TicketController : AdminBaseController + public TicketController( + ITicketApplication ticketApplication, + IWorkshopApplication workshopApplication, + IAuthHelper authHelper, + ITicketAccessAccountApplication ticketAccessAccountApplication) { - private readonly ITicketApplication _ticketApplication; - private readonly IWorkshopApplication _workshopApplication; - private readonly IAuthHelper _authHelper; - private readonly ITicketAccessAccountApplication _ticketAccessAccountApplication; + _ticketApplication = ticketApplication; + _workshopApplication = workshopApplication; + _authHelper = authHelper; + _ticketAccessAccountApplication = ticketAccessAccountApplication; + } - /// - /// Initialize a new instance of the TicketController - /// - public TicketController( - ITicketApplication ticketApplication, - IWorkshopApplication workshopApplication, - IAuthHelper authHelper, - ITicketAccessAccountApplication ticketAccessAccountApplication) + private bool HasTicketAccess() + { + return _ticketAccessAccountApplication.HasTicketAccess(_authHelper.CurrentAccountId()); + } + + /// + /// Get ticket overview including types count and trash count + /// + /// Search criteria for tickets + /// Ticket overview data including counts by type + [HttpGet] + public IActionResult GetTickets([FromQuery] TicketSearchModel searchModel) + { + if (!HasTicketAccess()) + return Forbid(); + + var typesCount = _ticketApplication.GetTypesCountOfTicketForAdmin(); + var trashCount = _ticketApplication.GetDeletedTicket().Count(); + + return Ok(new { - _ticketApplication = ticketApplication; - _workshopApplication = workshopApplication; - _authHelper = authHelper; - _ticketAccessAccountApplication = ticketAccessAccountApplication; - } - - private bool HasTicketAccess() - { - return _ticketAccessAccountApplication.HasTicketAccess(_authHelper.CurrentAccountId()); - } - - /// - /// Get ticket overview including types count and trash count - /// - /// Search criteria for tickets - /// Ticket overview data including counts by type - [HttpGet] - public IActionResult GetTickets([FromQuery] TicketSearchModel searchModel) - { - if (!HasTicketAccess()) - return Forbid(); - - var typesCount = _ticketApplication.GetTypesCountOfTicketForAdmin(); - var trashCount = _ticketApplication.GetDeletedTicket().Count(); - - return Ok(new + success = true, + data = new { - success = true, - data = new - { - typesCount, - trashCount - } - }); - } - - /// - /// Get paginated ticket data with filtering options - /// - /// Page index for pagination (default: 1) - /// Filter by ticket status - /// Filter by ticket number - /// General search term - /// Paginated list of tickets matching the criteria - [HttpGet("data")] - public IActionResult GetTicketData([FromQuery] int pageIndex = 1, [FromQuery] string status = "", - [FromQuery] string ticketNumber = "", [FromQuery] string generalSearch = "") - { - if (!HasTicketAccess()) - return Forbid(); - - var searchModel = new TicketSearchModel() - { - PageIndex = pageIndex, - Status = status, - TicketNumber = generalSearch, - GeneralSearch = generalSearch, - }; - - List tickets; - tickets = status != "زباله" ? _ticketApplication.GetAll(searchModel) : _ticketApplication.GetDeletedTicket(); - - return Ok(new - { - success = true, - data = tickets, - pageIndex = tickets.Count - }); - } - - /// - /// Get detailed information about a specific ticket - /// - /// The ID of the ticket to retrieve - /// Detailed ticket information including workshop name - [HttpGet("{ticketId}/detail")] - public IActionResult GetTicketDetail(long ticketId) - { - if (!HasTicketAccess()) - return Forbid(); - - var ticket = _ticketApplication.GetDetails(ticketId); - if (ticket == null) - return NotFound(); - - ticket.WorkshopName = _workshopApplication.GetDetails(ticket.WorkshopId).WorkshopFullName; - - return Ok(new - { - success = true, - data = ticket - }); - } - - /// - /// Get all messages for a specific ticket - /// - /// The ID of the ticket - /// Ticket details including all messages - [HttpGet("{ticketId}/messages")] - public IActionResult GetTicketMessages(long ticketId) - { - if (!HasTicketAccess()) - return Forbid(); - - var ticketDetail = _ticketApplication.GetDetails(ticketId); - if (ticketDetail == null) - return NotFound(); - - return Ok(new - { - success = true, - data = ticketDetail - }); - } - - /// - /// Submit an admin response to a ticket - /// - /// Response details including ticket ID and response text - /// Operation result indicating success or failure - [HttpPost("response")] - public IActionResult SaveAdminResponse([FromBody] ResponseTicket command) - { - if (!HasTicketAccess()) - return Forbid(); - - command.AdminId = _authHelper.CurrentAccountId(); - command.Response = command.Response?.Replace("\n", "
"); - - var result = _ticketApplication.AdminResponseTicket(command); - - return Ok(new - { - success = result.IsSuccedded, - message = result.Message - }); - } - - /// - /// Upload a media file for ticket - /// - /// The file to upload - /// Upload result with file ID if successful - [HttpPost("upload")] - public IActionResult UploadFile(IFormFile media) - { - if (!HasTicketAccess()) - return Forbid(); - - var accountId = _authHelper.CurrentAccountId(); - var operation = _ticketApplication.UploadMedia(media, accountId); - - return Ok(new - { - success = operation.IsSuccedded, - message = operation.Message, - id = operation.SendId, - }); - } - - /// - /// Delete a media file from the system - /// - /// The ID of the media file to delete - /// Operation result indicating success or failure - [HttpDelete("media/{mediaId}")] - public IActionResult DeleteFile(long mediaId) - { - if (!HasTicketAccess()) - return Forbid(); - - var operation = _ticketApplication.RemoveMedia(mediaId); - - return Ok(new - { - success = operation.IsSuccedded, - message = operation.Message, - }); - } - - /// - /// Remove all temporary uploaded files for the current user - /// - /// Operation result indicating success - [HttpDelete("temp-files")] - public IActionResult RemoveAllTempFiles() - { - if (!HasTicketAccess()) - return Forbid(); - - var accId = _authHelper.CurrentAccountId(); - _ticketApplication.RemoveTempUploadedFiles(accId); - - return Ok(new - { - success = true, - message = "فایل‌های موقت با موفقیت حذف شدند" - }); - } - - /// - /// Assign a task from a ticket to specific users - /// - /// Task assignment details including description, title, and assignees - /// Operation result indicating success or failure - [HttpPost("assign-task")] - public IActionResult AssignTask([FromBody] CreateTaskRequest request) - { - if (!HasTicketAccess()) - return Forbid(); - - var command = new CreateTask - { - SenderId = _authHelper.CurrentAccountId(), - Description = request.Description?.Replace("\n", "
"), - Title = request.Title, - EndTaskDate = request.EndTaskDate, - EndTaskTime = request.EndTaskTime, - ReceiverId = request.ReceiverId ?? new List(), - PositionId = request.PositionId ?? new List(), - UploadedMedia = request.UploadedMedia ?? new List() - }; - - var result = _ticketApplication.AssignTicket(command, request.TicketId); - - return Ok(new - { - success = result.IsSuccedded, - message = result.Message, - }); - } - - /// - /// Download or view a file from the system - /// - /// The file path on the server - /// The file ID for naming purposes - /// File content for download or viewing - [HttpGet("file")] - public IActionResult GetFile([FromQuery] string filePath, [FromQuery] long id) - { - if (!HasTicketAccess()) - return Forbid(); - - if (string.IsNullOrEmpty(filePath) || !System.IO.File.Exists(filePath)) - return NotFound(); - - var contentType = Tools.GetContentTypeImage(Path.GetExtension(filePath)); - if (string.IsNullOrWhiteSpace(contentType)) - { - byte[] fileContent = System.IO.File.ReadAllBytes(filePath); - var extension = Tools.GetContentType(Path.GetExtension(filePath)); - return File(fileContent, extension, $"Task_{id}{Path.GetExtension(filePath)}"); + typesCount, + trashCount } - else - { - return PhysicalFile(filePath, contentType); - } - } + }); + } - /// - /// Download or play a voice file - /// - /// The voice file path on the server - /// Voice file content as audio/ogg - [HttpGet("voice")] - public IActionResult GetVoice([FromQuery] string filePath) + /// + /// Get paginated ticket data with filtering options + /// + /// Page index for pagination (default: 1) + /// Filter by ticket status + /// Filter by ticket number + /// General search term + /// Paginated list of tickets matching the criteria + [HttpGet("data")] + public IActionResult GetTicketData([FromQuery] int pageIndex = 1, [FromQuery] string status = "", + [FromQuery] string ticketNumber = "", [FromQuery] string generalSearch = "") + { + if (!HasTicketAccess()) + return Forbid(); + + var searchModel = new TicketSearchModel() { - if (!HasTicketAccess()) - return Forbid(); + PageIndex = pageIndex, + Status = status, + TicketNumber = generalSearch, + GeneralSearch = generalSearch, + }; - if (string.IsNullOrEmpty(filePath) || !System.IO.File.Exists(filePath)) - return NotFound(); + List tickets; + tickets = status != "زباله" ? _ticketApplication.GetAll(searchModel) : _ticketApplication.GetDeletedTicket(); - byte[] voiceContent = System.IO.File.ReadAllBytes(filePath); - return File(voiceContent, "audio/ogg", "Task_voice.ogg"); - } - - /// - /// View a picture file - /// - /// The image file path on the server - /// Image file content - [HttpGet("picture")] - public IActionResult GetPicture([FromQuery] string filePath) + return Ok(new { - if (!HasTicketAccess()) - return Forbid(); + success = true, + data = tickets, + pageIndex = tickets.Count + }); + } - if (string.IsNullOrEmpty(filePath) || !System.IO.File.Exists(filePath)) - return NotFound(); + /// + /// Get detailed information about a specific ticket + /// + /// The ID of the ticket to retrieve + /// Detailed ticket information including workshop name + [HttpGet("{ticketId}/detail")] + public IActionResult GetTicketDetail(long ticketId) + { + if (!HasTicketAccess()) + return Forbid(); - var contentType = Tools.GetContentTypeImage(Path.GetExtension(filePath)); + var ticket = _ticketApplication.GetDetails(ticketId); + if (ticket == null) + return NotFound(); + + ticket.WorkshopName = _workshopApplication.GetDetails(ticket.WorkshopId).WorkshopFullName; + + return Ok(new + { + success = true, + data = ticket + }); + } + + /// + /// Get all messages for a specific ticket + /// + /// The ID of the ticket + /// Ticket details including all messages + [HttpGet("{ticketId}/messages")] + public IActionResult GetTicketMessages(long ticketId) + { + if (!HasTicketAccess()) + return Forbid(); + + var ticketDetail = _ticketApplication.GetDetails(ticketId); + if (ticketDetail == null) + return NotFound(); + + return Ok(new + { + success = true, + data = ticketDetail + }); + } + + /// + /// Submit an admin response to a ticket + /// + /// Response details including ticket ID and response text + /// Operation result indicating success or failure + [HttpPost("response")] + public IActionResult SaveAdminResponse([FromBody] ResponseTicket command) + { + if (!HasTicketAccess()) + return Forbid(); + + command.AdminId = _authHelper.CurrentAccountId(); + command.Response = command.Response?.Replace("\n", "
"); + + var result = _ticketApplication.AdminResponseTicket(command); + + return Ok(new + { + success = result.IsSuccedded, + message = result.Message + }); + } + + /// + /// Upload a media file for ticket + /// + /// The file to upload + /// Upload result with file ID if successful + [HttpPost("upload")] + public IActionResult UploadFile(IFormFile media) + { + if (!HasTicketAccess()) + return Forbid(); + + var accountId = _authHelper.CurrentAccountId(); + var operation = _ticketApplication.UploadMedia(media, accountId); + + return Ok(new + { + success = operation.IsSuccedded, + message = operation.Message, + id = operation.SendId, + }); + } + + /// + /// Delete a media file from the system + /// + /// The ID of the media file to delete + /// Operation result indicating success or failure + [HttpDelete("media/{mediaId}")] + public IActionResult DeleteFile(long mediaId) + { + if (!HasTicketAccess()) + return Forbid(); + + var operation = _ticketApplication.RemoveMedia(mediaId); + + return Ok(new + { + success = operation.IsSuccedded, + message = operation.Message, + }); + } + + /// + /// Remove all temporary uploaded files for the current user + /// + /// Operation result indicating success + [HttpDelete("temp-files")] + public IActionResult RemoveAllTempFiles() + { + if (!HasTicketAccess()) + return Forbid(); + + var accId = _authHelper.CurrentAccountId(); + _ticketApplication.RemoveTempUploadedFiles(accId); + + return Ok(new + { + success = true, + message = "فایل‌های موقت با موفقیت حذف شدند" + }); + } + + /// + /// Assign a task from a ticket to specific users + /// + /// Task assignment details including description, title, and assignees + /// Operation result indicating success or failure + [HttpPost("assign-task")] + public IActionResult AssignTask([FromBody] CreateTaskRequest request) + { + if (!HasTicketAccess()) + return Forbid(); + + var command = new CreateTask + { + SenderId = _authHelper.CurrentAccountId(), + Description = request.Description?.Replace("\n", "
"), + Title = request.Title, + EndTaskDate = request.EndTaskDate, + EndTaskTime = request.EndTaskTime, + ReceiverId = request.ReceiverId ?? new List(), + PositionId = request.PositionId ?? new List(), + UploadedMedia = request.UploadedMedia ?? new List() + }; + + var result = _ticketApplication.AssignTicket(command, request.TicketId); + + return Ok(new + { + success = result.IsSuccedded, + message = result.Message, + }); + } + + /// + /// Download or view a file from the system + /// + /// The file path on the server + /// The file ID for naming purposes + /// File content for download or viewing + [HttpGet("file")] + public IActionResult GetFile([FromQuery] string filePath, [FromQuery] long id) + { + if (!HasTicketAccess()) + return Forbid(); + + if (string.IsNullOrEmpty(filePath) || !System.IO.File.Exists(filePath)) + return NotFound(); + + var contentType = Tools.GetContentTypeImage(Path.GetExtension(filePath)); + if (string.IsNullOrWhiteSpace(contentType)) + { + byte[] fileContent = System.IO.File.ReadAllBytes(filePath); + var extension = Tools.GetContentType(Path.GetExtension(filePath)); + return File(fileContent, extension, $"Task_{id}{Path.GetExtension(filePath)}"); + } + else + { return PhysicalFile(filePath, contentType); } - - /// - /// Accept a pending admin response - /// - /// The ID of the admin response to accept - /// Operation result indicating success or failure - [HttpPost("response/{adminResId}/accept")] - public IActionResult AcceptPendingAdminResponse(long adminResId) - { - if (!HasTicketAccess()) - return Forbid(); - - var result = _ticketApplication.AcceptPendingAdminResponse(adminResId); - - return Ok(new - { - success = result.IsSuccedded, - message = result.Message - }); - } - - /// - /// Reject a pending admin response - /// - /// The ID of the admin response to reject - /// Operation result indicating success or failure - [HttpPost("response/{adminResId}/reject")] - public IActionResult RejectPendingAdminResponse(long adminResId) - { - if (!HasTicketAccess()) - return Forbid(); - - var result = _ticketApplication.RejectPendingAdminResponse(adminResId); - - return Ok(new - { - success = result.IsSuccedded, - message = result.Message - }); - } - - /// - /// Edit and accept a pending admin response - /// - /// The ID of the admin response to edit - /// The new response text - /// Operation result indicating success or failure - [HttpPut("response/{adminResId}")] - public IActionResult EditPendingAdminResponse(long adminResId, [FromBody] EditResponseRequest request) - { - if (!HasTicketAccess()) - return Forbid(); - - var result = _ticketApplication.EditAndAcceptPendingAdminResponse(adminResId, request.NewResponse.Replace("\n", "
")); - - return Ok(new - { - success = result.IsSuccedded, - message = result.Message - }); - } - - /// - /// Close a ticket (mark as closed) - /// - /// The ID of the ticket to close - /// Operation result indicating success or failure - [HttpPost("{ticketId}/close")] - public IActionResult CloseTicket(long ticketId) - { - if (!HasTicketAccess()) - return Forbid(); - - var result = _ticketApplication.CloseTicket(ticketId); - - return Ok(new - { - success = result.IsSuccedded, - message = result.Message - }); - } - - /// - /// Delete a ticket (move to trash) - /// - /// The ID of the ticket to delete - /// Operation result indicating success or failure - [HttpDelete("{ticketId}")] - public IActionResult DeleteTicket(long ticketId) - { - if (!HasTicketAccess()) - return Forbid(); - - var result = _ticketApplication.DeleteTicket(ticketId); - - return Ok(new - { - success = result.IsSuccedded, - message = result.Message - }); - } - - /// - /// Get current ticket counts by status (open, closed, answered, pending, etc.) - /// - /// Ticket counts grouped by status - [HttpGet("counts")] - public IActionResult GetTicketCounts() - { - if (!HasTicketAccess()) - return Forbid(); - - var typesCount = _ticketApplication.GetTypesCountOfTicketForAdmin(); - var deletedCount = _ticketApplication.GetDeletedTicket().Count(); - - return Ok(new - { - success = true, - data = new - { - open = typesCount.Open, - closed = typesCount.Closed, - answered = typesCount.Answered, - pending = typesCount.Pending, - all = typesCount.All, - deleted = deletedCount - } - }); - } - - /// - /// Restore a deleted ticket from trash - /// - /// The ID of the ticket to restore - /// Operation result indicating success or failure - [HttpPost("{ticketId}/restore")] - public IActionResult RestoreDeletedTicket(long ticketId) - { - if (!HasTicketAccess()) - return Forbid(); - - var result = _ticketApplication.RestoreDeletedTicket(ticketId); - - return Ok(new - { - success = result.IsSuccedded, - message = result.Message - }); - } - - /// - /// Check if the current user has access to ticket functionality - /// - /// Access status for the current user - [HttpGet("access")] - public IActionResult CheckTicketAccess() - { - var accountId = _authHelper.CurrentAccountId(); - var hasAccess = _ticketAccessAccountApplication.HasTicketAccess(accountId); - - return Ok(new - { - success = true, - hasAccess - }); - } } /// - /// Request model for creating and assigning tasks from tickets + /// Download or play a voice file /// - public class CreateTaskRequest + /// The voice file path on the server + /// Voice file content as audio/ogg + [HttpGet("voice")] + public IActionResult GetVoice([FromQuery] string filePath) { - /// - /// Task description - /// - public string Description { get; set; } - - /// - /// Task title - /// - public string Title { get; set; } - - /// - /// Task end date - /// - public string EndTaskDate { get; set; } - - /// - /// Task end time - /// - public string EndTaskTime { get; set; } - - /// - /// List of receiver IDs for task assignment - /// - public List ReceiverId { get; set; } - - /// - /// List of position IDs for task assignment - /// - public List PositionId { get; set; } - - /// - /// List of uploaded media file IDs - /// - public List UploadedMedia { get; set; } - - /// - /// The ticket ID to assign task from - /// - public long TicketId { get; set; } + if (!HasTicketAccess()) + return Forbid(); + + if (string.IsNullOrEmpty(filePath) || !System.IO.File.Exists(filePath)) + return NotFound(); + + byte[] voiceContent = System.IO.File.ReadAllBytes(filePath); + return File(voiceContent, "audio/ogg", "Task_voice.ogg"); } /// - /// Request model for editing admin responses + /// View a picture file /// - public class EditResponseRequest + /// The image file path on the server + /// Image file content + [HttpGet("picture")] + public IActionResult GetPicture([FromQuery] string filePath) { - /// - /// The new response text - /// - public string NewResponse { get; set; } + if (!HasTicketAccess()) + return Forbid(); + + if (string.IsNullOrEmpty(filePath) || !System.IO.File.Exists(filePath)) + return NotFound(); + + var contentType = Tools.GetContentTypeImage(Path.GetExtension(filePath)); + return PhysicalFile(filePath, contentType); + } + + /// + /// Accept a pending admin response + /// + /// The ID of the admin response to accept + /// Operation result indicating success or failure + [HttpPost("response/{adminResId}/accept")] + public IActionResult AcceptPendingAdminResponse(long adminResId) + { + if (!HasTicketAccess()) + return Forbid(); + + var result = _ticketApplication.AcceptPendingAdminResponse(adminResId); + + return Ok(new + { + success = result.IsSuccedded, + message = result.Message + }); + } + + /// + /// Reject a pending admin response + /// + /// The ID of the admin response to reject + /// Operation result indicating success or failure + [HttpPost("response/{adminResId}/reject")] + public IActionResult RejectPendingAdminResponse(long adminResId) + { + if (!HasTicketAccess()) + return Forbid(); + + var result = _ticketApplication.RejectPendingAdminResponse(adminResId); + + return Ok(new + { + success = result.IsSuccedded, + message = result.Message + }); + } + + /// + /// Edit and accept a pending admin response + /// + /// The ID of the admin response to edit + /// The new response text + /// Operation result indicating success or failure + [HttpPut("response/{adminResId}")] + public IActionResult EditPendingAdminResponse(long adminResId, [FromBody] EditResponseRequest request) + { + if (!HasTicketAccess()) + return Forbid(); + + var result = _ticketApplication.EditAndAcceptPendingAdminResponse(adminResId, request.NewResponse.Replace("\n", "
")); + + return Ok(new + { + success = result.IsSuccedded, + message = result.Message + }); + } + + /// + /// Close a ticket (mark as closed) + /// + /// The ID of the ticket to close + /// Operation result indicating success or failure + [HttpPost("{ticketId}/close")] + public IActionResult CloseTicket(long ticketId) + { + if (!HasTicketAccess()) + return Forbid(); + + var result = _ticketApplication.CloseTicket(ticketId); + + return Ok(new + { + success = result.IsSuccedded, + message = result.Message + }); + } + + /// + /// Delete a ticket (move to trash) + /// + /// The ID of the ticket to delete + /// Operation result indicating success or failure + [HttpDelete("{ticketId}")] + public IActionResult DeleteTicket(long ticketId) + { + if (!HasTicketAccess()) + return Forbid(); + + var result = _ticketApplication.DeleteTicket(ticketId); + + return Ok(new + { + success = result.IsSuccedded, + message = result.Message + }); + } + + /// + /// Get current ticket counts by status (open, closed, answered, pending, etc.) + /// + /// Ticket counts grouped by status + [HttpGet("counts")] + public IActionResult GetTicketCounts() + { + if (!HasTicketAccess()) + return Forbid(); + + var typesCount = _ticketApplication.GetTypesCountOfTicketForAdmin(); + var deletedCount = _ticketApplication.GetDeletedTicket().Count(); + + return Ok(new + { + success = true, + data = new + { + open = typesCount.Open, + closed = typesCount.Closed, + answered = typesCount.Answered, + pending = typesCount.Pending, + all = typesCount.All, + deleted = deletedCount + } + }); + } + + /// + /// Restore a deleted ticket from trash + /// + /// The ID of the ticket to restore + /// Operation result indicating success or failure + [HttpPost("{ticketId}/restore")] + public IActionResult RestoreDeletedTicket(long ticketId) + { + if (!HasTicketAccess()) + return Forbid(); + + var result = _ticketApplication.RestoreDeletedTicket(ticketId); + + return Ok(new + { + success = result.IsSuccedded, + message = result.Message + }); + } + + /// + /// Check if the current user has access to ticket functionality + /// + /// Access status for the current user + [HttpGet("access")] + public IActionResult CheckTicketAccess() + { + var accountId = _authHelper.CurrentAccountId(); + var hasAccess = _ticketAccessAccountApplication.HasTicketAccess(accountId); + + return Ok(new + { + success = true, + hasAccess + }); } } + +/// +/// Request model for creating and assigning tasks from tickets +/// +public class CreateTaskRequest +{ + /// + /// Task description + /// + public string Description { get; set; } + + /// + /// Task title + /// + public string Title { get; set; } + + /// + /// Task end date + /// + public string EndTaskDate { get; set; } + + /// + /// Task end time + /// + public string EndTaskTime { get; set; } + + /// + /// List of receiver IDs for task assignment + /// + public List ReceiverId { get; set; } + + /// + /// List of position IDs for task assignment + /// + public List PositionId { get; set; } + + /// + /// List of uploaded media file IDs + /// + public List UploadedMedia { get; set; } + + /// + /// The ticket ID to assign task from + /// + public long TicketId { get; set; } +} + +/// +/// Request model for editing admin responses +/// +public class EditResponseRequest +{ + /// + /// The new response text + /// + public string NewResponse { get; set; } +} \ No newline at end of file diff --git a/ServiceHost/Areas/Admin/Pages/Company/Insurance/Create.cshtml b/ServiceHost/Areas/Admin/Pages/Company/Insurance/Create.cshtml deleted file mode 100644 index 0b9fdd1c..00000000 --- a/ServiceHost/Areas/Admin/Pages/Company/Insurance/Create.cshtml +++ /dev/null @@ -1,670 +0,0 @@ -@using _0_Framework.Application -@model CompanyManagment.App.Contracts.Insurance.CreateInsurance -@{ - - - - - - - -} - - - - - - - - \ No newline at end of file diff --git a/ServiceHost/Areas/Admin/Pages/Company/Insurance/Index.cshtml b/ServiceHost/Areas/Admin/Pages/Company/Insurance/Index.cshtml deleted file mode 100644 index aa33ad19..00000000 --- a/ServiceHost/Areas/Admin/Pages/Company/Insurance/Index.cshtml +++ /dev/null @@ -1,210 +0,0 @@ -@page -@model ServiceHost.Areas.Admin.Pages.Company.Insurance.IndexModel - -@{ - //int i = 1; -} - -@{ - Layout = "Shared/_AdminLayout"; - ViewData["title"] = "بیمه"; - -} - - -
- - - - - -
-
- - -
- -
-
- @*===================================================================================================================*@ - -
- -
- -
-
-
-
- - -
-
- - -
- @*
- - -
-
- - -
*@ -
-
-
- -
-
- - - مشاهده همه - -
-
-
-
-
-
- @*==================================================================Insurance=====*@ -
-
-
- -
-
- -
-
-
-

لیست بیمه ها

-
-
-
-
- - - - - - - - - - - - - - - - - @if (Model.insurance != null) - { - @foreach (var item in Model.insurance) - { - - - - - - - - - - - - - } - } - -
# سال ماه نام کارفرمانام کارگاهسهمیهشعبهشهرمقطوع
@item.Id @item.Year @item.Month @item.Employer@item.WorkShop@item.Qouta@item.InsuranceBranch@item.City@item.Fixed - - - - - - - - - - - - -
-
-
-
-
-
- -
- - -@section Script { - - - - - - - -} \ No newline at end of file diff --git a/ServiceHost/Areas/Admin/Pages/Company/Insurance/Index.cshtml.cs b/ServiceHost/Areas/Admin/Pages/Company/Insurance/Index.cshtml.cs deleted file mode 100644 index 9587b2c7..00000000 --- a/ServiceHost/Areas/Admin/Pages/Company/Insurance/Index.cshtml.cs +++ /dev/null @@ -1,160 +0,0 @@ -using _0_Framework.Application; -using CompanyManagment.App.Contracts.Employer; -using CompanyManagment.App.Contracts.Insurance; -using CompanyManagment.App.Contracts.Workshop; -using Microsoft.AspNetCore.Authorization; -using Microsoft.AspNetCore.Mvc; -using Microsoft.AspNetCore.Mvc.RazorPages; -using Microsoft.AspNetCore.Mvc.Rendering; - -namespace ServiceHost.Areas.Admin.Pages.Company.Insurance; - -//public class InsuranceSearchModel -//{ -// public long Id { get; set; } -// public int Year { get; set; } -// public string Month { get; set; } -// public string Employer { get; set; } -// public string WorkShop { get; set; } -//} -public class InsuranceViewModel -{ - public long Id { get; set; } - public int Year { get; set; } - public string Month { get; set; } - public string Employer { get; set; } - public string WorkShop { get; set; } - public string Qouta { get; set; } - public string InsuranceCode { get; set; } - public string InsuranceBranch { get; set; } - public string City { get; set; } - public string Fixed { get; set; } -} - -[Authorize] -public class IndexModel : PageModel -{ - public static string[] MonthNames = - { "فروردین", "اردیبهشت", "خرداد", "تیر", "مرداد", "شهریور", "مهر", "آبان", "آذر", "دی", "بهمن", "اسفند" }; - - private readonly IEmployerApplication _employerApplication; - private readonly IInsuranceApplication _insuranceApplication; - private readonly IWorkshopApplication _workShopApplication; - - public List insurance; - public InsuranceSearchModel searchModel; - - public IndexModel(IInsuranceApplication insuranceApplication, IEmployerApplication employerApplication, - IWorkshopApplication workShopApplication) - { - _insuranceApplication = insuranceApplication; - _employerApplication = employerApplication; - _workShopApplication = workShopApplication; - } - - - public void OnGet(InsuranceSearchModel searchModel) - { - var item1 = - new InsuranceViewModel - { - Id = 1, - Year = 1401, - Month = "مهر", - InsuranceCode = "10232156", - InsuranceBranch = "شعبه 9", - Employer = "شکوفه موتور گیلان", - WorkShop = "شکوفه موتور گیلان تهران", - Qouta = "عادی", - City = "تهران", - Fixed = "مقطوع" - }; - var item2 = - new InsuranceViewModel - { - Id = 2, - Year = 1401, - Month = "مهر", - InsuranceCode = "102654498", - InsuranceBranch = "شعبه 3", - Employer = "محمد حق پرست", - WorkShop = "تولیدی درب و پنجره", - Qouta = "کمک دولتی", - City = "رشت", - Fixed = "-" - }; - insurance = new List(); - insurance.Add(item1); - insurance.Add(item2); - } - - public IActionResult OnGetCreate() - { - var createInsurance = new CreateInsurance(); - createInsurance.EmployerList = new SelectList(_employerApplication.GetEmployers(), "Id", "FullName"); - createInsurance.Year = Convert.ToInt32(DateTime.Now.ToFarsiYear()); - createInsurance.Month = Convert.ToInt32(DateTime.Now.ToFarsiMonth()) == 1 - ? 12 - : Convert.ToInt32(DateTime.Now.ToFarsiMonth()) - 1; - - return Partial("./Create", createInsurance); - } - - public IActionResult OnGetSubtitleList(long employerId) - { - var searchModel = new WorkshopSearchModel(); - var subtitleList = _workShopApplication.Search(new WorkshopSearchModel { EmployerId = employerId }).ToList(); - return new JsonResult(subtitleList); - } - - public IActionResult OnGetLastInsurance(long workShopId) - { - var query = _insuranceApplication.Search(new InsuranceSearchModel { WorkShopId = workShopId }).Select(x => new - { - x.EmployerStr, - x.WorkShopStr, - x.ListNumber, - x.Address, - WorkShopCode = x.Workshop.ArchiveCode, - RadifPeyman = x.Workshop.Id - }).LastOrDefault(); - return new JsonResult(query); - } - //public IActionResult OnGetSummary() - //{ - // return Partial("./Summary"); - - //} - - - //public IActionResult OnPostCreate(CreateCrossJobGuild command) - //{ - - - //} - - //public IActionResult OnGetEdit(long id) - //{ - - //} - - - //public JsonResult OnPostEdit(EditCrossJobGuild command) - //{ - - - //} - - //public IActionResult OnGetDetails(long id) - //{ - // var detail = _crossJobGuildApplication.GetDetails(id); - // return Partial("Details", detail); - //} - - //public IActionResult OnPostRemove(long id) - //{ - // var result = new OperationResult(); - // return new JsonResult(result); - - //} -} \ No newline at end of file diff --git a/ServiceHost/Areas/Admin/Pages/Company/Insurance/Summary.cshtml b/ServiceHost/Areas/Admin/Pages/Company/Insurance/Summary.cshtml deleted file mode 100644 index 950984e3..00000000 --- a/ServiceHost/Areas/Admin/Pages/Company/Insurance/Summary.cshtml +++ /dev/null @@ -1,153 +0,0 @@ -@*@model CompanyManagment.App.Contracts.Insurance.CreateCrossJobGuild*@ -@{ - - - - - - - -} - - - - - \ No newline at end of file diff --git a/ServiceHost/Areas/Admin/Pages/Company/Workshops/AutoExtension.cshtml b/ServiceHost/Areas/Admin/Pages/Company/Workshops/AutoExtension.cshtml index 711503e5..1ef03d19 100644 --- a/ServiceHost/Areas/Admin/Pages/Company/Workshops/AutoExtension.cshtml +++ b/ServiceHost/Areas/Admin/Pages/Company/Workshops/AutoExtension.cshtml @@ -2,482 +2,15 @@ @model ServiceHost.Areas.Admin.Pages.Company.Workshops.AutoExtensionModel @Html.AntiForgeryToken() @{ + string adminVersion = _0_Framework.Application.Version.AdminVersion; @section Styles{ - + string adminVersion = _0_Framework.Application.Version.AdminVersion; + } var i = 1; var zeropscode = "zero-ps-code tooltip-container"; - string adminVersion = _0_Framework.Application.Version.AdminVersion; + } diff --git a/ServiceHost/Areas/Admin/Pages/Company/Workshops/ClassificationScheme.cshtml b/ServiceHost/Areas/Admin/Pages/Company/Workshops/ClassificationScheme.cshtml new file mode 100644 index 00000000..fec146c2 --- /dev/null +++ b/ServiceHost/Areas/Admin/Pages/Company/Workshops/ClassificationScheme.cshtml @@ -0,0 +1,249 @@ +@page +@model ServiceHost.Areas.Admin.Pages.Company.Workshops.ClassificationSchemeModel +@{ + string adminVersion = _0_Framework.Application.Version.AdminVersion; + + +} + +
+
+
+
+
+

تنظیمات طرح طبقه بندی مشاغل > @Model.WorkshopName

+ + بازگشت + +
+
+ + + +
+
+
+@section Script +{ + + + + +} diff --git a/ServiceHost/Areas/Admin/Pages/Company/Workshops/ClassificationScheme.cshtml.cs b/ServiceHost/Areas/Admin/Pages/Company/Workshops/ClassificationScheme.cshtml.cs new file mode 100644 index 00000000..5b38d580 --- /dev/null +++ b/ServiceHost/Areas/Admin/Pages/Company/Workshops/ClassificationScheme.cshtml.cs @@ -0,0 +1,685 @@ +using _0_Framework.Application; +using _0_Framework.Application.Enums; +using Company.Domain.ClassificationSchemeAgg; +using CompanyManagment.App.Contracts.ClassificationScheme; +using CompanyManagment.App.Contracts.Job; +using CompanyManagment.App.Contracts.Workshop; +using CompanyManagment.App.Contracts.YearlySalary; +using CompanyManagment.EFCore.Migrations; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc.RazorPages; + +namespace ServiceHost.Areas.Admin.Pages.Company.Workshops; + +/// +/// صفحه تنظیمات طرح طبقه بندی مشاغل +/// +public class ClassificationSchemeModel : PageModel +{ + private readonly IClassificationSchemeApplication _classificationSchemeApplication; + private readonly IJobApplication _jobApplication; + private readonly IYearlySalaryApplication _yearlySalaryApplication; + + public ClassificationSchemeModel(IClassificationSchemeApplication classificationSchemeApplication, IJobApplication jobApplication, IYearlySalaryApplication yearlySalaryApplication) + { + _classificationSchemeApplication = classificationSchemeApplication; + _jobApplication = jobApplication; + _yearlySalaryApplication = yearlySalaryApplication; + } + + /// + /// آی دی کارگاه + /// + public long WorkshopId { get; set; } + + /// + /// نام کارگاه + /// + public string WorkshopName { get; set; } + + /// + /// آیا طرح ایجاد شده + /// + public bool HasScheme { get; set; } + + /// + /// آی دی طرح + /// + public long SchemeId { get; set; } + public void OnGet(long workshopId, string workshopName) + { + WorkshopId = workshopId; + WorkshopName = workshopName; + var scheme = _classificationSchemeApplication.GetClassificationSchemeList(workshopId).GetAwaiter().GetResult(); + HasScheme = scheme.HasScheme; + SchemeId = scheme.HasScheme ? scheme.ClassificationSchemesList.FirstOrDefault()!.Id : 0; + } + + //تب لیست طرح + #region ClassificationSchemetTab + /// + /// تب ایجاد طرح + /// + /// + public IActionResult OnGetSchemeTab(long workshopId) + { + //دریافت طرح + var scheme = _classificationSchemeApplication.GetClassificationSchemeList(workshopId).GetAwaiter().GetResult(); + scheme.WorkshopId = workshopId; + + return Partial("_ClassificationPartials/ClassificationSchemeTab", scheme); + } + + /// + /// لود مودال ایجاد طرح + /// + /// + public IActionResult OnGetCreateScheme(long workshopId) + { + var model = new CreateClassificationScheme(); + model.WorkshopId = workshopId; + return Partial("_ClassificationPartials/CreateScheme", model); + } + + /// + /// ایجاد طرح + /// + /// + //public async Task OnPostCreateScheme(CreateClassificationScheme command) + //{ + // var result = await _classificationSchemeApplication.CreateClassificationScheme(command); + // return new JsonResult(result); + //} + + /// + /// لود مودال ویرایش طرح + /// + /// + /// + public IActionResult OnGetEditScheme(long id) + { + var model = _classificationSchemeApplication.GetClassificationScheme(id).GetAwaiter().GetResult(); + return Partial("_ClassificationPartials/EditScheme", model); + } + + /// + /// ویرایش طرح + /// + /// + /// + //public async Task OnPostEditScheme(EditClassificationScheme command) + //{ + // var result = _classificationSchemeApplication.EditClassificationScheme(command).GetAwaiter().GetResult(); + // return new JsonResult(result); + //} + #endregion + + //تب تعیین مشاغل + #region GroupJobsTab + + /// + /// تب تعیین مشاغل گروه + /// + /// + /// + public IActionResult OnGetGroupJobsTab(long schemeId) + { + var groupAndJobs = _classificationSchemeApplication.GetGroupAndJobs(schemeId).GetAwaiter().GetResult(); + return Partial("_ClassificationPartials/ClassificationGroupJobsTab", groupAndJobs); + } + + /// + /// لود مدال ایجاد یا ویرایش مشاغل گروه + /// + /// + /// + /// + public IActionResult OnGetCreateOrEditJobs(long groupId, string groupNo) + { + var model = new ClassificationGroupAndJobModel(); + model.GroupId = groupId; + model.GroupNo = groupNo; + model.EditClassificationGroupJob = + _classificationSchemeApplication.GetGroupJobs(groupId).GetAwaiter().GetResult(); + + return Partial("_ClassificationPartials/CreateOrEditGroupJobs", model); + } + + /// + /// جستجو شغل + /// + /// + /// + public IActionResult OnPostJobByTextSearch(string textSearch) + { + var jobs = _jobApplication.JobSearchSelect(textSearch).GetAwaiter().GetResult(); + + jobs = jobs.OrderBy(x => x.JobName.Length).ToList().Select(x => new JobViewModel + { + Id = x.Id, + JobName = x.JobName, + JobCode = x.JobCode, + SearchResultTitle = x.JobName, + SearchResultCode = x.JobCode + }).ToList(); + return new JsonResult(new + { + IsSuccedded = true, + List = jobs + }); + } + + + /// + /// بررسی امکان حذف شغل + /// + /// + public IActionResult OnGetCheckDeleteJob(long id, long groupId) + { + var checkExist = _classificationSchemeApplication.CheckEmployeeHasThisJob(id, groupId).GetAwaiter().GetResult(); + + return new JsonResult(new + { + existEmployeHasThisJob = checkExist, + + }); + } + + /// + /// ذخیره مشاغل + /// + /// + public IActionResult OnPostCreateJob(List createJobList, List deleteJobList) + { + var result = _classificationSchemeApplication.CreateGroupJobs(createJobList, deleteJobList).GetAwaiter().GetResult(); + + return new JsonResult(new + { + isSuccess = result, + message = result == true ? "عملیات با موفقیت انجام شد" : "خطا در ذخیره اطلاعات", + + }); + } + + #endregion + + + + #region SalariesTab + + + + /// + /// چک میکند که آیا گروه بدون شغل وجود دارد یا نه + /// + /// + /// + public IActionResult OnGetCheckEmptyGroup(long schemeId) + { + var groupAndJobs = _classificationSchemeApplication.GetGroupAndJobs(schemeId).GetAwaiter().GetResult(); + + + // خروجی: لیست بولین که برای هر گروه مشخص می‌کند آیا Job دارد یا نه + var hasJobsList = groupAndJobs + .Select(g => g.EditClassificationGroupJob != null && g.EditClassificationGroupJob.Count > 0) + .ToList(); + + // حالا می‌تونی بررسی کنی آیا گروهی بدون Job وجود دارد یا نه: + bool hasEmptyGroup = hasJobsList.Contains(false); + + // bool hasEmptyGroup = groupAndJobs.Any(g => g.EditClassificationGroupJob == null || g.EditClassificationGroupJob.Count == 0); + return new JsonResult(new + { + hasEmptyGroup = hasEmptyGroup, + }); + } + + /// + /// تب لیست دستمزد ها + /// + /// + public IActionResult OnGetSalariesTab(long schemeId) + { + + var salariesList = _classificationSchemeApplication.GetSalariesTabData(schemeId).GetAwaiter().GetResult(); + return Partial("_ClassificationPartials/ClassificationGroupSalariesTab", salariesList); + } + + /// + ///لود مودال ایجاد دستمزدها + /// + /// + /// + public IActionResult OnGetCreateSalaries(long schemeId) + { + var groupList = _classificationSchemeApplication.GetGroupToCreateSalariesModal(schemeId).GetAwaiter().GetResult(); + groupList.SchemeId = schemeId; + return Partial("_ClassificationPartials/CreateSalariesAndCoefficient", groupList); + } + + /// + /// ذخیره دستمزدها + /// + /// + /// + public IActionResult OnPostCreateSalaries(SalaryAndRialCoefficientModel command) + { + var result = _classificationSchemeApplication.CreateGroupSalaryAndCoefficient(command).GetAwaiter().GetResult(); + return new JsonResult(result); + } + + + /// + /// دریافت دستمزدها و ضریب ریالی برای مودال ویرایش + /// + /// + /// + /// + /// + public IActionResult OnGetEditSalariesData(long schemeId, string startDate, string endDate) + { + var editData = _classificationSchemeApplication.GetEditSalariesData(schemeId, startDate, endDate).GetAwaiter() + .GetResult(); + + return Partial("_ClassificationPartials/EditSalariesAndCoefficient", editData); + } + + /// + /// ثبت تغییرات ویرایش دستمزدها + /// + /// + /// + public IActionResult OnPostEditSalariesData(SalaryAndRialCoefficientModel command) + { + var result = _classificationSchemeApplication.EditGroupSalaryAndCoefficient(command).GetAwaiter().GetResult(); + return new JsonResult(result); + } + #endregion + + + + #region EmployeesTab + + /// + /// تب افزودن پرسنل + /// + /// + /// + public IActionResult OnGetAddEmployeesTab(long schemeId) + { + var model = new EmployeeInfoTab + { + SchemeId = schemeId, + }; + + //var result = _classificationSchemeApplication.GetEmployeeDataTab(command).GetAwaiter().GetResult(); + return Partial("_ClassificationPartials/ClassificationEmployeesTab", model); + } + + /// + /// دریافت نتیجه جستجو در تب پرسنل + /// + /// + /// + /// + public IActionResult OnGetAjaxDataLoading(long schemeId, string fullName) + { + var command = new EmployeeInfoTab + { + SchemeId = schemeId, + FullName = fullName, + }; + var result = _classificationSchemeApplication.GetEmployeeDataTab(command).GetAwaiter().GetResult(); + if (result.EmployeeInfoList == null || !result.EmployeeInfoList.Any()) + return new JsonResult(new + { + hasEmployee = false + + }); + var personnelList = result.EmployeeInfoList.OrderBy(x => x.Black ? 1 : 0); + + return new JsonResult(new + { + hasEmployee = true, + personnelList + }); + } + + + /// + ///لود مودال افزودن پرسنل به گروه + /// + /// + /// + /// + /// + public IActionResult OnGetAddToGroup(long employeeId, long schemeId, string employeeFullName) + { + var model = new AddEmployeeToGroup(); + var groups = _classificationSchemeApplication.GetGroups(schemeId).GetAwaiter().GetResult(); + + model.SchemeId = schemeId; + model.EmployeeId = employeeId; + model.EmployeeFullName = employeeFullName; + model.ClassificationGroupList = groups; + + + return Partial("_ClassificationPartials/AddEmployeeToGroup", model); + } + + /// + /// ذخیره انتخاب گروه و شغل برای پرسنل + /// + /// + /// + public IActionResult OnPostAddToGroup(AddEmployeeToGroup command) + { + + var result = _classificationSchemeApplication.AddEmployeeToGroup(command).GetAwaiter().GetResult(); + if (!result.IsSuccedded) + { + return new JsonResult(new + { + isSuccess = false, + message = result.Message, + }); + } + return new JsonResult(new + { + isSuccess = true, + message = result.Message, + }); + } + /// + /// دریافت لیست مشاغل با ای دی گروه + /// + /// + /// + /// + public IActionResult OnGetJobList(long schemeId, long groupId) + { + var jobList = _classificationSchemeApplication.GetGroupJobs(groupId).GetAwaiter().GetResult(); + return new JsonResult(new + { + jobs = jobList, + }); + } + + /// + ///لود مودال ویرایش پرسنل گروه + /// + /// + /// + /// + /// + public IActionResult OnGetEditGroupMember(long employeeId, long schemeId, string employeeFullName) + { + + var groups = _classificationSchemeApplication.GetGroups(schemeId).GetAwaiter().GetResult(); + var employeeMemberizeData = _classificationSchemeApplication.GetEmployeeMemberizeData(employeeId).GetAwaiter().GetResult(); + + ////اگر یک گروه داشت + //if (!employeeMemberizeData.HasMultipleGroup) + //{ + // var model = new AddEmployeeToGroup(); + + + // model.SchemeId = schemeId; + // model.EmployeeId = employeeId; + // model.EmployeeFullName = employeeFullName; + + // if (!employeeMemberizeData.EditEmployeeGroupLists.Any()) + // return Partial("_ClassificationPartials/EditGroupMember", model); + + // model.ClassificationGroupList = groups; + // model.GroupId = employeeMemberizeData.EditEmployeeGroupLists.FirstOrDefault()!.ClassificationGroupId; + // model.JobId = employeeMemberizeData.EditEmployeeGroupLists.FirstOrDefault()!.ClassificationGroupJobId; + // model.Id = employeeMemberizeData.EditEmployeeGroupLists.FirstOrDefault()!.Id; ; + // return Partial("_ClassificationPartials/EditGroupMember", model); + //} + //اگر چند گروه داشت + var multipleModel = new EditEmployeeGroup(); + multipleModel.EmployeeId = employeeId; + multipleModel.SchemeId = schemeId; + multipleModel.EmployeeFullName = employeeFullName; + multipleModel.EditEmployeeGroupLists = employeeMemberizeData.EditEmployeeGroupLists; + multipleModel.ClassificationGroupList = groups; + + + + return Partial("_ClassificationPartials/EditMultipleGroupMember", multipleModel); + } + + + /// + /// ذخیره ویرایش گروه پرسنل + /// + /// + /// + //public IActionResult OnPostEditGroupMember(AddEmployeeToGroup command) + //{ + + // var result = _classificationSchemeApplication.EditGroupMember(command).GetAwaiter().GetResult(); + // if (!result.IsSuccedded) + // { + // return new JsonResult(new + // { + // isSuccess = false, + // message = result.Message, + // }); + // } + // return new JsonResult(new + // { + // isSuccess = true, + // message = result.Message, + // }); + //} + + /// + /// ذخیره ویرایش گروه های چندگانه پرسنل + /// + /// + /// + public IActionResult OnPostEditMultipleGroupMember([FromBody] List command) + { + var result = _classificationSchemeApplication.EditMultipleGroupMember(command).GetAwaiter().GetResult(); + if (!result.IsSuccedded) + { + return new JsonResult(new + { + isSuccess = false, + message = result.Message, + }); + } + return new JsonResult(new + { + isSuccess = true, + message = result.Message, + }); + } + + + /// + ///لود مودال ویرایش پرسنل گروه + /// + /// + /// + /// + /// + public IActionResult OnGetTransferToNewGroup(long employeeId, long schemeId, string employeeFullName) + { + + var groups = _classificationSchemeApplication.GetGroups(schemeId).GetAwaiter().GetResult(); + var employeeMemberizeData = _classificationSchemeApplication.GetEmployeeMemberizeData(employeeId).GetAwaiter().GetResult(); + + + + var multipleModel = new EditEmployeeGroup(); + multipleModel.EmployeeId = employeeId; + multipleModel.SchemeId = schemeId; + multipleModel.EmployeeFullName = employeeFullName; + multipleModel.EditEmployeeGroupLists = employeeMemberizeData.EditEmployeeGroupLists; + multipleModel.ClassificationGroupList = groups; + + + + return Partial("_ClassificationPartials/TransferEmployeeGroup", multipleModel); + } + + /// + /// ذخیره انتقال پرسنل به گروه جدید + /// + /// + /// + public IActionResult OnPostTransferToNewGroup([FromBody] List command) + { + var result = _classificationSchemeApplication.TransferEmployeeToNewGroup(command).GetAwaiter().GetResult(); + if (!result.IsSuccedded) + { + return new JsonResult(new + { + isSuccess = false, + message = result.Message, + }); + } + return new JsonResult(new + { + isSuccess = true, + message = result.Message, + }); + } + + #endregion + + + //تست طرح + #region TestScheme + + /// + /// لود مودال تست + /// + /// + /// + public IActionResult OnGetTestScheme(long schemeId) + { + var command = new EmployeeInfoTab + { + SchemeId = schemeId, + + }; + var result = _classificationSchemeApplication.GetEmployeeDataTab(command).GetAwaiter().GetResult(); + + var employeeWithGroup = result.EmployeeInfoList.Where(x => x.HasGroup).ToList(); + var years = + _yearlySalaryApplication.GetYears(); + var model = new EmployeeInfoTab() + { + SchemeId = schemeId, + EmployeeInfoList = employeeWithGroup, + YearlyList = years + }; + + return Partial("_ClassificationPartials/TestScheme", model); + } + + /// + /// متد محاسبه تست + /// + /// + /// + /// + /// + /// + public IActionResult OnGetComputeTest(long schemeId, long employeeId, string year, string month) + { + var scheme = _classificationSchemeApplication.GetClassificationSchemeToCompute(schemeId).GetAwaiter().GetResult(); + var typeOfCoefficient = scheme.TypeOfCoefficient; + + var startDate = $"{year}/{month}/01"; + var endDate = startDate.FindeEndOfMonth(); + var startDateGr = startDate.ToGeorgianDateTime(); + var endDateGr = endDate.ToGeorgianDateTime(); + double salaryResult = 0; + double salary = 0; + double coefficient = 0; + double rate = 0; + string mathModel = ""; + var employeeMemberizeData = _classificationSchemeApplication.GetEmployeeMemberizeData(employeeId).GetAwaiter().GetResult(); + var employeeGroupMemberData = new List<(DateTime startGroupDate, DateTime EndGroupDate, string GroupNo)>(); + var employeeMemberizeDataOrderd = employeeMemberizeData.EditEmployeeGroupLists.OrderByDescending(x => x.StartGroupDate).ToList(); + if (employeeMemberizeDataOrderd.Any()) + { + + var lastGroup = employeeMemberizeDataOrderd.FirstOrDefault(); + foreach (var group in employeeMemberizeDataOrderd) + { + if (group == lastGroup) + { + + employeeGroupMemberData.Add(new ValueTuple(group.StartGroupDate.Value, endDateGr, group.GroupNo)); + } + else + { + var endOfGroup = employeeGroupMemberData.Last().startGroupDate.AddDays(-1); + employeeGroupMemberData.Add(new ValueTuple(group.StartGroupDate.Value, endOfGroup, group.GroupNo)); + + } + } + + } + var groupNo = employeeMemberizeData.EditEmployeeGroupLists.FirstOrDefault()!.GroupNo; + var salaryGroupNo = employeeGroupMemberData + .FirstOrDefault(x => x.startGroupDate <= endDateGr && x.EndGroupDate >= startDateGr)!.GroupNo; + var groupSalaryData = _classificationSchemeApplication.GetEditSalariesData(schemeId, startDate, endDate).GetAwaiter() + .GetResult(); + + var salaryData = groupSalaryData.SalariesAndCoefficientList.FirstOrDefault(x => x.GroupNo == salaryGroupNo); + if (salaryData != null) + { + salary = salaryData.GroupSalary; + coefficient = groupSalaryData.RialCoefficient; + } + + if (typeOfCoefficient != TypeOfCoefficient.RialCoefficient) + { + coefficient = 0; + } + + rate = ClassificationRangeOfGroupRate.GetGroupDistanceRate(salaryGroupNo).DistanceRate; + + if (salaryGroupNo != "1") + { + salaryResult = (coefficient * rate) + salary; + + mathModel = $"{salaryResult} = {salary} + ( x {rate} {coefficient} )"; + } + else + { + salaryResult = salary; + + } + + var baseYearResult = _classificationSchemeApplication.BaseYearComputeOneGroup(scheme.ExecutionDateGr, + scheme.EndSchemeDateGr, startDateGr, endDateGr, groupNo, employeeId, scheme.WorkshopId).GetAwaiter().GetResult(); + var baseYearResultFa = baseYearResult.BaseYearResult > 0 ? baseYearResult.BaseYearResult.ToMoney() : "0"; + var salaryResultFa = salaryResult.ToMoney(); + + double baseYearResultRound = baseYearResultFa != "0" ? baseYearResultFa.MoneyToDouble() : 0; + double salaryResultRound = salaryResultFa.MoneyToDouble(); + + return new JsonResult(new + { + salaryResult = salaryResultFa, + salary = salary, + rate = rate, + coefficient = coefficient, + salaryResultDouble = salaryResult, + baseYearResult = baseYearResultFa, + mabnaDailyWage = (baseYearResultRound + salaryResultRound).ToMoney(), + baseYearDataList = baseYearResult.BaseYearDataList, + }); + } + + #endregion + +} \ No newline at end of file diff --git a/ServiceHost/Areas/Admin/Pages/Company/Workshops/CreateWorkshop.cshtml b/ServiceHost/Areas/Admin/Pages/Company/Workshops/CreateWorkshop.cshtml index 2b66d76c..0c4851f7 100644 --- a/ServiceHost/Areas/Admin/Pages/Company/Workshops/CreateWorkshop.cshtml +++ b/ServiceHost/Areas/Admin/Pages/Company/Workshops/CreateWorkshop.cshtml @@ -617,6 +617,11 @@ }); + +
+ + +