241 lines
12 KiB
C#
241 lines
12 KiB
C#
using System;
|
|
using System.Security.Cryptography.X509Certificates;
|
|
using _0_Framework.Domain.CustomizeCheckoutShared.Enums;
|
|
using Company.Domain.CustomizeWorkshopEmployeeSettingsAgg.Entities;
|
|
using Microsoft.EntityFrameworkCore;
|
|
using Microsoft.EntityFrameworkCore.Metadata.Builders;
|
|
|
|
namespace CompanyManagment.EFCore.Mapping;
|
|
|
|
public class CustomizeWorkshopEmployeeSettingsMapping : IEntityTypeConfiguration<CustomizeWorkshopEmployeeSettings>
|
|
{
|
|
public void Configure(EntityTypeBuilder<CustomizeWorkshopEmployeeSettings> builder)
|
|
{
|
|
builder.ToTable("CustomizeWorkshopEmployeeSettings");
|
|
builder.HasKey(x => x.id);
|
|
|
|
builder.HasOne(x => x.CustomizeWorkshopGroupSettings).WithMany(x => x.CustomizeWorkshopEmployeeSettingsCollection)
|
|
.HasForeignKey(x => x.CustomizeWorkshopGroupSettingId);
|
|
|
|
builder.Property(x => x.FridayWork).HasConversion(
|
|
v => v.ToString("d"),
|
|
v => (FridayWork)Enum.Parse(typeof(FridayWork), v)).HasMaxLength(1);
|
|
|
|
builder.Property(x => x.WorkshopShiftStatus).HasConversion(
|
|
v => v.ToString("d"),
|
|
v => (WorkshopShiftStatus)Enum.Parse(typeof(WorkshopShiftStatus), v)).HasMaxLength(1);
|
|
|
|
builder.Property(x => x.HolidayWork).HasConversion(
|
|
v => v.ToString("d"),
|
|
v => (HolidayWork)Enum.Parse(typeof(HolidayWork), v)).HasMaxLength(1);
|
|
builder.OwnsOne(x => x.IrregularShift, irregularShift =>
|
|
{
|
|
irregularShift.Property(x => x.WorkshopIrregularShifts).HasConversion(
|
|
v => v.ToString("d"),
|
|
v => (WorkshopIrregularShifts)Enum.Parse(typeof(WorkshopIrregularShifts), v)).HasMaxLength(1);
|
|
irregularShift.Property(x => x.StartTime).IsRequired();
|
|
irregularShift.Property(x=>x.EndTime).IsRequired();
|
|
});
|
|
|
|
|
|
|
|
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(a => a.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.OwnsOne(x => x.BreakTime, breakTime =>
|
|
{
|
|
breakTime.Property(x => x.BreakTimeType).HasConversion(v => v.ToString("d")
|
|
, v => (BreakTimeType)Enum.Parse(typeof(BreakTimeType), v)).HasMaxLength(1).IsRequired();
|
|
|
|
breakTime.Property(x => x.BreakTimeValue).IsRequired();
|
|
|
|
breakTime.Property(x => x.HasBreakTimeValue).IsRequired();
|
|
});
|
|
|
|
builder.OwnsMany(x => x.CustomizeWorkshopEmployeeSettingsShifts, shift =>
|
|
{
|
|
shift.ToTable("CustomizeWorkshopEmployeeSettingsShifts");
|
|
shift.HasKey(x => x.id);
|
|
shift.Property(x => x.Placement).HasConversion<string>().HasMaxLength(20);
|
|
|
|
|
|
shift.WithOwner(x => x.CustomizeWorkshopEmployeeSettings).HasForeignKey(a => a.CustomizeWorkshopEmployeeSettingsId);
|
|
|
|
});
|
|
|
|
builder.OwnsMany(x => x.WeeklyOffDays, offDay =>
|
|
{
|
|
offDay.HasKey(x => x.Id);
|
|
offDay.Property(x => x.DayOfWeek).HasConversion<string>().HasMaxLength(15);
|
|
offDay.WithOwner().HasForeignKey(x => x.ParentId);
|
|
});
|
|
|
|
builder.OwnsMany(x => x.CustomizeRotatingShifts);
|
|
|
|
}
|
|
} |