diff --git a/0_Framework/Domain/CustomizeCheckoutValueObjects/BaseYearsPay.cs b/0_Framework/Domain/CustomizeCheckoutValueObjects/BaseYearsPay.cs
new file mode 100644
index 00000000..f02d15ce
--- /dev/null
+++ b/0_Framework/Domain/CustomizeCheckoutValueObjects/BaseYearsPay.cs
@@ -0,0 +1,60 @@
+namespace _0_Framework.Domain.CustomizeCheckoutValueObjects;
+
+public class BaseYearsPay
+{
+ public BaseYearsPay(BaseYearsPayType baseYearsPayType)
+ {
+ BaseYearsPayType = baseYearsPayType;
+ }
+
+ private BaseYearsPay()
+ {
+ }
+
+ public BaseYearsPayType BaseYearsPayType { get; private set; }
+ public double Value { get; set; }
+ public BaseYearsPaymentType PaymentType { get; set; }
+}
+
+public enum BaseYearsPaymentType
+{
+ ///
+ /// پرداخت نمیگردد
+ ///
+ None,
+ ///
+ /// پرداخت به صورت سالانه در آخر سال پرداخت میگردد
+ ///
+ YearlyPay,
+ ///
+ /// پرداخت به صورت ماهانه
+ ///
+ MonthlyPay
+}
+
+public enum BaseYearsPayType
+{
+ ///
+ ///محاسبه نمیشود
+ ///
+ None,
+
+ ///
+ /// به صورت درصدی از حقوق
+ ///
+ PercentageOfSalary,
+
+ ///
+ /// دوبرابر حقوق
+ ///
+ TwoTimeOfSalary,
+
+ ///
+ /// یک برابر حقوق
+ ///
+ OneTimeOfSalary,
+ ///
+ /// مبلغ اختصاصی برای سنوات
+ ///
+ Money
+}
\ No newline at end of file
diff --git a/0_Framework/Domain/CustomizeCheckoutValueObjects/BonusesPay.cs b/0_Framework/Domain/CustomizeCheckoutValueObjects/BonusesPay.cs
new file mode 100644
index 00000000..8d15031b
--- /dev/null
+++ b/0_Framework/Domain/CustomizeCheckoutValueObjects/BonusesPay.cs
@@ -0,0 +1,71 @@
+namespace _0_Framework.Domain.CustomizeCheckoutValueObjects;
+
+public class BonusesPay
+{
+ public BonusesPay(BonusesType bonusesPayType, int percentage)
+ {
+ BonusesPayType = bonusesPayType;
+ Value = percentage;
+ }
+
+ private BonusesPay()
+ {
+ }
+
+ ///
+ /// نوع عیدی
+ ///
+ public BonusesType BonusesPayType { get; private set; }
+ ///
+ /// مقدار درصد یا مبلغ
+ ///
+ public double Value { get; private set; }
+ ///
+ /// نوع پرداخت برای عیدی
+ ///
+ public BonusesPaymentType PaymentType { get; set; }
+}
+
+public enum BonusesPaymentType
+{
+ ///
+ /// پرداخت نمیگردد
+ ///
+ None,
+ ///
+ /// پرداخت به صورت سالانه در آخر سال پرداخت میگردد
+ ///
+ YearlyPay,
+ ///
+ /// پرداخت به صورت ماهانه
+ ///
+ MonthlyPay
+
+}
+
+public enum BonusesType
+{
+ ///
+ ///محاسبه نمیشود
+ ///
+ None,
+
+ ///
+ /// به صورت درصدی از حقوق
+ ///
+ PercentageOfSalary,
+
+ ///
+ /// دوبرابر حقوق
+ ///
+ TwoTimeOfSalary,
+
+ ///
+ /// یک برابر حقوق
+ ///
+ OneTimeOfSalary,
+ ///
+ /// مبلغ اختصاصی برای عیدی
+ ///
+ Money
+}
\ No newline at end of file
diff --git a/0_Framework/Domain/CustomizeCheckoutValueObjects/Currency.cs b/0_Framework/Domain/CustomizeCheckoutValueObjects/Currency.cs
new file mode 100644
index 00000000..8db21954
--- /dev/null
+++ b/0_Framework/Domain/CustomizeCheckoutValueObjects/Currency.cs
@@ -0,0 +1,7 @@
+namespace _0_Framework.Domain.CustomizeCheckoutValueObjects;
+
+public enum Currency
+{
+ Rial,
+ Toman
+}
\ No newline at end of file
diff --git a/0_Framework/Domain/CustomizeCheckoutValueObjects/EarlyExit.cs b/0_Framework/Domain/CustomizeCheckoutValueObjects/EarlyExit.cs
new file mode 100644
index 00000000..5a30e3d9
--- /dev/null
+++ b/0_Framework/Domain/CustomizeCheckoutValueObjects/EarlyExit.cs
@@ -0,0 +1,86 @@
+using System.Collections.Generic;
+
+namespace _0_Framework.Domain.CustomizeCheckoutValueObjects;
+
+public class EarlyExit
+{
+ public EarlyExit(EarlyExitType earlyExitType, List earlyExitTimeFines, double value)
+ {
+ EarlyExitType = earlyExitType;
+ EarlyExitTimeFines = earlyExitTimeFines??new ();
+ Value = value;
+ }
+
+ private EarlyExit()
+ {
+ EarlyExitTimeFines = new();
+ }
+
+ ///
+ /// نوع حساب کردن تعجیل در خروج
+ ///
+ public EarlyExitType EarlyExitType { get; private set; }
+
+ ///
+ /// جریمه های اختصاصی پله ای
+ ///
+ public List EarlyExitTimeFines { get; private set; }
+
+ public double Value { get; private set; }
+
+
+}
+
+public class EarlyExitTimeFine
+{
+ public EarlyExitTimeFine(string minute, double fineMoney)
+ {
+ Minute = minute;
+ FineMoney = fineMoney;
+ }
+
+ private EarlyExitTimeFine()
+ {
+ }
+
+ ///
+ /// دقیقه تعیین شده برای جریمه
+ ///
+ public string Minute { get; private set; }
+
+ ///
+ /// مبلغ تعیین شده برای جریمه
+ ///
+ public double FineMoney { get; private set; }
+}
+
+//public enum EarlyExitTimeFineType
+//{
+// ///
+// /// جریمه های زمانی به صورت پله همه باهم جمع گردد
+// ///
+// StepByStep,
+
+// ///
+// /// فقط آخرین جریمه لحاظ شود
+// ///
+// LastStep,
+//}
+
+public enum EarlyExitType
+{
+ ///
+ /// محاسبه نمیشود
+ ///
+ None,
+
+ ///
+ /// هر دقیقه تاخیر به تناسب حقوق مزد روزانه کسر گردد
+ ///
+ DeductEveryMinuteAccordingToDailyWage,
+
+ ///
+ /// هر دقیقه تاخیر مبلغی کسر میگردد
+ ///
+ MoneyPerMinute
+}
\ No newline at end of file
diff --git a/0_Framework/Domain/CustomizeCheckoutValueObjects/FamilyAllowance.cs b/0_Framework/Domain/CustomizeCheckoutValueObjects/FamilyAllowance.cs
new file mode 100644
index 00000000..7538106b
--- /dev/null
+++ b/0_Framework/Domain/CustomizeCheckoutValueObjects/FamilyAllowance.cs
@@ -0,0 +1,72 @@
+namespace _0_Framework.Domain.CustomizeCheckoutValueObjects;
+
+public class FamilyAllowance
+{
+ public FamilyAllowance(FamilyAllowanceType familyAllowanceType, double value)
+ {
+ FamilyAllowanceType = familyAllowanceType;
+ //NumberOfChildren = numberOfChildren;
+ Value = value;
+ }
+
+ private FamilyAllowance()
+ {
+ }
+
+ ///
+ /// نوع حق اولاد را مشخص میکند که آیا پرداخت نمیکند یا به صورت درصدی پرداخت میکند یا به صورت مبلغ اختصاصی
+ ///
+ public FamilyAllowanceType FamilyAllowanceType { get; private set; }
+
+ ///
+ /// تعداد فرزند هایی حق اولاد به آنها تعلق میگیرد.
+ ///
+ // ReSharper disable once GrammarMistakeInComment
+ //public NumberOfChildren NumberOfChildren { get; private set; }
+
+ public double Value { get; private set; }
+
+}
+public enum FamilyAllowanceType
+{
+ ///
+ ///محاسبه نمیشود
+ ///
+ None,
+
+ ///
+ /// به ازای هر فرزند درصدی از مزد روزانه پرمسل
+ ///
+ Percentage,
+ ///
+ /// به ازای هر فرزند به صورت مبلغ اختصاصی پرداخت میشود
+ ///
+ Money
+}
+//public enum NumberOfChildren
+//{
+// ///
+// /// محاسبه نمیشود
+// ///
+// None,
+// ///
+// /// یک فرزند
+// ///
+// One,
+// ///
+// /// دو فرزند
+// ///
+// Two,
+// ///
+// /// سه فرزند
+// ///
+// Three,
+// ///
+// /// چهار فرزند
+// ///
+// Four,
+// ///
+// /// تمامی فرزند ها
+// ///
+// All
+//}
\ No newline at end of file
diff --git a/0_Framework/Domain/CustomizeCheckoutValueObjects/FineAbsenceDeduction.cs b/0_Framework/Domain/CustomizeCheckoutValueObjects/FineAbsenceDeduction.cs
new file mode 100644
index 00000000..1b67f8a2
--- /dev/null
+++ b/0_Framework/Domain/CustomizeCheckoutValueObjects/FineAbsenceDeduction.cs
@@ -0,0 +1,85 @@
+using System;
+using System.Collections.Generic;
+
+namespace _0_Framework.Domain.CustomizeCheckoutValueObjects;
+
+public class FineAbsenceDeduction
+{
+ private FineAbsenceDeduction()
+ {
+ FineAbsenceDayOfWeekCollection = new ();
+ }
+ public FineAbsenceDeduction(FineAbsenceDeductionType fineAbsenceDeductionType, double value,List fineAbsenceDayOfWeekCollection)
+ {
+ FineAbsenceDeductionType = fineAbsenceDeductionType;
+ Value = value;
+ FineAbsenceDayOfWeekCollection = fineAbsenceDayOfWeekCollection ?? new ();
+ }
+
+ ///
+ /// نوع جریمه غیبت
+ ///
+ public FineAbsenceDeductionType FineAbsenceDeductionType { get; private set; }
+
+ public double Value { get; set; }
+
+ ///
+ /// جریمه های اختصاصی به ازای روز های هفته
+ ///
+ public List FineAbsenceDayOfWeekCollection { get; private set; }
+}
+
+public class FineAbsenceDayOfWeek
+{
+ public FineAbsenceDayOfWeek(DayOfWeek dayOfWeek)
+ {
+ DayOfWeek = dayOfWeek;
+
+ }
+
+ private FineAbsenceDayOfWeek()
+ {
+ }
+
+ ///
+ /// روز های هفته
+ ///
+ public DayOfWeek DayOfWeek { get; private set; }
+
+}
+
+//public enum FineAbsenceDayOfWeekType
+//{
+// ///
+// /// مبلغ اختصاصی
+// ///
+// Money,
+
+// ///
+// /// چند برابر کردن جریمه به ازای مقداری که داده شده
+// ///
+// Multiple,
+
+// ///
+// /// درصد از مزد روزانه
+// ///
+// PercentageOfDailyWage
+//}
+
+public enum FineAbsenceDeductionType
+{
+ ///
+ /// محاسبه نمیشود
+ ///
+ None,
+
+ ///
+ /// در صورت استفاده غیر مجاز مرخصی و غیبت چند برابر از مزد روزانه کسر میگردد
+ ///
+ MultipleTimesOfDailyWage,
+
+ ///
+ /// به صورت مبلغ اختصاصی پرداخت میشود
+ ///
+ Money
+}
\ No newline at end of file
diff --git a/0_Framework/Domain/CustomizeCheckoutValueObjects/FineDeduction.cs b/0_Framework/Domain/CustomizeCheckoutValueObjects/FineDeduction.cs
new file mode 100644
index 00000000..10cc893f
--- /dev/null
+++ b/0_Framework/Domain/CustomizeCheckoutValueObjects/FineDeduction.cs
@@ -0,0 +1,20 @@
+namespace _0_Framework.Domain.CustomizeCheckoutValueObjects;
+
+public class FineDeduction
+{
+ private FineDeduction()
+ {
+ }
+
+ public FineDeduction(FineDeductionType fineDeductionType, int percentage)
+ {
+ FineDeductionType = fineDeductionType;
+ Percentage = percentage;
+ }
+
+ public FineDeductionType FineDeductionType { get; private set; }
+ ///
+ /// مقدار درصد
+ ///
+ public int Percentage { get; private set; }
+}
\ No newline at end of file
diff --git a/0_Framework/Domain/CustomizeCheckoutValueObjects/FineDeductionType.cs b/0_Framework/Domain/CustomizeCheckoutValueObjects/FineDeductionType.cs
new file mode 100644
index 00000000..277e4761
--- /dev/null
+++ b/0_Framework/Domain/CustomizeCheckoutValueObjects/FineDeductionType.cs
@@ -0,0 +1,17 @@
+namespace _0_Framework.Domain.CustomizeCheckoutValueObjects;
+
+public enum FineDeductionType
+{
+ ///
+ /// دوبرابر حقوق تعیین شده
+ ///
+ TwoTimeOfSalary,
+ ///
+ /// یک برابر حقوق تعیین شده
+ ///
+ OneTImeOfSalary,
+ ///
+ /// درصد تعیین شده
+ ///
+ Percentage
+}
\ No newline at end of file
diff --git a/0_Framework/Domain/CustomizeCheckoutValueObjects/FridayPay.cs b/0_Framework/Domain/CustomizeCheckoutValueObjects/FridayPay.cs
new file mode 100644
index 00000000..19b97246
--- /dev/null
+++ b/0_Framework/Domain/CustomizeCheckoutValueObjects/FridayPay.cs
@@ -0,0 +1,42 @@
+namespace _0_Framework.Domain.CustomizeCheckoutValueObjects;
+
+public enum FridayPayType
+{
+ ///
+ ///محاسبه نمیشود
+ ///
+ None,
+ ///
+ /// اضافه کار محاسبه میشود
+ ///
+ ExtraWorking,
+ ///
+ /// به صورت درصدی از مزد روزانه به ازای هر ساعت کار در جمعه
+ ///
+ PercentageFromSalaryPerHour,
+ ///
+ /// مقدار پول شخصی سازی شده به ازای هر ساعت کاری که پرسنل در جمعه کار میکند
+ ///
+ MoneyPerFridayPerHour,
+ ///
+ /// مقدار پول شخصی سازی شده برای هرروز کار در روز جمعه
+ ///
+ MoneyPerFridayForDay,
+
+}
+public class FridayPay
+{
+ private FridayPay()
+ {
+
+ }
+ public FridayPay(FridayPayType fridayPayType, double value)
+ {
+ FridayPayType = fridayPayType;
+ Value = value;
+
+ }
+
+ public FridayPayType FridayPayType { get; private set; }
+ public double Value { get; private set; }
+}
diff --git a/0_Framework/Domain/CustomizeCheckoutValueObjects/InsuranceDeduction.cs b/0_Framework/Domain/CustomizeCheckoutValueObjects/InsuranceDeduction.cs
new file mode 100644
index 00000000..d52cd13b
--- /dev/null
+++ b/0_Framework/Domain/CustomizeCheckoutValueObjects/InsuranceDeduction.cs
@@ -0,0 +1,40 @@
+namespace _0_Framework.Domain.CustomizeCheckoutValueObjects;
+
+public class InsuranceDeduction
+{
+ public InsuranceDeduction(InsuranceDeductionType insuranceDeductionType, double value)
+ {
+ InsuranceDeductionType = insuranceDeductionType;
+ Value = value;
+ }
+
+ private InsuranceDeduction()
+ {
+ }
+
+ public InsuranceDeductionType InsuranceDeductionType { get; private set; }
+ public double Value { get; private set; }
+}
+public enum InsuranceDeductionType
+{
+ ///
+ /// محاسبه نمیشود
+ ///
+ None,
+
+ ///
+ /// بر اساس قانون کار (حقوق+بن کارگری+ بن مسکن+حق تاهل)*7درصد
+ ///
+ BasedOnLaborLaw,
+
+ ///
+ /// بر اساس درصد از حقوق تعیین شده
+ ///
+ PercentageOfSalary,
+
+ ///
+ /// به صورت مبلغ ماهانه اختصاصی پرداخت میشود
+ ///
+ Money
+
+}
\ No newline at end of file
diff --git a/0_Framework/Domain/CustomizeCheckoutValueObjects/LateToWork.cs b/0_Framework/Domain/CustomizeCheckoutValueObjects/LateToWork.cs
new file mode 100644
index 00000000..d7786432
--- /dev/null
+++ b/0_Framework/Domain/CustomizeCheckoutValueObjects/LateToWork.cs
@@ -0,0 +1,76 @@
+using System.Collections.Generic;
+
+namespace _0_Framework.Domain.CustomizeCheckoutValueObjects;
+
+public class LateToWork
+{
+ public LateToWork(LateToWorkType lateToWorkType, List lateToWorkTimeFines, double value)
+ {
+ LateToWorkType = lateToWorkType;
+ LateToWorkTimeFines = lateToWorkTimeFines??new ();
+ Value = value;
+ }
+
+ private LateToWork()
+ {
+ LateToWorkTimeFines = new ();
+ }
+
+ ///
+ /// نوع حساب کردن تاخیر در ورود
+ ///
+ public LateToWorkType LateToWorkType { get; private set; }
+
+ ///
+ /// این مقدار بستگی به نوع حساب کردن تاخیر در ورود
+ ///
+ public double Value { get; private set; }
+
+ ///
+ /// جریمه های اختصاصی پله ای
+ ///
+ public List LateToWorkTimeFines { get; private set; }
+
+
+
+
+}
+public enum LateToWorkType
+{
+ ///
+ /// محاسبه نمیشود
+ ///
+ None,
+
+ ///
+ /// هر دقیقه تاخیر به تناسب حقوق مزد روزانه کسر گردد
+ ///
+ DeductEveryMinuteAccordingToDailyWage,
+
+ ///
+ /// هر دقیقه تاخیر چند برابر از حقوق کسر میگردد
+ ///
+ MultiTimesPerMinute
+}
+public class LateToWorkTimeFine
+{
+ public LateToWorkTimeFine(string minute, double fineMoney)
+ {
+ Minute = minute;
+ FineMoney = fineMoney;
+ }
+
+ private LateToWorkTimeFine()
+ {
+ }
+
+ ///
+ /// دقیقه تعیین شده برای جریمه
+ ///
+ public string Minute { get; private set; }
+
+ ///
+ /// مبلغ تعیین شده برای جریمه
+ ///
+ public double FineMoney { get; private set; }
+}
\ No newline at end of file
diff --git a/0_Framework/Domain/CustomizeCheckoutValueObjects/LeavePay.cs b/0_Framework/Domain/CustomizeCheckoutValueObjects/LeavePay.cs
new file mode 100644
index 00000000..6c44e908
--- /dev/null
+++ b/0_Framework/Domain/CustomizeCheckoutValueObjects/LeavePay.cs
@@ -0,0 +1,47 @@
+namespace _0_Framework.Domain.CustomizeCheckoutValueObjects;
+
+public class LeavePay
+{
+ public LeavePay(LeavePayType leavePayType, double value)
+ {
+ LeavePayType = leavePayType;
+ //DayCountAllowable = dayCountAllowable;
+ Value = value;
+ }
+
+ private LeavePay()
+ {
+ }
+
+ ///
+ /// نوع مرخصی
+ ///
+ public LeavePayType LeavePayType { get; private set; }
+
+ /////
+ ///// تعداد روز های مجاز مرخصی
+ /////
+ //public string DayCountAllowable { get; set; }
+
+ public double Value { get; private set; }
+}
+public enum LeavePayType
+{
+ ///
+ /// محاسبه و پرداخت نمیشود
+ ///
+ None,
+ ///
+ /// پرداخت میشود
+ ///
+ Pay,
+
+ /////
+ ///// به ازای هر روز استفاده نشده از مرخصی درصدی از حقوق
+ /////
+ //Percentage,
+ /////
+ ///// به ازای هر رور استفاده نشده از مرخصی به صورت مبلغ اختصاصی پرداخت میشود
+ /////
+ //Money
+}
\ No newline at end of file
diff --git a/0_Framework/Domain/CustomizeCheckoutValueObjects/MarriedAllowance.cs b/0_Framework/Domain/CustomizeCheckoutValueObjects/MarriedAllowance.cs
new file mode 100644
index 00000000..880efe6f
--- /dev/null
+++ b/0_Framework/Domain/CustomizeCheckoutValueObjects/MarriedAllowance.cs
@@ -0,0 +1,34 @@
+namespace _0_Framework.Domain.CustomizeCheckoutValueObjects;
+
+public class MarriedAllowance
+{
+ private MarriedAllowance()
+ {
+ }
+
+ public MarriedAllowance(MarriedAllowanceType marriedAllowanceType, double value)
+ {
+ MarriedAllowanceType = marriedAllowanceType;
+ Value = value;
+ }
+
+ public MarriedAllowanceType MarriedAllowanceType { get; private set; }
+ public double Value { get; private set; }
+}
+public enum MarriedAllowanceType
+{
+ ///
+ ///محاسبه نمیشود
+ ///
+ None,
+
+ ///
+ /// به صورت درصدی
+ ///
+ PercentageFromSalary,
+
+ ///
+ /// به صورت مبلغ اختصاصی پرداخت میشود
+ ///
+ Money
+}
\ No newline at end of file
diff --git a/0_Framework/Domain/CustomizeCheckoutValueObjects/MaxMonthDays.cs b/0_Framework/Domain/CustomizeCheckoutValueObjects/MaxMonthDays.cs
new file mode 100644
index 00000000..a783a3a8
--- /dev/null
+++ b/0_Framework/Domain/CustomizeCheckoutValueObjects/MaxMonthDays.cs
@@ -0,0 +1,17 @@
+namespace _0_Framework.Domain.CustomizeCheckoutValueObjects;
+
+public enum MaxMonthDays
+{
+ ///
+ /// تعداد روز های ماه به صورت عادی باشد و تغییری در آن اعمال نشود
+ ///
+ Default,
+ ///
+ /// تمامی ماه ها 30 روزه حساب شوند
+ ///
+ ThirtyDaysForAllMonth,
+ ///
+ /// تمامی ماه ها 30 روزه حساب شوند ولی اسفند 29 روزه
+ ///
+ ThirtyDaysForAllMonthExceptEsfand
+}
\ No newline at end of file
diff --git a/0_Framework/Domain/CustomizeCheckoutValueObjects/NightWorkPay.cs b/0_Framework/Domain/CustomizeCheckoutValueObjects/NightWorkPay.cs
new file mode 100644
index 00000000..0cc76cbf
--- /dev/null
+++ b/0_Framework/Domain/CustomizeCheckoutValueObjects/NightWorkPay.cs
@@ -0,0 +1,34 @@
+namespace _0_Framework.Domain.CustomizeCheckoutValueObjects;
+
+public class NightWorkPay
+{
+ public NightWorkPay(NightWorkType nightWorkingType, double value)
+ {
+ NightWorkingType = nightWorkingType;
+ Value = value;
+ }
+
+ private NightWorkPay()
+ {
+ }
+
+ public NightWorkType NightWorkingType { get; private set; }
+ public double Value { get; private set; }
+}
+public enum NightWorkType
+{
+ ///
+ ///محاسبه نمیشود
+ ///
+ None,
+
+ ///
+ /// به صورت درصدی از مزد روزانه
+ ///
+ PercentageFromSalary,
+
+ ///
+ /// مقدار پول شخصی سازی شده برای هر ساعت شب کاری
+ ///
+ MoneyPerHour
+}
\ No newline at end of file
diff --git a/0_Framework/Domain/CustomizeCheckoutValueObjects/OverTimePay.cs b/0_Framework/Domain/CustomizeCheckoutValueObjects/OverTimePay.cs
new file mode 100644
index 00000000..e0c5c154
--- /dev/null
+++ b/0_Framework/Domain/CustomizeCheckoutValueObjects/OverTimePay.cs
@@ -0,0 +1,31 @@
+namespace _0_Framework.Domain.CustomizeCheckoutValueObjects;
+public enum OverTimePayType
+{
+ ///
+ ///محاسبه نمیشود
+ ///
+ None,
+ ///
+ /// مقدار پول شخصی سازی شده برای هر ساعت
+ ///
+ MoneyPerHour,
+ ///
+ /// به صورت درصدی از مزد روزانه به ازای هر ساعت.
+ ///
+ PercentagePerHourOfSalary
+}
+public class OverTimePay
+{
+ public OverTimePay(OverTimePayType overTimePayType, double value)
+ {
+ OverTimePayType = overTimePayType;
+ Value = value;
+ }
+
+ private OverTimePay()
+ {
+ }
+
+ public OverTimePayType OverTimePayType { get; private set; }
+ public double Value { get; private set; }
+}
\ No newline at end of file
diff --git a/0_Framework/Domain/CustomizeCheckoutValueObjects/ShiftPay.cs b/0_Framework/Domain/CustomizeCheckoutValueObjects/ShiftPay.cs
new file mode 100644
index 00000000..fa3fe879
--- /dev/null
+++ b/0_Framework/Domain/CustomizeCheckoutValueObjects/ShiftPay.cs
@@ -0,0 +1,66 @@
+namespace _0_Framework.Domain.CustomizeCheckoutValueObjects;
+
+public class ShiftPay
+{
+ public ShiftPay(ShiftType shiftType, ShiftPayType shiftPayType, double value)
+ {
+ ShiftType = shiftType;
+ ShiftPayType = shiftPayType;
+ Value = value;
+ }
+
+ private ShiftPay()
+ {
+ }
+
+ ///
+ /// نوع نوبت کاری را مشخص میکند . به عنوان مثال: صبح و عصر، عصر و شب و غیره...
+ ///
+ public ShiftType ShiftType { get; private set; }
+
+ ///
+ /// نوع پرداخت را مشخص میکند که آیا به صورت درصدی است یا مبلغ اختصاصی.
+ ///
+ public ShiftPayType ShiftPayType { get; private set; }
+
+ public double Value { get; private set; }
+}
+public enum ShiftPayType
+{
+ ///
+ ///محاسبه نمیشود
+ ///
+ None,
+
+ ///
+ /// درصدی از حقوق
+ ///
+ PercentageOfSalary,
+
+ ///
+ /// به صورت مبلغ اختصاصی پرداخت میشود
+ ///
+ Money
+}
+public enum ShiftType
+{
+ ///
+ ///محاسبه نمیشود
+ ///
+ None,
+
+ ///
+ /// صبح و عصر
+ ///
+ MorningAndEvening,
+
+ ///
+ /// عصر و شب
+ ///
+ EveningAndNight,
+
+ ///
+ /// صبح و عصر و شب
+ ///
+ MorningAndEveningAndNight
+}
\ No newline at end of file
diff --git a/Company.Domain/CustomizeWorkshopEmployeeSettingsAgg/Entities/CustomizeWorkshopEmployeeSettings.cs b/Company.Domain/CustomizeWorkshopEmployeeSettingsAgg/Entities/CustomizeWorkshopEmployeeSettings.cs
new file mode 100644
index 00000000..d6c3048b
--- /dev/null
+++ b/Company.Domain/CustomizeWorkshopEmployeeSettingsAgg/Entities/CustomizeWorkshopEmployeeSettings.cs
@@ -0,0 +1,212 @@
+using System;
+using System.Collections.Generic;
+using _0_Framework.Domain;
+using _0_Framework.Domain.CustomizeCheckoutValueObjects;
+using Company.Domain.CustomizeWorkshopGroupSettingsAgg.Entities;
+using Company.Domain.EmployeeAgg;
+using Company.Domain.WorkshopAgg;
+
+namespace Company.Domain.CustomizeWorkshopEmployeeSettingsAgg.Entities;
+
+public class CustomizeWorkshopEmployeeSettings : EntityBase
+{
+ private CustomizeWorkshopEmployeeSettings()
+ {
+
+ }
+
+ public CustomizeWorkshopEmployeeSettings(FridayPay fridayPay, OverTimePay overTimePay, BaseYearsPay baseYearsPay,
+ BonusesPay bonusesPay, NightWorkPay nightWorkPay, MarriedAllowance marriedAllowance, ShiftPay shiftPay,
+ FamilyAllowance familyAllowance, LeavePay leavePay, InsuranceDeduction insuranceDeduction, FineAbsenceDeduction fineAbsenceDeduction,
+ LateToWork lateToWork, EarlyExit earlyExit, long employeeId, long workshopId, double salary, long customizeWorkshopGroupSettingId,
+ ICollection customizeWorkshopEmployeeSettingsShifts)
+ {
+ FridayPay = fridayPay;
+ OverTimePay = overTimePay;
+ BaseYearsPay = baseYearsPay;
+ BonusesPay = bonusesPay;
+ NightWorkPay = nightWorkPay;
+ FamilyAllowance = familyAllowance;
+ LeavePay = leavePay;
+ InsuranceDeduction = insuranceDeduction;
+ FineAbsenceDeduction = fineAbsenceDeduction;
+ LateToWork = lateToWork;
+ EarlyExit = earlyExit;
+ EmployeeId = employeeId;
+ WorkshopId = workshopId;
+ Salary = salary;
+ CustomizeWorkshopGroupSettingId = customizeWorkshopGroupSettingId;
+ CustomizeWorkshopEmployeeSettingsShifts = customizeWorkshopEmployeeSettingsShifts;
+ IsChanged = false;
+ }
+
+ ///
+ /// جمعه کاری
+ ///
+ public FridayPay FridayPay { get; private set; }
+
+ ///
+ /// اضافه کاری
+ ///
+ public OverTimePay OverTimePay { get; private set; }
+
+ ///
+ /// سنوات
+ ///
+ public BaseYearsPay BaseYearsPay { get; private set; }
+
+ ///
+ /// عیدی
+ ///
+ public BonusesPay BonusesPay { get; private set; }
+
+ ///
+ /// شب کاری
+ ///
+ public NightWorkPay NightWorkPay { get; private set; }
+
+ ///
+ /// حق تاهل
+ ///
+ public MarriedAllowance MarriedAllowance { get; private set; }
+
+ ///
+ /// نوبت کاری
+ ///
+ public ShiftPay ShiftPay { get; private set; }
+
+ ///
+ /// حق اولاد(حق فرزند)ء
+ ///
+ public FamilyAllowance FamilyAllowance { get; private set; }
+
+ ///
+ /// مزد مرخصی
+ ///
+ public LeavePay LeavePay { get; private set; }
+
+ ///
+ /// حق بیمه
+ ///
+ public InsuranceDeduction InsuranceDeduction { get; private set; }
+
+ ///
+ /// جریمه غیبت
+ ///
+ public FineAbsenceDeduction FineAbsenceDeduction { get; private set; }
+
+ ///
+ /// تاخیر در ورود
+ ///
+ public LateToWork LateToWork { get; private set; }
+
+ ///
+ /// نعجیل در خروج
+ ///
+ public EarlyExit EarlyExit { get; private set; }
+
+
+
+
+
+ public long EmployeeId { get; private set; }
+ public long WorkshopId { get; private set; }
+ public double Salary { get; private set; }
+
+ public bool IsChanged { get; private set; }
+
+ public long CustomizeWorkshopGroupSettingId { get; set; }
+
+
+
+
+ public ICollection CustomizeWorkshopEmployeeSettingsShifts { get; set; }
+ public CustomizeWorkshopGroupSettings CustomizeWorkshopGroupSettings { get; set; }
+
+
+ ///
+ /// تغییر مقادیر تنظیمات پرسنل با وضعیت بدون تغییر
+ ///
+ /// شیفت های کاری پرسنل
+ /// حقوق ماهیانه اختصاص داده شده
+ /// جمعه کاری
+ /// اضافه کاری
+ /// سنوات
+ /// عیدی
+ /// شب کاری
+ /// حق تاهل
+ /// نوبت کاری
+ /// حق اولاد
+ /// مزد مرخصی
+ /// حق بیمه
+ /// جریمه غیبت
+ /// تاخیر در ورود
+ /// تعجیل درخروج
+ internal void EditEmployeesAndMakeIsChangeFalse(
+ ICollection employeeSettingsShifts, double salary, FridayPay fridayPay, OverTimePay overTimePay, BaseYearsPay baseYearsPay, BonusesPay bonusesPay,
+ NightWorkPay nightWorkPay, MarriedAllowance marriedAllowance, ShiftPay shiftPay,
+ FamilyAllowance familyAllowance, LeavePay leavePay, InsuranceDeduction insuranceDeduction,
+ FineAbsenceDeduction fineAbsenceDeduction, LateToWork lateToWork, EarlyExit earlyExit)
+ {
+ FridayPay = fridayPay;
+ OverTimePay = overTimePay;
+ BaseYearsPay = baseYearsPay;
+ BonusesPay = bonusesPay;
+ NightWorkPay = nightWorkPay;
+ MarriedAllowance = marriedAllowance;
+ ShiftPay = shiftPay;
+ FamilyAllowance = familyAllowance;
+ LeavePay = leavePay;
+ InsuranceDeduction = insuranceDeduction;
+ FineAbsenceDeduction = fineAbsenceDeduction;
+ LateToWork = lateToWork;
+ EarlyExit = earlyExit;
+ Salary = salary;
+ CustomizeWorkshopEmployeeSettingsShifts = employeeSettingsShifts;
+ IsChanged = false;
+ }
+
+
+ ///
+ /// تغییر مقادیر تنظیمات پرسنل و تغییر وضعیت آن به تغییر یافته
+ ///
+ /// شیفت های کاری پرسنل
+ /// حقوق ماهیانه اختصاص داده شده
+ /// جمعه کاری
+ /// اضافه کاری
+ /// سنوات
+ /// عیدی
+ /// شب کاری
+ /// حق تاهل
+ /// نوبت کاری
+ /// حق اولاد
+ /// مزد مرخصی
+ /// حق بیمه
+ /// جریمه غیبت
+ /// تاخیر در ورود
+ /// تعجیل درخروج
+ public void EditEmployeesAndMakeIsChangeTrue(
+ ICollection employeeSettingsShifts, double salary, FridayPay fridayPay, OverTimePay overTimePay, BaseYearsPay baseYearsPay, BonusesPay bonusesPay,
+ NightWorkPay nightWorkPay, MarriedAllowance marriedAllowance, ShiftPay shiftPay,
+ FamilyAllowance familyAllowance, LeavePay leavePay, InsuranceDeduction insuranceDeduction,
+ FineAbsenceDeduction fineAbsenceDeduction, LateToWork lateToWork, EarlyExit earlyExit)
+ {
+ FridayPay = fridayPay;
+ OverTimePay = overTimePay;
+ BaseYearsPay = baseYearsPay;
+ BonusesPay = bonusesPay;
+ NightWorkPay = nightWorkPay;
+ MarriedAllowance = marriedAllowance;
+ ShiftPay = shiftPay;
+ FamilyAllowance = familyAllowance;
+ LeavePay = leavePay;
+ InsuranceDeduction = insuranceDeduction;
+ FineAbsenceDeduction = fineAbsenceDeduction;
+ LateToWork = lateToWork;
+ EarlyExit = earlyExit;
+ Salary = salary;
+ CustomizeWorkshopEmployeeSettingsShifts = employeeSettingsShifts;
+ IsChanged = true;
+ }
+
+}
\ No newline at end of file
diff --git a/Company.Domain/CustomizeWorkshopEmployeeSettingsAgg/Entities/CustomizeWorkshopEmployeeSettingsShift.cs b/Company.Domain/CustomizeWorkshopEmployeeSettingsAgg/Entities/CustomizeWorkshopEmployeeSettingsShift.cs
new file mode 100644
index 00000000..9796dabb
--- /dev/null
+++ b/Company.Domain/CustomizeWorkshopEmployeeSettingsAgg/Entities/CustomizeWorkshopEmployeeSettingsShift.cs
@@ -0,0 +1,19 @@
+using _0_Framework.Domain;
+using CompanyManagment.App.Contracts.CustomizeWorkshopSettings;
+
+namespace Company.Domain.CustomizeWorkshopEmployeeSettingsAgg.Entities;
+
+public class CustomizeWorkshopEmployeeSettingsShift(
+ string startTime,
+ string endTime,
+ ShiftPlacement placement) : EntityBase
+{
+ public string StartTime { get; private set; } = startTime;
+ public string EndTime { get; private set; } = endTime;
+ public ShiftPlacement Placement { get; private set; } = placement;
+
+ public long CustomizeWorkshopEmployeeSettingsId { get; private set; }
+
+ public CustomizeWorkshopEmployeeSettings CustomizeWorkshopEmployeeSettings { get; set; }
+
+}
\ No newline at end of file
diff --git a/Company.Domain/CustomizeWorkshopEmployeeSettingsAgg/ICustomizeWorkshopEmployeeSettingsRepository.cs b/Company.Domain/CustomizeWorkshopEmployeeSettingsAgg/ICustomizeWorkshopEmployeeSettingsRepository.cs
new file mode 100644
index 00000000..afc8018e
--- /dev/null
+++ b/Company.Domain/CustomizeWorkshopEmployeeSettingsAgg/ICustomizeWorkshopEmployeeSettingsRepository.cs
@@ -0,0 +1,9 @@
+using _0_Framework.Domain;
+using Company.Domain.CustomizeWorkshopEmployeeSettingsAgg.Entities;
+
+namespace Company.Domain.CustomizeWorkshopEmployeeSettingsAgg;
+
+public interface ICustomizeWorkshopEmployeeSettingsRepository : IRepository
+{
+
+}
\ No newline at end of file
diff --git a/Company.Domain/CustomizeWorkshopGroupSettingsAgg/Entities/CustomizeWorkshopGroupSettings.cs b/Company.Domain/CustomizeWorkshopGroupSettingsAgg/Entities/CustomizeWorkshopGroupSettings.cs
new file mode 100644
index 00000000..9a86363d
--- /dev/null
+++ b/Company.Domain/CustomizeWorkshopGroupSettingsAgg/Entities/CustomizeWorkshopGroupSettings.cs
@@ -0,0 +1,167 @@
+using System.Collections.Generic;
+using System.Linq;
+using _0_Framework.Domain;
+using _0_Framework.Domain.CustomizeCheckoutValueObjects;
+using Company.Domain.CustomizeWorkshopEmployeeSettingsAgg.Entities;
+using Company.Domain.CustomizeWorkshopSettingsAgg.Entities;
+
+namespace Company.Domain.CustomizeWorkshopGroupSettingsAgg.Entities;
+
+public class CustomizeWorkshopGroupSettings : EntityBase
+{
+ private CustomizeWorkshopGroupSettings()
+ {
+ }
+
+ public CustomizeWorkshopGroupSettings( string groupName, double salary, long customizeWorkshopSettingId, ICollection customizeWorkshopGroupSettingsShifts)
+ {
+ GroupName = groupName;
+ Salary = salary;
+ CustomizeWorkshopSettingId = customizeWorkshopSettingId;
+ CustomizeWorkshopGroupSettingsShifts = customizeWorkshopGroupSettingsShifts;
+ FridayPay = new FridayPay(FridayPayType.None, 0);
+ OverTimePay = new OverTimePay(OverTimePayType.None, 0);
+ BaseYearsPay = new BaseYearsPay(BaseYearsPayType.None);
+ BonusesPay = new BonusesPay(BonusesType.None, 0);
+ NightWorkPay = new NightWorkPay(NightWorkType.None, 0);
+ MarriedAllowance = new MarriedAllowance(MarriedAllowanceType.None, 0);
+ ShiftPay = new ShiftPay(ShiftType.None, ShiftPayType.None, 0);
+ FamilyAllowance = new FamilyAllowance(FamilyAllowanceType.None, 0);
+ LeavePay = new LeavePay(LeavePayType.None, 0);
+ InsuranceDeduction = new InsuranceDeduction(InsuranceDeductionType.None, 0);
+ FineAbsenceDeduction = new FineAbsenceDeduction(FineAbsenceDeductionType.None, 0, new());
+ LateToWork = new LateToWork(LateToWorkType.None, new(), 0);
+ EarlyExit = new EarlyExit(EarlyExitType.None, new(), 0);
+
+
+ }
+
+ ///
+ /// جمعه کاری
+ ///
+ public FridayPay FridayPay { get; private set; }
+
+ ///
+ /// اضافه کاری
+ ///
+ public OverTimePay OverTimePay { get; private set; }
+
+ ///
+ /// سنوات
+ ///
+ public BaseYearsPay BaseYearsPay { get; private set; }
+
+ ///
+ /// عیدی
+ ///
+ public BonusesPay BonusesPay { get; private set; }
+
+ ///
+ /// شب کاری
+ ///
+ public NightWorkPay NightWorkPay { get; private set; }
+
+ ///
+ /// حق تاهل
+ ///
+ public MarriedAllowance MarriedAllowance { get; private set; }
+
+ ///
+ /// نوبت کاری
+ ///
+ public ShiftPay ShiftPay { get; private set; }
+
+ ///
+ /// حق اولاد(حق فرزند)ء
+ ///
+ public FamilyAllowance FamilyAllowance { get; private set; }
+
+ ///
+ /// مزد مرخصی
+ ///
+ public LeavePay LeavePay { get; private set; }
+
+ ///
+ /// حق بیمه
+ ///
+ public InsuranceDeduction InsuranceDeduction { get; private set; }
+
+ ///
+ /// جریمه غیبت
+ ///
+ public FineAbsenceDeduction FineAbsenceDeduction { get; private set; }
+
+ ///
+ /// تاخیر در ورود
+ ///
+ public LateToWork LateToWork { get; private set; }
+
+ ///
+ /// نعجیل در خروج
+ ///
+ public EarlyExit EarlyExit { get; private set; }
+
+
+
+ public string GroupName { get; private set; }
+ public double Salary { get; private set; }
+ public long CustomizeWorkshopSettingId { get; private set; }
+
+ public ICollection CustomizeWorkshopGroupSettingsShifts { get; set; }
+ public ICollection CustomizeWorkshopEmployeeSettingsCollection { get; set; }
+ public CustomizeWorkshopSettings CustomizeWorkshopSettings { get; set; }
+
+
+ public void EditAndOverwriteOnEmployees(string groupName, double salary, IEnumerable employeeIds, FridayPay fridayPay,
+ OverTimePay overTimePay, BaseYearsPay baseYearsPay, BonusesPay bonusesPay, ShiftPay shiftPay,
+ NightWorkPay nightWorkPay, MarriedAllowance marriedAllowance, FamilyAllowance familyAllowance,
+ LeavePay leavePay, InsuranceDeduction insuranceDeduction, FineAbsenceDeduction fineAbsenceDeduction,
+ LateToWork lateToWork, EarlyExit earlyExit,ICollection customizeWorkshopGroupSettingsShifts)
+ {
+ GroupName = groupName;
+ Salary = salary;
+ FridayPay = fridayPay;
+ OverTimePay = overTimePay;
+ BaseYearsPay = baseYearsPay;
+ BonusesPay = bonusesPay;
+ NightWorkPay = nightWorkPay;
+ MarriedAllowance = marriedAllowance;
+ ShiftPay = shiftPay;
+ FamilyAllowance = familyAllowance;
+ LeavePay = leavePay;
+ InsuranceDeduction = insuranceDeduction;
+ FineAbsenceDeduction = fineAbsenceDeduction;
+ LateToWork = lateToWork;
+ EarlyExit = earlyExit;
+ CustomizeWorkshopGroupSettingsShifts = customizeWorkshopGroupSettingsShifts;
+ var employeeSettingsShift = customizeWorkshopGroupSettingsShifts
+ .Select(x=>new CustomizeWorkshopEmployeeSettingsShift(x.StartTime,x.EndTime,x.Placement)).ToList();
+
+ var permittedToOverWrite = CustomizeWorkshopEmployeeSettingsCollection.Where(x => employeeIds.Contains(x.id));
+ foreach (var item in permittedToOverWrite)
+ {
+ item.EditEmployeesAndMakeIsChangeFalse(employeeSettingsShift, salary, fridayPay, overTimePay, baseYearsPay, bonusesPay
+ , nightWorkPay, marriedAllowance, shiftPay, familyAllowance, leavePay, insuranceDeduction, fineAbsenceDeduction,
+ lateToWork, earlyExit);
+ }
+ }
+
+ public void RemoveEmployeeFromGroup(long employeeId)
+ {
+ var currentItem = CustomizeWorkshopEmployeeSettingsCollection.FirstOrDefault(x => x.EmployeeId == employeeId);
+ if (currentItem != null)
+ CustomizeWorkshopEmployeeSettingsCollection.Remove(currentItem);
+ }
+
+
+
+ //public void OverWriteEmployeesShiftAndSalary(IEnumerable ids,ICollection employeeSettingsShifts,double salary)
+ //{
+ // var permittedToOverWrite= RollCallWorkshopEmployeeSettingsCollection.Where(x => ids.Contains(x.id));
+ // foreach (var item in permittedToOverWrite)
+ // {
+ // item.OverWriteSalaryAndShift(employeeSettingsShifts, salary);
+ // }
+ //}
+
+}
diff --git a/Company.Domain/CustomizeWorkshopGroupSettingsAgg/Entities/CustomizeWorkshopGroupSettingsShift.cs b/Company.Domain/CustomizeWorkshopGroupSettingsAgg/Entities/CustomizeWorkshopGroupSettingsShift.cs
new file mode 100644
index 00000000..a1143ccb
--- /dev/null
+++ b/Company.Domain/CustomizeWorkshopGroupSettingsAgg/Entities/CustomizeWorkshopGroupSettingsShift.cs
@@ -0,0 +1,19 @@
+using _0_Framework.Domain;
+using CompanyManagment.App.Contracts.CustomizeWorkshopSettings;
+
+namespace Company.Domain.CustomizeWorkshopGroupSettingsAgg.Entities;
+
+public class CustomizeWorkshopGroupSettingsShift(
+ string startTime,
+ string endTime,
+ ShiftPlacement placement) : EntityBase
+{
+ public string StartTime { get; private set; } = startTime;
+ public string EndTime { get; private set; } = endTime;
+ public ShiftPlacement Placement { get; private set; } = placement;
+ public long CustomizeWorkshopGroupSettingsId { get; private set; }
+
+ public CustomizeWorkshopGroupSettings CustomizeWorkshopGroupSettings { get; set; }
+
+
+}
\ No newline at end of file
diff --git a/Company.Domain/CustomizeWorkshopGroupSettingsAgg/ICustomizeWorkshopGroupSettingsRepository.cs b/Company.Domain/CustomizeWorkshopGroupSettingsAgg/ICustomizeWorkshopGroupSettingsRepository.cs
new file mode 100644
index 00000000..e3bdcdc9
--- /dev/null
+++ b/Company.Domain/CustomizeWorkshopGroupSettingsAgg/ICustomizeWorkshopGroupSettingsRepository.cs
@@ -0,0 +1,16 @@
+using System.Collections.Generic;
+using _0_Framework.Domain;
+using Company.Domain.CustomizeWorkshopGroupSettingsAgg.Entities;
+using CompanyManagment.App.Contracts.CustomizeWorkshopSettings;
+using CompanyManagment.App.Contracts.Employee;
+
+namespace Company.Domain.CustomizeWorkshopGroupSettingsAgg;
+
+public interface ICustomizeWorkshopGroupSettingsRepository : IRepository
+{
+ CustomizeWorkshopGroupSettings GetIncludeWorkshopSettings(long id);
+ List GetEmployeesWithoutGroup(long workshopId);
+ CustomizeWorkshopGroupSettings GetWithEmployees(long groupId);
+ List GetChangedEmployeeSettingsByGroupSettingsId(long groupSettingsId);
+ List GetEmployeeSettingsByGroupSettingsId(long groupSettingsId);
+}
\ No newline at end of file
diff --git a/Company.Domain/CustomizeWorkshopSettingsAgg/Entities/CustomizeWorkshopSettings.cs b/Company.Domain/CustomizeWorkshopSettingsAgg/Entities/CustomizeWorkshopSettings.cs
new file mode 100644
index 00000000..dd86c939
--- /dev/null
+++ b/Company.Domain/CustomizeWorkshopSettingsAgg/Entities/CustomizeWorkshopSettings.cs
@@ -0,0 +1,145 @@
+using System.Collections.Generic;
+using _0_Framework.Domain;
+using _0_Framework.Domain.CustomizeCheckoutValueObjects;
+using Company.Domain.CustomizeWorkshopGroupSettingsAgg.Entities;
+using Company.Domain.WorkshopAgg;
+
+namespace Company.Domain.CustomizeWorkshopSettingsAgg.Entities;
+public class CustomizeWorkshopSettings : EntityBase
+{
+ private CustomizeWorkshopSettings()
+ {
+ }
+
+ public CustomizeWorkshopSettings(long workshopId,
+ ICollection customizeWorkshopSettingsShifts)
+ {
+ FridayPay = new FridayPay(FridayPayType.None,0);
+ OverTimePay =new OverTimePay(OverTimePayType.None,0);
+ BaseYearsPay = new BaseYearsPay(BaseYearsPayType.None);
+ BonusesPay = new BonusesPay(BonusesType.None,0);
+ NightWorkPay = new NightWorkPay(NightWorkType.None,0);
+ MarriedAllowance = new MarriedAllowance(MarriedAllowanceType.None,0);
+ ShiftPay = new ShiftPay(ShiftType.None,ShiftPayType.None,0);
+ FamilyAllowance = new FamilyAllowance(FamilyAllowanceType.None ,0);
+ LeavePay = new LeavePay(LeavePayType.None,0);
+ InsuranceDeduction = new InsuranceDeduction(InsuranceDeductionType.None,0);
+ FineAbsenceDeduction = new FineAbsenceDeduction(FineAbsenceDeductionType.None,0,new());
+ LateToWork = new LateToWork(LateToWorkType.None,new(),0);
+ EarlyExit = new EarlyExit(EarlyExitType.None,new(),0);
+ WorkshopId = workshopId;
+ CustomizeWorkshopSettingsShifts = customizeWorkshopSettingsShifts;
+ Currency = Currency.Rial;
+ MaxMonthDays = MaxMonthDays.Default;
+ }
+
+ ///
+ /// جمعه کاری
+ ///
+ public FridayPay FridayPay { get; private set; }
+
+ ///
+ /// اضافه کاری
+ ///
+ public OverTimePay OverTimePay { get; private set; }
+
+ ///
+ /// سنوات
+ ///
+ public BaseYearsPay BaseYearsPay { get; private set; }
+
+ ///
+ /// عیدی
+ ///
+ public BonusesPay BonusesPay { get; private set; }
+
+ ///
+ /// شب کاری
+ ///
+ public NightWorkPay NightWorkPay { get; private set; }
+
+ ///
+ /// حق تاهل
+ ///
+ public MarriedAllowance MarriedAllowance { get; private set; }
+
+ ///
+ /// نوبت کاری
+ ///
+ public ShiftPay ShiftPay { get; private set; }
+
+ ///
+ /// حق اولاد(حق فرزند)ء
+ ///
+ public FamilyAllowance FamilyAllowance { get; private set; }
+
+ ///
+ /// مزد مرخصی
+ ///
+ public LeavePay LeavePay { get; private set; }
+
+ ///
+ /// حق بیمه
+ ///
+ public InsuranceDeduction InsuranceDeduction { get; private set; }
+
+ ///
+ /// جریمه غیبت
+ ///
+ public FineAbsenceDeduction FineAbsenceDeduction { get; private set; }
+
+ ///
+ /// تاخیر در ورود
+ ///
+ public LateToWork LateToWork { get; private set; }
+
+ ///
+ /// نعجیل در خروج
+ ///
+ public EarlyExit EarlyExit { get; private set; }
+
+ ///
+ /// نوع محاسبه تعداد روز های ماه برای محاسبه فیش حقوقی
+ ///
+ public MaxMonthDays MaxMonthDays { get; private set; }
+
+ public long WorkshopId { get; private set; }
+ public Workshop Workshop { get; set; }
+ public ICollection CustomizeWorkshopSettingsShifts { get; set; }
+ public ICollection CustomizeWorkshopGroupSettingsCollection { get; set; }
+
+ public Currency Currency { get; set; }
+
+
+ public void Edit(FridayPay fridayPay, OverTimePay overTimePay, BaseYearsPay baseYearsPay, BonusesPay bonusesPay,
+ NightWorkPay nightWorkPay, MarriedAllowance marriedAllowance, ShiftPay shiftPay,
+ FamilyAllowance familyAllowance, LeavePay leavePay, InsuranceDeduction insuranceDeduction,
+ FineAbsenceDeduction fineAbsenceDeduction, LateToWork lateToWork, EarlyExit earlyExit,
+ ICollection customizeWorkshopSettingsShifts)
+ {
+ FridayPay = fridayPay;
+ OverTimePay = overTimePay;
+ BaseYearsPay = baseYearsPay;
+ BonusesPay = bonusesPay;
+ NightWorkPay = nightWorkPay;
+ MarriedAllowance = marriedAllowance;
+ ShiftPay = shiftPay;
+ FamilyAllowance = familyAllowance;
+ LeavePay = leavePay;
+ InsuranceDeduction = insuranceDeduction;
+ FineAbsenceDeduction = fineAbsenceDeduction;
+ LateToWork = lateToWork;
+ EarlyExit = earlyExit;
+ CustomizeWorkshopSettingsShifts = customizeWorkshopSettingsShifts;
+
+ }
+
+ //edits the shifts of workshop
+ public void ChangeCurrency(Currency currency)
+ {
+ if (currency == Currency)
+ return;
+
+ Currency = currency;
+ }
+}
\ No newline at end of file
diff --git a/Company.Domain/CustomizeWorkshopSettingsAgg/Entities/CustomizeWorkshopSettingsShift.cs b/Company.Domain/CustomizeWorkshopSettingsAgg/Entities/CustomizeWorkshopSettingsShift.cs
new file mode 100644
index 00000000..79ca8703
--- /dev/null
+++ b/Company.Domain/CustomizeWorkshopSettingsAgg/Entities/CustomizeWorkshopSettingsShift.cs
@@ -0,0 +1,17 @@
+using _0_Framework.Domain;
+using CompanyManagment.App.Contracts.CustomizeWorkshopSettings;
+
+namespace Company.Domain.CustomizeWorkshopSettingsAgg.Entities;
+
+public class CustomizeWorkshopSettingsShift(
+ string startTime,
+ string endTime,
+ ShiftPlacement placement) : EntityBase
+{
+ public string StartTime { get; private set; } = startTime;
+ public string EndTime { get; private set; } = endTime;
+ public ShiftPlacement Placement { get; private set; } = placement;
+ public long CustomizeWorkshopSettingsId { get; private set; }
+
+ public CustomizeWorkshopSettings CustomizeWorkshopSettings { get; set; }
+}
\ No newline at end of file
diff --git a/Company.Domain/CustomizeWorkshopSettingsAgg/ICustomizeWorkshopSettingsRepository.cs b/Company.Domain/CustomizeWorkshopSettingsAgg/ICustomizeWorkshopSettingsRepository.cs
new file mode 100644
index 00000000..33d1844b
--- /dev/null
+++ b/Company.Domain/CustomizeWorkshopSettingsAgg/ICustomizeWorkshopSettingsRepository.cs
@@ -0,0 +1,14 @@
+using _0_Framework.Domain;
+using Company.Domain.CustomizeWorkshopSettingsAgg.Entities;
+using CompanyManagment.App.Contracts.CustomizeWorkshopSettings;
+
+namespace Company.Domain.CustomizeWorkshopSettingsAgg;
+
+public interface ICustomizeWorkshopSettingsRepository : IRepository
+{
+ // It will Get the Workshop Settings with its groups and the employees of groups.
+ CustomizeWorkshopSettings GetWorkshopSettingsByWorkshopId(long workshopId);
+
+ CustomizeWorkshopEmployeeSettingsViewModel GetEmployeeSettingsByWorkshopIdGroupSettingsId(long workshopId,
+ long employeeId);
+}
\ No newline at end of file
diff --git a/Company.Domain/WorkshopAgg/Workshop.cs b/Company.Domain/WorkshopAgg/Workshop.cs
index 18c530a3..1daccb68 100644
--- a/Company.Domain/WorkshopAgg/Workshop.cs
+++ b/Company.Domain/WorkshopAgg/Workshop.cs
@@ -6,6 +6,7 @@ using Company.Domain.CheckoutAgg;
using Company.Domain.ClientEmployeeWorkshopAgg;
using Company.Domain.ContractAgg;
using Company.Domain.CustomizeCheckoutAgg;
+using Company.Domain.CustomizeWorkshopSettingsAgg.Entities;
using Company.Domain.EmployeeInsuranceRecordAgg;
using Company.Domain.empolyerAgg;
using Company.Domain.InsuranceAgg;
@@ -218,6 +219,7 @@ public class Workshop : EntityBase
public InsuranceWorkshopInfo InsuranceWorkshopInfo { get; set; }
public List TaxLeftWorkCategoryList { get; set; }
public List CustomizeCheckouts { get; set; }
+ public CustomizeWorkshopSettings CustomizeWorkshopSettings { get; set; }
public void Edit(string workshopName, string workshopSureName, string insuranceCode,string typeOfOwnership, string archiveCode, string agentName, string agentPhone,
string state, string city, string address, string typeOfInsuranceSend, string typeOfContract, string contractTerm,
diff --git a/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/CreateCustomizeEmployeeSettings.cs b/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/CreateCustomizeEmployeeSettings.cs
new file mode 100644
index 00000000..13706f9c
--- /dev/null
+++ b/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/CreateCustomizeEmployeeSettings.cs
@@ -0,0 +1,76 @@
+using CompanyManagment.App.Contracts.CustomizeWorkshopSettings.ValueObjectsViewModel;
+using System.Collections.Generic;
+
+namespace CompanyManagment.App.Contracts.CustomizeWorkshopSettings;
+
+public class CreateCustomizeEmployeeSettings
+{
+ ///
+ /// جمعه کاری
+ ///
+ public FridayPayViewModel FridayPay { get; private set; }
+
+ ///
+ /// اضافه کاری
+ ///
+ public OverTimePayViewModel OverTimePay { get; private set; }
+
+ ///
+ /// سنوات
+ ///
+ public BaseYearsPayViewModel BaseYearsPay { get; private set; }
+
+ ///
+ /// عیدی
+ ///
+ public BonusesPayViewModel BonusesPay { get; private set; }
+
+ ///
+ /// شب کاری
+ ///
+ public NightWorkPayViewModel NightWorkPay { get; private set; }
+
+ ///
+ /// حق تاهل
+ ///
+ public MarriedAllowanceViewModel MarriedAllowance { get; private set; }
+
+ ///
+ /// نوبت کاری
+ ///
+ public ShiftPayViewModel ShiftPay { get; private set; }
+
+ ///
+ /// حق اولاد(حق فرزند)ء
+ ///
+ public FamilyAllowanceViewModel FamilyAllowance { get; private set; }
+
+ ///
+ /// مزد مرخصی
+ ///
+ public LeavePayViewModel LeavePay { get; private set; }
+
+ ///
+ /// حق بیمه
+ ///
+ public InsuranceDeductionViewModel InsuranceDeduction { get; private set; }
+
+ ///
+ /// جریمه غیبت
+ ///
+ public FineAbsenceDeductionViewModel FineAbsenceDeduction { get; private set; }
+
+ ///
+ /// تاخیر در ورود
+ ///
+ public LateToWorkViewModel LateToWork { get; private set; }
+
+ ///
+ /// نعجیل در خروج
+ ///
+ public EarlyExitViewModel EarlyExit { get; private set; }
+ public List EmployeeIds { get; set; }
+ public long GroupId { get; set; }
+ public long WorkshopSettingId { get; set; }
+ public long WorkshopId { get; set; }
+}
\ No newline at end of file
diff --git a/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/CreateCustomizeWorkshopGroupSettings.cs b/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/CreateCustomizeWorkshopGroupSettings.cs
new file mode 100644
index 00000000..06e841b0
--- /dev/null
+++ b/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/CreateCustomizeWorkshopGroupSettings.cs
@@ -0,0 +1,14 @@
+
+using System.Collections.Generic;
+
+namespace CompanyManagment.App.Contracts.CustomizeWorkshopSettings;
+
+public class CreateCustomizeWorkshopGroupSettings
+{
+
+ public string Name { get; set; }
+ public string Salary { get; set; }
+ public long CustomizeWorkshopSettingId { get; set; }
+ public IEnumerable ShiftViewModel { get; set; }
+
+}
\ No newline at end of file
diff --git a/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/CreateCustomizeWorkshopSettings.cs b/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/CreateCustomizeWorkshopSettings.cs
new file mode 100644
index 00000000..baf04331
--- /dev/null
+++ b/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/CreateCustomizeWorkshopSettings.cs
@@ -0,0 +1,10 @@
+using System.Collections.Generic;
+
+namespace CompanyManagment.App.Contracts.CustomizeWorkshopSettings;
+
+public class CreateCustomizeWorkshopSettings
+{
+ public IEnumerable ShiftsList { get; set; }
+
+
+}
\ No newline at end of file
diff --git a/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/CustomizeWorkshopEmployeeSettingsViewModel.cs b/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/CustomizeWorkshopEmployeeSettingsViewModel.cs
new file mode 100644
index 00000000..20855cdc
--- /dev/null
+++ b/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/CustomizeWorkshopEmployeeSettingsViewModel.cs
@@ -0,0 +1,13 @@
+using System.Collections.Generic;
+
+namespace CompanyManagment.App.Contracts.CustomizeWorkshopSettings;
+
+public class CustomizeWorkshopEmployeeSettingsViewModel
+{
+ public long Id { get; set; }
+ public long EmployeeId { get; set; }
+ public double Salary { get; set;}
+ public bool IsChanged { get; set; }
+ public string Name { get; set; }
+ public List RollCallWorkshopShifts { get; set; }
+}
\ No newline at end of file
diff --git a/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/CustomizeWorkshopGroupSettingsViewModel.cs b/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/CustomizeWorkshopGroupSettingsViewModel.cs
new file mode 100644
index 00000000..cac57e60
--- /dev/null
+++ b/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/CustomizeWorkshopGroupSettingsViewModel.cs
@@ -0,0 +1,12 @@
+using System.Collections.Generic;
+
+namespace CompanyManagment.App.Contracts.CustomizeWorkshopSettings;
+
+public class CustomizeWorkshopGroupSettingsViewModel
+{
+ public long Id { get; set; }
+ public double Salary { get; set; }
+ public string GroupName { get; set; }
+ public List RollCallWorkshopShifts { get; set; }
+ public List RollCallWorkshopEmployeesSettings { get; set; }
+}
\ No newline at end of file
diff --git a/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/CustomizeWorkshopSettingsViewModel.cs b/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/CustomizeWorkshopSettingsViewModel.cs
new file mode 100644
index 00000000..4ded8bb7
--- /dev/null
+++ b/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/CustomizeWorkshopSettingsViewModel.cs
@@ -0,0 +1,10 @@
+using System.Collections.Generic;
+
+namespace CompanyManagment.App.Contracts.CustomizeWorkshopSettings;
+
+public class CustomizeWorkshopSettingsViewModel
+{
+ public long Id { get; set; }
+ public string Name { get; set; }
+ public List GroupSettings { get; set; }
+}
\ No newline at end of file
diff --git a/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/CustomizeWorkshopShiftViewModel.cs b/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/CustomizeWorkshopShiftViewModel.cs
new file mode 100644
index 00000000..d2a0b700
--- /dev/null
+++ b/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/CustomizeWorkshopShiftViewModel.cs
@@ -0,0 +1,8 @@
+namespace CompanyManagment.App.Contracts.CustomizeWorkshopSettings;
+
+public class CustomizeWorkshopShiftViewModel
+{
+ public string StartTime { get; set; }
+ public string EndTime { get; set; }
+ public ShiftPlacement Placement { get; set; }
+}
\ No newline at end of file
diff --git a/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/EditCustomizeEmployeeSettings.cs b/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/EditCustomizeEmployeeSettings.cs
new file mode 100644
index 00000000..eedbc9c7
--- /dev/null
+++ b/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/EditCustomizeEmployeeSettings.cs
@@ -0,0 +1,11 @@
+using System.Collections.Generic;
+
+namespace CompanyManagment.App.Contracts.CustomizeWorkshopSettings;
+
+public class EditCustomizeEmployeeSettings:CreateCustomizeEmployeeSettings
+{
+ public long Id { get; set; }
+ public string Salary { get; set; }
+ public string EmployeeFullName { get; set; }
+ public IEnumerable ShiftViewModel { get; set; }
+}
\ No newline at end of file
diff --git a/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/EditCustomizeWorkshopGroupSettings.cs b/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/EditCustomizeWorkshopGroupSettings.cs
new file mode 100644
index 00000000..defd0e34
--- /dev/null
+++ b/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/EditCustomizeWorkshopGroupSettings.cs
@@ -0,0 +1,82 @@
+using _0_Framework.Domain.CustomizeCheckoutValueObjects;
+using CompanyManagment.App.Contracts.CustomizeWorkshopSettings.ValueObjectsViewModel;
+using System.Collections.Generic;
+
+namespace CompanyManagment.App.Contracts.CustomizeWorkshopSettings;
+
+public class EditCustomizeWorkshopGroupSettings:CreateCustomizeWorkshopGroupSettings
+{
+ public long Id { get; set; }
+ public List EmployeeIds { get; set; }
+ ///
+ /// نوع محاسبه تعداد روز های ماه برای محاسبه فیش حقوقی
+ ///
+ public MaxMonthDays MaxMonthDays { get; set; }
+
+ ///
+ /// جمعه کاری
+ ///
+ public FridayPayViewModel FridayPay { get; private set; }
+
+ ///
+ /// اضافه کاری
+ ///
+ public OverTimePayViewModel OverTimePay { get; private set; }
+
+ ///
+ /// سنوات
+ ///
+ public BaseYearsPayViewModel BaseYearsPay { get; private set; }
+
+ ///
+ /// عیدی
+ ///
+ public BonusesPayViewModel BonusesPay { get; private set; }
+
+ ///
+ /// شب کاری
+ ///
+ public NightWorkPayViewModel NightWorkPay { get; private set; }
+
+ ///
+ /// حق تاهل
+ ///
+ public MarriedAllowanceViewModel MarriedAllowance { get; private set; }
+
+ ///
+ /// نوبت کاری
+ ///
+ public ShiftPayViewModel ShiftPay { get; private set; }
+
+ ///
+ /// حق اولاد(حق فرزند)ء
+ ///
+ public FamilyAllowanceViewModel FamilyAllowance { get; private set; }
+
+ ///
+ /// مزد مرخصی
+ ///
+ public LeavePayViewModel LeavePay { get; private set; }
+
+ ///
+ /// حق بیمه
+ ///
+ public InsuranceDeductionViewModel InsuranceDeduction { get; private set; }
+
+ ///
+ /// جریمه غیبت
+ ///
+ public FineAbsenceDeductionViewModel FineAbsenceDeduction { get; private set; }
+
+ ///
+ /// تاخیر در ورود
+ ///
+ public LateToWorkViewModel LateToWork { get; private set; }
+
+ ///
+ /// نعجیل در خروج
+ ///
+ public EarlyExitViewModel EarlyExit { get; private set; }
+
+
+}
\ No newline at end of file
diff --git a/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/EditCustomizeWorkshopSettings.cs b/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/EditCustomizeWorkshopSettings.cs
new file mode 100644
index 00000000..2eaa7302
--- /dev/null
+++ b/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/EditCustomizeWorkshopSettings.cs
@@ -0,0 +1,80 @@
+using _0_Framework.Domain.CustomizeCheckoutValueObjects;
+using CompanyManagment.App.Contracts.CustomizeWorkshopSettings.ValueObjectsViewModel;
+
+namespace CompanyManagment.App.Contracts.CustomizeWorkshopSettings;
+
+public class EditCustomizeWorkshopSettings:CreateCustomizeWorkshopSettings
+{
+ public long Id { get; set; }
+ public Currency Currency { get; set; }
+
+ ///
+ /// نوع محاسبه تعداد روز های ماه برای محاسبه فیش حقوقی
+ ///
+ public MaxMonthDays MaxMonthDays { get; set; }
+
+ ///
+ /// جمعه کاری
+ ///
+ public FridayPayViewModel FridayPay { get; private set; }
+
+ ///
+ /// اضافه کاری
+ ///
+ public OverTimePayViewModel OverTimePay { get; private set; }
+
+ ///
+ /// سنوات
+ ///
+ public BaseYearsPayViewModel BaseYearsPay { get; private set; }
+
+ ///
+ /// عیدی
+ ///
+ public BonusesPayViewModel BonusesPay { get; private set; }
+
+ ///
+ /// شب کاری
+ ///
+ public NightWorkPayViewModel NightWorkPay { get; private set; }
+
+ ///
+ /// حق تاهل
+ ///
+ public MarriedAllowanceViewModel MarriedAllowance { get; private set; }
+
+ ///
+ /// نوبت کاری
+ ///
+ public ShiftPayViewModel ShiftPay { get; private set; }
+
+ ///
+ /// حق اولاد(حق فرزند)ء
+ ///
+ public FamilyAllowanceViewModel FamilyAllowance { get; private set; }
+
+ ///
+ /// مزد مرخصی
+ ///
+ public LeavePayViewModel LeavePay { get; private set; }
+
+ ///
+ /// حق بیمه
+ ///
+ public InsuranceDeductionViewModel InsuranceDeduction { get; private set; }
+
+ ///
+ /// جریمه غیبت
+ ///
+ public FineAbsenceDeductionViewModel FineAbsenceDeduction { get; private set; }
+
+ ///
+ /// تاخیر در ورود
+ ///
+ public LateToWorkViewModel LateToWork { get; private set; }
+
+ ///
+ /// نعجیل در خروج
+ ///
+ public EarlyExitViewModel EarlyExit { get; private set; }
+}
\ No newline at end of file
diff --git a/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/ICustomizeWorkshopSettingsApplication.cs b/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/ICustomizeWorkshopSettingsApplication.cs
new file mode 100644
index 00000000..197ad3c4
--- /dev/null
+++ b/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/ICustomizeWorkshopSettingsApplication.cs
@@ -0,0 +1,39 @@
+using System.Collections.Generic;
+using _0_Framework.Application;
+using CompanyManagment.App.Contracts.Employee;
+
+namespace CompanyManagment.App.Contracts.CustomizeWorkshopSettings;
+
+public interface ICustomizeWorkshopSettingsApplication
+{
+ //Create workshop settings
+ OperationResult CreateWorkshopSettings(CreateCustomizeWorkshopSettings command);
+
+ //create group settings with workshopSettingsId.
+ OperationResult CreateGroupSettingsByRollCallWorkshopSettingId(CreateCustomizeWorkshopGroupSettings command);
+
+
+ OperationResult CreateRollCallEmployeeSettings(CreateCustomizeEmployeeSettings command);
+
+ //Edit the Workshop Settings Data
+ OperationResult EditWorkshopSetting(EditCustomizeWorkshopSettings command);
+
+ //Edit the Group Settings Data
+ OperationResult EditRollCallGroupSetting(EditCustomizeWorkshopGroupSettings command);
+
+ //Edit the Employee settings and change the 'IsChanged' bool to true.
+ OperationResult EditRollCallEmployeeSettings(EditCustomizeEmployeeSettings command);
+
+ //Remove the Employee From the Group Settings
+ OperationResult RemoveEmployeeFromRollCallWorkshopGroup(long employeeId,long groupId);
+
+ // It will Get the Workshop Settings with its groups and the employees of groups.
+ CustomizeWorkshopSettingsViewModel GetWorkshopSettingsByWorkshopId(long workshopId);
+
+ List GetChangedEmployeeSettingsByGroupSettingsId(
+ long groupSettingsId);
+ List GetEmployeesWithoutGroup(long rollCallWorkshopSettingId);
+ CustomizeWorkshopEmployeeSettingsViewModel GetEmployeeSettingsByEmployeeIdGroupSettingsId(long workshopId,long employeeId);
+
+ List GetEmployeeSettingsByGroupSettingsId(long groupSettingsId);
+}
\ No newline at end of file
diff --git a/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/ShiftPlacement.cs b/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/ShiftPlacement.cs
new file mode 100644
index 00000000..0e343168
--- /dev/null
+++ b/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/ShiftPlacement.cs
@@ -0,0 +1,8 @@
+namespace CompanyManagment.App.Contracts.CustomizeWorkshopSettings;
+
+public enum ShiftPlacement
+{
+ First,
+ Second,
+ Third
+}
\ No newline at end of file
diff --git a/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/ValueObjectsViewModel/BaseYearsPayViewModel.cs b/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/ValueObjectsViewModel/BaseYearsPayViewModel.cs
new file mode 100644
index 00000000..7e2517c0
--- /dev/null
+++ b/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/ValueObjectsViewModel/BaseYearsPayViewModel.cs
@@ -0,0 +1,9 @@
+using _0_Framework.Domain.CustomizeCheckoutValueObjects;
+
+namespace CompanyManagment.App.Contracts.CustomizeWorkshopSettings.ValueObjectsViewModel;
+
+public class BaseYearsPayViewModel
+{
+ public BaseYearsPayType BaseYearsPayType { get; set; }
+
+}
\ No newline at end of file
diff --git a/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/ValueObjectsViewModel/BonusesPayViewModel.cs b/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/ValueObjectsViewModel/BonusesPayViewModel.cs
new file mode 100644
index 00000000..72d02949
--- /dev/null
+++ b/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/ValueObjectsViewModel/BonusesPayViewModel.cs
@@ -0,0 +1,9 @@
+using _0_Framework.Domain.CustomizeCheckoutValueObjects;
+
+namespace CompanyManagment.App.Contracts.CustomizeWorkshopSettings.ValueObjectsViewModel;
+
+public class BonusesPayViewModel
+{
+ public BonusesType BonusesPayType { get; set; }
+ public int Percentage { get; set; }
+}
\ No newline at end of file
diff --git a/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/ValueObjectsViewModel/EarlyExitTimeFineViewModel.cs b/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/ValueObjectsViewModel/EarlyExitTimeFineViewModel.cs
new file mode 100644
index 00000000..88c8b4c7
--- /dev/null
+++ b/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/ValueObjectsViewModel/EarlyExitTimeFineViewModel.cs
@@ -0,0 +1,14 @@
+namespace CompanyManagment.App.Contracts.CustomizeWorkshopSettings.ValueObjectsViewModel;
+
+public class EarlyExitTimeFineViewModel
+{
+ ///
+ /// دقیقه تعیین شده برای جریمه
+ ///
+ public string Minute { get; set; }
+
+ ///
+ /// مبلغ تعیین شده برای جریمه
+ ///
+ public double FineMoney { get; set; }
+}
\ No newline at end of file
diff --git a/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/ValueObjectsViewModel/EarlyExitViewModel.cs b/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/ValueObjectsViewModel/EarlyExitViewModel.cs
new file mode 100644
index 00000000..d44f1e5a
--- /dev/null
+++ b/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/ValueObjectsViewModel/EarlyExitViewModel.cs
@@ -0,0 +1,25 @@
+using System.Collections.Generic;
+using _0_Framework.Domain.CustomizeCheckoutValueObjects;
+
+namespace CompanyManagment.App.Contracts.CustomizeWorkshopSettings.ValueObjectsViewModel;
+
+public class EarlyExitViewModel
+{
+ ///
+ /// نوع حساب کردن تعجیل در خروج
+ ///
+ public EarlyExitType EarlyExitType { get; private set; }
+
+ ///
+ /// جریمه های اختصاصی پله ای
+ ///
+ public List EarlyExitTimeFinesViewModels { get; private set; }
+
+ /////
+ ///// نوع محاسبه جریمه های اختصاصی پله ای. این بخش میتواند نال باشد چون ممکن است شخص جریمه ای اختصاص ندهد
+ /////
+ //public EarlyExitTimeFineType? EarlyExitTimeFineType { get; private set; }
+
+ public double Value { get; private set; }
+
+}
\ No newline at end of file
diff --git a/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/ValueObjectsViewModel/FamilyAllowanceViewModel.cs b/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/ValueObjectsViewModel/FamilyAllowanceViewModel.cs
new file mode 100644
index 00000000..777ace78
--- /dev/null
+++ b/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/ValueObjectsViewModel/FamilyAllowanceViewModel.cs
@@ -0,0 +1,19 @@
+using _0_Framework.Domain.CustomizeCheckoutValueObjects;
+
+namespace CompanyManagment.App.Contracts.CustomizeWorkshopSettings.ValueObjectsViewModel;
+
+public class FamilyAllowanceViewModel
+{
+ ///
+ /// نوع حق اولاد را مشخص میکند که آیا پرداخت نمیکند یا به صورت درصدی پرداخت میکند یا به صورت مبلغ اختصاصی
+ ///
+ public FamilyAllowanceType FamilyAllowanceType { get; set; }
+
+ ///
+ /// تعداد فرزند هایی حق اولاد به آنها تعلق میگیرد.
+ ///
+ // ReSharper disable once GrammarMistakeInComment
+ //public NumberOfChildren NumberOfChildren { get; set; }
+
+ public double Value { get; set; }
+}
\ No newline at end of file
diff --git a/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/ValueObjectsViewModel/FineAbsenceDayOfWeekViewModel.cs b/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/ValueObjectsViewModel/FineAbsenceDayOfWeekViewModel.cs
new file mode 100644
index 00000000..89fbdd5d
--- /dev/null
+++ b/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/ValueObjectsViewModel/FineAbsenceDayOfWeekViewModel.cs
@@ -0,0 +1,17 @@
+using System;
+
+namespace CompanyManagment.App.Contracts.CustomizeWorkshopSettings.ValueObjectsViewModel;
+
+public class FineAbsenceDayOfWeekViewModel
+{
+ ///
+ /// روز های هفته
+ ///
+ public DayOfWeek DayOfWeek { get; set; }
+ /////
+ ///// نوع جریمه غیبت بر اساس روز خاصی از هفته
+ /////
+ //public FineAbsenceDayOfWeekType AbsenceDayOfWeekType { get; set; }
+
+ //public double Value { get; set; }
+}
\ No newline at end of file
diff --git a/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/ValueObjectsViewModel/FineAbsenceDeductionViewModel.cs b/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/ValueObjectsViewModel/FineAbsenceDeductionViewModel.cs
new file mode 100644
index 00000000..efcd265b
--- /dev/null
+++ b/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/ValueObjectsViewModel/FineAbsenceDeductionViewModel.cs
@@ -0,0 +1,19 @@
+using System.Collections.Generic;
+using _0_Framework.Domain.CustomizeCheckoutValueObjects;
+
+namespace CompanyManagment.App.Contracts.CustomizeWorkshopSettings.ValueObjectsViewModel;
+
+public class FineAbsenceDeductionViewModel
+{
+ ///
+ /// نوع جریمه غیبت
+ ///
+ public FineAbsenceDeductionType FineAbsenceDeductionType { get; set; }
+
+ public double Value { get; set; }
+
+ ///
+ /// جریمه های اختصاصی به ازای روز های هفته
+ ///
+ public List FineAbsenceDayOfWeekViewModels { get; set; }
+}
\ No newline at end of file
diff --git a/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/ValueObjectsViewModel/FridayPayViewModel.cs b/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/ValueObjectsViewModel/FridayPayViewModel.cs
new file mode 100644
index 00000000..a0704aad
--- /dev/null
+++ b/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/ValueObjectsViewModel/FridayPayViewModel.cs
@@ -0,0 +1,9 @@
+using _0_Framework.Domain.CustomizeCheckoutValueObjects;
+
+namespace CompanyManagment.App.Contracts.CustomizeWorkshopSettings.ValueObjectsViewModel;
+
+public class FridayPayViewModel
+{
+ public FridayPayType FridayPayType { get; set; }
+ public double Value { get; set; }
+}
\ No newline at end of file
diff --git a/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/ValueObjectsViewModel/InsuranceDeductionViewModel.cs b/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/ValueObjectsViewModel/InsuranceDeductionViewModel.cs
new file mode 100644
index 00000000..3f396b31
--- /dev/null
+++ b/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/ValueObjectsViewModel/InsuranceDeductionViewModel.cs
@@ -0,0 +1,9 @@
+using _0_Framework.Domain.CustomizeCheckoutValueObjects;
+
+namespace CompanyManagment.App.Contracts.CustomizeWorkshopSettings.ValueObjectsViewModel;
+
+public class InsuranceDeductionViewModel
+{
+ public InsuranceDeductionType InsuranceDeductionType { get; set; }
+ public double Value { get; set; }
+}
\ No newline at end of file
diff --git a/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/ValueObjectsViewModel/LateToWorkTimeFineVewModel.cs b/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/ValueObjectsViewModel/LateToWorkTimeFineVewModel.cs
new file mode 100644
index 00000000..88c466c0
--- /dev/null
+++ b/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/ValueObjectsViewModel/LateToWorkTimeFineVewModel.cs
@@ -0,0 +1,14 @@
+namespace CompanyManagment.App.Contracts.CustomizeWorkshopSettings.ValueObjectsViewModel;
+
+public class LateToWorkTimeFineVewModel
+{
+ ///
+ /// دقیقه تعیین شده برای جریمه
+ ///
+ public string Minute { get; set; }
+
+ ///
+ /// مبلغ تعیین شده برای جریمه
+ ///
+ public double FineMoney { get; set; }
+}
\ No newline at end of file
diff --git a/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/ValueObjectsViewModel/LateToWorkViewModel.cs b/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/ValueObjectsViewModel/LateToWorkViewModel.cs
new file mode 100644
index 00000000..8c092491
--- /dev/null
+++ b/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/ValueObjectsViewModel/LateToWorkViewModel.cs
@@ -0,0 +1,28 @@
+using System.Collections.Generic;
+using _0_Framework.Domain.CustomizeCheckoutValueObjects;
+
+namespace CompanyManagment.App.Contracts.CustomizeWorkshopSettings.ValueObjectsViewModel;
+
+public class LateToWorkViewModel
+{
+ ///
+ /// نوع حساب کردن تاخیر در ورود
+ ///
+ public LateToWorkType LateToWorkType { get; private set; }
+
+ ///
+ /// این مقدار اگر نوع حساب کردن به صور مبلغی باشد از این بخش استفاده میشود
+ ///
+ public double Value { get; private set; }
+
+ ///
+ /// جریمه های اختصاصی پله ای
+ ///
+ public List LateToWorkTimeFinesVewModels { get; private set; }
+
+ /////
+ ///// نوع محاسبه جریمه های اختصاصی پله ای. این بخش میتواند نال باشد چون ممکن است شخص جریمه ای اختصاص ندهد
+ /////
+ //public LateToWorkTimeFineType? LateToWorkTimeFineType { get; private set; }
+
+}
\ No newline at end of file
diff --git a/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/ValueObjectsViewModel/LeavePayViewModel.cs b/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/ValueObjectsViewModel/LeavePayViewModel.cs
new file mode 100644
index 00000000..0e564f3b
--- /dev/null
+++ b/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/ValueObjectsViewModel/LeavePayViewModel.cs
@@ -0,0 +1,18 @@
+using _0_Framework.Domain.CustomizeCheckoutValueObjects;
+
+namespace CompanyManagment.App.Contracts.CustomizeWorkshopSettings.ValueObjectsViewModel;
+
+public class LeavePayViewModel
+{
+ ///
+ /// نوع مرخصی
+ ///
+ public LeavePayType LeavePayType { get; set; }
+
+ /////
+ ///// تعداد روز های مجاز مرخصی
+ /////
+ //public string DayCountAllowable { get; set; }
+
+ public double Value { get; set; }
+}
\ No newline at end of file
diff --git a/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/ValueObjectsViewModel/MarriedAllowanceViewModel.cs b/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/ValueObjectsViewModel/MarriedAllowanceViewModel.cs
new file mode 100644
index 00000000..48b83d95
--- /dev/null
+++ b/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/ValueObjectsViewModel/MarriedAllowanceViewModel.cs
@@ -0,0 +1,9 @@
+using _0_Framework.Domain.CustomizeCheckoutValueObjects;
+
+namespace CompanyManagment.App.Contracts.CustomizeWorkshopSettings.ValueObjectsViewModel;
+
+public class MarriedAllowanceViewModel
+{
+ public MarriedAllowanceType MarriedAllowanceType { get; set; }
+ public double Value { get; set; }
+}
\ No newline at end of file
diff --git a/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/ValueObjectsViewModel/NightWorkPayViewModel.cs b/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/ValueObjectsViewModel/NightWorkPayViewModel.cs
new file mode 100644
index 00000000..c5f4f6f2
--- /dev/null
+++ b/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/ValueObjectsViewModel/NightWorkPayViewModel.cs
@@ -0,0 +1,9 @@
+using _0_Framework.Domain.CustomizeCheckoutValueObjects;
+
+namespace CompanyManagment.App.Contracts.CustomizeWorkshopSettings.ValueObjectsViewModel;
+
+public class NightWorkPayViewModel
+{
+ public NightWorkType NightWorkingType { get; set; }
+ public double Value { get; set; }
+}
\ No newline at end of file
diff --git a/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/ValueObjectsViewModel/OverTimePayViewModel.cs b/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/ValueObjectsViewModel/OverTimePayViewModel.cs
new file mode 100644
index 00000000..a80a04a3
--- /dev/null
+++ b/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/ValueObjectsViewModel/OverTimePayViewModel.cs
@@ -0,0 +1,9 @@
+using _0_Framework.Domain.CustomizeCheckoutValueObjects;
+
+namespace CompanyManagment.App.Contracts.CustomizeWorkshopSettings.ValueObjectsViewModel;
+
+public class OverTimePayViewModel
+{
+ public OverTimePayType OverTimePayType { get; set; }
+ public double Value { get; set; }
+}
\ No newline at end of file
diff --git a/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/ValueObjectsViewModel/ShiftPayViewModel.cs b/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/ValueObjectsViewModel/ShiftPayViewModel.cs
new file mode 100644
index 00000000..134435be
--- /dev/null
+++ b/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/ValueObjectsViewModel/ShiftPayViewModel.cs
@@ -0,0 +1,18 @@
+using _0_Framework.Domain.CustomizeCheckoutValueObjects;
+
+namespace CompanyManagment.App.Contracts.CustomizeWorkshopSettings.ValueObjectsViewModel;
+
+public class ShiftPayViewModel
+{
+ ///
+ /// نوع نوبت کاری را مشخص میکند . به عنوان مثال: صبح و عصر، عصر و شب و غیره...
+ ///
+ public ShiftType ShiftType { get; set; }
+
+ ///
+ /// نوع پرداخت را مشخص میکند که آیا به صورت درصدی است یا مبلغ اختصاصی.
+ ///
+ public ShiftPayType ShiftPayType { get; set; }
+
+ public double Value { get; set; }
+}
\ No newline at end of file
diff --git a/CompanyManagment.Application/CustomizeWorkshopSettingsApplication.cs b/CompanyManagment.Application/CustomizeWorkshopSettingsApplication.cs
new file mode 100644
index 00000000..3c900492
--- /dev/null
+++ b/CompanyManagment.Application/CustomizeWorkshopSettingsApplication.cs
@@ -0,0 +1,377 @@
+using System.Collections.Generic;
+using System.Linq;
+using _0_Framework.Application;
+using _0_Framework.Domain.CustomizeCheckoutValueObjects;
+using Company.Domain.CustomizeWorkshopEmployeeSettingsAgg;
+using Company.Domain.CustomizeWorkshopEmployeeSettingsAgg.Entities;
+using Company.Domain.CustomizeWorkshopGroupSettingsAgg;
+using Company.Domain.CustomizeWorkshopGroupSettingsAgg.Entities;
+using Company.Domain.CustomizeWorkshopSettingsAgg;
+using Company.Domain.CustomizeWorkshopSettingsAgg.Entities;
+using Company.Domain.EmployeeAgg;
+using CompanyManagment.App.Contracts.CustomizeWorkshopSettings;
+using CompanyManagment.App.Contracts.Employee;
+
+
+namespace CompanyManagment.Application;
+
+public class CustomizeWorkshopSettingsApplication(ICustomizeWorkshopSettingsRepository customizeWorkshopSettingsRepository,
+ IAuthHelper authHelper, IPasswordHasher passwordHasher,
+ ICustomizeWorkshopGroupSettingsRepository customizeWorkshopGroupSettingsRepository, IEmployeeRepository employeeRepository,
+ ICustomizeWorkshopEmployeeSettingsRepository customizeWorkshopEmployeeSettingsRepository)
+ : ICustomizeWorkshopSettingsApplication
+{
+ private readonly ICustomizeWorkshopSettingsRepository _customizeWorkshopSettingsRepository = customizeWorkshopSettingsRepository;
+ private readonly ICustomizeWorkshopGroupSettingsRepository _customizeWorkshopGroupSettingsRepository = customizeWorkshopGroupSettingsRepository;
+ private readonly ICustomizeWorkshopEmployeeSettingsRepository _customizeWorkshopEmployeeSettingsRepository = customizeWorkshopEmployeeSettingsRepository;
+ private readonly IAuthHelper _authHelper = authHelper;
+ private readonly IEmployeeRepository _employeeRepository = employeeRepository;
+ private readonly IPasswordHasher _passwordHasher = passwordHasher;
+
+ //Create workshop settings
+ public OperationResult CreateWorkshopSettings(CreateCustomizeWorkshopSettings command)
+ {
+ OperationResult op = new();
+ var workshopId = _passwordHasher.SlugDecrypt(_authHelper.GetWorkshopSlug());
+
+ if (command.ShiftsList.Any(x => string.IsNullOrWhiteSpace(x.StartTime) || string.IsNullOrWhiteSpace(x.EndTime)))
+ return op.Failed("ساعات کاری شروع و پایان نمیتواند خالی باشد");
+
+ #region Validation
+ if (workshopId < 1)
+ {
+ return op.Failed("خطای سیستمی");
+ }
+ #endregion
+ //تبدیل شیفت های ویو مدل به انتیتی
+ var shiftCollection =
+ command.ShiftsList.Select(x => new CustomizeWorkshopSettingsShift(x.StartTime, x.EndTime, x.Placement)).ToList();
+
+ var record = new CustomizeWorkshopSettings(workshopId,shiftCollection);
+ _customizeWorkshopSettingsRepository.Create(record);
+ _customizeWorkshopSettingsRepository.SaveChanges();
+ return op.Succcedded(record.id);
+ }
+
+ //create group settings with workshopSettingsId.
+ public OperationResult CreateGroupSettingsByRollCallWorkshopSettingId(CreateCustomizeWorkshopGroupSettings command)
+ {
+ OperationResult op = new();
+
+ #region validation
+
+ if (!_customizeWorkshopSettingsRepository.Exists(x => x.id == command.CustomizeWorkshopSettingId))
+ return op.Failed("چنین ساعت کاری برای کارگاهی وجود ندارد");
+
+ #endregion
+
+ double salary = command.Salary.MoneyToDouble();
+
+ var collection = command.ShiftViewModel
+ .Select(x => new CustomizeWorkshopGroupSettingsShift(x.StartTime, x.EndTime, x.Placement)).ToList();
+
+ var entity = new CustomizeWorkshopGroupSettings(command.Name, salary, command.CustomizeWorkshopSettingId ,collection);
+ _customizeWorkshopGroupSettingsRepository.Create(entity);
+
+ _customizeWorkshopGroupSettingsRepository.SaveChanges();
+ return op.Succcedded();
+ }
+
+ //Create Employee Settings with Group data. It will Replace the Group data (such as salary, shifts and ...) on Employee settings On creation.
+ public OperationResult CreateRollCallEmployeeSettings(CreateCustomizeEmployeeSettings command)
+ {
+ OperationResult op = new();
+
+ #region Validation
+
+ if (!_customizeWorkshopGroupSettingsRepository.Exists(x => x.id == command.GroupId))
+ return op.Failed("چنین گروهی وجود ندارد");
+ if (!_employeeRepository.Exists(x => command.EmployeeIds.Any(y => x.id == y)))
+ return op.Failed("چنین پرسنلی وجود ندارد");
+ #endregion
+
+ var groupData = _customizeWorkshopGroupSettingsRepository.GetIncludeWorkshopSettings(command.GroupId);
+ var shifts = groupData.CustomizeWorkshopGroupSettingsShifts.Select(x =>
+ new CustomizeWorkshopEmployeeSettingsShift(x.StartTime, x.EndTime, x.Placement)).ToList();
+ foreach (var id in command.EmployeeIds)
+ {
+
+ var entity = new CustomizeWorkshopEmployeeSettings(groupData.FridayPay,groupData.OverTimePay,
+ groupData.BaseYearsPay,groupData.BonusesPay,groupData.NightWorkPay,groupData.MarriedAllowance,
+ groupData.ShiftPay,groupData.FamilyAllowance,groupData.LeavePay,groupData.InsuranceDeduction,
+ groupData.FineAbsenceDeduction,groupData.LateToWork,groupData.EarlyExit,id,
+ groupData.CustomizeWorkshopSettings.WorkshopId , groupData.Salary, groupData.id,shifts );
+ _customizeWorkshopEmployeeSettingsRepository.Create(entity);
+ }
+
+ _customizeWorkshopEmployeeSettingsRepository.SaveChanges();
+ return op.Succcedded();
+ }
+
+ //Edit the Workshop Settings Data
+ public OperationResult EditWorkshopSetting(EditCustomizeWorkshopSettings command)
+ {
+ OperationResult op = new();
+
+ #region Validation
+
+ if (!_customizeWorkshopSettingsRepository.Exists(x => x.id == command.Id))
+ return op.Failed("خطای سیستمی");
+
+ #endregion
+
+ var entity = _customizeWorkshopSettingsRepository.Get(command.Id);
+
+ FridayPay fridayPay = new(command.FridayPay.FridayPayType, command.FridayPay.Value);
+ OverTimePay overTimePay = new(command.OverTimePay.OverTimePayType, command.OverTimePay.Value);
+ BaseYearsPay baseYearsPay = new(command.BaseYearsPay.BaseYearsPayType);
+ BonusesPay bonusesPay = new(command.BonusesPay.BonusesPayType, command.BonusesPay.Percentage);
+ NightWorkPay nightWorkPay = new(command.NightWorkPay.NightWorkingType, command.NightWorkPay.Value);
+ MarriedAllowance marriedAllowance = new(command.MarriedAllowance.MarriedAllowanceType, command.MarriedAllowance.Value);
+ ShiftPay shiftPay = new(command.ShiftPay.ShiftType, command.ShiftPay.ShiftPayType, command.ShiftPay.Value);
+ FamilyAllowance familyAllowance = new(command.FamilyAllowance.FamilyAllowanceType, command.FamilyAllowance.Value);
+ LeavePay leavePay = new(command.LeavePay.LeavePayType, command.LeavePay.Value);
+ InsuranceDeduction insuranceDeduction = new(command.InsuranceDeduction.InsuranceDeductionType, command.InsuranceDeduction.Value);
+ FineAbsenceDeduction fineAbsenceDeduction = new(
+ command.FineAbsenceDeduction.FineAbsenceDeductionType, command.FineAbsenceDeduction.Value,
+ command.FineAbsenceDeduction.FineAbsenceDayOfWeekViewModels
+ .Select(x => new FineAbsenceDayOfWeek(x.DayOfWeek)).ToList()
+ );
+ LateToWork lateToWork = new(
+ command.LateToWork.LateToWorkType,
+ command.LateToWork.LateToWorkTimeFinesVewModels.Select(x => new LateToWorkTimeFine(x.Minute, x.FineMoney))
+ .ToList(), command.LateToWork.Value
+ );
+
+ EarlyExit earlyExit = new(command.EarlyExit.EarlyExitType,
+ command.EarlyExit.EarlyExitTimeFinesViewModels.Select(x => new EarlyExitTimeFine(x.Minute, x.FineMoney))
+ .ToList(), command.EarlyExit.Value);
+
+ var shifts =
+ command.ShiftsList.Select(x => new CustomizeWorkshopSettingsShift(x.StartTime, x.EndTime, x.Placement)).ToList();
+
+ entity.Edit(fridayPay,overTimePay,baseYearsPay,bonusesPay,nightWorkPay,marriedAllowance,shiftPay,familyAllowance,leavePay,insuranceDeduction,
+ fineAbsenceDeduction,lateToWork,earlyExit,shifts);
+
+ _customizeWorkshopSettingsRepository.SaveChanges();
+
+ return op.Succcedded();
+ }
+
+ //Edit the Group Settings Data
+ public OperationResult EditRollCallGroupSetting(EditCustomizeWorkshopGroupSettings command)
+ {
+ OperationResult op = new();
+
+ #region Validation
+ if (!_customizeWorkshopGroupSettingsRepository.Exists(x => x.id == command.Id))
+ return op.Failed("خطای سیستمی");
+
+ #endregion
+
+
+ var entity = _customizeWorkshopGroupSettingsRepository.GetWithEmployees(command.Id);
+
+ FridayPay fridayPay = new(command.FridayPay.FridayPayType, command.FridayPay.Value);
+ OverTimePay overTimePay = new(command.OverTimePay.OverTimePayType, command.OverTimePay.Value);
+ BaseYearsPay baseYearsPay = new(command.BaseYearsPay.BaseYearsPayType);
+ BonusesPay bonusesPay = new(command.BonusesPay.BonusesPayType, command.BonusesPay.Percentage);
+ NightWorkPay nightWorkPay = new(command.NightWorkPay.NightWorkingType, command.NightWorkPay.Value);
+ MarriedAllowance marriedAllowance = new(command.MarriedAllowance.MarriedAllowanceType, command.MarriedAllowance.Value);
+ ShiftPay shiftPay = new(command.ShiftPay.ShiftType, command.ShiftPay.ShiftPayType, command.ShiftPay.Value);
+ FamilyAllowance familyAllowance = new(command.FamilyAllowance.FamilyAllowanceType, command.FamilyAllowance.Value);
+ LeavePay leavePay = new(command.LeavePay.LeavePayType, command.LeavePay.Value);
+ InsuranceDeduction insuranceDeduction = new(command.InsuranceDeduction.InsuranceDeductionType, command.InsuranceDeduction.Value);
+ FineAbsenceDeduction fineAbsenceDeduction = new(
+ command.FineAbsenceDeduction.FineAbsenceDeductionType, command.FineAbsenceDeduction.Value,
+ command.FineAbsenceDeduction.FineAbsenceDayOfWeekViewModels
+ .Select(x => new FineAbsenceDayOfWeek(x.DayOfWeek)).ToList()
+ );
+ LateToWork lateToWork = new(
+ command.LateToWork.LateToWorkType,
+ command.LateToWork.LateToWorkTimeFinesVewModels.Select(x => new LateToWorkTimeFine(x.Minute, x.FineMoney))
+ .ToList(), command.LateToWork.Value
+ );
+ EarlyExit earlyExit = new(command.EarlyExit.EarlyExitType,
+ command.EarlyExit.EarlyExitTimeFinesViewModels.Select(x => new EarlyExitTimeFine(x.Minute, x.FineMoney))
+ .ToList(), command.EarlyExit.Value);
+
+ double salary = command.Salary.MoneyToDouble();
+
+ var employeesShifts = command.ShiftViewModel.Select(x => new CustomizeWorkshopGroupSettingsShift(x.StartTime, x.EndTime, x.Placement)).ToList();
+ entity.EditAndOverwriteOnEmployees(command.Name, salary, command.EmployeeIds,fridayPay,overTimePay,
+ baseYearsPay,bonusesPay,shiftPay,nightWorkPay,marriedAllowance,familyAllowance,
+ leavePay,insuranceDeduction,fineAbsenceDeduction,lateToWork,earlyExit,employeesShifts);
+
+ _customizeWorkshopGroupSettingsRepository.SaveChanges();
+
+ return op.Succcedded();
+ }
+
+ //Edit the Employee settings and change the 'IsChanged' bool to true.
+ public OperationResult EditRollCallEmployeeSettings(EditCustomizeEmployeeSettings command)
+ {
+ OperationResult op = new();
+ var entity = _customizeWorkshopEmployeeSettingsRepository.Get(command.Id);
+
+ #region Validation
+
+ if (entity == null)
+ return op.Failed("چنین پرسنلی وجود ندارد");
+
+ #endregion
+
+ FridayPay fridayPay = new(command.FridayPay.FridayPayType, command.FridayPay.Value);
+ OverTimePay overTimePay = new(command.OverTimePay.OverTimePayType, command.OverTimePay.Value);
+ BaseYearsPay baseYearsPay = new(command.BaseYearsPay.BaseYearsPayType);
+ BonusesPay bonusesPay = new(command.BonusesPay.BonusesPayType, command.BonusesPay.Percentage);
+ NightWorkPay nightWorkPay = new(command.NightWorkPay.NightWorkingType, command.NightWorkPay.Value);
+ MarriedAllowance marriedAllowance = new(command.MarriedAllowance.MarriedAllowanceType, command.MarriedAllowance.Value);
+ ShiftPay shiftPay = new(command.ShiftPay.ShiftType, command.ShiftPay.ShiftPayType, command.ShiftPay.Value);
+ FamilyAllowance familyAllowance = new(command.FamilyAllowance.FamilyAllowanceType, command.FamilyAllowance.Value);
+ LeavePay leavePay = new(command.LeavePay.LeavePayType, command.LeavePay.Value);
+ InsuranceDeduction insuranceDeduction = new(command.InsuranceDeduction.InsuranceDeductionType, command.InsuranceDeduction.Value);
+ FineAbsenceDeduction fineAbsenceDeduction = new(
+ command.FineAbsenceDeduction.FineAbsenceDeductionType, command.FineAbsenceDeduction.Value,
+ command.FineAbsenceDeduction.FineAbsenceDayOfWeekViewModels
+ .Select(x => new FineAbsenceDayOfWeek(x.DayOfWeek)).ToList()
+ );
+ LateToWork lateToWork = new(
+ command.LateToWork.LateToWorkType,
+ command.LateToWork.LateToWorkTimeFinesVewModels.Select(x => new LateToWorkTimeFine(x.Minute, x.FineMoney))
+ .ToList(), command.LateToWork.Value
+ );
+ EarlyExit earlyExit = new(command.EarlyExit.EarlyExitType,
+ command.EarlyExit.EarlyExitTimeFinesViewModels.Select(x => new EarlyExitTimeFine(x.Minute, x.FineMoney))
+ .ToList(), command.EarlyExit.Value);
+
+
+ double salary = command.Salary.MoneyToDouble();
+
+ var employeesShifts = command.ShiftViewModel.Select(x => new CustomizeWorkshopEmployeeSettingsShift(x.StartTime, x.EndTime, x.Placement)).ToList();
+
+ //change employee data manually. It changes the 'IsChanged' property to true.
+ entity.EditEmployeesAndMakeIsChangeTrue(employeesShifts, salary,fridayPay, overTimePay, baseYearsPay,
+ bonusesPay, nightWorkPay, marriedAllowance, shiftPay, familyAllowance, leavePay,
+ insuranceDeduction, fineAbsenceDeduction, lateToWork, earlyExit);
+
+
+ _customizeWorkshopEmployeeSettingsRepository.SaveChanges();
+ return op.Succcedded();
+ }
+
+ public List GetChangedEmployeeSettingsByGroupSettingsId(long groupSettingsId)
+ {
+ return _customizeWorkshopGroupSettingsRepository.GetChangedEmployeeSettingsByGroupSettingsId(
+ groupSettingsId);
+ }
+
+
+ //Remove the Employee From the Group Settings
+ public OperationResult RemoveEmployeeFromRollCallWorkshopGroup(long employeeId, long groupId)
+ {
+ OperationResult op = new();
+ var groupEntity = _customizeWorkshopGroupSettingsRepository.GetWithEmployees(groupId);
+
+ #region Validation
+
+ if (groupEntity == null)
+ {
+ return op.Failed("چنین گروهی وجود ندارد");
+ }
+
+ #endregion
+
+ groupEntity.RemoveEmployeeFromGroup(employeeId);
+ _customizeWorkshopGroupSettingsRepository.SaveChanges();
+ return op.Succcedded();
+ }
+
+ // It will Get the Workshop Settings with its groups and the employees of groups.
+ public CustomizeWorkshopSettingsViewModel GetWorkshopSettingsByWorkshopId(long workshopId)
+ {
+ var user = _authHelper.CurrentAccountInfo();
+
+ #region Validation
+
+ if (workshopId is < 1)
+ return new();
+
+ var record = _customizeWorkshopSettingsRepository.GetWorkshopSettingsByWorkshopId(workshopId);
+
+ if (record == null)
+ return new();
+
+ #endregion
+
+ return new CustomizeWorkshopSettingsViewModel()
+ {
+ Id = record.id,
+ Name = user.WorkshopList.FirstOrDefault(w => w.Id == record.WorkshopId)?.Name,
+ GroupSettings = record.CustomizeWorkshopGroupSettingsCollection.Select(x =>
+ new CustomizeWorkshopGroupSettingsViewModel()
+ {
+ Id = x.id,
+ GroupName = x.GroupName,
+ RollCallWorkshopEmployeesSettings = x.CustomizeWorkshopEmployeeSettingsCollection.Select(y =>
+ {
+ var employee = _employeeRepository.Get(y.EmployeeId);
+ return new CustomizeWorkshopEmployeeSettingsViewModel()
+ {
+ Id = y.id,
+ EmployeeId = y.EmployeeId,
+ IsChanged = y.IsChanged,
+ Name = $"{employee.FName} {employee.LName}",
+ RollCallWorkshopShifts = y.CustomizeWorkshopEmployeeSettingsShifts.Select(s =>
+ new CustomizeWorkshopShiftViewModel()
+ {
+ EndTime = s.EndTime,
+ Placement = s.Placement,
+ StartTime = s.StartTime
+ }).ToList(),
+ Salary = y.Salary,
+
+ };
+ }).ToList(),
+ Salary = x.Salary,
+ RollCallWorkshopShifts = x.CustomizeWorkshopGroupSettingsShifts.Select(s =>
+ new CustomizeWorkshopShiftViewModel()
+ {
+ EndTime = s.EndTime,
+ Placement = s.Placement,
+ StartTime = s.StartTime
+
+ }).ToList(),
+ }).ToList(),
+ };
+ }
+
+ public CustomizeWorkshopEmployeeSettingsViewModel GetEmployeeSettingsByEmployeeIdGroupSettingsId(long workshopId,
+ long employeeId)
+ {
+ throw new System.NotImplementedException();
+ }
+
+ public List GetEmployeeSettingsByGroupSettingsId(long groupSettingsId)
+ {
+
+ List result = _customizeWorkshopGroupSettingsRepository.GetEmployeeSettingsByGroupSettingsId(groupSettingsId);
+
+ if (result == null)
+ return new();
+
+ return result;
+
+ }
+
+ public List GetEmployeesWithoutGroup(long rollCallWorkshopSettingId)
+ {
+ return _customizeWorkshopGroupSettingsRepository.GetEmployeesWithoutGroup(rollCallWorkshopSettingId);
+ }
+
+ public CustomizeWorkshopEmployeeSettingsViewModel GetEmployeeSettingsByEmployeeIdWorkshopId(long workshopId, long employeeId)
+ {
+ return _customizeWorkshopSettingsRepository.GetEmployeeSettingsByWorkshopIdGroupSettingsId(workshopId, employeeId);
+ }
+
+}
\ No newline at end of file
diff --git a/CompanyManagment.EFCore/CompanyContext.cs b/CompanyManagment.EFCore/CompanyContext.cs
index 4e38af23..56ef4dab 100644
--- a/CompanyManagment.EFCore/CompanyContext.cs
+++ b/CompanyManagment.EFCore/CompanyContext.cs
@@ -13,6 +13,9 @@ using Company.Domain.CrossJobAgg;
using Company.Domain.CrossJobGuildAgg;
using Company.Domain.CrossJobItemsAgg;
using Company.Domain.CustomizeCheckoutAgg;
+using Company.Domain.CustomizeWorkshopEmployeeSettingsAgg.Entities;
+using Company.Domain.CustomizeWorkshopGroupSettingsAgg.Entities;
+using Company.Domain.CustomizeWorkshopSettingsAgg.Entities;
using Company.Domain.DateSalaryAgg;
using Company.Domain.DateSalaryItemAgg;
using Company.Domain.EmployeeAccountAgg;
@@ -130,9 +133,19 @@ public class CompanyContext : DbContext
//public DbSet Tasks { get; set; }
//public DbSet TaskStatuses { get; set; }
//public DbSet TaskTitles { get; set; }
-
-
+
+
//-------Main-Project----------------------------
+
+ #region Mahan
+
+
+ //-----------------------------RollCallWorkshopSettings-----------------------------
+ public DbSet CustomizeWorkshopSettings { get; set; }
+ public DbSet CustomizeWorkshopGroupSettings { get; set; }
+ public DbSet CustomizeWorkshopEmployeeSettings { get; set; }
+
+ #endregion
public DbSet CustomizeCheckouts { get; set; }
public DbSet TaxLeftWorkItems { get; set; }
public DbSet TaxLeftWorkCategories { get; set; }
diff --git a/CompanyManagment.EFCore/Mapping/CustomizeWorkshopEmployeeSettingsMapping.cs b/CompanyManagment.EFCore/Mapping/CustomizeWorkshopEmployeeSettingsMapping.cs
new file mode 100644
index 00000000..25a3363b
--- /dev/null
+++ b/CompanyManagment.EFCore/Mapping/CustomizeWorkshopEmployeeSettingsMapping.cs
@@ -0,0 +1,202 @@
+using System;
+using System.Security.Cryptography.X509Certificates;
+using _0_Framework.Domain.CustomizeCheckoutValueObjects;
+using Company.Domain.CustomizeWorkshopEmployeeSettingsAgg.Entities;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Metadata.Builders;
+
+namespace CompanyManagment.EFCore.Mapping;
+
+public class CustomizeWorkshopEmployeeSettingsMapping : IEntityTypeConfiguration
+{
+ public void Configure(EntityTypeBuilder builder)
+ {
+ builder.ToTable("CustomizeWorkshopEmployeeSettings");
+ builder.HasKey(x => x.id);
+
+ builder.HasOne(x => x.CustomizeWorkshopGroupSettings).WithMany(x => x.CustomizeWorkshopEmployeeSettingsCollection)
+ .HasForeignKey(x => x.CustomizeWorkshopGroupSettingId);
+
+ builder.OwnsOne(x => x.BaseYearsPay, baseYearsPay =>
+ {
+ baseYearsPay.Property(a => a.BaseYearsPayType).HasConversion(
+ v => v.ToString("d"),
+ v => (BaseYearsPayType)Enum.Parse(typeof(BaseYearsPayType), v)).HasMaxLength(1).HasColumnName("BaseYearsPay_BaseYearsPayType");
+ baseYearsPay.Property(x => x.PaymentType).HasConversion(
+ v => v.ToString("d"),
+ v => (BaseYearsPaymentType)Enum.Parse(typeof(BaseYearsPaymentType), v)).HasMaxLength(1).HasColumnName("BaseYearsPay_PaymentType");
+
+ baseYearsPay.Property(x => x.Value).HasColumnName("BaseYearsPay_Value");
+
+ });
+
+ builder.OwnsOne(x => x.BonusesPay, bonusesPay =>
+ {
+ bonusesPay.Property(x => x.BonusesPayType).HasConversion(
+ v => v.ToString("d"),
+ v => (BonusesType)Enum.Parse(typeof(BonusesType), v)).HasMaxLength(1).HasColumnName("BonusesPay_BonusesPayType");
+
+ bonusesPay.Property(x=>x.PaymentType).HasConversion(
+ v => v.ToString("d"),
+ v => (BonusesPaymentType)Enum.Parse(typeof(BonusesPaymentType), v)).HasMaxLength(1).HasColumnName("BonusesPay_PaymentType");
+
+ bonusesPay.Property(x => x.Value).HasColumnName("BonusesPay_Value");
+ });
+
+
+ builder.OwnsOne(x => x.EarlyExit, earlyExit =>
+ {
+ earlyExit.Property(x => x.EarlyExitType).HasConversion(
+ v => v.ToString("d"),
+ v => (EarlyExitType)Enum.Parse(typeof(EarlyExitType), v)).HasMaxLength(1).HasColumnName("EarlyExit_EarlyExitType");
+
+ //earlyExit.Property(x => x.EarlyExitTimeFineType).HasConversion(
+ // v => v.HasValue ? v.Value.ToString("d") : null,
+ // v => v != null
+ // ? (EarlyExitTimeFineType)Enum.Parse(typeof(EarlyExitTimeFineType), v)
+ // : null).HasColumnName("EarlyExit_EarlyExitTimeFineType").HasMaxLength(1);
+
+ earlyExit.OwnsMany(x => x.EarlyExitTimeFines, earlyExitTimeFines =>
+ {
+ earlyExitTimeFines.WithOwner().HasForeignKey("CustomizeWorkshopEmployeeSettingsId");
+
+ earlyExitTimeFines.Property(x => x.FineMoney).HasColumnName("EarlyExitTimeFines_FineMoney");
+
+ earlyExitTimeFines.Property(x => x.Minute).HasColumnName("EarlyExitTimeFines_Minute").HasMaxLength(4);
+ });
+ earlyExit.Property(x => x.Value).HasColumnName("EarlyExitTimeFines_Value");
+ });
+
+ builder.OwnsOne(x => x.FamilyAllowance, familyAllowance =>
+ {
+ familyAllowance.Property(x => x.Value).HasColumnName("FamilyAllowance_Value");
+
+ //familyAllowance.Property(x => x.NumberOfChildren).HasConversion(
+ // v => v.ToString("d"),
+ // v => (NumberOfChildren)Enum.Parse(typeof(NumberOfChildren), v)).HasMaxLength(1).HasColumnName("FamilyAllowance_NumberOfChildren");
+
+ familyAllowance.Property(x => x.FamilyAllowanceType).HasConversion(
+ v => v.ToString("d"),
+ v => (FamilyAllowanceType)Enum.Parse(typeof(FamilyAllowanceType), v)).HasMaxLength(1).HasColumnName("FamilyAllowance_FamilyAllowanceType");
+ });
+
+
+ builder.OwnsOne(x => x.FineAbsenceDeduction, fineAbsenceDeduction =>
+ {
+ fineAbsenceDeduction.Property(x => x.Value).HasColumnName("FineAbsenceDeduction_Value");
+
+ fineAbsenceDeduction.Property(x => x.FineAbsenceDeductionType).HasConversion(
+ v => v.ToString("d"),
+ v => (FineAbsenceDeductionType)Enum.Parse(typeof(FineAbsenceDeductionType), v)).HasMaxLength(1).HasColumnName("FineAbsenceDeduction_FineAbsenceDeductionType");
+ fineAbsenceDeduction.OwnsMany(x => x.FineAbsenceDayOfWeekCollection, fineAbsenceDayOfWeek =>
+ {
+ fineAbsenceDayOfWeek.WithOwner().HasForeignKey("CustomizeWorkshopEmployeeSettingsId");
+
+ fineAbsenceDayOfWeek.Property(x => x.DayOfWeek).HasConversion(
+ v => v.ToString("d"),
+ v => (DayOfWeek)Enum.Parse(typeof(DayOfWeek), v)).HasMaxLength(1)
+ .HasColumnName("FineAbsenceDayOfWeekCollection_DayOfWeek");
+
+ });
+ });
+
+ builder.OwnsOne(x => x.FridayPay, fridayPay =>
+ {
+ fridayPay.Property(x => x.Value).HasColumnName("FridayPay_Value");
+ fridayPay.Property(x => x.FridayPayType).HasConversion(
+ v => v.ToString("d"),
+ v => (FridayPayType)Enum.Parse(typeof(FridayPayType), v)).HasMaxLength(1);
+ });
+
+ builder.OwnsOne(x => x.InsuranceDeduction, insuranceDeduction =>
+ {
+ insuranceDeduction.Property(x => x.Value).HasColumnName("InsuranceDeduction_Value");
+ insuranceDeduction.Property(x => x.InsuranceDeductionType).HasConversion(
+ v => v.ToString("d"),
+ v => (InsuranceDeductionType)Enum.Parse(typeof(InsuranceDeductionType), v)).HasMaxLength(1)
+ .HasColumnName("InsuranceDeduction_InsuranceDeductionType");
+ });
+
+ builder.OwnsOne(x => x.LateToWork, lateToWork =>
+ {
+ lateToWork.Property(x => x.Value).HasColumnName("LateToWork_Value");
+ lateToWork.Property(x => x.LateToWorkType).HasConversion(
+ v => v.ToString("d"),
+ v => (LateToWorkType)Enum.Parse(typeof(LateToWorkType), v)).HasMaxLength(1)
+ .HasColumnName("LateToWork_LateToWorkType");
+
+ //lateToWork.Property(x => x.LateToWorkTimeFineType).HasConversion(
+ // v => v.HasValue ? v.Value.ToString("d") : null,
+ // v => v != null
+ // ? (LateToWorkTimeFineType)Enum.Parse(typeof(LateToWorkTimeFineType), v)
+ // : null).HasColumnName("LateToWork_LateToWorkTimeFineType").HasMaxLength(1);
+ lateToWork.OwnsMany(x => x.LateToWorkTimeFines, lateToWorkTimeFines =>
+ {
+ lateToWorkTimeFines.WithOwner().HasForeignKey("CustomizeWorkshopEmployeeSettingsId");
+ lateToWorkTimeFines.Property(x => x.FineMoney).HasColumnName("LateToWorkTimeFines_FineMoney");
+ lateToWorkTimeFines.Property(x => x.Minute).HasMaxLength(4).HasColumnName("LateToWorkTimeFines_Minute");
+ });
+ });
+
+ builder.OwnsOne(x => x.LeavePay, leavePay =>
+ {
+ leavePay.Property(x => x.Value).HasColumnName("LeavePay_Value");
+ //leavePay.Property(x => x.DayCountAllowable).HasMaxLength(3).HasColumnName("LeavePay_DayCountAllowable");
+ leavePay.Property(x => x.LeavePayType).HasConversion(
+ v => v.ToString("d"),
+ v => (LeavePayType)Enum.Parse(typeof(LeavePayType), v)).HasMaxLength(1)
+ .HasColumnName("LeavePay_LeavePayType");
+ });
+
+ builder.OwnsOne(x => x.MarriedAllowance, marriedAllowance =>
+ {
+ marriedAllowance.Property(x => x.Value).HasColumnName("MarriedAllowance_Value");
+ marriedAllowance.Property(x => x.MarriedAllowanceType).HasConversion(
+ v => v.ToString("d"),
+ v => (MarriedAllowanceType)Enum.Parse(typeof(MarriedAllowanceType), v)).HasMaxLength(1)
+ .HasColumnName("MarriedAllowance_MarriedAllowanceType");
+ });
+
+ builder.OwnsOne(x => x.NightWorkPay, nightWorkPay =>
+ {
+ nightWorkPay.Property(x => x.NightWorkingType).HasConversion(
+ v => v.ToString("d"),
+ v => (NightWorkType)Enum.Parse(typeof(NightWorkType), v)).HasMaxLength(1)
+ .HasColumnName("NightWorkPay_NightWorkingType");
+ nightWorkPay.Property(x => x.Value).HasColumnName("NightWorkPay_Value");
+ });
+ builder.OwnsOne(x => x.OverTimePay, overTimePay =>
+ {
+ overTimePay.Property(x => x.Value).HasColumnName("OverTimePay_Value");
+ overTimePay.Property(x => x.OverTimePayType).HasConversion(
+ v => v.ToString("d"),
+ v => (OverTimePayType)Enum.Parse(typeof(OverTimePayType), v)).HasMaxLength(1)
+ .HasColumnName("OverTimePay_OverTimePayType");
+ });
+ builder.OwnsOne(x => x.ShiftPay, shiftPay =>
+ {
+ shiftPay.Property(x => x.Value).HasColumnName("ShiftPay_Value");
+ shiftPay.Property(x=>x.ShiftPayType).HasConversion(
+ v => v.ToString("d"),
+ v => (ShiftPayType)Enum.Parse(typeof(ShiftPayType), v)).HasMaxLength(1)
+ .HasColumnName("ShiftPay_ShiftPayType");
+ shiftPay.Property(x=>x.ShiftType).HasConversion(
+ v => v.ToString("d"),
+ v => (ShiftType)Enum.Parse(typeof(ShiftType), v)).HasMaxLength(1)
+ .HasColumnName("ShiftPay_ShiftType");
+ });
+
+ builder.OwnsMany(x => x.CustomizeWorkshopEmployeeSettingsShifts, shift =>
+ {
+ shift.ToTable("CustomizeWorkshopEmployeeSettingsShifts");
+ shift.HasKey(x => x.id);
+ shift.Property(x => x.Placement).HasConversion().HasMaxLength(20);
+ shift.Property(x => x.StartTime).HasMaxLength(5);
+ shift.Property(x => x.EndTime).HasMaxLength(5);
+
+ shift.WithOwner(x => x.CustomizeWorkshopEmployeeSettings).HasForeignKey(a => a.CustomizeWorkshopEmployeeSettingsId);
+
+ });
+
+ }
+}
\ No newline at end of file
diff --git a/CompanyManagment.EFCore/Mapping/CustomizeWorkshopGroupSettingsMapping.cs b/CompanyManagment.EFCore/Mapping/CustomizeWorkshopGroupSettingsMapping.cs
new file mode 100644
index 00000000..477826b2
--- /dev/null
+++ b/CompanyManagment.EFCore/Mapping/CustomizeWorkshopGroupSettingsMapping.cs
@@ -0,0 +1,207 @@
+using _0_Framework.Domain.CustomizeCheckoutValueObjects;
+using Company.Domain.CustomizeWorkshopGroupSettingsAgg.Entities;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Metadata.Builders;
+using System;
+
+namespace CompanyManagment.EFCore.Mapping;
+
+public class CustomizeWorkshopGroupSettingsMapping : IEntityTypeConfiguration
+{
+ public void Configure(EntityTypeBuilder builder)
+ {
+ builder.ToTable("CustomizeWorkshopGroupSettings");
+ builder.HasKey(x => x.id);
+
+ builder.Property(x => x.GroupName).HasMaxLength(120);
+
+ builder.OwnsOne(x => x.BaseYearsPay, baseYearsPay =>
+ {
+ baseYearsPay.Property(a => a.BaseYearsPayType).HasConversion(
+ v => v.ToString("d"),
+ v => (BaseYearsPayType)Enum.Parse(typeof(BaseYearsPayType), v)).HasMaxLength(1).HasColumnName("BaseYearsPay_BaseYearsPayType");
+ baseYearsPay.Property(x => x.PaymentType).HasConversion(
+ v => v.ToString("d"),
+ v => (BaseYearsPaymentType)Enum.Parse(typeof(BaseYearsPaymentType), v)).HasMaxLength(1).HasColumnName("BaseYearsPay_PaymentType");
+
+ baseYearsPay.Property(x => x.Value).HasColumnName("BaseYearsPay_Value");
+
+ });
+
+ builder.OwnsOne(x => x.BonusesPay, bonusesPay =>
+ {
+ bonusesPay.Property(x => x.BonusesPayType).HasConversion(
+ v => v.ToString("d"),
+ v => (BonusesType)Enum.Parse(typeof(BonusesType), v)).HasMaxLength(1).HasColumnName("BonusesPay_BonusesPayType");
+
+ bonusesPay.Property(x => x.PaymentType).HasConversion(
+ v => v.ToString("d"),
+ v => (BonusesPaymentType)Enum.Parse(typeof(BonusesPaymentType), v)).HasMaxLength(1).HasColumnName("BonusesPay_PaymentType");
+
+ bonusesPay.Property(x => x.Value).HasColumnName("BonusesPay_Value");
+ });
+
+
+ builder.OwnsOne(x => x.EarlyExit, earlyExit =>
+ {
+ earlyExit.Property(x => x.EarlyExitType).HasConversion(
+ v => v.ToString("d"),
+ v => (EarlyExitType)Enum.Parse(typeof(EarlyExitType), v)).HasMaxLength(1).HasColumnName("EarlyExit_EarlyExitType");
+
+ //earlyExit.Property(x => x.EarlyExitTimeFineType).HasConversion(
+ // v => v.HasValue ? v.Value.ToString("d") : null,
+ // v => v != null
+ // ? (EarlyExitTimeFineType)Enum.Parse(typeof(EarlyExitTimeFineType), v)
+ // : null).HasColumnName("EarlyExit_EarlyExitTimeFineType").HasMaxLength(1);
+
+ earlyExit.OwnsMany(x => x.EarlyExitTimeFines, earlyExitTimeFines =>
+ {
+ earlyExitTimeFines.WithOwner().HasForeignKey("CustomizeWorkshopGroupSettingsId");
+
+ earlyExitTimeFines.Property(x => x.FineMoney).HasColumnName("EarlyExitTimeFines_FineMoney");
+
+ earlyExitTimeFines.Property(x => x.Minute).HasColumnName("EarlyExitTimeFines_Minute").HasMaxLength(4);
+ });
+ earlyExit.Property(x => x.Value).HasColumnName("EarlyExitTimeFines_Value");
+ });
+
+ builder.OwnsOne(x => x.FamilyAllowance, familyAllowance =>
+ {
+ familyAllowance.Property(x => x.Value).HasColumnName("FamilyAllowance_Value");
+
+ //familyAllowance.Property(x => x.NumberOfChildren).HasConversion(
+ // v => v.ToString("d"),
+ // v => (NumberOfChildren)Enum.Parse(typeof(NumberOfChildren), v)).HasMaxLength(1).HasColumnName("FamilyAllowance_NumberOfChildren");
+
+ familyAllowance.Property(x => x.FamilyAllowanceType).HasConversion(
+ v => v.ToString("d"),
+ v => (FamilyAllowanceType)Enum.Parse(typeof(FamilyAllowanceType), v)).HasMaxLength(1).HasColumnName("FamilyAllowance_FamilyAllowanceType");
+ });
+
+
+ builder.OwnsOne(x => x.FineAbsenceDeduction, fineAbsenceDeduction =>
+ {
+ fineAbsenceDeduction.Property(x => x.Value).HasColumnName("FineAbsenceDeduction_Value");
+
+ fineAbsenceDeduction.Property(x => x.FineAbsenceDeductionType).HasConversion(
+ v => v.ToString("d"),
+ v => (FineAbsenceDeductionType)Enum.Parse(typeof(FineAbsenceDeductionType), v)).HasMaxLength(1).HasColumnName("FineAbsenceDeduction_FineAbsenceDeductionType");
+ fineAbsenceDeduction.OwnsMany(x => x.FineAbsenceDayOfWeekCollection, fineAbsenceDayOfWeek =>
+ {
+ fineAbsenceDayOfWeek.WithOwner().HasForeignKey("CustomizeWorkshopGroupSettingsId");
+
+ fineAbsenceDayOfWeek.Property(x => x.DayOfWeek).HasConversion(
+ v => v.ToString("d"),
+ v => (DayOfWeek)Enum.Parse(typeof(DayOfWeek), v)).HasMaxLength(1)
+ .HasColumnName("FineAbsenceDayOfWeekCollection_DayOfWeek");
+
+ });
+ });
+
+ builder.OwnsOne(x => x.FridayPay, fridayPay =>
+ {
+ fridayPay.Property(x => x.Value).HasColumnName("FridayPay_Value");
+ fridayPay.Property(x => x.FridayPayType).HasConversion(
+ v => v.ToString("d"),
+ v => (FridayPayType)Enum.Parse(typeof(FridayPayType), v)).HasMaxLength(1);
+ });
+
+ builder.OwnsOne(x => x.InsuranceDeduction, insuranceDeduction =>
+ {
+ insuranceDeduction.Property(x => x.Value).HasColumnName("InsuranceDeduction_Value");
+ insuranceDeduction.Property(x => x.InsuranceDeductionType).HasConversion(
+ v => v.ToString("d"),
+ v => (InsuranceDeductionType)Enum.Parse(typeof(InsuranceDeductionType), v)).HasMaxLength(1)
+ .HasColumnName("InsuranceDeduction_InsuranceDeductionType");
+ });
+
+ builder.OwnsOne(x => x.LateToWork, lateToWork =>
+ {
+ lateToWork.Property(x => x.Value).HasColumnName("LateToWork_Value");
+ lateToWork.Property(x => x.LateToWorkType).HasConversion(
+ v => v.ToString("d"),
+ v => (LateToWorkType)Enum.Parse(typeof(LateToWorkType), v)).HasMaxLength(1)
+ .HasColumnName("LateToWork_LateToWorkType");
+
+ //lateToWork.Property(x => x.LateToWorkTimeFineType).HasConversion(
+ // v => v.HasValue ? v.Value.ToString("d") : null,
+ // v => v != null
+ // ? (LateToWorkTimeFineType)Enum.Parse(typeof(LateToWorkTimeFineType), v)
+ // : null).HasColumnName("LateToWork_LateToWorkTimeFineType").HasMaxLength(1);
+ lateToWork.OwnsMany(x => x.LateToWorkTimeFines, lateToWorkTimeFines =>
+ {
+ lateToWorkTimeFines.WithOwner().HasForeignKey("CustomizeWorkshopGroupSettingsId");
+ lateToWorkTimeFines.Property(x => x.FineMoney).HasColumnName("LateToWorkTimeFines_FineMoney");
+ lateToWorkTimeFines.Property(x => x.Minute).HasMaxLength(4).HasColumnName("LateToWorkTimeFines_Minute");
+ });
+ });
+
+ builder.OwnsOne(x => x.LeavePay, leavePay =>
+ {
+ leavePay.Property(x => x.Value).HasColumnName("LeavePay_Value");
+ //leavePay.Property(x => x.DayCountAllowable).HasMaxLength(3).HasColumnName("LeavePay_DayCountAllowable");
+ leavePay.Property(x => x.LeavePayType).HasConversion(
+ v => v.ToString("d"),
+ v => (LeavePayType)Enum.Parse(typeof(LeavePayType), v)).HasMaxLength(1)
+ .HasColumnName("LeavePay_LeavePayType");
+ });
+
+ builder.OwnsOne(x => x.MarriedAllowance, marriedAllowance =>
+ {
+ marriedAllowance.Property(x => x.Value).HasColumnName("MarriedAllowance_Value");
+ marriedAllowance.Property(x => x.MarriedAllowanceType).HasConversion(
+ v => v.ToString("d"),
+ v => (MarriedAllowanceType)Enum.Parse(typeof(MarriedAllowanceType), v)).HasMaxLength(1)
+ .HasColumnName("MarriedAllowance_MarriedAllowanceType");
+ });
+
+ builder.OwnsOne(x => x.NightWorkPay, nightWorkPay =>
+ {
+ nightWorkPay.Property(x => x.NightWorkingType).HasConversion(
+ v => v.ToString("d"),
+ v => (NightWorkType)Enum.Parse(typeof(NightWorkType), v)).HasMaxLength(1)
+ .HasColumnName("NightWorkPay_NightWorkingType");
+ nightWorkPay.Property(x => x.Value).HasColumnName("NightWorkPay_Value");
+ });
+ builder.OwnsOne(x => x.OverTimePay, overTimePay =>
+ {
+ overTimePay.Property(x => x.Value).HasColumnName("OverTimePay_Value");
+ overTimePay.Property(x => x.OverTimePayType).HasConversion(
+ v => v.ToString("d"),
+ v => (OverTimePayType)Enum.Parse(typeof(OverTimePayType), v)).HasMaxLength(1)
+ .HasColumnName("OverTimePay_OverTimePayType");
+ });
+ builder.OwnsOne(x => x.ShiftPay, shiftPay =>
+ {
+ shiftPay.Property(x => x.Value).HasColumnName("ShiftPay_Value");
+ shiftPay.Property(x => x.ShiftPayType).HasConversion(
+ v => v.ToString("d"),
+ v => (ShiftPayType)Enum.Parse(typeof(ShiftPayType), v)).HasMaxLength(1)
+ .HasColumnName("ShiftPay_ShiftPayType");
+ shiftPay.Property(x => x.ShiftType).HasConversion(
+ v => v.ToString("d"),
+ v => (ShiftType)Enum.Parse(typeof(ShiftType), v)).HasMaxLength(1)
+ .HasColumnName("ShiftPay_ShiftType");
+ });
+
+ builder.OwnsMany(x => x.CustomizeWorkshopGroupSettingsShifts, shift =>
+ {
+
+ shift.ToTable("CustomizeWorkshopGroupSettingsShifts");
+ shift.HasKey(x => x.id);
+ shift.Property(x => x.Placement).HasConversion().HasMaxLength(20);
+ shift.Property(x => x.StartTime).HasMaxLength(5);
+ shift.Property(x => x.EndTime).HasMaxLength(5);
+
+ shift.WithOwner(x=>x.CustomizeWorkshopGroupSettings).HasForeignKey(a => a.CustomizeWorkshopGroupSettingsId);
+
+ });
+
+ builder.HasOne(x => x.CustomizeWorkshopSettings).WithMany(x => x.CustomizeWorkshopGroupSettingsCollection)
+ .HasForeignKey(x => x.CustomizeWorkshopSettingId);
+
+ builder.HasMany(x => x.CustomizeWorkshopEmployeeSettingsCollection).WithOne(x => x.CustomizeWorkshopGroupSettings)
+ .HasForeignKey(x => x.CustomizeWorkshopGroupSettingId);
+
+ }
+}
\ No newline at end of file
diff --git a/CompanyManagment.EFCore/Mapping/CustomizeWorkshopSettingsMapping.cs b/CompanyManagment.EFCore/Mapping/CustomizeWorkshopSettingsMapping.cs
new file mode 100644
index 00000000..5db6e69c
--- /dev/null
+++ b/CompanyManagment.EFCore/Mapping/CustomizeWorkshopSettingsMapping.cs
@@ -0,0 +1,210 @@
+using _0_Framework.Domain.CustomizeCheckoutValueObjects;
+using Company.Domain.CustomizeWorkshopSettingsAgg.Entities;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Metadata.Builders;
+using System;
+
+namespace CompanyManagment.EFCore.Mapping;
+
+public class CustomizeWorkshopSettingsMapping:IEntityTypeConfiguration
+{
+ public void Configure(EntityTypeBuilder builder)
+ {
+ builder.ToTable("CustomizeWorkshopSettings");
+ builder.HasKey(x => x.id);
+ builder.OwnsOne(x => x.BaseYearsPay, baseYearsPay =>
+ {
+ baseYearsPay.Property(a => a.BaseYearsPayType).HasConversion(
+ v => v.ToString("d"),
+ v => (BaseYearsPayType)Enum.Parse(typeof(BaseYearsPayType), v)).HasMaxLength(1).HasColumnName("BaseYearsPay_BaseYearsPayType");
+ });
+
+ builder.OwnsOne(x => x.BaseYearsPay, baseYearsPay =>
+ {
+ baseYearsPay.Property(a => a.BaseYearsPayType).HasConversion(
+ v => v.ToString("d"),
+ v => (BaseYearsPayType)Enum.Parse(typeof(BaseYearsPayType), v)).HasMaxLength(1).HasColumnName("BaseYearsPay_BaseYearsPayType");
+ baseYearsPay.Property(x => x.PaymentType).HasConversion(
+ v => v.ToString("d"),
+ v => (BaseYearsPaymentType)Enum.Parse(typeof(BaseYearsPaymentType), v)).HasMaxLength(1).HasColumnName("BaseYearsPay_PaymentType");
+
+ baseYearsPay.Property(x => x.Value).HasColumnName("BaseYearsPay_Value");
+
+ });
+
+ builder.OwnsOne(x => x.BonusesPay, bonusesPay =>
+ {
+ bonusesPay.Property(x => x.BonusesPayType).HasConversion(
+ v => v.ToString("d"),
+ v => (BonusesType)Enum.Parse(typeof(BonusesType), v)).HasMaxLength(1).HasColumnName("BonusesPay_BonusesPayType");
+
+ bonusesPay.Property(x => x.PaymentType).HasConversion(
+ v => v.ToString("d"),
+ v => (BonusesPaymentType)Enum.Parse(typeof(BonusesPaymentType), v)).HasMaxLength(1).HasColumnName("BonusesPay_PaymentType");
+
+ bonusesPay.Property(x => x.Value).HasColumnName("BonusesPay_Value");
+ });
+
+
+ builder.OwnsOne(x => x.EarlyExit, earlyExit =>
+ {
+ earlyExit.Property(x => x.EarlyExitType).HasConversion(
+ v => v.ToString("d"),
+ v => (EarlyExitType)Enum.Parse(typeof(EarlyExitType), v)).HasMaxLength(1).HasColumnName("EarlyExit_EarlyExitType");
+
+ //earlyExit.Property(x => x.EarlyExitTimeFineType).HasConversion(
+ // v => v.HasValue ? v.Value.ToString("d") : null,
+ // v => v != null
+ // ? (EarlyExitTimeFineType)Enum.Parse(typeof(EarlyExitTimeFineType), v)
+ // : null).HasColumnName("EarlyExit_EarlyExitTimeFineType").HasMaxLength(1);
+
+ earlyExit.OwnsMany(x => x.EarlyExitTimeFines, earlyExitTimeFines =>
+ {
+ earlyExitTimeFines.WithOwner().HasForeignKey("CustomizeWorkshopSettingsId");
+
+ earlyExitTimeFines.Property(x => x.FineMoney).HasColumnName("EarlyExitTimeFines_FineMoney");
+
+ earlyExitTimeFines.Property(x => x.Minute).HasColumnName("EarlyExitTimeFines_Minute").HasMaxLength(4);
+ });
+ earlyExit.Property(x => x.Value).HasColumnName("EarlyExitTimeFines_Value");
+ });
+
+ builder.OwnsOne(x => x.FamilyAllowance, familyAllowance =>
+ {
+ familyAllowance.Property(x => x.Value).HasColumnName("FamilyAllowance_Value");
+
+ //familyAllowance.Property(x => x.NumberOfChildren).HasConversion(
+ // v => v.ToString("d"),
+ // v => (NumberOfChildren)Enum.Parse(typeof(NumberOfChildren), v)).HasMaxLength(1).HasColumnName("FamilyAllowance_NumberOfChildren");
+
+ familyAllowance.Property(x => x.FamilyAllowanceType).HasConversion(
+ v => v.ToString("d"),
+ v => (FamilyAllowanceType)Enum.Parse(typeof(FamilyAllowanceType), v)).HasMaxLength(1).HasColumnName("FamilyAllowance_FamilyAllowanceType");
+ });
+
+
+ builder.OwnsOne(x => x.FineAbsenceDeduction, fineAbsenceDeduction =>
+ {
+ fineAbsenceDeduction.Property(x => x.Value).HasColumnName("FineAbsenceDeduction_Value");
+
+ fineAbsenceDeduction.Property(x => x.FineAbsenceDeductionType).HasConversion(
+ v => v.ToString("d"),
+ v => (FineAbsenceDeductionType)Enum.Parse(typeof(FineAbsenceDeductionType), v)).HasMaxLength(1).HasColumnName("FineAbsenceDeduction_FineAbsenceDeductionType");
+ fineAbsenceDeduction.OwnsMany(x => x.FineAbsenceDayOfWeekCollection, fineAbsenceDayOfWeek =>
+ {
+ fineAbsenceDayOfWeek.WithOwner().HasForeignKey("CustomizeWorkshopSettingsId");
+
+ fineAbsenceDayOfWeek.Property(x => x.DayOfWeek).HasConversion(
+ v => v.ToString("d"),
+ v => (DayOfWeek)Enum.Parse(typeof(DayOfWeek), v)).HasMaxLength(1)
+ .HasColumnName("FineAbsenceDayOfWeekCollection_DayOfWeek");
+
+ });
+ });
+
+ builder.OwnsOne(x => x.FridayPay, fridayPay =>
+ {
+ fridayPay.Property(x => x.Value).HasColumnName("FridayPay_Value");
+ fridayPay.Property(x => x.FridayPayType).HasConversion(
+ v => v.ToString("d"),
+ v => (FridayPayType)Enum.Parse(typeof(FridayPayType), v)).HasMaxLength(1);
+ });
+
+ builder.OwnsOne(x => x.InsuranceDeduction, insuranceDeduction =>
+ {
+ insuranceDeduction.Property(x => x.Value).HasColumnName("InsuranceDeduction_Value");
+ insuranceDeduction.Property(x => x.InsuranceDeductionType).HasConversion(
+ v => v.ToString("d"),
+ v => (InsuranceDeductionType)Enum.Parse(typeof(InsuranceDeductionType), v)).HasMaxLength(1)
+ .HasColumnName("InsuranceDeduction_InsuranceDeductionType");
+ });
+
+ builder.OwnsOne(x => x.LateToWork, lateToWork =>
+ {
+ lateToWork.Property(x => x.Value).HasColumnName("LateToWork_Value");
+ lateToWork.Property(x => x.LateToWorkType).HasConversion(
+ v => v.ToString("d"),
+ v => (LateToWorkType)Enum.Parse(typeof(LateToWorkType), v)).HasMaxLength(1)
+ .HasColumnName("LateToWork_LateToWorkType");
+
+ //lateToWork.Property(x => x.LateToWorkTimeFineType).HasConversion(
+ // v => v.HasValue ? v.Value.ToString("d") : null,
+ // v => v != null
+ // ? (LateToWorkTimeFineType)Enum.Parse(typeof(LateToWorkTimeFineType), v)
+ // : null).HasColumnName("LateToWork_LateToWorkTimeFineType").HasMaxLength(1);
+ lateToWork.OwnsMany(x => x.LateToWorkTimeFines, lateToWorkTimeFines =>
+ {
+ lateToWorkTimeFines.WithOwner().HasForeignKey("CustomizeWorkshopSettingsId");
+ lateToWorkTimeFines.Property(x => x.FineMoney).HasColumnName("LateToWorkTimeFines_FineMoney");
+ lateToWorkTimeFines.Property(x => x.Minute).HasMaxLength(4).HasColumnName("LateToWorkTimeFines_Minute");
+ });
+ });
+
+ builder.OwnsOne(x => x.LeavePay, leavePay =>
+ {
+ leavePay.Property(x => x.Value).HasColumnName("LeavePay_Value");
+ //leavePay.Property(x => x.DayCountAllowable).HasMaxLength(3).HasColumnName("LeavePay_DayCountAllowable");
+ leavePay.Property(x => x.LeavePayType).HasConversion(
+ v => v.ToString("d"),
+ v => (LeavePayType)Enum.Parse(typeof(LeavePayType), v)).HasMaxLength(1)
+ .HasColumnName("LeavePay_LeavePayType");
+ });
+
+ builder.OwnsOne(x => x.MarriedAllowance, marriedAllowance =>
+ {
+ marriedAllowance.Property(x => x.Value).HasColumnName("MarriedAllowance_Value");
+ marriedAllowance.Property(x => x.MarriedAllowanceType).HasConversion(
+ v => v.ToString("d"),
+ v => (MarriedAllowanceType)Enum.Parse(typeof(MarriedAllowanceType), v)).HasMaxLength(1)
+ .HasColumnName("MarriedAllowance_MarriedAllowanceType");
+ });
+
+ builder.OwnsOne(x => x.NightWorkPay, nightWorkPay =>
+ {
+ nightWorkPay.Property(x => x.NightWorkingType).HasConversion(
+ v => v.ToString("d"),
+ v => (NightWorkType)Enum.Parse(typeof(NightWorkType), v)).HasMaxLength(1)
+ .HasColumnName("NightWorkPay_NightWorkingType");
+ nightWorkPay.Property(x => x.Value).HasColumnName("NightWorkPay_Value");
+ });
+ builder.OwnsOne(x => x.OverTimePay, overTimePay =>
+ {
+ overTimePay.Property(x => x.Value).HasColumnName("OverTimePay_Value");
+ overTimePay.Property(x => x.OverTimePayType).HasConversion(
+ v => v.ToString("d"),
+ v => (OverTimePayType)Enum.Parse(typeof(OverTimePayType), v)).HasMaxLength(1)
+ .HasColumnName("OverTimePay_OverTimePayType");
+ });
+ builder.OwnsOne(x => x.ShiftPay, shiftPay =>
+ {
+ shiftPay.Property(x => x.Value).HasColumnName("ShiftPay_Value");
+ shiftPay.Property(x => x.ShiftPayType).HasConversion(
+ v => v.ToString("d"),
+ v => (ShiftPayType)Enum.Parse(typeof(ShiftPayType), v)).HasMaxLength(1)
+ .HasColumnName("ShiftPay_ShiftPayType");
+ shiftPay.Property(x => x.ShiftType).HasConversion(
+ v => v.ToString("d"),
+ v => (ShiftType)Enum.Parse(typeof(ShiftType), v)).HasMaxLength(1)
+ .HasColumnName("ShiftPay_ShiftType");
+ });
+
+ builder.OwnsMany(x => x.CustomizeWorkshopSettingsShifts, shift =>
+ {
+
+ shift.ToTable("CustomizeWorkshopSettingsShifts");
+ shift.HasKey(x => x.id);
+ shift.Property(x => x.Placement).HasConversion().HasMaxLength(20);
+ shift.Property(x => x.StartTime).HasMaxLength(5);
+ shift.Property(x => x.EndTime).HasMaxLength(5);
+ shift.WithOwner(x=>x.CustomizeWorkshopSettings).HasForeignKey(a => a.CustomizeWorkshopSettingsId);
+
+ });
+
+
+ builder.HasMany(x => x.CustomizeWorkshopGroupSettingsCollection).WithOne(x => x.CustomizeWorkshopSettings)
+ .HasForeignKey(x => x.CustomizeWorkshopSettingId);
+
+ builder.HasOne(x => x.Workshop).WithOne(x => x.CustomizeWorkshopSettings)
+ .HasForeignKey(x => x.WorkshopId);
+ }
+}
\ No newline at end of file
diff --git a/CompanyManagment.EFCore/Migrations/20241006152550_CustomizeWorkshopSetings.Designer.cs b/CompanyManagment.EFCore/Migrations/20241006152550_CustomizeWorkshopSetings.Designer.cs
new file mode 100644
index 00000000..3cd292f5
--- /dev/null
+++ b/CompanyManagment.EFCore/Migrations/20241006152550_CustomizeWorkshopSetings.Designer.cs
@@ -0,0 +1,7327 @@
+//
+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("20241006152550_CustomizeWorkshopSetings")]
+ partial class CustomizeWorkshopSetings
+ {
+ ///
+ protected override void BuildTargetModel(ModelBuilder modelBuilder)
+ {
+#pragma warning disable 612, 618
+ modelBuilder
+ .HasAnnotation("ProductVersion", "8.0.4")
+ .HasAnnotation("Relational:MaxIdentifierLength", 128);
+
+ SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder);
+
+ 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("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("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("OvertimePay")
+ .HasColumnType("float");
+
+ b.Property("PersonnelCode")
+ .HasMaxLength(10)
+ .HasColumnType("nvarchar(10)");
+
+ b.Property("RewardPay")
+ .HasColumnType("float");
+
+ 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("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("FName")
+ .IsRequired()
+ .HasMaxLength(50)
+ .HasColumnType("nvarchar(50)");
+
+ b.Property("IdNumber")
+ .HasMaxLength(20)
+ .HasColumnType("nvarchar(20)");
+
+ b.Property("IsActiveString")
+ .HasMaxLength(5)
+ .HasColumnType("nvarchar(5)");
+
+ 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