diff --git a/0_Framework/Application/UserType.cs b/0_Framework/Application/UserType.cs index 7ca704bb..f548879e 100644 --- a/0_Framework/Application/UserType.cs +++ b/0_Framework/Application/UserType.cs @@ -8,7 +8,8 @@ namespace _0_Framework.Application Client, SubAccount, Camera, - Admin + Admin, + System } } diff --git a/Company.Domain/FineAgg/Fine.cs b/Company.Domain/FineAgg/Fine.cs index 038366c4..f90732c4 100644 --- a/Company.Domain/FineAgg/Fine.cs +++ b/Company.Domain/FineAgg/Fine.cs @@ -6,7 +6,11 @@ namespace Company.Domain.FineAgg; public class Fine:EntityBase { - public Fine(long employeeId, long workshopId, string title, double amount,DateTime fineDate) + private Fine() + { + + } + public Fine(long employeeId, long workshopId, string title, double amount,DateTime fineDate, long createdByAccountId, UserType createdByUserType) { EmployeeId = employeeId; WorkshopId = workshopId; @@ -15,6 +19,9 @@ public class Fine:EntityBase IsActive = IsActive.True; FineDate = fineDate; + CreatedByUserType = createdByUserType; + CreatedByAccountId = createdByAccountId; + } public long EmployeeId { get; private set; } @@ -24,7 +31,23 @@ public class Fine:EntityBase public IsActive IsActive { get; private set; } public DateTime FineDate { get; private set; } - public void DeActive() + + /// + /// شخصی که جریمه را ساخته است + /// + public long CreatedByAccountId { get; private set; } + public UserType CreatedByUserType { get; private set; } + + + /// + /// شخصی که جریمه را ویرایش کرده است + /// + public long LastModifiedByAccountId { get; private set; } + public UserType LastModifiedByUserType { get; private set; } + + + + public void DeActive() { IsActive = IsActive.False; } @@ -34,14 +57,15 @@ public class Fine:EntityBase IsActive = IsActive.True; } - public void Edit(long employeeId, long workshopId, string title, double amount,DateTime fineDate) + public void Edit(long employeeId, long workshopId, string title, double amount,DateTime fineDate, long modifiedByAccountId, UserType modifiedByUserType) { EmployeeId = employeeId; WorkshopId = workshopId; Title = title; Amount = amount; FineDate = fineDate; - + LastModifiedByAccountId = modifiedByAccountId; + LastModifiedByUserType = modifiedByUserType; } } \ No newline at end of file diff --git a/Company.Domain/FineAgg/IFineRepository.cs b/Company.Domain/FineAgg/IFineRepository.cs index 421da448..9072b2ca 100644 --- a/Company.Domain/FineAgg/IFineRepository.cs +++ b/Company.Domain/FineAgg/IFineRepository.cs @@ -12,4 +12,14 @@ public interface IFineRepository : IRepository void Remove(Fine entity); void RemoveRange(IEnumerable entityEnumerable); + + #region Pooya + + /// + /// گروهبندی بر اساس ماه هنگام جستجو با انتخاب کارمند + /// + FinesGroupedViewModel GetSearchListAsGrouped(FineSearchViewModel searchModel); + + #endregion + } \ No newline at end of file diff --git a/Company.Domain/LoanAgg/Entities/Loan.cs b/Company.Domain/LoanAgg/Entities/Loan.cs index 650b192f..55e1c6eb 100644 --- a/Company.Domain/LoanAgg/Entities/Loan.cs +++ b/Company.Domain/LoanAgg/Entities/Loan.cs @@ -9,12 +9,14 @@ namespace Company.Domain.LoanAgg.Entities; public class Loan : EntityBase { - private Loan() + private Loan(long createdByAccountId, UserType createdByUserType) { + CreatedByAccountId = createdByAccountId; + CreatedByUserType = createdByUserType; } public Loan(long employeeId, long workshopId, DateTime startDateTime, - string count, double amount, double amountPerMonth,ICollection loanInstallments, bool getRounded, DateTime loanGrantDate) + string count, double amount, double amountPerMonth,ICollection loanInstallments, bool getRounded, DateTime loanGrantDate, long createdByAccountId, UserType createdByUserType) { EmployeeId = employeeId; WorkshopId = workshopId; @@ -25,6 +27,8 @@ public class Loan : EntityBase LoanInstallments = loanInstallments; GetRounded = getRounded; LoanGrantDate = loanGrantDate; + CreatedByAccountId = createdByAccountId; + CreatedByUserType = createdByUserType; //for (int i = 0; i < Convert.ToInt32(count); i++) //{ // LoanInstallment newInstallment = new(amountPerMonth, month.ToString("00"), year.ToString("0000")); @@ -64,7 +68,11 @@ public class Loan : EntityBase public bool GetRounded { get; private set; } public ICollection LoanInstallments { get; private set; } - public void DeActiveInstallment(string year, string month) + + public long CreatedByAccountId { get; private set; } + public UserType CreatedByUserType { get; private set; } + + public void DeActiveInstallment(string year, string month) { var installment = LoanInstallments.FirstOrDefault(x => x.Month == month && x.Year == year); diff --git a/Company.Domain/LoanAgg/ILoanRepository.cs b/Company.Domain/LoanAgg/ILoanRepository.cs index bb62a18f..2f91b4a6 100644 --- a/Company.Domain/LoanAgg/ILoanRepository.cs +++ b/Company.Domain/LoanAgg/ILoanRepository.cs @@ -12,4 +12,6 @@ public interface ILoanRepository:IRepository void Remove(Loan entity); List GetBy(IEnumerable ids); void RemoveRange(IEnumerable loans); + + LoanGroupedViewModel GetSearchListAsGrouped(LoanSearchViewModel searchModel); } \ No newline at end of file diff --git a/Company.Domain/RewardAgg/IRewardRepository.cs b/Company.Domain/RewardAgg/IRewardRepository.cs index 9921de2c..93d09227 100644 --- a/Company.Domain/RewardAgg/IRewardRepository.cs +++ b/Company.Domain/RewardAgg/IRewardRepository.cs @@ -18,6 +18,6 @@ public interface IRewardRepository : IRepository /// /// گروهبندی بر اساس ماه هنگام جستجو با انتخاب کارمند /// - List GetSearchListByEmployee(RewardSearchModel searchModel); + RewardsGroupedViewModel GetSearchListAsGrouped(RewardSearchModel searchModel); #endregion } \ No newline at end of file diff --git a/Company.Domain/RewardAgg/Reward.cs b/Company.Domain/RewardAgg/Reward.cs index 7190a005..3d8f78cf 100644 --- a/Company.Domain/RewardAgg/Reward.cs +++ b/Company.Domain/RewardAgg/Reward.cs @@ -8,18 +8,19 @@ namespace Company.Domain.RewardAgg; public class Reward:EntityBase { - private Reward(string title) + private Reward() { - Title = title; + } - public Reward(long employeeId, long workshopId, double amount, string description, long rewardedByAccountId, DateTime grantDate, string title , RewardType type = RewardType.None) + public Reward(long employeeId, long workshopId, double amount, string description, long rewardedByAccountId,UserType userType, DateTime grantDate, string title , RewardType type = RewardType.None) { EmployeeId = employeeId; WorkshopId = workshopId; Amount = amount; Description = description; - RewardedByAccountId = rewardedByAccountId; + CreatedByAccountId = rewardedByAccountId; + CreatedByUserType = userType; GrantDate = grantDate; Title = title; IsActive = IsActive.True; @@ -45,24 +46,35 @@ public class Reward:EntityBase public string Description { get; private set; } /// - /// شخصی که پاداش را داده است + /// شخصی که پاداش را ساخته است /// - public long RewardedByAccountId { get; private set; } + public long CreatedByAccountId { get; private set; } + public UserType CreatedByUserType { get;private set; } + /// - /// تاریخ اعطای پاداش + /// شخصی که پاداش را ویرایش کرده است /// - public DateTime GrantDate { get; set; } + public long LastModifiedByAccountId { get; private set; } + public UserType LastModifiedByUserType { get; private set; } + + + /// + /// تاریخ اعطای پاداش + /// + public DateTime GrantDate { get; set; } public RewardType RewardType { get; set; } public IsActive IsActive { get; private set; } - public void Edit(double amount, string description, long rewardedByAccountId, DateTime grantDate,string title) + + public void Edit(double amount, string description, long modifiedByAccountId, UserType userType, DateTime grantDate,string title) { Amount = amount; Description = description; - RewardedByAccountId = rewardedByAccountId; + LastModifiedByAccountId = modifiedByAccountId; + LastModifiedByUserType = userType; GrantDate = grantDate; Title = title; } diff --git a/Company.Domain/SalaryAidAgg/ISalaryAidRepository.cs b/Company.Domain/SalaryAidAgg/ISalaryAidRepository.cs index 9fc54bd7..edc2d7c5 100644 --- a/Company.Domain/SalaryAidAgg/ISalaryAidRepository.cs +++ b/Company.Domain/SalaryAidAgg/ISalaryAidRepository.cs @@ -1,5 +1,6 @@ using System.Collections.Generic; using _0_Framework.Domain; +using CompanyManagment.App.Contracts.Reward; using CompanyManagment.App.Contracts.SalaryAid; namespace Company.Domain.SalaryAidAgg; @@ -11,4 +12,13 @@ public interface ISalaryAidRepository:IRepository void Remove(SalaryAid entity); List GetBy(IEnumerable ids); void RemoveRange(IEnumerable salaryAids); + + #region Pooya + + /// + /// گروهبندی بر اساس ماه هنگام جستجو با انتخاب کارمند + /// + + SalaryAidsGroupedViewModel GetSearchListAsGrouped(SalaryAidSearchViewModel searchModel); + #endregion } \ No newline at end of file diff --git a/Company.Domain/SalaryAidAgg/SalaryAid.cs b/Company.Domain/SalaryAidAgg/SalaryAid.cs index 6bbde984..5fc7fea1 100644 --- a/Company.Domain/SalaryAidAgg/SalaryAid.cs +++ b/Company.Domain/SalaryAidAgg/SalaryAid.cs @@ -1,4 +1,5 @@ using System; +using _0_Framework.Application; using _0_Framework.Domain; using Hangfire.Annotations; @@ -6,15 +7,18 @@ namespace Company.Domain.SalaryAidAgg; public class SalaryAid:EntityBase { - private SalaryAid(){} - - - public SalaryAid(long employeeId, long workshopId, double amount, DateTime salaryAidDateTime) + private SalaryAid() + { + + } + public SalaryAid(long employeeId, long workshopId, double amount, DateTime salaryAidDateTime, long createdByAccountId, UserType createdByUserType) { EmployeeId = employeeId; WorkshopId = workshopId; Amount = amount; SalaryAidDateTime = salaryAidDateTime; + CreatedByUserType = createdByUserType; + CreatedByAccountId = createdByAccountId; } public long EmployeeId { get; private set; } @@ -22,9 +26,21 @@ public class SalaryAid:EntityBase public double Amount { get; private set; } public DateTime SalaryAidDateTime { get; private set; } - public void Edit(double amount, DateTime salaryAidTime) + + public long CreatedByAccountId { get; private set; } + public UserType CreatedByUserType { get; private set; } + + + + public long LastModifiedByAccountId { get; private set; } + public UserType LastModifiedByUserType { get; private set; } + + + public void Edit(double amount, DateTime salaryAidTime, long modifiedByAccountId, UserType modifiedByUserType) { Amount = amount; SalaryAidDateTime = salaryAidTime; + LastModifiedByAccountId = modifiedByAccountId; + LastModifiedByUserType = modifiedByUserType; } } \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/Fine/FineSearchViewModel.cs b/CompanyManagment.App.Contracts/Fine/FineSearchViewModel.cs index 08146b0e..04706557 100644 --- a/CompanyManagment.App.Contracts/Fine/FineSearchViewModel.cs +++ b/CompanyManagment.App.Contracts/Fine/FineSearchViewModel.cs @@ -13,4 +13,5 @@ public class FineSearchViewModel public int PageIndex { get; set; } public string StartDate { get; set; } public string EndDate { get; set; } + public bool ShowAsGrouped { get; set; } } diff --git a/CompanyManagment.App.Contracts/Fine/FineViewModel.cs b/CompanyManagment.App.Contracts/Fine/FineViewModel.cs index 96291e14..ca2c3594 100644 --- a/CompanyManagment.App.Contracts/Fine/FineViewModel.cs +++ b/CompanyManagment.App.Contracts/Fine/FineViewModel.cs @@ -1,5 +1,6 @@ using System; using _0_Framework.Application; +using CompanyManagment.App.Contracts.Loan; namespace CompanyManagment.App.Contracts.Fine; @@ -15,4 +16,7 @@ public class FineViewModel public string FineDate { get; set; } public IsActive IsActive { get; set; } public string CreationDate { get; set; } + public string YearFa { get; set; } + public string MonthFa { get; set; } + public double AmountDouble { get; set; } } \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/Fine/FinesGroupedByDateViewModel.cs b/CompanyManagment.App.Contracts/Fine/FinesGroupedByDateViewModel.cs new file mode 100644 index 00000000..0a668067 --- /dev/null +++ b/CompanyManagment.App.Contracts/Fine/FinesGroupedByDateViewModel.cs @@ -0,0 +1,20 @@ +using System.Collections.Generic; + +namespace CompanyManagment.App.Contracts.Fine; + +public class FinesGroupedByDateViewModel +{ + public string MonthFa { get; set; } + public string YearFa { get; set; } + public List Fines { get; set; } + public string TotalAmount { get; set; } +} +public class FinesGroupedByDateViewModelItems +{ + public long Id { get; set; } + public string EmployeeName { get; set; } + public string PersonnelCode { get; set; } + public string Title { get; set; } + public string Amount { get; set; } + public string FineDateTimeFa { get; set; } +} \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/Fine/FinesGroupedByEmployeeViewModel.cs b/CompanyManagment.App.Contracts/Fine/FinesGroupedByEmployeeViewModel.cs new file mode 100644 index 00000000..32dde645 --- /dev/null +++ b/CompanyManagment.App.Contracts/Fine/FinesGroupedByEmployeeViewModel.cs @@ -0,0 +1,20 @@ +using System.Collections.Generic; + +namespace CompanyManagment.App.Contracts.Fine; + +public class FinesGroupedByEmployeeViewModel +{ + public string EmployeeName { get; set; } + public List Fines { get; set; } + public string TotalAmount { get; set; } + public long EmployeeId { get; set; } +} + +public class FinesGroupedByEmployeeViewModelItems +{ + public string FineDateTimeFa { get; set; } + public string Title { get; set; } + public string Amount { get; set; } + public long Id { get; set; } + public string PersonnelCode { get; set; } +} \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/Fine/FinesGroupedViewModel.cs b/CompanyManagment.App.Contracts/Fine/FinesGroupedViewModel.cs new file mode 100644 index 00000000..cdf8f142 --- /dev/null +++ b/CompanyManagment.App.Contracts/Fine/FinesGroupedViewModel.cs @@ -0,0 +1,15 @@ +using System.Collections.Generic; +using CompanyManagment.App.Contracts.EmployeeInsurancListData; +using Microsoft.EntityFrameworkCore.Metadata.Builders; + +namespace CompanyManagment.App.Contracts.Fine; + +public class FinesGroupedViewModel +{ + + public List GroupedByDate { get; set; } + public List GroupedByEmployee { get; set; } + public List FineListViewModels { get; set; } + +} + diff --git a/CompanyManagment.App.Contracts/Fine/IFineApplication.cs b/CompanyManagment.App.Contracts/Fine/IFineApplication.cs index fa943900..cd00145c 100644 --- a/CompanyManagment.App.Contracts/Fine/IFineApplication.cs +++ b/CompanyManagment.App.Contracts/Fine/IFineApplication.cs @@ -11,4 +11,12 @@ public interface IFineApplication EditFineViewModel GetDetails(long id); OperationResult Remove(long id); OperationResult RemoveRange(List ids); + #region Pooya + + /// + /// گروهبندی بر اساس ماه هنگام جستجو با انتخاب کارمند + /// + FinesGroupedViewModel GetSearchListAsGrouped(FineSearchViewModel searchModel); + + #endregion } \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/Loan/ILoanApplication.cs b/CompanyManagment.App.Contracts/Loan/ILoanApplication.cs index 63dcfdb3..1e372d6f 100644 --- a/CompanyManagment.App.Contracts/Loan/ILoanApplication.cs +++ b/CompanyManagment.App.Contracts/Loan/ILoanApplication.cs @@ -1,5 +1,6 @@ using System.Collections.Generic; using _0_Framework.Application; +using Microsoft.AspNetCore.Mvc.RazorPages; namespace CompanyManagment.App.Contracts.Loan; @@ -11,4 +12,14 @@ public interface ILoanApplication List CalculateLoanInstallment(string amount , int installmentCount,string loanStartDate,bool getRounded); OperationResult Remove(long id); OperationResult RemoveRange(IEnumerable ids); -} \ No newline at end of file + + LoanGroupedViewModel GetSearchListAsGrouped(LoanSearchViewModel searchModel); +} + +public class LoanGroupedViewModel +{ + public List GroupedByDate { get; set; } + public ListGroupedByEmployee { get; set; } + public List LoanListViewModel { get; set; } +} + diff --git a/CompanyManagment.App.Contracts/Loan/LoanGroupedByDateViewModel.cs b/CompanyManagment.App.Contracts/Loan/LoanGroupedByDateViewModel.cs new file mode 100644 index 00000000..dde0bca4 --- /dev/null +++ b/CompanyManagment.App.Contracts/Loan/LoanGroupedByDateViewModel.cs @@ -0,0 +1,22 @@ +using System.Collections.Generic; + +namespace CompanyManagment.App.Contracts.Loan; + +public class LoanGroupedByDateViewModel +{ + public string MonthFa { get; set; } + public string YearFa { get; set; } + public string TotalAmount { get; set; } + public List LoanItems { get; set; } +} + +public class LoanGroupedByDateViewModelItems +{ + public long Id { get; set; } + public string EmployeeName { get; set; } + public string PersonnelCode { get; set; } + public string AmountPerMonth { get; set; } + public string LoanStartDate { get; set; } + public string TotalAmountFa { get; set; } + public string InstallmentCount { get; set; } +} \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/Loan/LoanGroupedByEmployeeViewModel.cs b/CompanyManagment.App.Contracts/Loan/LoanGroupedByEmployeeViewModel.cs new file mode 100644 index 00000000..b286f272 --- /dev/null +++ b/CompanyManagment.App.Contracts/Loan/LoanGroupedByEmployeeViewModel.cs @@ -0,0 +1,19 @@ +using System.Collections.Generic; + +namespace CompanyManagment.App.Contracts.Loan; + +public class LoanGroupedByEmployeeViewModel +{ + public string EmployeeName { get; set; } + public string TotalAmount { get; set; } + public List LoanItems { get; set; } +} +public class LoanGroupedByEmployeeViewModelItems +{ + public long Id { get; set; } + public string PersonnelCode { get; set; } + public string AmountPerMonth { get; set; } + public string LoanDateTimeFa { get; set; } + public string TotalAmountFa { get; set; } + public string InstallmentCount { get; set; } +} \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/Loan/LoanSearchViewModel.cs b/CompanyManagment.App.Contracts/Loan/LoanSearchViewModel.cs index 7be9b28c..f1bf0c5a 100644 --- a/CompanyManagment.App.Contracts/Loan/LoanSearchViewModel.cs +++ b/CompanyManagment.App.Contracts/Loan/LoanSearchViewModel.cs @@ -16,4 +16,5 @@ public class LoanSearchViewModel public string EndDate { get; set; } public int PageIndex { get; set; } + public bool ShowAsGrouped { get; set; } } diff --git a/CompanyManagment.App.Contracts/Loan/LoanViewModel.cs b/CompanyManagment.App.Contracts/Loan/LoanViewModel.cs index b719a844..98e0b548 100644 --- a/CompanyManagment.App.Contracts/Loan/LoanViewModel.cs +++ b/CompanyManagment.App.Contracts/Loan/LoanViewModel.cs @@ -19,4 +19,7 @@ public class LoanViewModel public List Installment { get; set; } public string PersonnelCode { get; set; } public DateTime CreationDate { get; set; } + public double AmountDouble { get; set; } + public string MonthFa { get; set; } + public string YearFa { get; set; } } diff --git a/CompanyManagment.App.Contracts/Reward/CreateRewardViewModel.cs b/CompanyManagment.App.Contracts/Reward/CreateRewardViewModel.cs index dd57f163..c3c6931c 100644 --- a/CompanyManagment.App.Contracts/Reward/CreateRewardViewModel.cs +++ b/CompanyManagment.App.Contracts/Reward/CreateRewardViewModel.cs @@ -1,4 +1,5 @@ using System.Collections.Generic; +using _0_Framework.Application; namespace CompanyManagment.App.Contracts.Reward; @@ -12,14 +13,15 @@ public class CreateRewardViewModel /// public string Amount { get; set; } + + /// /// توضیحات /// public string Description { get; set; } - /// - /// شخصی که پاداش را داده است - /// - public long RewardedByAccountId { get; set; } + + + public string GrantDate { get; set; } public string Title { get; set; } diff --git a/CompanyManagment.App.Contracts/Reward/IRewardApplication.cs b/CompanyManagment.App.Contracts/Reward/IRewardApplication.cs index 7c8fd12e..657f8935 100644 --- a/CompanyManagment.App.Contracts/Reward/IRewardApplication.cs +++ b/CompanyManagment.App.Contracts/Reward/IRewardApplication.cs @@ -17,7 +17,7 @@ public interface IRewardApplication /// /// گروهبندی بر اساس ماه هنگام جستجو با انتخاب کارمند /// - List GetSearchListByEmployee(RewardSearchModel searchModel); + RewardsGroupedViewModel GetSearchListAsGrouped(RewardSearchModel searchModel); #endregion } diff --git a/CompanyManagment.App.Contracts/Reward/MonthlyGroupedEmployeeRewardsViewModel.cs b/CompanyManagment.App.Contracts/Reward/MonthlyGroupedEmployeeRewardsViewModel.cs deleted file mode 100644 index 586cece9..00000000 --- a/CompanyManagment.App.Contracts/Reward/MonthlyGroupedEmployeeRewardsViewModel.cs +++ /dev/null @@ -1,13 +0,0 @@ -using System.Collections.Generic; - -namespace CompanyManagment.App.Contracts.Reward; - -public class MonthlyGroupedEmployeeRewardsViewModel -{ - public long EmployeeId { get; set; } - public string PersonnelCode { get; set; } - public string MonthFa { get; set; } - public string YearFa { get; set; } - public List Rewards { get; set; } - public string MonthFaName { get; set; } -} \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/Reward/RewardSearchModel.cs b/CompanyManagment.App.Contracts/Reward/RewardSearchModel.cs index e204b9b3..1ed64770 100644 --- a/CompanyManagment.App.Contracts/Reward/RewardSearchModel.cs +++ b/CompanyManagment.App.Contracts/Reward/RewardSearchModel.cs @@ -13,4 +13,5 @@ public class RewardSearchModel public string StartDate { get; set; } public string EndDate { get; set; } public int PageIndex { get; set; } + public bool ShowAsGrouped { get; set; } } \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/Reward/RewardsGroupedByDate.cs b/CompanyManagment.App.Contracts/Reward/RewardsGroupedByDate.cs new file mode 100644 index 00000000..cd0d5cd4 --- /dev/null +++ b/CompanyManagment.App.Contracts/Reward/RewardsGroupedByDate.cs @@ -0,0 +1,23 @@ +using System.Collections.Generic; +using System.Security.Cryptography; +using Microsoft.EntityFrameworkCore.Metadata.Builders; + +namespace CompanyManagment.App.Contracts.Reward; + +public class RewardsGroupedByDate +{ + public string Month { get; set; } + public string Year { get; set; } + public List Rewards { get; set; } + public string TotalAmount { get; set; } +} +public class RewardsGroupedByDateItems +{ + public long Id { get; set; } + public string EmployeeName { get; set; } + public string PersonnelCode { get; set; } + public string Title { get; set; } + public string Amount { get; set; } + public string Description { get; set; } + public string GrantDateFa { get; set; } +} diff --git a/CompanyManagment.App.Contracts/Reward/RewardsGroupedByEmployeeViewModel.cs b/CompanyManagment.App.Contracts/Reward/RewardsGroupedByEmployeeViewModel.cs new file mode 100644 index 00000000..b74c9147 --- /dev/null +++ b/CompanyManagment.App.Contracts/Reward/RewardsGroupedByEmployeeViewModel.cs @@ -0,0 +1,21 @@ +using System.Collections.Generic; + +namespace CompanyManagment.App.Contracts.Reward; + +public class RewardsGroupedByEmployeeViewModel +{ + public string EmployeeName { get; set; } + public long EmployeeId { get; set; } + public List Rewards { get; set; } + public string TotalAmount { get; set; } +} + +public class RewardsGroupedByEmployeeViewModelItems +{ + public long Id { get; set; } + public string PersonnelCode { get; set; } + public string Title { get; set; } + public string Amount { get; set; } + public string Description { get; set; } + public string GrantDate { get; set; } +} \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/Reward/RewardsGroupedViewModel.cs b/CompanyManagment.App.Contracts/Reward/RewardsGroupedViewModel.cs new file mode 100644 index 00000000..ac2b0abb --- /dev/null +++ b/CompanyManagment.App.Contracts/Reward/RewardsGroupedViewModel.cs @@ -0,0 +1,13 @@ +using System.Collections.Generic; +using Microsoft.EntityFrameworkCore.Metadata.Builders; + +namespace CompanyManagment.App.Contracts.Reward; + +public class RewardsGroupedViewModel +{ + public List RewardsGroupedByEmployee { get; set; } + public List RewardsGroupedByDate { get; set; } + public List RewardListViewModels { get; set; } +} + + diff --git a/CompanyManagment.App.Contracts/SalaryAid/ISalaryAidApplication.cs b/CompanyManagment.App.Contracts/SalaryAid/ISalaryAidApplication.cs index 8ff51e07..9e8fd182 100644 --- a/CompanyManagment.App.Contracts/SalaryAid/ISalaryAidApplication.cs +++ b/CompanyManagment.App.Contracts/SalaryAid/ISalaryAidApplication.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.Threading.Tasks; using _0_Framework.Application; +using CompanyManagment.App.Contracts.Reward; namespace CompanyManagment.App.Contracts.SalaryAid; @@ -14,5 +15,12 @@ public interface ISalaryAidApplication OperationResult Remove(long id); OperationResult RemoveRange(IEnumerable ids); + #region Pooya + /// + /// گروهبندی بر اساس ماه هنگام جستجو با انتخاب کارمند + /// + SalaryAidsGroupedViewModel GetSearchListAsGrouped(SalaryAidSearchViewModel searchModel); + #endregion + Task CreateRange(List commands); } \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/SalaryAid/SalaryAidGroupedByDateViewModel.cs b/CompanyManagment.App.Contracts/SalaryAid/SalaryAidGroupedByDateViewModel.cs new file mode 100644 index 00000000..15072cfb --- /dev/null +++ b/CompanyManagment.App.Contracts/SalaryAid/SalaryAidGroupedByDateViewModel.cs @@ -0,0 +1,21 @@ +using System.Collections.Generic; + +namespace CompanyManagment.App.Contracts.SalaryAid; + +public class SalaryAidGroupedByDateViewModel +{ + public string MonthFa { get; set; } + public string YearFa { get; set; } + public List SalaryAidViewModels { get; set; } + public string TotalAmount { get; set; } + +} +public class SalaryAidGroupedByDateViewModelItems +{ + public long Id { get; set; } + public string EmployeeName { get; set; } + public string PersonnelCode { get; set; } + public string Amount { get; set; } + public string SalaryAidDateTimeFa { get; set; } +} + diff --git a/CompanyManagment.App.Contracts/SalaryAid/SalaryAidGroupedByEmployeeViewModel.cs b/CompanyManagment.App.Contracts/SalaryAid/SalaryAidGroupedByEmployeeViewModel.cs new file mode 100644 index 00000000..b3d1d9e0 --- /dev/null +++ b/CompanyManagment.App.Contracts/SalaryAid/SalaryAidGroupedByEmployeeViewModel.cs @@ -0,0 +1,19 @@ +using System.Collections.Generic; + +namespace CompanyManagment.App.Contracts.SalaryAid; + +public class SalaryAidGroupedByEmployeeViewModel +{ + public string EmployeeName { get; set; } + public long EmployeeId { get; set; } + public List SalaryAidViewModels { get; set; } + public string TotalAmount { get; set; } + +} +public class SalaryAidGroupedByEmployeeViewModelItems +{ + public long Id { get; set; } + public string SalaryAidDateTimeFa { get; set; } + public string PersonnelCode { get; set; } + public string Amount { get; set; } +} \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/SalaryAid/SalaryAidSearchViewModel.cs b/CompanyManagment.App.Contracts/SalaryAid/SalaryAidSearchViewModel.cs index 68673f63..c6625186 100644 --- a/CompanyManagment.App.Contracts/SalaryAid/SalaryAidSearchViewModel.cs +++ b/CompanyManagment.App.Contracts/SalaryAid/SalaryAidSearchViewModel.cs @@ -12,4 +12,6 @@ public class SalaryAidSearchViewModel public long EmployeeId { get; set; } public long WorkshopId { get; set; } public int PageIndex { get; set; } + public bool ShowAsGrouped { get; set; } + } \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/SalaryAid/SalaryAidViewModel.cs b/CompanyManagment.App.Contracts/SalaryAid/SalaryAidViewModel.cs index ee089072..e415954c 100644 --- a/CompanyManagment.App.Contracts/SalaryAid/SalaryAidViewModel.cs +++ b/CompanyManagment.App.Contracts/SalaryAid/SalaryAidViewModel.cs @@ -15,4 +15,6 @@ public class SalaryAidViewModel public string EmployeeFullName { get; set; } public string PersonnelCode { get; set; } + public string MonthFa { get; set; } + public string YearFa { get; set; } } \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/SalaryAid/SalaryAidsGroupedByEmployeeViewModel.cs b/CompanyManagment.App.Contracts/SalaryAid/SalaryAidsGroupedByEmployeeViewModel.cs new file mode 100644 index 00000000..67868eff --- /dev/null +++ b/CompanyManagment.App.Contracts/SalaryAid/SalaryAidsGroupedByEmployeeViewModel.cs @@ -0,0 +1,12 @@ +using System.Collections.Generic; +using CompanyManagment.App.Contracts.Fine; + +namespace CompanyManagment.App.Contracts.SalaryAid; + +public class SalaryAidsGroupedByEmployeeViewModel +{ + public string EmployeeName { get; set; } + public List Aids { get; set; } + public long EmployeeId { get; set; } + public string PersonnelCode { get; set; } +} \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/SalaryAid/SalaryAidsGroupedViewModel.cs b/CompanyManagment.App.Contracts/SalaryAid/SalaryAidsGroupedViewModel.cs new file mode 100644 index 00000000..4787c202 --- /dev/null +++ b/CompanyManagment.App.Contracts/SalaryAid/SalaryAidsGroupedViewModel.cs @@ -0,0 +1,14 @@ +using System.Collections.Generic; +using System.Security.Cryptography; + +namespace CompanyManagment.App.Contracts.SalaryAid; + +public class SalaryAidsGroupedViewModel +{ + public List GroupedByEmployee { get; set; } + public List GroupedByDate { get; set; } + public List SalaryAidListViewModels { get; set; } + +} + + diff --git a/CompanyManagment.Application/FineApplication.cs b/CompanyManagment.Application/FineApplication.cs index 274b5c0f..39c19008 100644 --- a/CompanyManagment.Application/FineApplication.cs +++ b/CompanyManagment.Application/FineApplication.cs @@ -4,6 +4,7 @@ using System.Linq; using _0_Framework.Application; using Company.Domain.CheckoutAgg; using Company.Domain.CustomizeCheckoutAgg; +using Company.Domain.CustomizeCheckoutTempAgg; using Company.Domain.EmployeeAgg; using Company.Domain.File1; using Company.Domain.FineAgg; @@ -15,33 +16,40 @@ namespace CompanyManagment.Application; public class FineApplication : IFineApplication { - private readonly IFineRepository _fineRepository; - private readonly IWorkshopRepository _workshopRepository; - private readonly IEmployeeRepository _employeeRepository; + private readonly IFineRepository _fineRepository; + private readonly IWorkshopRepository _workshopRepository; + private readonly IEmployeeRepository _employeeRepository; private readonly ICustomizeCheckoutRepository _customizeCheckoutRepository; + public readonly ICustomizeCheckoutTempRepository CustomizeCheckoutTempRepository; + private readonly IAuthHelper _authHelper; - public FineApplication(IFineRepository fineRepository, IEmployeeRepository employeeRepository, IWorkshopRepository workshopRepository, ICustomizeCheckoutRepository customizeCheckoutRepository) - { - _fineRepository = fineRepository; - _employeeRepository = employeeRepository; - _workshopRepository = workshopRepository; + public FineApplication(IFineRepository fineRepository, IEmployeeRepository employeeRepository, + IWorkshopRepository workshopRepository, ICustomizeCheckoutRepository customizeCheckoutRepository, + IAuthHelper authHelper,ICustomizeCheckoutTempRepository customizeCheckoutTempRepository) + { + _fineRepository = fineRepository; + _employeeRepository = employeeRepository; + _workshopRepository = workshopRepository; _customizeCheckoutRepository = customizeCheckoutRepository; + _authHelper = authHelper; + + CustomizeCheckoutTempRepository = customizeCheckoutTempRepository; } - public List GetSearchList(FineSearchViewModel searchModel) - { - return _fineRepository.GetSearchList(searchModel); - } + public List GetSearchList(FineSearchViewModel searchModel) + { + return _fineRepository.GetSearchList(searchModel); + } - public EditFineViewModel GetDetails(long id) - { - return _fineRepository.GetDetails(id); - } + public EditFineViewModel GetDetails(long id) + { + return _fineRepository.GetDetails(id); + } - public OperationResult Remove(long id) - { - OperationResult op = new OperationResult(); - var entity = _fineRepository.Get(id); + public OperationResult Remove(long id) + { + OperationResult op = new OperationResult(); + var entity = _fineRepository.Get(id); if (entity == null) return op.Failed("چنین آیتمی وجود ندارد"); @@ -50,120 +58,174 @@ public class FineApplication : IFineApplication - if (_customizeCheckoutRepository.Exists(x => x.WorkshopId == entity.WorkshopId && entity.EmployeeId==x.EmployeeId && x.YearInt == year && x.MonthInt == month)) + if (_customizeCheckoutRepository.Exists(x => + x.WorkshopId == entity.WorkshopId && entity.EmployeeId == x.EmployeeId && x.YearInt == year && + x.MonthInt == month)) { return op.Failed("این پرسنل در این تاریخ دارای فیش حقوقی است"); } + if (CustomizeCheckoutTempRepository.Exists(x => + x.WorkshopId == entity.WorkshopId && entity.EmployeeId == x.EmployeeId && x.YearInt == year && + x.MonthInt == month && + x.ContractStart <= entity.FineDate && x.ContractEnd >= entity.FineDate)) + { + return op.Failed("این پرسنل در این تاریخ دارای فیش حقوقی است"); + } _fineRepository.Remove(entity); - _fineRepository.SaveChanges(); - return op.Succcedded(); - } + _fineRepository.SaveChanges(); + return op.Succcedded(); + } - public OperationResult RemoveRange(List ids) - { - OperationResult op = new OperationResult(); - var fines = _fineRepository.GetBy(ids); - _fineRepository.RemoveRange(fines); - _fineRepository.SaveChanges(); - return op.Succcedded(); - } + public OperationResult RemoveRange(List ids) + { + OperationResult op = new OperationResult(); + var fines = _fineRepository.GetBy(ids); + _fineRepository.RemoveRange(fines); + _fineRepository.SaveChanges(); + return op.Succcedded(); + } - public OperationResult Create(CreateFineViewModel command) - { - OperationResult op = new(); + /// + /// گروهبندی بر اساس ماه هنگام جستجو با انتخاب کارمند + /// + public FinesGroupedViewModel GetSearchListAsGrouped(FineSearchViewModel searchModel) + { + return _fineRepository.GetSearchListAsGrouped(searchModel); + } - #region Validation + public OperationResult Create(CreateFineViewModel command) + { + OperationResult op = new(); - if (!_workshopRepository.Exists(x => x.id == command.WorkshopId)) - return op.Failed("خطای سیستمی"); - if (!_employeeRepository.Exists(x => command.EmployeeIds.Any(a => a == x.id))) - return op.Failed("خطای سیستمی"); + #region Validation + + if (!_workshopRepository.Exists(x => x.id == command.WorkshopId)) + return op.Failed("خطای سیستمی"); + if (!_employeeRepository.Exists(x => command.EmployeeIds.Any(a => a == x.id))) + return op.Failed("خطای سیستمی"); if (!command.FineDate.TryToGeorgianDateTime(out var fineDate)) { return op.Failed("تاریخ وارد شده نامعتبر است"); } + if (fineDate > DateTime.Now) { return op.Failed("تاریخ پرداخت جریمه می بایست تاریخ امروز یا قبل تر باشد"); } + if (command.Amount.Length > 15) { return op.Failed("مبلغ وارد شده معتبر نیست"); } + var month = Convert.ToInt32(command.FineDate.Substring(5, 2)); var year = Convert.ToInt32(command.FineDate.Substring(0, 4)); - if (_customizeCheckoutRepository.Exists(x=>x.WorkshopId ==command.WorkshopId && command.EmployeeIds.Contains(x.EmployeeId) && x.YearInt==year && x.MonthInt == month)) + if (_customizeCheckoutRepository.Exists(x => + x.WorkshopId == command.WorkshopId && command.EmployeeIds.Contains(x.EmployeeId) && x.YearInt == year && + x.MonthInt == month)) { return op.Failed("شما نمیتوانید برای پرسنلی در تاریخی که برای فیش حقوقی صادر شده است جریمه ای دهید"); } + if (CustomizeCheckoutTempRepository.Exists(x => + x.WorkshopId == command.WorkshopId && command.EmployeeIds.Contains(x.EmployeeId) && x.YearInt == year && + x.MonthInt == month && + x.ContractStart <= fineDate && x.ContractEnd >= fineDate)) + { + return op.Failed("شما نمیتوانید برای پرسنلی در تاریخی که برای فیش حقوقی موقت صادر شده است جریمه ای دهید"); + + } + #endregion + DateTime date = command.FineDate.ToGeorgianDateTime(); + var (userId, userType) = _authHelper.GetUserTypeWithId(); + foreach (var employeeId in command.EmployeeIds) + { + Fine entity = new Fine(employeeId, command.WorkshopId, command.Title, command.Amount.MoneyToDouble(), date, + userId, userType); + _fineRepository.Create(entity); - foreach (var employeeId in command.EmployeeIds) - { - Fine entity = new Fine(employeeId, command.WorkshopId, command.Title, command.Amount.MoneyToDouble(), date); - _fineRepository.Create(entity); + } - } + _fineRepository.SaveChanges(); + return op.Succcedded(); + } - _fineRepository.SaveChanges(); - return op.Succcedded(); - } + public OperationResult Edit(EditFineViewModel command) + { + OperationResult op = new(); + var entity = _fineRepository.Get(command.Id); + if (entity == null) + return op.Failed("چنین جریمه ای یافت نشد"); + if (command.EmployeeId <= 0) + { + return op.Failed("خطای سیستمی!"); + } - public OperationResult Edit(EditFineViewModel command) - { - OperationResult op = new(); - var entity = _fineRepository.Get(command.Id); - if (entity == null) - return op.Failed("چنین جریمه ای یافت نشد"); - if (command.EmployeeId <= 0) - { - return op.Failed("خطای سیستمی!"); - } - if (!command.FineDate.TryToGeorgianDateTime(out var fineDate)) - { - return op.Failed("تاریخ وارد شده نامعتبر است"); - } - if (fineDate > DateTime.Now) - { - return op.Failed("تاریخ پرداخت جریمه می بایست تاریخ امروز یا قبل تر باشد"); + if (!command.FineDate.TryToGeorgianDateTime(out var fineDate)) + { + return op.Failed("تاریخ وارد شده نامعتبر است"); + } + + if (fineDate > DateTime.Now) + { + return op.Failed("تاریخ پرداخت جریمه می بایست تاریخ امروز یا قبل تر باشد"); + + } - } if (command.Amount.Length > 15) { return op.Failed("مبلغ وارد شده معتبر نیست"); } + var month = Convert.ToInt32(command.FineDate.Substring(5, 2)); var year = Convert.ToInt32(command.FineDate.Substring(0, 4)); + if (!_employeeRepository.Exists(x => x.id == command.EmployeeId)) + { + return op.Failed("شخص وارد شده معتبر نمیباشد"); + } - if (_customizeCheckoutRepository.Exists(x => x.WorkshopId == command.WorkshopId && command.EmployeeId == x.EmployeeId && x.YearInt == year && x.MonthInt == month)) + if (_customizeCheckoutRepository.Exists(x => + x.WorkshopId == command.WorkshopId && command.EmployeeId == x.EmployeeId && x.YearInt == year && + x.MonthInt == month)) { return op.Failed("شما نمیتوانید برای پرسنلی در تاریخی که برای فیش حقوقی صادر شده است جریمه ای دهید"); } - if (!_employeeRepository.Exists(x=>x.id == command.EmployeeId)) - { - return op.Failed("شخص وارد شده معتبر نمیباشد"); - } - DateTime date = command.FineDate.ToGeorgianDateTime(); + if (CustomizeCheckoutTempRepository.Exists(x => + x.WorkshopId == command.WorkshopId && command.EmployeeId == x.EmployeeId && x.YearInt == year && + x.MonthInt == month && + x.ContractStart <= fineDate && x.ContractEnd >= fineDate)) + { + return op.Failed("شما نمیتوانید برای پرسنلی در تاریخی که برای فیش حقوقی موقت صادر شده است جریمه ای دهید"); + } + + if (!_employeeRepository.Exists(x => x.id == command.EmployeeId)) + { + return op.Failed("شخص وارد شده معتبر نمیباشد"); + } + + DateTime date = command.FineDate.ToGeorgianDateTime(); + var (userId, userType) = _authHelper.GetUserTypeWithId(); - entity.Edit(command.EmployeeId, command.WorkshopId, command.Title, command.Amount.MoneyToDouble(), date); + entity.Edit(command.EmployeeId, command.WorkshopId, command.Title, command.Amount.MoneyToDouble(), date, + userId, userType); - _fineRepository.SaveChanges(); - return op.Succcedded(entity.id); + _fineRepository.SaveChanges(); + return op.Succcedded(entity.id); - } -} \ No newline at end of file + } +} diff --git a/CompanyManagment.Application/LoanApplication.cs b/CompanyManagment.Application/LoanApplication.cs index a5326dcc..9161e8f6 100644 --- a/CompanyManagment.Application/LoanApplication.cs +++ b/CompanyManagment.Application/LoanApplication.cs @@ -6,11 +6,13 @@ using System.Reflection.Metadata.Ecma335; using _0_Framework.Application; using Company.Domain.CheckoutAgg; using Company.Domain.CustomizeCheckoutAgg; +using Company.Domain.CustomizeCheckoutTempAgg; using Company.Domain.LoanAgg; using Company.Domain.LoanAgg.Entities; using CompanyManagment.App.Contracts.Loan; using Hangfire.States; using Microsoft.AspNetCore.Mvc.Infrastructure; +using Microsoft.Extensions.Configuration.UserSecrets; namespace CompanyManagment.Application; @@ -18,11 +20,15 @@ public class LoanApplication : ILoanApplication { private readonly ILoanRepository _loanRepository; private readonly ICustomizeCheckoutRepository _customizeCheckoutRepository; + private readonly IAuthHelper _authHelper; + private readonly ICustomizeCheckoutTempRepository _customizeCheckoutTempRepository; - public LoanApplication(ILoanRepository loanRepository, ICustomizeCheckoutRepository customizeCheckoutRepository) + public LoanApplication(ILoanRepository loanRepository, ICustomizeCheckoutRepository customizeCheckoutRepository, ICustomizeCheckoutTempRepository customizeCheckoutTempRepository, IAuthHelper authHelper) { _loanRepository = loanRepository; _customizeCheckoutRepository = customizeCheckoutRepository; + _authHelper = authHelper; + _customizeCheckoutTempRepository = customizeCheckoutTempRepository; } public List GetSearchList(LoanSearchViewModel searchModel) @@ -51,15 +57,15 @@ public class LoanApplication : ILoanApplication var lastInstallment = installment.MaxBy(x => x.DateGr).DateGr; #region Validation - //if (startInstallmentDate.Date < now.Date) - //{ - // return op.Failed("تاریخ شروع وام نمیتواند در گذشته باشد"); - //} + if (startInstallmentDate.Date < now.Date) + { + return op.Failed("تاریخ شروع وام نمیتواند در گذشته باشد"); + } - //if (loanGrantDate>now) - //{ - // return op.Failed("تاریخ پرداخت وام می بایست تاریخ امروز یا قبل تر باشد"); - //} + if (loanGrantDate>now) + { + return op.Failed("تاریخ پرداخت وام می بایست تاریخ امروز یا قبل تر باشد"); + } if (!command.LoanGrantDate.TryToGeorgianDateTime(out var grantDate)) { @@ -68,23 +74,32 @@ public class LoanApplication : ILoanApplication if (amountD < 1000000) return op.Failed("حداقل مبلغ وام 1.000.000 ریال میباشد"); - //if (_customizeCheckoutRepository.Exists(x => - // command.EmployeeIds.Contains(x.EmployeeId) && x.WorkshopId == command.WorkshopId && - // (x.ContractStart > startInstallmentDate && x.ContractStart < lastInstallment))) - //{ - // return op.Failed("شما نمیتوانید برای پرسنلی در تاریخی که برای فیش حقوقی صادر شده است وام دهید"); - //} + if (_customizeCheckoutRepository.Exists(x => + command.EmployeeIds.Contains(x.EmployeeId) && x.WorkshopId == command.WorkshopId && + (x.ContractStart > startInstallmentDate && x.ContractStart < lastInstallment))) + { + return op.Failed("شما نمیتوانید برای پرسنلی در تاریخی که برای فیش حقوقی صادر شده است وام دهید"); + } + + if (_customizeCheckoutTempRepository.Exists(x => + command.EmployeeIds.Contains(x.EmployeeId) && x.WorkshopId == command.WorkshopId && + (x.ContractStart >= startInstallmentDate && x.ContractStart <= lastInstallment))) + { + return op.Failed("پرسنل در بازه اقساط خود دارای فیش غیررسمی است"); + } #endregion - foreach (var employeeId in command.EmployeeIds) + var (userId, userType) = _authHelper.GetUserTypeWithId(); + + foreach (var employeeId in command.EmployeeIds) { var entity = new Loan(employeeId, command.WorkshopId, startInstallmentDate, command.Count.ToString(), command.Amount.MoneyToDouble(), installment.First().Amount.MoneyToDouble(), installment.Select(x => new LoanInstallment(x.Amount.MoneyToDouble(), x.Month, x.Year, x.DateGr)).ToList() - , command.GetRounded, grantDate); + , command.GetRounded, grantDate,userId,userType); _loanRepository.Create(entity); } @@ -93,7 +108,6 @@ public class LoanApplication : ILoanApplication return op.Succcedded(); } - public List CalculateLoanInstallment(string amount, int installmentCount, string loanStartDate, bool getRounded) { int day = Convert.ToInt32(loanStartDate.Substring(8, 2)); @@ -227,11 +241,19 @@ public class LoanApplication : ILoanApplication if (_customizeCheckoutRepository.Exists(x => entity.EmployeeId == x.EmployeeId && x.WorkshopId == entity.WorkshopId && - (x.ContractStart > entity.StartInstallmentPayment && x.ContractStart < lastInstallment))) + (x.ContractStart >= entity.StartInstallmentPayment && x.ContractStart <= lastInstallment))) { return op.Failed("این پرسنل در این تاریخ دارای فیش حقوقی است"); } + if (_customizeCheckoutTempRepository.Exists(x => + entity.EmployeeId == x.EmployeeId && x.WorkshopId == entity.WorkshopId && + (x.ContractStart >= entity.StartInstallmentPayment && x.ContractStart <= lastInstallment))) + { + return op.Failed("پرسنل در بازه اقساط خود دارای فیش غیررسمی است"); + } + + _loanRepository.Remove(entity); _loanRepository.SaveChanges(); @@ -247,4 +269,9 @@ public class LoanApplication : ILoanApplication _loanRepository.SaveChanges(); return op.Succcedded(); } + + public LoanGroupedViewModel GetSearchListAsGrouped(LoanSearchViewModel searchModel) + { + return _loanRepository.GetSearchListAsGrouped(searchModel); + } } \ No newline at end of file diff --git a/CompanyManagment.Application/RewardApplication.cs b/CompanyManagment.Application/RewardApplication.cs index f22ce26b..0d441e22 100644 --- a/CompanyManagment.Application/RewardApplication.cs +++ b/CompanyManagment.Application/RewardApplication.cs @@ -5,6 +5,7 @@ using System.Linq; using _0_Framework.Application; using Company.Domain.CheckoutAgg; using Company.Domain.CustomizeCheckoutAgg; +using Company.Domain.CustomizeCheckoutTempAgg; using Company.Domain.RewardAgg; using CompanyManagment.App.Contracts.Reward; using Microsoft.AspNetCore.Components.Forms; @@ -17,6 +18,7 @@ public class RewardApplication : IRewardApplication private readonly IRewardRepository _rewardRepository; private readonly IAuthHelper _authHelper; private readonly ICustomizeCheckoutRepository _customizeCheckoutRepository; + private readonly ICustomizeCheckoutTempRepository _customizeCheckoutTempRepository; public RewardApplication(IRewardRepository rewardRepository, IAuthHelper authHelper, ICustomizeCheckoutRepository customizeCheckoutRepository) { @@ -27,7 +29,7 @@ public class RewardApplication : IRewardApplication public List GetSearchList(RewardSearchModel searchModel) { - return _rewardRepository.GetSearchList(searchModel); + return _rewardRepository.GetSearchList(searchModel); } @@ -37,23 +39,31 @@ public class RewardApplication : IRewardApplication public EditRewardViewModel GetDetails(long id) { - return _rewardRepository.GetDetails(id); + return _rewardRepository.GetDetails(id); } public OperationResult Remove(long id) { OperationResult op = new OperationResult(); - var entity =_rewardRepository.Get(id); + var entity = _rewardRepository.Get(id); if (entity == null) - return op.Failed("این آیتم وجود ندارد"); + return op.Failed("این آیتم وجود ندارد"); var month = Convert.ToInt32(entity.GrantDate.ToFarsi().Substring(5, 2)); - var year= Convert.ToInt32(entity.GrantDate.ToFarsi().Substring(0, 4)); + var year = Convert.ToInt32(entity.GrantDate.ToFarsi().Substring(0, 4)); - if (_customizeCheckoutRepository.Exists(x => x.WorkshopId == entity.WorkshopId && entity.EmployeeId==x.EmployeeId && x.YearInt == year && x.MonthInt == month)) + if (_customizeCheckoutRepository.Exists(x => x.WorkshopId == entity.WorkshopId && entity.EmployeeId == x.EmployeeId && x.YearInt == year && x.MonthInt == month)) { return op.Failed("این پرسنل در این تاریخ دارای فیش حقوقی است"); } + + if (_customizeCheckoutTempRepository.Exists(x => x.WorkshopId == entity.WorkshopId && entity.EmployeeId == x.EmployeeId && + x.YearInt == year && x.MonthInt == month && x.ContractStart <= entity.GrantDate && x.ContractEnd >= entity.GrantDate)) + { + return op.Failed("این پرسنل در این تاریخ دارای فیش حقوقی موقت است"); + + } + _rewardRepository.Remove(entity); _rewardRepository.SaveChanges(); return op.Succcedded(); @@ -61,24 +71,24 @@ public class RewardApplication : IRewardApplication public OperationResult RemoveRange(IEnumerable ids) { - OperationResult op = new OperationResult(); - var rewards = _rewardRepository.GetBy(ids); - _rewardRepository.RemoveRange(rewards); - _rewardRepository.SaveChanges(); - return op.Succcedded(); + OperationResult op = new OperationResult(); + var rewards = _rewardRepository.GetBy(ids); + _rewardRepository.RemoveRange(rewards); + _rewardRepository.SaveChanges(); + return op.Succcedded(); - } + } public OperationResult Create(CreateRewardViewModel command) { var op = new OperationResult(); - #region Validation + #region Validation - if (!command.GrantDate.TryToGeorgianDateTime(out var grantDate)) - { - return op.Failed("تاریخ وارد شده نامعتبر است"); - } + if (!command.GrantDate.TryToGeorgianDateTime(out var grantDate)) + { + return op.Failed("تاریخ وارد شده نامعتبر است"); + } if (grantDate > DateTime.Now) { @@ -86,7 +96,7 @@ public class RewardApplication : IRewardApplication } - if (command.Amount.Length>15) + if (command.Amount.Length > 15) { return op.Failed("مبلغ وارد شده معتبر نیست"); } @@ -97,19 +107,28 @@ public class RewardApplication : IRewardApplication if (_customizeCheckoutRepository.Exists(x => x.WorkshopId == command.WorkshopId && command.EmployeeIds.Contains(x.EmployeeId) && x.YearInt == year && x.MonthInt == month)) { return op.Failed("شما نمیتوانید برای پرسنلی در تاریخی که برای فیش حقوقی صادر شده است پاداشی دهید"); - } + } + + if (_customizeCheckoutTempRepository.Exists(x => x.WorkshopId == command.WorkshopId && command.EmployeeIds.Contains(x.EmployeeId) && + x.YearInt == year && x.MonthInt == month && x.ContractStart <= grantDate && x.ContractEnd >= grantDate)) + { + return op.Failed("شما نمیتوانید برای پرسنلی در تاریخی که برای فیش حقوقی موقت صادر شده است پاداشی دهید"); + } + + + - #endregion + var (userId, userType) = _authHelper.GetUserTypeWithId(); - foreach (var employeeId in command.EmployeeIds) + foreach (var employeeId in command.EmployeeIds) { var entity = new Reward(employeeId, command.WorkshopId, command.Amount.MoneyToDouble(), command.Description, - command.RewardedByAccountId, grantDate,command.Title); + userId, userType,grantDate,command.Title); + + _rewardRepository.Create(entity); + } - _rewardRepository.Create(entity); - } - _rewardRepository.SaveChanges(); return op.Succcedded(); } @@ -140,24 +159,33 @@ public class RewardApplication : IRewardApplication var month = Convert.ToInt32(command.GrantDate.Substring(5, 2)); var year = Convert.ToInt32(command.GrantDate.Substring(0, 4)); - if (_customizeCheckoutRepository.Exists(x => x.WorkshopId == command.WorkshopId && command.EmployeeId==x.EmployeeId && x.YearInt == year && x.MonthInt == month)) + if (_customizeCheckoutRepository.Exists(x => x.WorkshopId == command.WorkshopId && command.EmployeeId == x.EmployeeId && x.YearInt == year && x.MonthInt == month)) { return op.Failed("شما نمیتوانید برای پرسنلی در تاریخی که برای فیش حقوقی صادر شده است پاداشی دهید"); } + var (userId, userType) = _authHelper.GetUserTypeWithId(); - entity.Edit(command.Amount.MoneyToDouble(),command.Description,command.RewardedByAccountId, grantDate,command.Title); + if (_customizeCheckoutTempRepository.Exists(x => x.WorkshopId == command.WorkshopId && entity.EmployeeId == x.EmployeeId && + x.YearInt == year && x.MonthInt == month && x.ContractStart <= grantDate && x.ContractEnd >= grantDate)) + { + return op.Failed("شما نمیتوانید برای پرسنلی در تاریخی که برای فیش حقوقی موقت صادر شده است پاداشی دهید"); + } + + + entity.Edit(command.Amount.MoneyToDouble(),command.Description,userId,userType, grantDate,command.Title); _rewardRepository.SaveChanges(); return op.Succcedded(entity.id); } - #region Pooya + #region Pooya + /// /// گروهبندی بر اساس ماه هنگام جستجو با انتخاب کارمند /// - public List GetSearchListByEmployee(RewardSearchModel searchModel) + public RewardsGroupedViewModel GetSearchListAsGrouped(RewardSearchModel searchModel) { - return _rewardRepository.GetSearchListByEmployee(searchModel); + return _rewardRepository.GetSearchListAsGrouped(searchModel); } #endregion diff --git a/CompanyManagment.Application/SalaryAidApplication.cs b/CompanyManagment.Application/SalaryAidApplication.cs index c17684b6..3cd9f16d 100644 --- a/CompanyManagment.Application/SalaryAidApplication.cs +++ b/CompanyManagment.Application/SalaryAidApplication.cs @@ -8,7 +8,10 @@ using CompanyManagment.App.Contracts.Checkout; using System; using System.Threading.Tasks; using Company.Domain.CustomizeCheckoutAgg; +using Company.Domain.CustomizeCheckoutTempAgg; using Company.Domain.EmployeeAgg; +using CompanyManagment.App.Contracts.Reward; +using OfficeOpenXml.Drawing.Chart; namespace CompanyManagment.Application; @@ -17,14 +20,21 @@ public class SalaryAidApplication : ISalaryAidApplication private readonly ISalaryAidRepository _salaryAidRepository; private readonly ICustomizeCheckoutRepository _customizeCheckoutRepository; private readonly IEmployeeRepository _employeeRepository; + private readonly ICustomizeCheckoutTempRepository _customizeCheckoutTempRepository; + private readonly IAuthHelper _authHelper; + - public SalaryAidApplication(ISalaryAidRepository salaryAidRepository, ICustomizeCheckoutRepository customizeCheckoutRepository, IEmployeeRepository employeeRepository) + public SalaryAidApplication(ISalaryAidRepository salaryAidRepository, ICustomizeCheckoutRepository customizeCheckoutRepository, + IEmployeeRepository employeeRepository, ICustomizeCheckoutTempRepository customizeCheckoutTempRepository, IAuthHelper authHelper) { _salaryAidRepository = salaryAidRepository; _customizeCheckoutRepository = customizeCheckoutRepository; + _authHelper = authHelper; _employeeRepository = employeeRepository; + _customizeCheckoutTempRepository = customizeCheckoutTempRepository; } + public List GetSearchList(SalaryAidSearchViewModel searchViewModel) { return _salaryAidRepository.GetSearchList(searchViewModel); @@ -61,11 +71,17 @@ public class SalaryAidApplication : ISalaryAidApplication { return op.Failed("شما نمیتوانید برای پرسنلی در تاریخی که برای فیش حقوقی صادر شده است مساعده ای دهید"); } + if (_customizeCheckoutTempRepository.Exists(x => x.WorkshopId == command.WorkshopId && command.EmployeeIds.Contains(x.EmployeeId) && + x.YearInt == year && x.MonthInt == month && x.ContractStart <= startDate && x.ContractEnd >= startDate)) + { + return op.Failed("شما نمیتوانید برای پرسنلی در تاریخی که برای فیش حقوقی موقت صادر شده است مساعده ای دهید"); + } + var (userId, userType) = _authHelper.GetUserTypeWithId(); - foreach (var employeeId in command.EmployeeIds) + foreach (var employeeId in command.EmployeeIds) { - var entity = new SalaryAid(employeeId, command.WorkshopId, command.Amount.MoneyToDouble(), startDate); + var entity = new SalaryAid(employeeId, command.WorkshopId, command.Amount.MoneyToDouble(), startDate,userId,userType); _salaryAidRepository.Create(entity); } @@ -101,8 +117,14 @@ public class SalaryAidApplication : ISalaryAidApplication if (_customizeCheckoutRepository.Exists(x => x.WorkshopId == entity.WorkshopId && entity.EmployeeId == x.EmployeeId && x.YearInt == year && x.MonthInt == month)) return op.Failed("شما نمیتوانید برای پرسنلی در تاریخی که برای فیش حقوقی صادر شده است مساعده ای دهید"); + if (_customizeCheckoutTempRepository.Exists(x => x.WorkshopId == command.WorkshopId && command.EmployeeIds.Contains(x.EmployeeId) && + x.YearInt == year && x.MonthInt == month && x.ContractStart <= startDate && x.ContractEnd >= startDate)) + { + return op.Failed("شما نمیتوانید برای پرسنلی در تاریخی که برای فیش حقوقی موقت صادر شده است مساعده ای دهید"); + } + var (userId, userType) = _authHelper.GetUserTypeWithId(); - entity.Edit(Tools.MoneyToDouble(command.Amount),startDate); + entity.Edit(Tools.MoneyToDouble(command.Amount),startDate,userId,userType); _salaryAidRepository.SaveChanges(); return op.Succcedded(); } @@ -121,6 +143,12 @@ public class SalaryAidApplication : ISalaryAidApplication return op.Failed("این پرسنل در این تاریخ دارای فیش حقوقی است"); + if (_customizeCheckoutTempRepository.Exists(x => x.WorkshopId == entity.WorkshopId && entity.EmployeeId == x.EmployeeId && + x.YearInt == year && x.MonthInt == month && x.ContractStart <= entity.SalaryAidDateTime && x.ContractEnd >= entity.SalaryAidDateTime)) + { + return op.Failed("این پرسنل در این تاریخ دارای فیش حقوقی موقت است"); + } + _salaryAidRepository.Remove(entity); _salaryAidRepository.SaveChanges(); return op.Succcedded(); @@ -135,6 +163,7 @@ public class SalaryAidApplication : ISalaryAidApplication return op.Succcedded(); } + public async Task CreateRange(List commands) { var op = new OperationResult(); @@ -164,8 +193,8 @@ public class SalaryAidApplication : ISalaryAidApplication { return op.Failed("شما نمیتوانید برای پرسنلی در تاریخی که برای فیش حقوقی صادر شده است مساعده ای دهید"); } - - foreach (var employeeId in command.EmployeeIds) + var (userId, userType) = _authHelper.GetUserTypeWithId(); + foreach (var employeeId in command.EmployeeIds) { var id = employeeId; if (employeeId == 0) @@ -174,11 +203,22 @@ public class SalaryAidApplication : ISalaryAidApplication id = employee.id; } - var entity = new SalaryAid(id, command.WorkshopId, command.Amount.MoneyToDouble(), startDate); + var entity = new SalaryAid(id, command.WorkshopId, command.Amount.MoneyToDouble(), startDate, userId, userType); await _salaryAidRepository.CreateAsync(entity); } } await _salaryAidRepository.SaveChangesAsync(); return op.Succcedded(); } + #region Pooya + /// + /// گروهبندی بر اساس ماه هنگام جستجو با انتخاب کارمند + /// + public SalaryAidsGroupedViewModel GetSearchListAsGrouped(SalaryAidSearchViewModel searchModel) + { + return _salaryAidRepository.GetSearchListAsGrouped(searchModel); + } + + + #endregion } \ No newline at end of file diff --git a/CompanyManagment.EFCore/Mapping/FineMapping.cs b/CompanyManagment.EFCore/Mapping/FineMapping.cs index 049d1cf2..421f77b9 100644 --- a/CompanyManagment.EFCore/Mapping/FineMapping.cs +++ b/CompanyManagment.EFCore/Mapping/FineMapping.cs @@ -17,5 +17,8 @@ public class FineMapping:IEntityTypeConfiguration v => v.ToString(), v => (IsActive)Enum.Parse(typeof(IsActive), v)).HasMaxLength(5); builder.Property(x => x.Title).HasMaxLength(255); - } + + builder.Property(x => x.CreatedByUserType).HasConversion().HasMaxLength(50); + builder.Property(x => x.LastModifiedByUserType).HasConversion().HasMaxLength(50); + } } \ No newline at end of file diff --git a/CompanyManagment.EFCore/Mapping/LoanMapping.cs b/CompanyManagment.EFCore/Mapping/LoanMapping.cs index 525cc771..fba8c6ca 100644 --- a/CompanyManagment.EFCore/Mapping/LoanMapping.cs +++ b/CompanyManagment.EFCore/Mapping/LoanMapping.cs @@ -31,5 +31,7 @@ public class LoanMapping : IEntityTypeConfiguration builder.Ignore(x => x.StartDateYear); builder.Ignore(x => x.StartDateMonth); - } + + builder.Property(x => x.CreatedByUserType).HasConversion().HasMaxLength(50); + } } \ No newline at end of file diff --git a/CompanyManagment.EFCore/Mapping/RewardMapping.cs b/CompanyManagment.EFCore/Mapping/RewardMapping.cs index 98f6c1c1..f32ecd66 100644 --- a/CompanyManagment.EFCore/Mapping/RewardMapping.cs +++ b/CompanyManagment.EFCore/Mapping/RewardMapping.cs @@ -3,6 +3,7 @@ using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Metadata.Builders; using System; using _0_Framework.Application; +using CompanyManagment.App.Contracts.Reward.Enums; namespace CompanyManagment.EFCore.Mapping; @@ -19,5 +20,9 @@ public class RewardMapping:IEntityTypeConfiguration builder.Property(x => x.Title).HasMaxLength(255); builder.Property(x => x.RewardType).HasConversion().HasMaxLength(50); + + builder.Property(x => x.CreatedByUserType).HasConversion().HasMaxLength(50); + builder.Property(x => x.LastModifiedByUserType).HasConversion().HasMaxLength(50); + } } \ No newline at end of file diff --git a/CompanyManagment.EFCore/Mapping/SalaryAidMapping.cs b/CompanyManagment.EFCore/Mapping/SalaryAidMapping.cs index 2817e517..982ca1ba 100644 --- a/CompanyManagment.EFCore/Mapping/SalaryAidMapping.cs +++ b/CompanyManagment.EFCore/Mapping/SalaryAidMapping.cs @@ -10,6 +10,10 @@ public class SalaryAidMapping:IEntityTypeConfiguration { builder.ToTable("SalaryAids"); builder.HasKey(x => x.id); - - } + + builder.Property(x => x.CreatedByUserType).HasConversion().HasMaxLength(50); + builder.Property(x => x.LastModifiedByUserType).HasConversion().HasMaxLength(50); + + + } } \ No newline at end of file diff --git a/CompanyManagment.EFCore/Migrations/20250413184901_add grouping loan reward SA fine.Designer.cs b/CompanyManagment.EFCore/Migrations/20250413184901_add grouping loan reward SA fine.Designer.cs new file mode 100644 index 00000000..ba9fc70d --- /dev/null +++ b/CompanyManagment.EFCore/Migrations/20250413184901_add grouping loan reward SA fine.Designer.cs @@ -0,0 +1,9346 @@ +// +using System; +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("20250413184901_add grouping loan reward SA fine")] + partial class addgroupingloanrewardSAfine + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "8.0.10") + .HasAnnotation("Relational:MaxIdentifierLength", 128); + + SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); + + modelBuilder.Entity("Company.Domain.AndroidApkVersionAgg.AndroidApkVersion", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("IsActive") + .IsRequired() + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("Path") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Title") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + 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.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.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("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("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("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.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.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("City") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DateOfBirth") + .HasColumnType("datetime2"); + + b.Property("FName") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + 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(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("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("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("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.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("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("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("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.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("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + 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("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("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("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.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.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(50) + .HasColumnType("nvarchar(50)"); + + 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("EmployeeManualCount") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("ExtensionNo") + .HasColumnType("int"); + + b.Property("HasValueAddedTax") + .HasColumnType("nvarchar(max)"); + + b.Property("IsActiveString") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("Obligation") + .HasColumnType("float"); + + b.Property("OfficialCompany") + .HasMaxLength(12) + .HasColumnType("nvarchar(12)"); + + b.Property("RepresentativeId") + .HasColumnType("bigint"); + + b.Property("RepresentativeName") + .HasMaxLength(80) + .HasColumnType("nvarchar(80)"); + + b.Property("Signature") + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + 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("WorkshopManualCount") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.HasKey("id"); + + b.ToTable("InstitutionContracts", (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(50) + .HasColumnType("nvarchar(50)"); + + 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("InsuranceJobId") + .HasColumnType("bigint"); + + b.Property("PercentageLessThan") + .HasColumnType("float"); + + b.Property("PercentageMoreThan") + .HasColumnType("float"); + + b.Property("SalaeyLessThan") + .HasColumnType("float"); + + b.Property("SalaryMoreThan") + .HasColumnType("float"); + + 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.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.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("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.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.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("AccountId"); + + 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("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.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("State") + .HasMaxLength(35) + .HasColumnType("nvarchar(35)"); + + b.HasKey("id"); + + b.ToTable("ContractingPartyTemp", (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("CreationDate") + .HasColumnType("datetime2"); + + b.Property("FixedSalary") + .HasColumnType("bit"); + + b.Property("HasRollCallFreeVip") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + 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("IsClassified") + .HasColumnType("bit"); + + b.Property("IsOldContract") + .HasColumnType("bit"); + + b.Property("Population") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + 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("IsActive") + .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.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.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.Navigation("Workshop"); + }); + + 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.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.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("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("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("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("SalaryAidDateTime") + .HasColumnType("datetime2"); + + b1.Property("SalaryAidDateTimeFa") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b1.HasKey("CustomizeCheckoutid", "Id"); + + b1.ToTable("CustomizeCheckoutSalaryAid"); + + b1.WithOwner() + .HasForeignKey("CustomizeCheckoutid"); + }); + + 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.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("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("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("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("SalaryAidDateTime") + .HasColumnType("datetime2"); + + b1.Property("SalaryAidDateTimeFa") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b1.HasKey("CustomizeCheckoutTempid", "Id"); + + b1.ToTable("CustomizeCheckoutTempSalaryAid"); + + b1.WithOwner() + .HasForeignKey("CustomizeCheckoutTempid"); + }); + + 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.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"); + }); + + 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.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"); + }); + + 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.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("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.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.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.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.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.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("AccountId") + .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.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.ContarctingPartyAgg.PersonalContractingParty", b => + { + 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.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("ContactInfoList"); + }); + + 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.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.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/20250413184901_add grouping loan reward SA fine.cs b/CompanyManagment.EFCore/Migrations/20250413184901_add grouping loan reward SA fine.cs new file mode 100644 index 00000000..f913172d --- /dev/null +++ b/CompanyManagment.EFCore/Migrations/20250413184901_add grouping loan reward SA fine.cs @@ -0,0 +1,178 @@ +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace CompanyManagment.EFCore.Migrations +{ + /// + public partial class addgroupingloanrewardSAfine : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.RenameColumn( + name: "RewardedByAccountId", + table: "Rewards", + newName: "LastModifiedByAccountId"); + + migrationBuilder.AddColumn( + name: "CreatedByAccountId", + table: "SalaryAids", + type: "bigint", + nullable: false, + defaultValue: 0L); + + migrationBuilder.AddColumn( + name: "CreatedByUserType", + table: "SalaryAids", + type: "nvarchar(50)", + maxLength: 50, + nullable: false, + defaultValue: ""); + + migrationBuilder.AddColumn( + name: "LastModifiedByAccountId", + table: "SalaryAids", + type: "bigint", + nullable: false, + defaultValue: 0L); + + migrationBuilder.AddColumn( + name: "LastModifiedByUserType", + table: "SalaryAids", + type: "nvarchar(50)", + maxLength: 50, + nullable: false, + defaultValue: ""); + + migrationBuilder.AddColumn( + name: "CreatedByAccountId", + table: "Rewards", + type: "bigint", + nullable: false, + defaultValue: 0L); + + migrationBuilder.AddColumn( + name: "CreatedByUserType", + table: "Rewards", + type: "nvarchar(50)", + maxLength: 50, + nullable: false, + defaultValue: ""); + + migrationBuilder.AddColumn( + name: "LastModifiedByUserType", + table: "Rewards", + type: "nvarchar(50)", + maxLength: 50, + nullable: false, + defaultValue: ""); + + migrationBuilder.AddColumn( + name: "CreatedByAccountId", + table: "Loan", + type: "bigint", + nullable: false, + defaultValue: 0L); + + migrationBuilder.AddColumn( + name: "CreatedByUserType", + table: "Loan", + type: "nvarchar(50)", + maxLength: 50, + nullable: false, + defaultValue: ""); + + migrationBuilder.AddColumn( + name: "CreatedByAccountId", + table: "Fines", + type: "bigint", + nullable: false, + defaultValue: 0L); + + migrationBuilder.AddColumn( + name: "CreatedByUserType", + table: "Fines", + type: "nvarchar(50)", + maxLength: 50, + nullable: false, + defaultValue: ""); + + migrationBuilder.AddColumn( + name: "LastModifiedByAccountId", + table: "Fines", + type: "bigint", + nullable: false, + defaultValue: 0L); + + migrationBuilder.AddColumn( + name: "LastModifiedByUserType", + table: "Fines", + type: "nvarchar(50)", + maxLength: 50, + nullable: false, + defaultValue: ""); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropColumn( + name: "CreatedByAccountId", + table: "SalaryAids"); + + migrationBuilder.DropColumn( + name: "CreatedByUserType", + table: "SalaryAids"); + + migrationBuilder.DropColumn( + name: "LastModifiedByAccountId", + table: "SalaryAids"); + + migrationBuilder.DropColumn( + name: "LastModifiedByUserType", + table: "SalaryAids"); + + migrationBuilder.DropColumn( + name: "CreatedByAccountId", + table: "Rewards"); + + migrationBuilder.DropColumn( + name: "CreatedByUserType", + table: "Rewards"); + + migrationBuilder.DropColumn( + name: "LastModifiedByUserType", + table: "Rewards"); + + migrationBuilder.DropColumn( + name: "CreatedByAccountId", + table: "Loan"); + + migrationBuilder.DropColumn( + name: "CreatedByUserType", + table: "Loan"); + + migrationBuilder.DropColumn( + name: "CreatedByAccountId", + table: "Fines"); + + migrationBuilder.DropColumn( + name: "CreatedByUserType", + table: "Fines"); + + migrationBuilder.DropColumn( + name: "LastModifiedByAccountId", + table: "Fines"); + + migrationBuilder.DropColumn( + name: "LastModifiedByUserType", + table: "Fines"); + + migrationBuilder.RenameColumn( + name: "LastModifiedByAccountId", + table: "Rewards", + newName: "RewardedByAccountId"); + } + } +} diff --git a/CompanyManagment.EFCore/Migrations/CompanyContextModelSnapshot.cs b/CompanyManagment.EFCore/Migrations/CompanyContextModelSnapshot.cs index bffc7787..3bb09f5d 100644 --- a/CompanyManagment.EFCore/Migrations/CompanyContextModelSnapshot.cs +++ b/CompanyManagment.EFCore/Migrations/CompanyContextModelSnapshot.cs @@ -2536,6 +2536,14 @@ namespace CompanyManagment.EFCore.Migrations b.Property("Amount") .HasColumnType("float"); + b.Property("CreatedByAccountId") + .HasColumnType("bigint"); + + b.Property("CreatedByUserType") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + b.Property("CreationDate") .HasColumnType("datetime2"); @@ -2550,6 +2558,14 @@ namespace CompanyManagment.EFCore.Migrations .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)"); @@ -3619,6 +3635,14 @@ namespace CompanyManagment.EFCore.Migrations .HasMaxLength(3) .HasColumnType("nvarchar(3)"); + b.Property("CreatedByAccountId") + .HasColumnType("bigint"); + + b.Property("CreatedByUserType") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + b.Property("CreationDate") .HasColumnType("datetime2"); @@ -4324,6 +4348,14 @@ namespace CompanyManagment.EFCore.Migrations b.Property("Amount") .HasColumnType("float"); + b.Property("CreatedByAccountId") + .HasColumnType("bigint"); + + b.Property("CreatedByUserType") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + b.Property("CreationDate") .HasColumnType("datetime2"); @@ -4341,13 +4373,18 @@ namespace CompanyManagment.EFCore.Migrations .HasMaxLength(5) .HasColumnType("nvarchar(5)"); - b.Property("RewardType") + b.Property("LastModifiedByAccountId") + .HasColumnType("bigint"); + + b.Property("LastModifiedByUserType") .IsRequired() .HasMaxLength(50) .HasColumnType("nvarchar(50)"); - b.Property("RewardedByAccountId") - .HasColumnType("bigint"); + b.Property("RewardType") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); b.Property("Title") .HasMaxLength(255) @@ -4615,12 +4652,28 @@ namespace CompanyManagment.EFCore.Migrations 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("LastModifiedByAccountId") + .HasColumnType("bigint"); + + b.Property("LastModifiedByUserType") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + b.Property("SalaryAidDateTime") .HasColumnType("datetime2"); diff --git a/CompanyManagment.EFCore/Repository/FineRepository.cs b/CompanyManagment.EFCore/Repository/FineRepository.cs index 42af884c..07e1a8b8 100644 --- a/CompanyManagment.EFCore/Repository/FineRepository.cs +++ b/CompanyManagment.EFCore/Repository/FineRepository.cs @@ -1,27 +1,31 @@ using System.Collections.Generic; +using System.Globalization; using System.Linq; using _0_Framework.Application; using _0_Framework.InfraStructure; using Company.Domain.FineAgg; using CompanyManagment.App.Contracts.Fine; +using CompanyManagment.App.Contracts.Reward; +using CompanyManagment.App.Contracts.SalaryAid; +using Microsoft.EntityFrameworkCore; namespace CompanyManagment.EFCore.Repository; public class FineRepository : RepositoryBase, IFineRepository { - private readonly CompanyContext _companyContext; + private readonly CompanyContext _companyContext; - public FineRepository(CompanyContext companyContext) : base(companyContext) - { - _companyContext = companyContext; - } + public FineRepository(CompanyContext companyContext) : base(companyContext) + { + _companyContext = companyContext; + } - public List GetSearchList(FineSearchViewModel searchModel) - { - var query = _companyContext.Fines.Where(x => x.WorkshopId == searchModel.WorkshopId); + public List GetSearchList(FineSearchViewModel searchModel) + { + var query = _companyContext.Fines.Where(x => x.WorkshopId == searchModel.WorkshopId); - if (searchModel.EmployeeId != 0) - query = query.Where(x => x.EmployeeId == searchModel.EmployeeId); + if (searchModel.EmployeeId != 0) + query = query.Where(x => x.EmployeeId == searchModel.EmployeeId); if (!string.IsNullOrWhiteSpace(searchModel.StartDate) && !string.IsNullOrWhiteSpace(searchModel.EndDate)) { @@ -29,57 +33,191 @@ public class FineRepository : RepositoryBase, IFineRepository var endDate = searchModel.EndDate.ToGeorgianDateTime(); query = query.Where(x => x.FineDate >= startDate && x.FineDate <= endDate); } - var result = query.OrderByDescending(x => x.CreationDate).Skip(searchModel.PageIndex).Take(30).Select(x => new FineViewModel() - { - Id = x.id, - WorkshopId = x.WorkshopId, - EmployeeId = x.EmployeeId, - Title = x.Title, - Amount = x.Amount.ToMoney(), - FineDate = x.FineDate.ToFarsi(), - IsActive = x.IsActive, - CreationDate = x.CreationDate.ToFarsi() - }).AsEnumerable(); - var employees = _companyContext.Employees.Where(x => result.Any(a => a.EmployeeId == x.id)).ToList(); - var personnelCodes = _companyContext.PersonnelCodeSet - .Where(x => result.Any(a => a.EmployeeId == x.EmployeeId && x.WorkshopId == a.WorkshopId)).ToList(); - return result.Select(x => new FineViewModel() - { - Id = x.Id, - WorkshopId = x.WorkshopId, - EmployeeId = x.EmployeeId, - EmployeeFullName = employees.FirstOrDefault(a => a.id == x.EmployeeId)?.FullName, - PersonnelCode = personnelCodes.FirstOrDefault(a => x.WorkshopId == a.WorkshopId && a.EmployeeId == x.EmployeeId)?.PersonnelCode.ToString(), - Title = x.Title, - Amount = x.Amount, - FineDate = x.FineDate, - IsActive = x.IsActive, - CreationDate = x.CreationDate - }).ToList(); - } - public List GetBy(IEnumerable ids) - { - return _companyContext.Fines.Where(x => ids.Contains(x.id)).ToList(); + var result = query.OrderByDescending(x => x.CreationDate).Skip(searchModel.PageIndex).Take(30).Select(x => + new FineViewModel() + { + Id = x.id, + WorkshopId = x.WorkshopId, + EmployeeId = x.EmployeeId, + Title = x.Title, + Amount = x.Amount.ToMoney(), + FineDate = x.FineDate.ToFarsi(), + IsActive = x.IsActive, + CreationDate = x.CreationDate.ToFarsi() + }).AsEnumerable(); + var employees = _companyContext.Employees.Where(x => result.Any(a => a.EmployeeId == x.id)).ToList(); + var personnelCodes = _companyContext.PersonnelCodeSet + .Where(x => result.Any(a => a.EmployeeId == x.EmployeeId && x.WorkshopId == a.WorkshopId)).ToList(); + return result.Select(x => new FineViewModel() + { + Id = x.Id, + WorkshopId = x.WorkshopId, + EmployeeId = x.EmployeeId, + EmployeeFullName = employees.FirstOrDefault(a => a.id == x.EmployeeId)?.FullName, + PersonnelCode = personnelCodes + .FirstOrDefault(a => x.WorkshopId == a.WorkshopId && a.EmployeeId == x.EmployeeId)?.PersonnelCode + .ToString(), + Title = x.Title, + Amount = x.Amount, + FineDate = x.FineDate, + IsActive = x.IsActive, + CreationDate = x.CreationDate + }).ToList(); + } - } + public List GetBy(IEnumerable ids) + { + return _companyContext.Fines.Where(x => ids.Contains(x.id)).ToList(); - public EditFineViewModel GetDetails(long id) - { - var entity = _companyContext.Fines.FirstOrDefault(x => x.id == id); - if (entity == null) - return new(); + } - return new EditFineViewModel() - { - Id = entity.id, - WorkshopId = entity.WorkshopId, - EmployeeId = entity.EmployeeId, - EmployeeFullname = _companyContext.Employees.FirstOrDefault(x => x.id == entity.EmployeeId)?.FullName ?? "", - Title = entity.Title, - Amount = entity.Amount.ToMoney(), - IsActive = entity.IsActive, - FineDate = entity.FineDate.ToFarsi(), - }; - } + public EditFineViewModel GetDetails(long id) + { + var entity = _companyContext.Fines.FirstOrDefault(x => x.id == id); + if (entity == null) + return new(); + + return new EditFineViewModel() + { + Id = entity.id, + WorkshopId = entity.WorkshopId, + EmployeeId = entity.EmployeeId, + EmployeeFullname = _companyContext.Employees.FirstOrDefault(x => x.id == entity.EmployeeId)?.FullName ?? "", + Title = entity.Title, + Amount = entity.Amount.ToMoney(), + IsActive = entity.IsActive, + FineDate = entity.FineDate.ToFarsi(), + }; + } + + #region Pooya + + /// + /// گروهبندی بر اساس ماه هنگام جستجو با انتخاب کارمند + /// + public FinesGroupedViewModel GetSearchListAsGrouped(FineSearchViewModel searchModel) + { + var result = new FinesGroupedViewModel(); + var query = _companyContext.Fines.Where(x => x.WorkshopId == searchModel.WorkshopId); + + var personnelCodes = _companyContext.PersonnelCodeSet + .Where(x => x.WorkshopId == searchModel.WorkshopId).ToList(); + + var employees = _companyContext.LeftWorkList.Where(x => x.WorkshopId == searchModel.WorkshopId) + .Include(x => x.Employee).Select(x => x.Employee).ToList(); + + + var pc = new PersianCalendar(); + + if (searchModel.ShowAsGrouped) + { + + if (searchModel.EmployeeId > 0) + { + if (!string.IsNullOrWhiteSpace(searchModel.StartDate) && + !string.IsNullOrWhiteSpace(searchModel.EndDate)) + { + var startDate = searchModel.StartDate.ToGeorgianDateTime(); + var endDate = searchModel.EndDate.ToGeorgianDateTime(); + query = query.Where(x => x.FineDate >= startDate && x.FineDate <= endDate); + } + query = query.Where(x => x.EmployeeId == searchModel.EmployeeId); + + var list = query.ToList().Select(x => new FineViewModel() + { + Amount = x.Amount.ToMoney(), + AmountDouble = x.Amount, + EmployeeFullName = employees.FirstOrDefault(e => e.id == x.EmployeeId).FullName, + EmployeeId = x.EmployeeId, + CreationDate = x.CreationDate.ToFarsi(), + Id = x.id, + MonthFa = pc.GetMonth(x.FineDate).ToFarsiMonthByIntNumber(), + YearFa = pc.GetYear(x.FineDate).ToString(), + PersonnelCode = personnelCodes.FirstOrDefault(p => p.EmployeeId == x.EmployeeId).PersonnelCode.ToString(), + FineDate = x.FineDate.ToFarsi(), + WorkshopId = x.WorkshopId + }).ToList(); + + result.GroupedByDate = list.GroupBy(x => new { x.YearFa, x.MonthFa }).Select(x => + new FinesGroupedByDateViewModel() + { + YearFa = x.Key.YearFa, + MonthFa = x.Key.MonthFa, + Fines = x.Select(s => new FinesGroupedByDateViewModelItems() + { + Amount = s.Amount, + EmployeeName = s.EmployeeFullName, + Id = s.Id, + PersonnelCode = s.PersonnelCode, + FineDateTimeFa = s.FineDate, + Title = s.Title + }).ToList(), + TotalAmount = x.Sum(s => s.AmountDouble).ToMoney(), + + }).ToList(); + return result; + } + else if (!string.IsNullOrWhiteSpace(searchModel.StartDate) && + !string.IsNullOrWhiteSpace(searchModel.EndDate)) + { + var startDate = searchModel.StartDate.ToGeorgianDateTime(); + + var endDate = searchModel.EndDate.ToGeorgianDateTime(); + + query = query.Where(x => x.FineDate >= startDate && x.FineDate <= endDate); + + result.GroupedByEmployee = query.GroupBy(x => x.EmployeeId).ToList() + .Select(x => new FinesGroupedByEmployeeViewModel() + { + EmployeeId = x.Key, + TotalAmount = x.Sum(s => s.Amount).ToMoney(), + EmployeeName = employees.FirstOrDefault(e => e.id == x.Key).FullName, + Fines = x.Select(s => new FinesGroupedByEmployeeViewModelItems() + { + Amount = s.Amount.ToMoney(), + Id = s.id, + FineDateTimeFa = s.FineDate.ToFarsi(), + PersonnelCode = personnelCodes.FirstOrDefault(p => p.EmployeeId == s.EmployeeId).PersonnelCode.ToString(), + Title = s.Title + }).ToList() + }).ToList(); + return result; + } + } + + + if (searchModel.EmployeeId > 0) + query = query.Where(x => x.EmployeeId == searchModel.EmployeeId); + + if (!string.IsNullOrWhiteSpace(searchModel.StartDate) && !string.IsNullOrWhiteSpace(searchModel.EndDate)) + { + var startDate = searchModel.StartDate.ToGeorgianDateTime(); + var endDate = searchModel.EndDate.ToGeorgianDateTime(); + query = query.Where(x => x.FineDate >= startDate && x.FineDate <= endDate); + } + + + result.FineListViewModels = query.Skip(searchModel.PageIndex).Take(30).ToList().Select(x => new FineViewModel() + { + Id = x.id, + WorkshopId = x.WorkshopId, + EmployeeId = x.EmployeeId, + Title = x.Title, + Amount = x.Amount.ToMoney(), + FineDate = x.FineDate.ToFarsi(), + IsActive = x.IsActive, + CreationDate = x.CreationDate.ToFarsi(), + PersonnelCode = personnelCodes.FirstOrDefault(p => p.EmployeeId == x.EmployeeId).PersonnelCode.ToString(), + AmountDouble = x.Amount, + EmployeeFullName = employees.FirstOrDefault(e => e.id == x.EmployeeId).FullName, + YearFa = x.FineDate.ToFarsi().Substring(0, 4), + MonthFa = x.FineDate.ToFarsi().Substring(5, 2), + }).ToList(); + + + return result; + + #endregion + } } \ No newline at end of file diff --git a/CompanyManagment.EFCore/Repository/LoanRepository.cs b/CompanyManagment.EFCore/Repository/LoanRepository.cs index ccbeebad..7de894b3 100644 --- a/CompanyManagment.EFCore/Repository/LoanRepository.cs +++ b/CompanyManagment.EFCore/Repository/LoanRepository.cs @@ -1,4 +1,5 @@ -using _0_Framework.InfraStructure; +using System; +using _0_Framework.InfraStructure; using Company.Domain.LoanAgg; using Company.Domain.LoanAgg.Entities; using CompanyManagment.App.Contracts.Loan; @@ -6,72 +7,192 @@ using System.Collections.Generic; using System.Linq; using _0_Framework.Application; using Microsoft.EntityFrameworkCore; +using System.Globalization; namespace CompanyManagment.EFCore.Repository; -public class LoanRepository:RepositoryBase,ILoanRepository +public class LoanRepository : RepositoryBase, ILoanRepository { private readonly CompanyContext _companyContext; - public LoanRepository(CompanyContext companyContext):base(companyContext) + public LoanRepository(CompanyContext companyContext) : base(companyContext) { _companyContext = companyContext; } public LoanViewModel GetDetails(long id) { - return _companyContext.Loans.Select(x => new LoanViewModel() - { - Id = x.id, - WorkshopId = x.WorkshopId, - EmployeeId = x.EmployeeId, - EmployeeFullName = _companyContext.Employees.FirstOrDefault(e => e.id == x.EmployeeId).FullName, - StartDateTime = x.StartDateMonth, - Count = x.Count, - Amount = x.Amount.ToMoney(), - }).FirstOrDefault(x => x.Id == id); + return _companyContext.Loans.Select(x => new LoanViewModel() + { + Id = x.id, + WorkshopId = x.WorkshopId, + EmployeeId = x.EmployeeId, + EmployeeFullName = _companyContext.Employees.FirstOrDefault(e => e.id == x.EmployeeId).FullName, + StartDateTime = x.StartDateMonth, + Count = x.Count, + Amount = x.Amount.ToMoney(), + }).FirstOrDefault(x => x.Id == id); } public List GetBy(IEnumerable ids) { - return _companyContext.Loans.Where(x => ids.Contains(x.id)).ToList(); + return _companyContext.Loans.Where(x => ids.Contains(x.id)).ToList(); + } + + public LoanGroupedViewModel GetSearchListAsGrouped(LoanSearchViewModel searchModel) + { + var result = new LoanGroupedViewModel(); + + var query = _companyContext.Loans.Where(x => x.WorkshopId == searchModel.WorkshopId); + + var personnelCodes = _companyContext.PersonnelCodeSet + .Where(x => x.WorkshopId == searchModel.WorkshopId).ToList(); + + var employees = _companyContext.LeftWorkList.Where(x => x.WorkshopId == searchModel.WorkshopId) + .Include(x => x.Employee).Select(x => x.Employee).ToList(); + + var pc = new PersianCalendar(); + + if (searchModel.ShowAsGrouped) + { + if (searchModel.EmployeeId > 0) + { + if (!string.IsNullOrWhiteSpace(searchModel.StartDate) && + !string.IsNullOrWhiteSpace(searchModel.EndDate)) + { + var startDate = searchModel.StartDate.ToGeorgianDateTime(); + var endDate = searchModel.EndDate.ToGeorgianDateTime(); + query = query.Where(x => x.StartInstallmentPayment >= startDate && x.StartInstallmentPayment <= endDate); + } + query = query.Where(x => x.EmployeeId == searchModel.EmployeeId); + var list = query.ToList().Select(x => new LoanViewModel() + { + Amount = x.Amount.ToMoney(), + AmountDouble = x.Amount, + EmployeeFullName = employees.FirstOrDefault(e => e.id == x.EmployeeId).FullName, + EmployeeId = x.EmployeeId, + CreationDate = x.CreationDate, + Id = x.id, + MonthFa = pc.GetMonth(x.StartInstallmentPayment).ToFarsiMonthByIntNumber(), + YearFa = pc.GetYear(x.StartInstallmentPayment).ToString(), + PersonnelCode = personnelCodes.FirstOrDefault(p => p.EmployeeId == x.EmployeeId).PersonnelCode.ToString(), + StartDateTime = x.StartInstallmentPayment.ToFarsi(), + Count = x.Count, + AmountPerMonth = x.AmountPerMonth.ToMoney(), + WorkshopId = x.WorkshopId, + }).ToList(); + result.GroupedByDate = list.GroupBy(x => new { x.YearFa, x.MonthFa }).Select(x => + new LoanGroupedByDateViewModel() + { + MonthFa = x.Key.MonthFa, + YearFa = x.Key.YearFa, + TotalAmount = x.Sum(l => l.AmountDouble).ToMoney(), + LoanItems = x.Select(l => new LoanGroupedByDateViewModelItems() + { + AmountPerMonth = l.AmountPerMonth, + EmployeeName = l.EmployeeFullName, + Id = l.Id, + InstallmentCount = l.Count, + LoanStartDate = l.StartDateTime, + PersonnelCode = l.PersonnelCode, + TotalAmountFa = l.Amount + }).ToList() + }).ToList(); + return result; + + + } + else if (!string.IsNullOrWhiteSpace(searchModel.StartDate) && + !string.IsNullOrWhiteSpace(searchModel.EndDate)) + { + var startDate = searchModel.StartDate.ToGeorgianDateTime(); + + var endDate = searchModel.EndDate.ToGeorgianDateTime(); + + query = query.Where(x => x.StartInstallmentPayment >= startDate && x.StartInstallmentPayment <= endDate); + result.GroupedByEmployee = query.GroupBy(x => x.EmployeeId).ToList() + .Select(x => new LoanGroupedByEmployeeViewModel() + { + EmployeeName = employees.FirstOrDefault(e => e.id == x.Key).FullName, + LoanItems = x.Select(l => new LoanGroupedByEmployeeViewModelItems() + { + TotalAmountFa = l.Amount.ToMoney(), + AmountPerMonth = l.AmountPerMonth.ToMoney(), + Id = l.id, + InstallmentCount = l.Count, + LoanDateTimeFa = l.StartInstallmentPayment.ToFarsi(), + PersonnelCode = personnelCodes.FirstOrDefault(p => p.EmployeeId == l.EmployeeId).PersonnelCode.ToString(), + + }).ToList(), + TotalAmount = x.Sum(l => l.Amount).ToMoney() + }).ToList(); + return result; + } + } + + if (searchModel.EmployeeId > 0) + query = query.Where(x => x.EmployeeId == searchModel.EmployeeId); + if (!string.IsNullOrWhiteSpace(searchModel.StartDate) && !string.IsNullOrWhiteSpace(searchModel.EndDate)) + { + var startDate = searchModel.StartDate.ToGeorgianDateTime(); + var endDate = searchModel.EndDate.ToGeorgianDateTime(); + query = query.Where(x => x.StartInstallmentPayment >= startDate && x.StartInstallmentPayment <= endDate); + } + + result.LoanListViewModel = query.OrderByDescending(x => x.StartInstallmentPayment).Skip(searchModel.PageIndex) + .Take(30).ToList() + .Select(x => new LoanViewModel() + { + EmployeeFullName = employees.FirstOrDefault(e => e.id == x.EmployeeId).FullName, + PersonnelCode = personnelCodes.FirstOrDefault(p => p.EmployeeId == x.EmployeeId).PersonnelCode.ToString(), + Amount = x.Amount.ToMoney(), + AmountPerMonth = x.AmountPerMonth.ToMoney(), + StartDateTime = x.StartInstallmentPayment.ToFarsi(), + Count = x.Count, + Id = x.id, + WorkshopId = x.WorkshopId, + EmployeeId = x.EmployeeId, + YearFa = pc.GetYear(x.StartInstallmentPayment).ToString(), + + }).ToList(); + return result; } public List GetSearchList(LoanSearchViewModel searchViewModel) - { - var query = _companyContext.Loans.Where(x => x.WorkshopId == searchViewModel.WorkshopId); + { + var query = _companyContext.Loans.Where(x => x.WorkshopId == searchViewModel.WorkshopId); - if (searchViewModel.EmployeeId != 0) - query = query.Where(x => x.EmployeeId == searchViewModel.EmployeeId); + if (searchViewModel.EmployeeId != 0) + query = query.Where(x => x.EmployeeId == searchViewModel.EmployeeId); if (!string.IsNullOrWhiteSpace(searchViewModel.StartDate) && !string.IsNullOrWhiteSpace(searchViewModel.EndDate)) { var startDate = searchViewModel.StartDate.ToGeorgianDateTime(); - var endDate = searchViewModel.EndDate.ToGeorgianDateTime(); - + var endDate = searchViewModel.EndDate.ToGeorgianDateTime(); + query = query.Where(x => x.LoanGrantDate <= endDate && x.LoanGrantDate >= startDate); } - - - var employeeIds = query.Select(x => x.EmployeeId); - var personnelCodes = _companyContext.PersonnelCodeSet.Where(x => x.WorkshopId == searchViewModel.WorkshopId && employeeIds.Contains(x.EmployeeId)); - - var employees = _companyContext.Employees.Where(x => employeeIds.Contains(x.id)).AsSplitQuery(); + var employeeIds = query.Select(x => x.EmployeeId); - return query.Select(x => new LoanViewModel() - { - Id = x.id, - WorkshopId = x.WorkshopId, - EmployeeId = x.EmployeeId, - EmployeeFullName =employees.FirstOrDefault(e => e.id == x.EmployeeId).FullName, - PersonnelCode = personnelCodes.FirstOrDefault(e => e.EmployeeId == x.EmployeeId && e.WorkshopId == searchViewModel.WorkshopId).PersonnelCode.ToString(), - StartDateTime = x.StartInstallmentPayment.ToFarsi(), - Count = x.Count, - Amount = x.Amount.ToMoney(), - AmountPerMonth = x.AmountPerMonth.ToMoney(), - CreationDate = x.CreationDate - }).OrderByDescending(x => x.CreationDate).Skip(searchViewModel.PageIndex).AsSplitQuery().Take(30).ToList(); - } + var personnelCodes = _companyContext.PersonnelCodeSet.Where(x => x.WorkshopId == searchViewModel.WorkshopId && employeeIds.Contains(x.EmployeeId)); + + + var employees = _companyContext.Employees.Where(x => employeeIds.Contains(x.id)).AsSplitQuery(); + + return query.Select(x => new LoanViewModel() + { + Id = x.id, + WorkshopId = x.WorkshopId, + EmployeeId = x.EmployeeId, + EmployeeFullName = employees.FirstOrDefault(e => e.id == x.EmployeeId).FullName, + PersonnelCode = personnelCodes.FirstOrDefault(e => e.EmployeeId == x.EmployeeId && e.WorkshopId == searchViewModel.WorkshopId).PersonnelCode.ToString(), + StartDateTime = x.StartInstallmentPayment.ToFarsi(), + Count = x.Count, + Amount = x.Amount.ToMoney(), + AmountPerMonth = x.AmountPerMonth.ToMoney(), + CreationDate = x.CreationDate + }).OrderByDescending(x => x.CreationDate).Skip(searchViewModel.PageIndex).AsSplitQuery().Take(30).ToList(); + } } \ No newline at end of file diff --git a/CompanyManagment.EFCore/Repository/RewardRepository.cs b/CompanyManagment.EFCore/Repository/RewardRepository.cs index b0b47847..1e78eb05 100644 --- a/CompanyManagment.EFCore/Repository/RewardRepository.cs +++ b/CompanyManagment.EFCore/Repository/RewardRepository.cs @@ -1,4 +1,5 @@ using System.Collections.Generic; +using System.Globalization; using System.Linq; using _0_Framework.Application; using _0_Framework.InfraStructure; @@ -22,14 +23,14 @@ public class RewardRepository : RepositoryBase, IRewardRepository if (searchViewModel.EmployeeId != 0) query = query.Where(x => x.EmployeeId == searchViewModel.EmployeeId); - if (!string.IsNullOrWhiteSpace(searchViewModel.StartDate) && !string.IsNullOrWhiteSpace(searchViewModel.EndDate)) - { - var startDate = searchViewModel.StartDate.ToGeorgianDateTime(); - var endDate = searchViewModel.EndDate.ToGeorgianDateTime(); - query = query.Where(x => x.GrantDate >= startDate && x.GrantDate <= endDate); - } + if (!string.IsNullOrWhiteSpace(searchViewModel.StartDate) && !string.IsNullOrWhiteSpace(searchViewModel.EndDate)) + { + var startDate = searchViewModel.StartDate.ToGeorgianDateTime(); + var endDate = searchViewModel.EndDate.ToGeorgianDateTime(); + query = query.Where(x => x.GrantDate >= startDate && x.GrantDate <= endDate); + } - var result = query.OrderByDescending(x=>x.CreationDate).Select(x => new RewardViewModel() + var result = query.OrderByDescending(x => x.CreationDate).Select(x => new RewardViewModel() { Id = x.id, Title = x.Title, @@ -49,16 +50,16 @@ public class RewardRepository : RepositoryBase, IRewardRepository Title = x.Title, Amount = x.Amount, CreationDate = x.CreationDate, - Description = x.Description ?? "-", + Description = x.Description, GrantDateFa = x.GrantDateFa, - EmployeeFullName = employees.FirstOrDefault(e => e.id == x.EmployeeId).FullName , + EmployeeFullName = employees.FirstOrDefault(e => e.id == x.EmployeeId).FullName, Id = x.Id, PersonnelCode = personnelCodes .FirstOrDefault(a => a.WorkshopId == x.WorkshopId && a.EmployeeId == x.EmployeeId).PersonnelCode .ToString(), WorkshopId = x.WorkshopId, EmployeeId = x.EmployeeId - }).ToList(); + }).ToList(); } public EditRewardViewModel GetDetails(long id) @@ -74,7 +75,6 @@ public class RewardRepository : RepositoryBase, IRewardRepository EmployeeId = entity.EmployeeId, Amount = entity.Amount.ToMoney(), Description = entity.Description, - RewardedByAccountId = entity.RewardedByAccountId, GrantDate = entity.GrantDate.ToFarsi() }; @@ -92,50 +92,144 @@ public class RewardRepository : RepositoryBase, IRewardRepository /// /// گروهبندی بر اساس ماه هنگام جستجو با انتخاب کارمند /// - public List GetSearchListByEmployee(RewardSearchModel searchModel) + public RewardsGroupedViewModel GetSearchListAsGrouped(RewardSearchModel searchModel) { - var query = _companyContext.Rewards.Where(x => x.EmployeeId == searchModel.EmployeeId && x.WorkshopId == searchModel.WorkshopId && x.IsActive == IsActive.True); + var result = new RewardsGroupedViewModel(); + var query = _companyContext.Rewards.Where(x => x.WorkshopId == searchModel.WorkshopId && x.IsActive == IsActive.True); + + var personnelCodes = _companyContext.PersonnelCodeSet + .Where(x => x.WorkshopId == searchModel.WorkshopId).ToList(); + + + var pc = new PersianCalendar(); + + var employees = _companyContext.LeftWorkList.Where(x => x.WorkshopId == searchModel.WorkshopId).Include(x => x.Employee).Select(x => x.Employee).ToList(); + if (searchModel.ShowAsGrouped) + { + if (searchModel.EmployeeId > 0) + { + + if (!string.IsNullOrWhiteSpace(searchModel.StartDate) && !string.IsNullOrWhiteSpace(searchModel.EndDate)) + { + var startDate = searchModel.StartDate.ToGeorgianDateTime(); + var endDate = searchModel.EndDate.ToGeorgianDateTime(); + query = query.Where(x => x.GrantDate >= startDate && x.GrantDate <= endDate); + } + + + query = query.Where(x => x.EmployeeId == searchModel.EmployeeId); + + var list = query.ToList().Select(x => new RewardViewModel + { + WorkshopId = x.WorkshopId, + Amount = x.Amount.ToMoney(), + AmountDouble = x.Amount, + Description = x.Description, + EmployeeFullName = employees.FirstOrDefault(e => e.id == x.EmployeeId).FullName, + EmployeeId = x.EmployeeId, + GrantDateFa = x.GrantDate.ToFarsi(), + GrantDateGr = x.GrantDate, + Id = x.id, + Title = x.Title, + IsActive = x.IsActive, + MonthFa = pc.GetMonth(x.GrantDate).ToFarsiMonthByIntNumber(), + YearFa = pc.GetYear(x.GrantDate).ToString(), + PersonnelCode = personnelCodes.FirstOrDefault(p => p.EmployeeId == x.EmployeeId).PersonnelCode.ToString(), + }).ToList(); + + result.RewardsGroupedByDate = list.GroupBy(x => new { x.YearFa, x.MonthFa }).Select(x => new RewardsGroupedByDate() + { + Month = x.Key.MonthFa, + Year = x.Key.YearFa, + Rewards = x.Select(r => new RewardsGroupedByDateItems() + { + PersonnelCode = r.PersonnelCode, + Amount = r.Amount, + Description = r.Description, + GrantDateFa = r.GrantDateFa, + Title = r.Title, + EmployeeName = r.EmployeeFullName, + Id = r.Id + }).ToList(), + TotalAmount = x.Sum(r => r.AmountDouble).ToMoney() + }).ToList(); + + return result; + } + else if (!string.IsNullOrWhiteSpace(searchModel.StartDate) && !string.IsNullOrWhiteSpace(searchModel.EndDate)) + { + var startDate = searchModel.StartDate.ToGeorgianDateTime(); + + var endDate = searchModel.EndDate.ToGeorgianDateTime(); + + query = query.Where(x => x.GrantDate >= startDate && x.GrantDate <= endDate); + + var resList = query.GroupBy(x => x.EmployeeId).ToList(); + result.RewardsGroupedByEmployee = resList.Select(x => new RewardsGroupedByEmployeeViewModel() + { + EmployeeId = x.Key, + EmployeeName = employees.FirstOrDefault(e => e.id == x.Key).FullName, + Rewards = x.Select(r => new RewardsGroupedByEmployeeViewModelItems + { + PersonnelCode = personnelCodes.FirstOrDefault(p => p.EmployeeId == r.EmployeeId).PersonnelCode.ToString(), + Amount = r.Amount.ToMoney(), + Description = r.Description, + GrantDate = r.GrantDate.ToFarsi(), + Title = r.Title, + Id = r.id + }).ToList(), + + TotalAmount = x.Sum(r => r.Amount).ToMoney() + }).ToList(); + return result; + } + } + if (searchModel.EmployeeId > 0) + { + query = query.Where(x => x.EmployeeId == searchModel.EmployeeId); + } if (!string.IsNullOrWhiteSpace(searchModel.StartDate) && !string.IsNullOrWhiteSpace(searchModel.EndDate)) { var startDate = searchModel.StartDate.ToGeorgianDateTime(); + var endDate = searchModel.EndDate.ToGeorgianDateTime(); + query = query.Where(x => x.GrantDate >= startDate && x.GrantDate <= endDate); } - var personnelCode = _companyContext.PersonnelCodeSet - .FirstOrDefault(x => x.EmployeeId == searchModel.EmployeeId && x.WorkshopId == searchModel.WorkshopId); - var employee = _companyContext.Employees.FirstOrDefault(x => x.id == searchModel.EmployeeId); - if (employee == null) - return new(); - var result = query.Select(x => new RewardViewModel() + result.RewardListViewModels = query.Skip(searchModel.PageIndex).Take(30).ToList().Select(x => new RewardViewModel() { - Id = x.id, - EmployeeId = x.EmployeeId, - Description = x.Description, - Amount = x.Amount.ToMoney(), WorkshopId = x.WorkshopId, - CreationDate = x.CreationDate.ToFarsi(), + Amount = x.Amount.ToMoney(), + AmountDouble = x.Amount, + Description = x.Description, + EmployeeFullName = employees.FirstOrDefault(e => e.id == x.EmployeeId).FullName, + EmployeeId = x.EmployeeId, GrantDateFa = x.GrantDate.ToFarsi(), - PersonnelCode = personnelCode.PersonnelCode.ToString(), - EmployeeFullName = employee.FullName, - }).Skip(searchModel.PageIndex).Take(30).ToList(); + GrantDateGr = x.GrantDate, + Id = x.id, + Title = x.Title, + IsActive = x.IsActive, + MonthFa = pc.GetMonth(x.GrantDate).ToFarsiMonthByIntNumber(), + YearFa = pc.GetYear(x.GrantDate).ToString(), + PersonnelCode = personnelCodes.FirstOrDefault(p => p.EmployeeId == x.EmployeeId).PersonnelCode.ToString(), + }).ToList(); + return result; + + //var result = query.Skip(searchModel.PageIndex).Select(x => new RewardViewModel() + //{ + // Id = x.id, + // EmployeeId = x.EmployeeId, + // Description = x.Description, + // Amount = x.Amount.ToMoney(), + // WorkshopId = x.WorkshopId, + // CreationDate = x.CreationDate.ToFarsi(), + // GrantDateFa = x.GrantDate.ToFarsi(), + + //}).ToList(); + } - result.ForEach(x => - { - x.YearFa = x.GrantDateFa.Substring(0, 4); - x.MonthFa = x.GrantDateFa.Substring(5, 2); - }); - return result.GroupBy(x => new { x.YearFa, x.MonthFa }).Select(x => new MonthlyGroupedEmployeeRewardsViewModel() - { - YearFa = x.Key.YearFa, - MonthFa = x.Key.MonthFa, - MonthFaName = x.Key.MonthFa.ToFarsiMonthByNumber(), - Rewards = x.ToList(), - EmployeeId = searchModel.EmployeeId, - PersonnelCode = personnelCode.PersonnelCode.ToString() - }).OrderByDescending(x => x.YearFa).ThenByDescending(x=>x.MonthFa).ToList(); - } #endregion } \ No newline at end of file diff --git a/CompanyManagment.EFCore/Repository/RollCallMandatoryRepository.cs b/CompanyManagment.EFCore/Repository/RollCallMandatoryRepository.cs index aa443688..7bcbcc29 100644 --- a/CompanyManagment.EFCore/Repository/RollCallMandatoryRepository.cs +++ b/CompanyManagment.EFCore/Repository/RollCallMandatoryRepository.cs @@ -2659,7 +2659,7 @@ CreateWorkingHoursTemp command, bool holidayWorking) && x.GrantDate >= start && x.GrantDate <= end && x.RewardType == RewardType.CreatedByCheckoutForBirthDay) == false) { - var reward = new Reward(employeeId, workshopId, amount, "", 0, contractStart, "هدیه تولد", + var reward = new Reward(employeeId, workshopId, amount, "", 0,UserType.System, contractStart, "هدیه تولد", RewardType.CreatedByCheckoutForBirthDay); _context.Rewards.Add(reward); _context.SaveChanges(); @@ -2675,7 +2675,7 @@ CreateWorkingHoursTemp command, bool holidayWorking) && x.GrantDate >= start && x.GrantDate <= end && x.RewardType == type) == false) { - var reward = new Reward(employeeId, workshopId, amount, "", 0, contractStart, title, type); + var reward = new Reward(employeeId, workshopId, amount, "", 0,UserType.System, contractStart, title, type); _context.Rewards.Add(reward); _context.SaveChanges(); } diff --git a/CompanyManagment.EFCore/Repository/SalaryAidRepository.cs b/CompanyManagment.EFCore/Repository/SalaryAidRepository.cs index 71b47e19..513c8b2b 100644 --- a/CompanyManagment.EFCore/Repository/SalaryAidRepository.cs +++ b/CompanyManagment.EFCore/Repository/SalaryAidRepository.cs @@ -1,27 +1,32 @@ using System.Collections.Generic; +using System.Globalization; using System.Linq; using _0_Framework.Application; using _0_Framework.InfraStructure; using Company.Domain.SalaryAidAgg; +using CompanyManagment.App.Contracts.Employee; +using CompanyManagment.App.Contracts.Fine; +using CompanyManagment.App.Contracts.Reward; using CompanyManagment.App.Contracts.SalaryAid; +using Microsoft.EntityFrameworkCore; namespace CompanyManagment.EFCore.Repository; -public class SalaryAidRepository:RepositoryBase,ISalaryAidRepository +public class SalaryAidRepository : RepositoryBase, ISalaryAidRepository { private readonly CompanyContext _companyContext; - public SalaryAidRepository(CompanyContext context):base(context) + public SalaryAidRepository(CompanyContext context) : base(context) { _companyContext = context; } public List GetSearchList(SalaryAidSearchViewModel searchViewModel) { - var query = _companyContext.SalaryAids.Where(x => x.WorkshopId == searchViewModel.WorkshopId); + var query = _companyContext.SalaryAids.Where(x => x.WorkshopId == searchViewModel.WorkshopId); - if (searchViewModel.EmployeeId != 0) - query = query.Where(x => x.EmployeeId == searchViewModel.EmployeeId); + if (searchViewModel.EmployeeId != 0) + query = query.Where(x => x.EmployeeId == searchViewModel.EmployeeId); if (!string.IsNullOrWhiteSpace(searchViewModel.StartDate) && !string.IsNullOrWhiteSpace(searchViewModel.EndDate)) { @@ -34,48 +39,171 @@ public class SalaryAidRepository:RepositoryBase,ISalaryAidReposi var result = query.OrderByDescending(x => x.CreationDate).Skip(searchViewModel.PageIndex).Take(30).AsEnumerable(); - var employees = _companyContext.Employees.Where(x => result.Any(a => a.EmployeeId == x.id)).ToList(); + var employees = _companyContext.Employees.Where(x => result.Any(a => a.EmployeeId == x.id)).ToList(); - var personnelCodes = _companyContext.PersonnelCodeSet - .Where(x => result.Any(a => a.EmployeeId == x.EmployeeId && x.WorkshopId == a.WorkshopId)).ToList(); + var personnelCodes = _companyContext.PersonnelCodeSet + .Where(x => result.Any(a => a.EmployeeId == x.EmployeeId && x.WorkshopId == a.WorkshopId)).ToList(); - return result.Select(x => new SalaryAidViewModel() - { - Amount = x.Amount.ToMoney(), - CreationDate = x.CreationDate.ToFarsi(), - EmployeeFullName = employees.FirstOrDefault(e => e.id == x.EmployeeId)?.FullName, - Id = x.id, - PersonnelCode = personnelCodes - .FirstOrDefault(a => a.WorkshopId == x.WorkshopId && a.EmployeeId == x.EmployeeId)?.PersonnelCode - .ToString(), - EmployeeId = x.EmployeeId, - SalaryAidDateTimeFa = x.SalaryAidDateTime.ToFarsi(), - SalaryAidDateTimeGe = x.SalaryAidDateTime, - WorkshopId = x.WorkshopId - }).ToList(); + return result.Select(x => new SalaryAidViewModel() + { + Amount = x.Amount.ToMoney(), + CreationDate = x.CreationDate.ToFarsi(), + EmployeeFullName = employees.FirstOrDefault(e => e.id == x.EmployeeId)?.FullName, + Id = x.id, + PersonnelCode = personnelCodes + .FirstOrDefault(a => a.WorkshopId == x.WorkshopId && a.EmployeeId == x.EmployeeId)?.PersonnelCode + .ToString(), + EmployeeId = x.EmployeeId, + SalaryAidDateTimeFa = x.SalaryAidDateTime.ToFarsi(), + SalaryAidDateTimeGe = x.SalaryAidDateTime, + WorkshopId = x.WorkshopId + }).ToList(); - } + } public EditSalaryAidViewModel GetDetails(long id) { - var entity = _companyContext.SalaryAids.FirstOrDefault(x => x.id == id); - if (entity == null) - return new(); - var res = new EditSalaryAidViewModel() - { - Id = entity.id, - WorkshopId = entity.WorkshopId, - EmployeeId = entity.EmployeeId, - Amount = entity.Amount.ToMoney(), - SalaryDateTime = entity.SalaryAidDateTime.ToFarsi() - }; + var entity = _companyContext.SalaryAids.FirstOrDefault(x => x.id == id); + if (entity == null) + return new(); + var res = new EditSalaryAidViewModel() + { + Id = entity.id, + WorkshopId = entity.WorkshopId, + EmployeeId = entity.EmployeeId, + Amount = entity.Amount.ToMoney(), + SalaryDateTime = entity.SalaryAidDateTime.ToFarsi() + }; - res.EmployeeFullName = _companyContext.Employees.Find(entity.EmployeeId)?.FullName; - return res; - } + res.EmployeeFullName = _companyContext.Employees.Find(entity.EmployeeId)?.FullName; + return res; + } public List GetBy(IEnumerable ids) { - return _companyContext.SalaryAids.Where(x => ids.Contains(x.id)).ToList(); + return _companyContext.SalaryAids.Where(x => ids.Contains(x.id)).ToList(); } + + #region Pooya + + /// + /// گروهبندی بر اساس ماه هنگام جستجو با انتخاب کارمند + /// + public SalaryAidsGroupedViewModel GetSearchListAsGrouped(SalaryAidSearchViewModel searchModel) + { + var result = new SalaryAidsGroupedViewModel(); + var query = _companyContext.SalaryAids.Where(x => x.WorkshopId == searchModel.WorkshopId); + + var personnelCodes = _companyContext.PersonnelCodeSet + .Where(x => x.WorkshopId == searchModel.WorkshopId).ToList(); + + var employees = _companyContext.LeftWorkList.Where(x => x.WorkshopId == searchModel.WorkshopId) + .Include(x => x.Employee).Select(x => x.Employee).ToList(); + + var pc = new PersianCalendar(); + + if (searchModel.ShowAsGrouped) + { + if (searchModel.EmployeeId > 0) + { + if (!string.IsNullOrWhiteSpace(searchModel.StartDate) && + !string.IsNullOrWhiteSpace(searchModel.EndDate)) + { + var startDate = searchModel.StartDate.ToGeorgianDateTime(); + var endDate = searchModel.EndDate.ToGeorgianDateTime(); + query = query.Where(x => x.SalaryAidDateTime >= startDate && x.SalaryAidDateTime <= endDate); + } + query = query.Where(x => x.EmployeeId == searchModel.EmployeeId); + + var list = query.ToList().Select(x => new SalaryAidViewModel + { + Amount = x.Amount.ToMoney(), + AmountDouble = x.Amount, + EmployeeFullName = employees.FirstOrDefault(e => e.id == x.EmployeeId).FullName, + EmployeeId = x.EmployeeId, + CreationDate = x.CreationDate.ToFarsi(), + Id = x.id, + MonthFa = pc.GetMonth(x.SalaryAidDateTime).ToFarsiMonthByIntNumber(), + YearFa = pc.GetYear(x.SalaryAidDateTime).ToString(), + PersonnelCode = personnelCodes.FirstOrDefault(p => p.EmployeeId == x.EmployeeId).PersonnelCode.ToString(), + SalaryAidDateTimeFa = x.SalaryAidDateTime.ToFarsi(), + SalaryAidDateTimeGe = x.SalaryAidDateTime, + WorkshopId = x.WorkshopId + + }).ToList(); + result.GroupedByDate = list.GroupBy(x => new { x.YearFa, x.MonthFa }).Select(x => + new SalaryAidGroupedByDateViewModel() + { + YearFa = x.Key.YearFa, + MonthFa = x.Key.MonthFa, + SalaryAidViewModels = x.Select(s => new SalaryAidGroupedByDateViewModelItems() + { + Amount = s.Amount, + EmployeeName = s.EmployeeFullName, + Id = s.Id, + PersonnelCode = s.PersonnelCode, + SalaryAidDateTimeFa = s.SalaryAidDateTimeFa + }).ToList(), + TotalAmount = x.Sum(s => s.AmountDouble).ToMoney() + }).ToList(); + return result; + } + else if (!string.IsNullOrWhiteSpace(searchModel.StartDate) && + !string.IsNullOrWhiteSpace(searchModel.EndDate)) + { + var startDate = searchModel.StartDate.ToGeorgianDateTime(); + + var endDate = searchModel.EndDate.ToGeorgianDateTime(); + + query = query.Where(x => x.SalaryAidDateTime >= startDate && x.SalaryAidDateTime <= endDate); + + result.GroupedByEmployee = query.GroupBy(x => x.EmployeeId).ToList() + .Select(x => new SalaryAidGroupedByEmployeeViewModel() + { + EmployeeId = x.Key, + TotalAmount = x.Sum(s => s.Amount).ToMoney(), + EmployeeName = employees.FirstOrDefault(e => e.id == x.Key).FullName, + SalaryAidViewModels = x.Select(s => new SalaryAidGroupedByEmployeeViewModelItems() + { + Amount = s.Amount.ToMoney(), + Id = s.id, + SalaryAidDateTimeFa = s.SalaryAidDateTime.ToFarsi(), + PersonnelCode = personnelCodes.FirstOrDefault(p => p.EmployeeId == s.EmployeeId).PersonnelCode.ToString(), + }).ToList() + }).ToList(); + return result; + } + } + + if (searchModel.EmployeeId > 0) + query = query.Where(x => x.EmployeeId == searchModel.EmployeeId); + + if (!string.IsNullOrWhiteSpace(searchModel.StartDate) && !string.IsNullOrWhiteSpace(searchModel.EndDate)) + { + var startDate = searchModel.StartDate.ToGeorgianDateTime(); + var endDate = searchModel.EndDate.ToGeorgianDateTime(); + query = query.Where(x => x.SalaryAidDateTime >= startDate && x.SalaryAidDateTime <= endDate); + } + + result.SalaryAidListViewModels = query.OrderByDescending(x => x.CreationDate).Skip(searchModel.PageIndex).Take(30).ToList().Select( + x => new SalaryAidViewModel() + { + Amount = x.Amount.ToMoney(), + CreationDate = x.CreationDate.ToFarsi(), + Id = x.id, + EmployeeId = x.EmployeeId, + SalaryAidDateTimeFa = x.SalaryAidDateTime.ToFarsi(), + SalaryAidDateTimeGe = x.SalaryAidDateTime, + WorkshopId = x.WorkshopId, + YearFa = x.SalaryAidDateTime.ToFarsi().Substring(0, 4), + MonthFa = x.SalaryAidDateTime.ToFarsi().Substring(5, 2), + PersonnelCode = personnelCodes.FirstOrDefault(p => p.EmployeeId == x.EmployeeId).PersonnelCode.ToString(), + EmployeeFullName = employees.FirstOrDefault(e => e.id == x.EmployeeId).FullName, + AmountDouble = x.Amount, + }).ToList(); + + return result; + } + + #endregion } \ No newline at end of file diff --git a/ServiceHost/Areas/AdminNew/Pages/Company/AndroidApk/Index.cshtml.cs b/ServiceHost/Areas/AdminNew/Pages/Company/AndroidApk/Index.cshtml.cs index 45df1227..9076d5ac 100644 --- a/ServiceHost/Areas/AdminNew/Pages/Company/AndroidApk/Index.cshtml.cs +++ b/ServiceHost/Areas/AdminNew/Pages/Company/AndroidApk/Index.cshtml.cs @@ -94,52 +94,52 @@ namespace ServiceHost.Areas.AdminNew.Pages.Company.AndroidApk //var esfandCustomizeCheckouts = _context.CustomizeCheckouts // .Where(x => x.WorkshopId == 170 && x.MonthInt == 12 && x.YearInt == 1403); - var sinzdahBedarDate = new DateTime(2025, 04, 2); - var chahardah = sinzdahBedarDate.AddDays(1); + //var sinzdahBedarDate = new DateTime(2025, 04, 2); + //var chahardah = sinzdahBedarDate.AddDays(1); - var workingEmp = _context.LeftWorkList.Where(x => x.WorkshopId == 170 && x.StartWorkDate <= sinzdahBedarDate && x.LeftWorkDate >= sinzdahBedarDate) - .GroupBy(x => x.EmployeeId).Select(x=>x.Key); + //var workingEmp = _context.LeftWorkList.Where(x => x.WorkshopId == 170 && x.StartWorkDate <= sinzdahBedarDate && x.LeftWorkDate >= sinzdahBedarDate) + // .GroupBy(x => x.EmployeeId).Select(x=>x.Key); - var employeesHaveRollCall = _context.RollCallEmployees - .Where(x => workingEmp.Contains(x.EmployeeId) && x.WorkshopId == 170) - .Include(x => x.EmployeesStatus) - .Where(x => x.EmployeesStatus.Any(s => s.StartDate <= sinzdahBedarDate && s.EndDate >= sinzdahBedarDate)).Select(x=>x.EmployeeId); + //var employeesHaveRollCall = _context.RollCallEmployees + // .Where(x => workingEmp.Contains(x.EmployeeId) && x.WorkshopId == 170) + // .Include(x => x.EmployeesStatus) + // .Where(x => x.EmployeesStatus.Any(s => s.StartDate <= sinzdahBedarDate && s.EndDate >= sinzdahBedarDate)).Select(x=>x.EmployeeId); - var employeeSettings = _context.CustomizeWorkshopEmployeeSettings - .Where(x => x.WorkshopId == 170 && - employeesHaveRollCall.Any(c => c == x.EmployeeId)); + //var employeeSettings = _context.CustomizeWorkshopEmployeeSettings + // .Where(x => x.WorkshopId == 170 && + // employeesHaveRollCall.Any(c => c == x.EmployeeId)); - var absentEmployeesInSinzdah = employeeSettings.Where(x => !_context.RollCalls - .Any(a => a.EmployeeId == x.EmployeeId && a.ShiftDate == sinzdahBedarDate)) - .ToList(); + //var absentEmployeesInSinzdah = employeeSettings.Where(x => !_context.RollCalls + // .Any(a => a.EmployeeId == x.EmployeeId && a.ShiftDate == sinzdahBedarDate)) + // .ToList(); - var absentEmployeesInChahardah = employeeSettings.Where(x => !_context.RollCalls - .Any(a => a.EmployeeId == x.EmployeeId && a.ShiftDate == chahardah)) - .ToList(); + //var absentEmployeesInChahardah = employeeSettings.Where(x => !_context.RollCalls + // .Any(a => a.EmployeeId == x.EmployeeId && a.ShiftDate == chahardah)) + // .ToList(); - foreach (var employeeSetting in absentEmployeesInSinzdah) - { - var amount = (int)employeeSetting.Salary / 30; - var reward = new Reward(employeeSetting.EmployeeId, 170, amount, "", 0, sinzdahBedarDate, - "بابت تعطیلی روز 13 فروردین"); - _context.Rewards.Add(reward); - } + //foreach (var employeeSetting in absentEmployeesInSinzdah) + //{ + // var amount = (int)employeeSetting.Salary / 30; + // var reward = new Reward(employeeSetting.EmployeeId, 170, amount, "", 0, sinzdahBedarDate, + // "بابت تعطیلی روز 13 فروردین"); + // _context.Rewards.Add(reward); + //} - foreach (var employeeSetting in absentEmployeesInChahardah) - { - var amount = (int)employeeSetting.Salary / 30; - var reward = new Reward(employeeSetting.EmployeeId, 170, amount, "", 0, sinzdahBedarDate.AddDays(1), - "بابت تعطیلی روز 14 فروردین"); - _context.Rewards.Add(reward); - } + //foreach (var employeeSetting in absentEmployeesInChahardah) + //{ + // var amount = (int)employeeSetting.Salary / 30; + // var reward = new Reward(employeeSetting.EmployeeId, 170, amount, "", 0, sinzdahBedarDate.AddDays(1), + // "بابت تعطیلی روز 14 فروردین"); + // _context.Rewards.Add(reward); + //} - await _context.SaveChangesAsync(); + //await _context.SaveChangesAsync(); } #endregion diff --git a/ServiceHost/Areas/Client/Pages/Company/Fine/Index.cshtml b/ServiceHost/Areas/Client/Pages/Company/Fine/Index.cshtml index 92f9bf0e..dbbc44ff 100644 --- a/ServiceHost/Areas/Client/Pages/Company/Fine/Index.cshtml +++ b/ServiceHost/Areas/Client/Pages/Company/Fine/Index.cshtml @@ -13,7 +13,8 @@ @section Styles { - + + @@ -59,30 +60,63 @@