diff --git a/0_Framework/0_Framework.csproj b/0_Framework/0_Framework.csproj index 04624e92..1de86aff 100644 --- a/0_Framework/0_Framework.csproj +++ b/0_Framework/0_Framework.csproj @@ -15,6 +15,8 @@ + + diff --git a/0_Framework/Application/AuthHelper.cs b/0_Framework/Application/AuthHelper.cs index bb94f1b2..50e221b2 100644 --- a/0_Framework/Application/AuthHelper.cs +++ b/0_Framework/Application/AuthHelper.cs @@ -40,7 +40,9 @@ public class AuthHelper : IAuthHelper result.Mobile = claims.FirstOrDefault(x => x is { Type: "Mobile" }).Value; result.SubAccountId = long.Parse(claims.FirstOrDefault(x => x.Type == "SubAccountId").Value); result.WorkshopName = claims.FirstOrDefault(x => x is { Type: "WorkshopName" })?.Value; - return result; + result.Permissions = Tools.DeserializeFromBsonList(claims.FirstOrDefault(x => x is { Type: "permissions" })?.Value); + result.RoleName = claims.FirstOrDefault(x => x is { Type: "RoleName" })?.Value; + return result; } public List GetPermissions() diff --git a/0_Framework/Application/Enums/ActivationStatus.cs b/0_Framework/Application/Enums/ActivationStatus.cs new file mode 100644 index 00000000..c125f5bd --- /dev/null +++ b/0_Framework/Application/Enums/ActivationStatus.cs @@ -0,0 +1,8 @@ +namespace _0_Framework.Application.Enums; + +public enum ActivationStatus +{ + None = 0, + Active = 1, + DeActive = 2 +} \ No newline at end of file diff --git a/0_Framework/Application/Enums/LegalType.cs b/0_Framework/Application/Enums/LegalType.cs new file mode 100644 index 00000000..779cdccc --- /dev/null +++ b/0_Framework/Application/Enums/LegalType.cs @@ -0,0 +1,8 @@ +namespace _0_Framework.Application.Enums; + +public enum LegalType +{ + None = 0, + Real = 1, + Legal = 2 +} \ No newline at end of file diff --git a/0_Framework/Application/PaymentGateway/AqayePardakhtPaymentGateway.cs b/0_Framework/Application/PaymentGateway/AqayePardakhtPaymentGateway.cs new file mode 100644 index 00000000..948910ac --- /dev/null +++ b/0_Framework/Application/PaymentGateway/AqayePardakhtPaymentGateway.cs @@ -0,0 +1,93 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net.Http; +using System.Net.Http.Json; +using System.Security.Policy; +using System.Security.Principal; +using System.Text; +using System.Threading; +using System.Threading.Tasks; + +namespace _0_Framework.Application.PaymentGateway; + +public class AqayePardakhtPaymentGateway:IPaymentGateway +{ + private const string Pin = "86EAF2C4D052F7D8759F"; + private const string AccountNumber = "AP.1042276242"; + private const string EncryptedKey = "130D2@D2923"; + + private readonly HttpClient _httpClient; + + public AqayePardakhtPaymentGateway(IHttpClientFactory httpClientFactory) + { + _httpClient = httpClientFactory.CreateClient(); + } + + public async Task Create(CreatePaymentGatewayRequest command,CancellationToken cancellationToken =default) + { + var response = await _httpClient.PostAsJsonAsync("https://panel.aqayepardakht.ir/api/v2/create", new + { + pin = Pin, + amount = command.Amount, + callback = command.CallBackUrl, + card_number = command.CardNumber, + invoice_id = command.InvoiceId, + mobile = command.Mobile, + email = command.Email, + description = command.Description, + }, cancellationToken: cancellationToken); + + var result = await response.Content.ReadFromJsonAsync(cancellationToken: cancellationToken); + return result; + } + + public string GetStartPayUrl(string transactionId) => + $"https://panel.aqayepardakht.ir/startpay/{transactionId}"; + + public async Task Verify(VerifyPaymentGateWayRequest command, CancellationToken cancellationToken = default) + { + var response = await _httpClient.PostAsJsonAsync("https://panel.aqayepardakht.ir/api/v2/verify", new + { + pin = Pin, + amount = command.Amount, + transid = command.TransactionId, + }, cancellationToken: cancellationToken); + + var result = await response.Content.ReadFromJsonAsync(cancellationToken: cancellationToken); + return result; + } + + public async Task CreateSandBox(CreatePaymentGatewayRequest command, CancellationToken cancellationToken = default) + { + var response = await _httpClient.PostAsJsonAsync("https://panel.aqayepardakht.ir/api/v2/create", new + { + pin = "sandbox", + amount = command.Amount, + callback = command.CallBackUrl, + card_number = command.Amount, + invoice_id = command.InvoiceId, + mobile = command.Mobile, + email = command.Email, + description = command.Email, + }, cancellationToken: cancellationToken); + + var result = await response.Content.ReadFromJsonAsync(cancellationToken: cancellationToken); + return result; + } + + public string GetStartPaySandBoxUrl(string transactionId) => + $"https://panel.aqayepardakht.ir/startpay/sandbox/{transactionId}"; + + public async Task GetWalletAmount(CancellationToken cancellationToken) + { + var response =await _httpClient.PostAsJsonAsync("https://panel.aqayepardakht.ir/api/v2/getmoney", new + { + account=AccountNumber, + code = EncryptedKey + }, cancellationToken: cancellationToken); + var jsonString = await response.Content.ReadAsStringAsync(cancellationToken); + var result = await response.Content.ReadFromJsonAsync(cancellationToken); + return result; + } +} \ No newline at end of file diff --git a/0_Framework/Application/PaymentGateway/IPaymentGateway.cs b/0_Framework/Application/PaymentGateway/IPaymentGateway.cs new file mode 100644 index 00000000..c4b80ba3 --- /dev/null +++ b/0_Framework/Application/PaymentGateway/IPaymentGateway.cs @@ -0,0 +1,60 @@ +using Microsoft.AspNetCore.Server.HttpSys; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Text.Json.Serialization; +using System.Threading; +using System.Threading.Tasks; + +namespace _0_Framework.Application.PaymentGateway; + +public interface IPaymentGateway +{ + Task Create(CreatePaymentGatewayRequest command, CancellationToken cancellationToken =default); + + string GetStartPayUrl(string transactionId); + Task Verify(VerifyPaymentGateWayRequest command, CancellationToken cancellationToken=default); + Task CreateSandBox(CreatePaymentGatewayRequest command, CancellationToken cancellationToken=default); + string GetStartPaySandBoxUrl(string transactionId); + Task GetWalletAmount(CancellationToken cancellationToken); + +} +public class PaymentGatewayResponse +{ + [JsonPropertyName("status")] + public string Status { get; set; } + + [JsonPropertyName("code")] + public int? ErrorCode { get; set; } + + [JsonPropertyName("transid")] + public string TransactionId { get; set; } +} + +public class WalletAmountResponse +{ + [JsonPropertyName("status")] + public string Status { get; set; } + [JsonPropertyName("money")] + public double Amount { get; set; } + [JsonPropertyName("code")] + public int Code { get; set; } +} + +public class CreatePaymentGatewayRequest +{ + public double Amount { get; set; } + public string CallBackUrl { get; set; } + public string InvoiceId { get; set; } + public string CardNumber { get; set; } + public string Mobile { get; set; } + public string Email { get; set; } + public string Description { get; set; } +} + +public class VerifyPaymentGateWayRequest +{ + public string TransactionId { get; set; } + public double Amount { get; set; } +} \ No newline at end of file diff --git a/0_Framework/Application/SelectListViewModel.cs b/0_Framework/Application/SelectListViewModel.cs new file mode 100644 index 00000000..2262df1a --- /dev/null +++ b/0_Framework/Application/SelectListViewModel.cs @@ -0,0 +1,7 @@ +namespace _0_Framework.Application; + +public class SelectListViewModel +{ + public long Id { get; set; } + public string Text { get; set; } +} \ No newline at end of file diff --git a/0_Framework/Application/Tools.cs b/0_Framework/Application/Tools.cs index 76c9bdda..d959c33e 100644 --- a/0_Framework/Application/Tools.cs +++ b/0_Framework/Application/Tools.cs @@ -41,6 +41,23 @@ public static class Tools return Regex.IsMatch(mobileNo, "^((09))(\\d{9})$"); } + /// + /// تاریخ شروع و تعداد ماه را میگیرد و تاریخ پایان قراردا را بر میگرداند + /// + /// + /// + /// + public static (DateTime endDateGr, string endDateFa) FindEndOfContract(string startDate, string monthPlus) + { + + int startYear = Convert.ToInt32(startDate.Substring(0, 4)); + int startMonth = Convert.ToInt32(startDate.Substring(5, 2)); + int startDay = Convert.ToInt32(startDate.Substring(8, 2)); + var start = new PersianDateTime(startYear, startMonth, startDay); + var end = (start.AddMonths(Convert.ToInt32(monthPlus))).AddDays(-1); + return ($"{end}".ToGeorgianDateTime(), $"{end}"); + + } /// /// دریافت روزهای کارکرد پرسنل در لیست بیمه ماه مشخص شده diff --git a/0_Framework/Exceptions/Handler/CustomExceptionHandler.cs b/0_Framework/Exceptions/Handler/CustomExceptionHandler.cs new file mode 100644 index 00000000..a3a8fc4c --- /dev/null +++ b/0_Framework/Exceptions/Handler/CustomExceptionHandler.cs @@ -0,0 +1,75 @@ +using System; +using System.Threading; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Diagnostics; +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Mvc; +using Microsoft.Extensions.Logging; + + +namespace _0_Framework.Exceptions.Handler; + +public class CustomExceptionHandler : IExceptionHandler +{ + private readonly ILogger _logger; + + public CustomExceptionHandler(ILogger logger) + { + _logger = logger; + } + + public async ValueTask TryHandleAsync(HttpContext context, Exception exception, CancellationToken cancellationToken) + { + _logger.LogError( + "Error Message: {exceptionMessage}, Time of occurrence {time}", + exception.Message, DateTime.UtcNow); + + (string Detail, string Title, int StatusCode) details = exception switch + { + InternalServerException => + ( + exception.Message, + exception.GetType().Name, + context.Response.StatusCode = StatusCodes.Status500InternalServerError + ), + BadRequestException => + ( + exception.Message, + exception.GetType().Name, + context.Response.StatusCode = StatusCodes.Status400BadRequest + ), + NotFoundException => + ( + exception.Message, + exception.GetType().Name, + context.Response.StatusCode = StatusCodes.Status404NotFound + ), + UnAuthorizeException => + ( + exception.Message, + exception.GetType().Name, + context.Response.StatusCode = StatusCodes.Status401Unauthorized + ), + _ => + ( + exception.Message, + exception.GetType().Name, + context.Response.StatusCode = StatusCodes.Status500InternalServerError + ) + }; + + var problemDetails = new ProblemDetails + { + Title = details.Title, + Detail = details.Detail, + Status = details.StatusCode, + Instance = context.Request.Path + }; + + problemDetails.Extensions.Add("traceId", context.TraceIdentifier); + + await context.Response.WriteAsJsonAsync(problemDetails, cancellationToken: cancellationToken); + + return true; + } +} \ No newline at end of file diff --git a/0_Framework/Exceptions/UnAuthorizeException.cs b/0_Framework/Exceptions/UnAuthorizeException.cs new file mode 100644 index 00000000..83edb8f9 --- /dev/null +++ b/0_Framework/Exceptions/UnAuthorizeException.cs @@ -0,0 +1,10 @@ +using System; + +namespace _0_Framework.Exceptions; + +public class UnAuthorizeException:Exception +{ + public UnAuthorizeException(string message) : base(message) + { + } +} \ No newline at end of file diff --git a/Company.Domain/ContactUsAgg/ContactUs.cs b/Company.Domain/ContactUsAgg/ContactUs.cs new file mode 100644 index 00000000..43f9825f --- /dev/null +++ b/Company.Domain/ContactUsAgg/ContactUs.cs @@ -0,0 +1,26 @@ +using _0_Framework.Domain; + +namespace Company.Domain.ContactUsAgg; + +public class ContactUs:EntityBase +{ + public ContactUs(string firstName, string lastName, string email, string phoneNumber, string title, string message) + { + FirstName = firstName.Trim(); + LastName = lastName.Trim(); + Email = email; + PhoneNumber = phoneNumber; + Title = title; + Message = message; + FullName = FirstName + " " + LastName; + } + + public string FirstName { get; private set; } + public string LastName { get; private set; } + public string Email { get; private set; } + public string PhoneNumber { get; private set; } + public string Title { get; private set; } + public string Message { get; private set; } + public string FullName { get; private set; } + +} \ No newline at end of file diff --git a/Company.Domain/ContactUsAgg/IContactUsRepository.cs b/Company.Domain/ContactUsAgg/IContactUsRepository.cs new file mode 100644 index 00000000..8dbe78bd --- /dev/null +++ b/Company.Domain/ContactUsAgg/IContactUsRepository.cs @@ -0,0 +1,8 @@ +using _0_Framework.Domain; + +namespace Company.Domain.ContactUsAgg; + +public interface IContactUsRepository : IRepository +{ + +} \ No newline at end of file diff --git a/Company.Domain/ContarctingPartyAgg/IPersonalContractingPartyRepository.cs b/Company.Domain/ContarctingPartyAgg/IPersonalContractingPartyRepository.cs index 0ba87c2d..17e588a8 100644 --- a/Company.Domain/ContarctingPartyAgg/IPersonalContractingPartyRepository.cs +++ b/Company.Domain/ContarctingPartyAgg/IPersonalContractingPartyRepository.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using _0_Framework.Application; using _0_Framework.Domain; using AccountManagement.Application.Contracts.Account; +using System.Threading.Tasks; namespace Company.Domain.ContarctingPartyAgg; @@ -42,6 +43,34 @@ public interface IPersonalContractingPartyRepository :IRepository + /// لیست طرف حساب ها + /// + /// + /// + Task> GetList(ContractingPartyGetListSearchModel searchModel); + /// + /// لیست طرف حساب برای سلکت لیست سرچ + /// + /// + Task> GetSelectList(); + + /// + /// لیستی از شماره ملی یا شناسه ملی بر اساس حقیقی یا حقوقی بودن + /// + /// + Task> GetNationalCodeOrNationalId(); + + /// + /// غیرفعال کردن طرف حساب و زیرمجموعه های آن + /// + /// + /// + Task> DeactivateWithSubordinates(long id); + + void Remove(PersonalContractingParty entity); + Task GetRealDetails(long id); + Task GetLegalDetails(long id); } \ No newline at end of file diff --git a/Company.Domain/ContarctingPartyAgg/PersonalContractingParty.cs b/Company.Domain/ContarctingPartyAgg/PersonalContractingParty.cs index 7097b061..a3fa2c40 100644 --- a/Company.Domain/ContarctingPartyAgg/PersonalContractingParty.cs +++ b/Company.Domain/ContarctingPartyAgg/PersonalContractingParty.cs @@ -213,4 +213,14 @@ public class PersonalContractingParty : EntityBase this.Gender = gender; this.IsAuthenticated = true; } + + public void RegisterComplete(string fatherName, string idNumberSeri, string idNumberSerial, DateTime dateOfBirth, Gender gender) + { + this.FatherName = fatherName; + this.IdNumberSeri = idNumberSeri; + this.IdNumberSerial = idNumberSerial; + this.DateOfBirth = dateOfBirth; + this.Gender = gender; + this.IsAuthenticated = true; + } } \ No newline at end of file diff --git a/Company.Domain/EmployeeAgg/IEmployeeRepository.cs b/Company.Domain/EmployeeAgg/IEmployeeRepository.cs index ae689fb6..fa4f6eb3 100644 --- a/Company.Domain/EmployeeAgg/IEmployeeRepository.cs +++ b/Company.Domain/EmployeeAgg/IEmployeeRepository.cs @@ -71,7 +71,12 @@ public interface IEmployeeRepository : IRepository Task GetEmployeeEditInEmployeeDocumentWorkFlow(long employeeId, long workshopId); - #endregion + #endregion + + #region Api + Task> GetSelectList(string searchText); + Task> GetList(GetEmployeeListSearchModel searchModel); + #endregion } \ No newline at end of file diff --git a/Company.Domain/FinancialStatmentAgg/IFinancialStatmentRepository.cs b/Company.Domain/FinancialStatmentAgg/IFinancialStatmentRepository.cs index 8bed15be..56d26347 100644 --- a/Company.Domain/FinancialStatmentAgg/IFinancialStatmentRepository.cs +++ b/Company.Domain/FinancialStatmentAgg/IFinancialStatmentRepository.cs @@ -13,4 +13,6 @@ public interface IFinancialStatmentRepository : IRepository Search(FinancialStatmentSearchModel searchModel); + Task GetClientFinancialStatement(long accountId, + ClientFinancialStatementSearchModel searchModel); } \ No newline at end of file diff --git a/Company.Domain/PaymentTransactionAgg/IPaymentTransactionRepository.cs b/Company.Domain/PaymentTransactionAgg/IPaymentTransactionRepository.cs new file mode 100644 index 00000000..c3ec23fe --- /dev/null +++ b/Company.Domain/PaymentTransactionAgg/IPaymentTransactionRepository.cs @@ -0,0 +1,12 @@ +using System.Collections.Generic; +using System.Threading.Tasks; +using _0_Framework.Domain; +using CompanyManagment.App.Contracts.PaymentTransaction; + +namespace Company.Domain.PaymentTransactionAgg; + +public interface IPaymentTransactionRepository:IRepository +{ + Task> GetPaymentTransactionList( + GetPaymentTransactionListSearchModel searchModel); +} \ No newline at end of file diff --git a/Company.Domain/PaymentTransactionAgg/PaymentTransaction.cs b/Company.Domain/PaymentTransactionAgg/PaymentTransaction.cs new file mode 100644 index 00000000..8becf007 --- /dev/null +++ b/Company.Domain/PaymentTransactionAgg/PaymentTransaction.cs @@ -0,0 +1,104 @@ +using System; +using _0_Framework.Domain; +using CompanyManagment.App.Contracts.PaymentTransaction; + +namespace Company.Domain.PaymentTransactionAgg +{ + /// + /// نمایانگر یک تراکنش پرداخت شامل جزئیات طرف قرارداد، اطلاعات بانکی، وضعیت تراکنش و مبلغ. + /// + public class PaymentTransaction:EntityBase + { + /// + /// سازنده کلاس PaymentTransaction با دریافت اطلاعات تراکنش. + /// + /// شناسه طرف قرارداد + /// نام صاحب حساب بانکی + /// نام بانک + /// شماره کارت + /// شماره شبا + /// شماره حساب بانکی + /// وضعیت تراکنش پرداخت + /// مبلغ تراکنش + /// شناسه یکتای تراکنش + /// + public PaymentTransaction(long contractingPartyId, + string bankAccountHolderName, + string bankName, + string cardNumber, + string shebaNumber, + string accountNumber, + PaymentTransactionStatus status, + double amount, + string transactionId, + string contractingPartyName) + { + TransactionDate = DateTime.Now; + ContractingPartyId = contractingPartyId; + BankAccountHolderName = bankAccountHolderName; + BankName = bankName; + CardNumber = cardNumber; + ShebaNumber = shebaNumber; + AccountNumber = accountNumber; + Status = status; + Amount = amount; + TransactionId = transactionId; + ContractingPartyName = contractingPartyName; + } + + /// + /// تاریخ و زمان انجام پرداخت + /// + public DateTime TransactionDate { get; set; } + + /// + /// شناسه طرف حساب + /// + public long ContractingPartyId { get; set; } + + /// + /// نام طرف حساب + /// + public string ContractingPartyName { get; set; } + + /// + /// نام صاحب حساب بانکی + /// + public string BankAccountHolderName { get; set; } + + /// + /// نام بانک + /// + public string BankName { get; set; } + + /// + /// شماره کارت + /// + public string CardNumber { get; set; } + + /// + /// شماره شبا + /// + public string ShebaNumber { get; set; } + + /// + /// شماره حساب بانکی + /// + public string AccountNumber { get; set; } + + /// + /// وضعیت تراکنش پرداخت + /// + public PaymentTransactionStatus Status { get; set; } + + /// + /// مبلغ تراکنش + /// + public double Amount { get; set; } + + /// + /// شناسه یکتای تراکنش + /// + public string TransactionId { get; set; } + } +} \ No newline at end of file diff --git a/Company.Domain/RepresentativeAgg/IRepresentativeRepository.cs b/Company.Domain/RepresentativeAgg/IRepresentativeRepository.cs index 784600be..e25364ad 100644 --- a/Company.Domain/RepresentativeAgg/IRepresentativeRepository.cs +++ b/Company.Domain/RepresentativeAgg/IRepresentativeRepository.cs @@ -1,4 +1,5 @@ using System.Collections.Generic; +using System.Threading.Tasks; using _0_Framework.Application; using _0_Framework.Domain; using CompanyManagment.App.Contracts.PersonalContractingParty; @@ -20,4 +21,10 @@ public interface IRepresentativeRepository : IRepository #endregion + #region Api + Task> GetList(RepresentativeGetListSearchModel searchModel); + bool HasAnyContractingParty(long id); + Task> GetSelectList(); + #endregion + } \ No newline at end of file diff --git a/Company.Domain/TemporaryClientRegistrationAgg/IInstitutionContractTempRepository.cs b/Company.Domain/TemporaryClientRegistrationAgg/IInstitutionContractTempRepository.cs index 7d9fe9a7..60212417 100644 --- a/Company.Domain/TemporaryClientRegistrationAgg/IInstitutionContractTempRepository.cs +++ b/Company.Domain/TemporaryClientRegistrationAgg/IInstitutionContractTempRepository.cs @@ -1,4 +1,5 @@ -using System.Threading.Tasks; +using System.Collections.Generic; +using System.Threading.Tasks; using _0_Framework_b.Domain; using CompanyManagment.App.Contracts.TemporaryClientRegistration; @@ -15,4 +16,11 @@ public interface IInstitutionContractTempRepository : IRepository /// Task GetInstitutionContractTemp(long id,long contractingPartyTempId); + + /// + /// دریافت لیست طرف حساب هایی که ثبت نام آنها تکمیل شده + /// جهت نمایش در کارپوشه + /// + /// + Task> GetAllCompletedRegistration(); } \ No newline at end of file diff --git a/Company.Domain/TemporaryClientRegistrationAgg/IWorkshopTempRepository.cs b/Company.Domain/TemporaryClientRegistrationAgg/IWorkshopTempRepository.cs index 5ba19824..f9b99c56 100644 --- a/Company.Domain/TemporaryClientRegistrationAgg/IWorkshopTempRepository.cs +++ b/Company.Domain/TemporaryClientRegistrationAgg/IWorkshopTempRepository.cs @@ -14,5 +14,7 @@ public interface IWorkshopTempRepository : IRepository /// Task> GetWorkshopTemp(long contractingPartyTemp); + System.Threading.Tasks.Task RemoveWorkshopTemps(List workshopTempIds); + } \ No newline at end of file diff --git a/Company.Domain/TemporaryClientRegistrationAgg/InstitutionContractTemp.cs b/Company.Domain/TemporaryClientRegistrationAgg/InstitutionContractTemp.cs index 62974a44..198c3737 100644 --- a/Company.Domain/TemporaryClientRegistrationAgg/InstitutionContractTemp.cs +++ b/Company.Domain/TemporaryClientRegistrationAgg/InstitutionContractTemp.cs @@ -34,12 +34,14 @@ public class InstitutionContractTemp : EntityBase /// بصورت یکجا /// - /// بصئورت ماهیانه + /// OneTime /// public string PaymentModel { get; private set; } /// /// مدت قرارداد /// چند ماهه؟ + /// "12" /// public string PeriodModel { get; private set; } @@ -129,6 +131,9 @@ public class InstitutionContractTemp : EntityBase VerifyCodeEndTime = verifyCodeEndTime; } - + public void ChangeRegistrationStatus(string registrationStatus) + { + RegistrationStatus = registrationStatus; + } } \ No newline at end of file diff --git a/Company.Domain/empolyerAgg/IEmployerRepository.cs b/Company.Domain/empolyerAgg/IEmployerRepository.cs index 1c8dc4e7..9b64f27a 100644 --- a/Company.Domain/empolyerAgg/IEmployerRepository.cs +++ b/Company.Domain/empolyerAgg/IEmployerRepository.cs @@ -56,6 +56,17 @@ public interface IEmployerRepository : IRepository #endregion + #region Api + Task> GetEmployerList(GetEmployerSearchModel searchModel); + + Task GetLegalEmployerDetail(long id); + Task GetRealEmployerDetail(long id); + //Task> GetSelectList(string search); + Task> DeactivateWithSubordinates(long id); + + + #endregion + } \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/CompanyManagment.App.Contracts.csproj b/CompanyManagment.App.Contracts/CompanyManagment.App.Contracts.csproj index 2759a76d..b2977176 100644 --- a/CompanyManagment.App.Contracts/CompanyManagment.App.Contracts.csproj +++ b/CompanyManagment.App.Contracts/CompanyManagment.App.Contracts.csproj @@ -1,17 +1,22 @@ - + - - net8.0 - + + net8.0 + true + - - - + + + - - - - - + + + + + + + + + diff --git a/CompanyManagment.App.Contracts/ContactUs/IContactUsApplication.cs b/CompanyManagment.App.Contracts/ContactUs/IContactUsApplication.cs new file mode 100644 index 00000000..a286955d --- /dev/null +++ b/CompanyManagment.App.Contracts/ContactUs/IContactUsApplication.cs @@ -0,0 +1,18 @@ +using _0_Framework.Application; + +namespace CompanyManagment.App.Contracts.ContactUs; + +public interface IContactUsApplication +{ + OperationResult Create(CreateContactUs command); +} + +public class CreateContactUs +{ + public string FirstName { get; set; } + public string LastName { get; set; } + public string Email { get; set; } + public string PhoneNumber { get; set; } + public string Title { get; set; } + public string Message { get; set; } +} \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/Employee/GetEmployeeListSearchModel.cs b/CompanyManagment.App.Contracts/Employee/GetEmployeeListSearchModel.cs new file mode 100644 index 00000000..af2d923e --- /dev/null +++ b/CompanyManagment.App.Contracts/Employee/GetEmployeeListSearchModel.cs @@ -0,0 +1,38 @@ +using _0_Framework.Application.Enums; + +namespace CompanyManagment.App.Contracts.Employee; + +/// +/// مدل جستجو در لیست پرسنل در ادمین +/// +public class GetEmployeeListSearchModel +{ + /// + /// آیدی کارفرما + /// + public long EmployerId { get; set; } + /// + /// آیدی کارگاه + /// + public long WorkshopId { get; set; } + /// + /// آیدی پرسنل + /// + public long EmployeeId { get; set; } + /// + /// کدملی + /// + public string NationalCode { get; set; } + /// + /// شماره بیمه + /// + public string InsuranceCode { get; set; } + /// + /// وضعیت پرسنل + /// + public ActivationStatus EmployeeStatus { get; set; } + /// + /// ایندکس جستجو + /// + public int PageIndex { get; set; } +} \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/Employee/GetEmployeeListViewModel.cs b/CompanyManagment.App.Contracts/Employee/GetEmployeeListViewModel.cs new file mode 100644 index 00000000..c5fde22e --- /dev/null +++ b/CompanyManagment.App.Contracts/Employee/GetEmployeeListViewModel.cs @@ -0,0 +1,44 @@ +using _0_Framework.Application; +using _0_Framework.Application.Enums; + +namespace CompanyManagment.App.Contracts.Employee; + +/// +/// ویو مدل لیست پرسنل ادمین +/// +public class GetEmployeeListViewModel +{ + /// + /// آیدی پرسنل + /// + public long Id { get; set; } + /// + /// نام و نام خانوادگی پرسنل + /// + public string EmployeeFullName { get; set; } + /// + /// کدملی + /// + public string NationalCode { get; set; } + + /// + /// تعداد فرزندان + /// + public string ChildrenCount { get; set; } + /// + /// جنسیت + /// + public Gender Gender { get; set; } + /// + /// تاریخ تولد + /// + public string BirthDate { get; set; } + /// + /// شماره بیمه + /// + public string InsuranceCode { get; set; } + /// + /// وضعیت پرسنل + /// + public ActivationStatus EmployeeStatus { get; set; } +} \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/Employee/IEmployeeApplication.cs b/CompanyManagment.App.Contracts/Employee/IEmployeeApplication.cs index ec216d42..2624b605 100644 --- a/CompanyManagment.App.Contracts/Employee/IEmployeeApplication.cs +++ b/CompanyManagment.App.Contracts/Employee/IEmployeeApplication.cs @@ -77,6 +77,23 @@ public interface IEmployeeApplication Task> GetEmployeeDataFromApi(string nationalCode, string birthDate); - #endregion + #endregion + + #region Api + + /// + /// لیست پرسنل برای جستجو + /// + /// + /// + Task> GetSelectList(string searchText); + + /// + /// لیست کل پرسنل + /// + /// + Task> GetList(GetEmployeeListSearchModel searchModel); + + #endregion } \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/Employer/CreateLegalEmployer.cs b/CompanyManagment.App.Contracts/Employer/CreateLegalEmployer.cs new file mode 100644 index 00000000..a0224f7b --- /dev/null +++ b/CompanyManagment.App.Contracts/Employer/CreateLegalEmployer.cs @@ -0,0 +1,84 @@ +using System.ComponentModel.DataAnnotations; +using _0_Framework.Application; +using _0_Framework.Application.Enums; + +namespace CompanyManagment.App.Contracts.Employer; + +/// +/// ایجاد کارفرمای حقیقی +/// +public class CreateLegalEmployer +{ + /// + /// آیدی طرف حساب + /// + [Required] + public long ContractingPartyId { get; set; } + + /// + /// نام شرکت + /// + public string CompanyName { get; set; } + + /// + /// شناسه ملی + /// + public string NationalId { get; set; } + + /// + /// شماره ثبت + /// + public string RegisterId { get; set; } + + /// + /// شماره تلفن همراه + /// + public string PhoneNumber { get; set; } + + /// + /// شماره تلفن ثابت + /// + public string TelephoneNumber { get; set; } + + /// + /// نام مدیر عامل + /// + public string EmployerFName { get; set; } + /// + /// نام خانوادگی مدیر عامل + /// + public string EmployerLName { get; set; } + /// + /// جنسیت مدیر عامل + /// + public Gender EmployerGender { get; set; } + /// + /// کد ملی مدیر عامل + /// + public string EmployerNationalCode { get; set; } + /// + /// شماره شناسنامه مدیر عامل + /// + public string EmployerIdNumber { get; set; } + /// + /// نام پدر مدیر عامل + /// + public string EmployerFatherName { get; set; } + /// + /// تاریخ تولد مدیر عامل + /// + public string EmployerDateOfBirth { get; set; } + /// + /// تاریخ صدور شناسنامه مدیر عامل + /// + public string EmployerDateOfIssue { get; set; } + /// + /// محل صدور شناسنامه مدیر عامل + /// + public string EmployerPlaceOfIssue { get; set; } + + /// + /// اطلاعات سامانه ای + /// + public GovernmentSystemInfo GovernmentSystemInfo { get; set; } +} \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/Employer/CreateRealEmployer.cs b/CompanyManagment.App.Contracts/Employer/CreateRealEmployer.cs new file mode 100644 index 00000000..998e6d75 --- /dev/null +++ b/CompanyManagment.App.Contracts/Employer/CreateRealEmployer.cs @@ -0,0 +1,80 @@ +using System.ComponentModel.DataAnnotations; +using _0_Framework.Application; +using _0_Framework.Application.Enums; + +namespace CompanyManagment.App.Contracts.Employer; + +/// +/// ایجاد کارفرما حقیقی +/// +public class CreateRealEmployer +{ + /// + /// آیدی طرف حساب + /// + [Required] + public long ContractingPartyId { get; set; } + + /// + /// جنسیت + /// + [Required] + public Gender Gender { get; set; } + + /// + /// نام + /// + [Required] + public string FName { get; set; } + + /// + ///نام خانوادگی + /// + [Required] + public string LName { get; set; } + + /// + /// کد ملی + /// + public string NationalCode { get; set; } + + /// + /// شماره شناسنامه + /// + public string IdNumber { get; set; } + + /// + /// شماره تلفن همراه + /// + public string PhoneNumber { get; set; } + + /// + /// شماره تلفن ثابت + /// + public string Telephone { get; set; } + + /// + /// تاریخ صدور شناسنامه + /// + public string DateOfIssue { get; set; } + + /// + /// محل صدور شناسنامه + /// + public string PlaceOfIssue { get; set; } + + /// + /// تاریخ تولد + /// + public string DateOfBirth { get; set; } + + /// + /// نام پدر + /// + public string FatherName { get; set; } + + /// + /// اطلاعات سامانه ای + /// + public GovernmentSystemInfo GovernmentSystemInfo { get; set; } +} \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/Employer/EditLegalEmployer.cs b/CompanyManagment.App.Contracts/Employer/EditLegalEmployer.cs new file mode 100644 index 00000000..06d671d8 --- /dev/null +++ b/CompanyManagment.App.Contracts/Employer/EditLegalEmployer.cs @@ -0,0 +1,9 @@ +namespace CompanyManagment.App.Contracts.Employer; + +public class EditLegalEmployer: CreateLegalEmployer +{ + /// + /// آیدی کارفرما + /// + public long Id { get; set; } +} \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/Employer/EditRealEmployer.cs b/CompanyManagment.App.Contracts/Employer/EditRealEmployer.cs new file mode 100644 index 00000000..bfe9c3e1 --- /dev/null +++ b/CompanyManagment.App.Contracts/Employer/EditRealEmployer.cs @@ -0,0 +1,12 @@ +namespace CompanyManagment.App.Contracts.Employer; + +/// +/// ویرایش کارفرما حقیقی +/// +public class EditRealEmployer:CreateRealEmployer +{ + /// + /// آیدی کارفرما + /// + public long Id { get; set; } +} \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/Employer/GetEmployerListViewModel.cs b/CompanyManagment.App.Contracts/Employer/GetEmployerListViewModel.cs new file mode 100644 index 00000000..f75fc4b9 --- /dev/null +++ b/CompanyManagment.App.Contracts/Employer/GetEmployerListViewModel.cs @@ -0,0 +1,50 @@ +using System.Collections.Generic; +using _0_Framework.Application.Enums; + +namespace CompanyManagment.App.Contracts.Employer; + +/// +/// مدل برای گرفتن لیست کارفرما +/// +public class GetEmployerListViewModel +{ + /// + /// آیدی کارفرما + /// + public long Id { get; set; } + + /// + /// کدملی / شناسه ملی + /// + public string NationalCodeOrNationalId { get; set; } + + /// + /// نام کارفرما + /// + public string FullName { get; set; } + + /// + /// نام های کارگاه + /// + public ICollection WorkshopNames { get; set; } + + /// + /// دارای طرف حساب + /// + public bool HasContractingParty { get; set; } + + /// + /// طرف حساب بلاک شده یا نه + /// + public bool HasBlockContractingParty { get; set; } + + /// + /// نوع کارفرما + /// + public LegalType LegalType { get; set; } + + /// + /// وضعیت کارفرما + /// + public ActivationStatus EmployerStatus { get; set; } +} \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/Employer/GetEmployerSearchModel.cs b/CompanyManagment.App.Contracts/Employer/GetEmployerSearchModel.cs new file mode 100644 index 00000000..738f6a25 --- /dev/null +++ b/CompanyManagment.App.Contracts/Employer/GetEmployerSearchModel.cs @@ -0,0 +1,44 @@ +using _0_Framework.Application.Enums; + +namespace CompanyManagment.App.Contracts.Employer; + +/// +/// مدل جستجوی لیست کارفرما +/// +public class GetEmployerSearchModel +{ + /// + /// نام شرکت / نام و نام خانوادگی + /// + public string FullNameOrCompanyName { get; set; } + + /// + /// کدملی/ شناسه ملی + /// + public string NationalCodeOrNationalId { get; set; } + + /// + /// شماره شناسنامه یا شماره ثبت + /// + public string IdNumberOrRegisterId { get; set; } + + /// + /// نام طرف حساب + /// + public string ContractingPartyName { get; set; } + + /// + /// وضعیت کارفرما + /// + public ActivationStatus EmployerStatus { get; set; } + + /// + /// نوع کارفرما + /// + public LegalType EmployerType { get; set; } + + /// + /// پیج ایندکس برای دسته بندی سی تایی + /// + public int PageIndex { get; set; } +} \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/Employer/GetLegalEmployerDetailViewModel.cs b/CompanyManagment.App.Contracts/Employer/GetLegalEmployerDetailViewModel.cs new file mode 100644 index 00000000..9ffe398e --- /dev/null +++ b/CompanyManagment.App.Contracts/Employer/GetLegalEmployerDetailViewModel.cs @@ -0,0 +1,120 @@ +using _0_Framework.Application; +using _0_Framework.Application.Enums; + +namespace CompanyManagment.App.Contracts.Employer; + +/// +/// اطلاعات کارفرمای حقوقی +/// +public class GetLegalEmployerDetailViewModel +{ + /// + /// آیدی کارفرما + /// + public long Id { get; set; } + + /// + /// نام شرکت + /// + public string CompanyName { get; set; } + + /// + /// شناسه ملی + /// + public string NationalId { get; set; } + + /// + /// شماره ثبت + /// + public string RegisterId { get; set; } + + /// + /// شماره تلفن همراه + /// + public string PhoneNumber { get; set; } + + /// + /// شماره تلفن ثابت + /// + public string TelephoneNumber { get; set; } + + /// + /// کد کارفرما + /// + public string EmployerNo { get; set; } + + /// + /// نام کارفرما + /// + public string ContractingPartyName { get; set; } + + /// + /// نام کارفرما + /// + public long ContractingPartyId { get; set; } + + /// + /// نام و خانوادگی مدیر عامل + /// + public string CeoFullName { get; set; } + + /// + /// نام و خانوادگی مدیر عامل + /// + public string CeoFName { get; set; } + + /// + /// نام و خانوادگی مدیر عامل + /// + public string CeoLName { get; set; } + + /// + /// جنسیت مدیر عامل + /// + public Gender Gender { get; set; } + + /// + /// جنیست + /// + public string GenderStr { get; set; } + + /// + /// ملیت + /// + public string Nationality { get; set; } + + /// + /// نام پدر + /// + public string FatherName { get; set; } + + /// + /// کد ملی + /// + public string NationalCode { get; set; } + + /// + /// شماره شناسنامه + /// + public string IdNumber { get; set; } + + /// + /// تاریخ تولد + /// + public string DateOfBirth { get; set; } + /// + /// تاریخ صدور شناسنامه + /// + public string DateOfIssue { get; set; } + + /// + /// محل صدور شناسنامه + /// + public string PlaceOfIssue { get; set; } + + /// + /// اطلاعات سامانه های دولتی + /// + public GovernmentSystemInfo GovernmentSystemInfo { get; set; } + +} \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/Employer/GetRealEmployerDetailViewModel.cs b/CompanyManagment.App.Contracts/Employer/GetRealEmployerDetailViewModel.cs new file mode 100644 index 00000000..9ace3ab6 --- /dev/null +++ b/CompanyManagment.App.Contracts/Employer/GetRealEmployerDetailViewModel.cs @@ -0,0 +1,107 @@ +using _0_Framework.Application; +using _0_Framework.Application.Enums; + +namespace CompanyManagment.App.Contracts.Employer; + +/// +/// اطلاعات کارفرمای حقوقی +/// +public class GetRealEmployerDetailViewModel +{ + /// + /// آیدی کارفرما + /// + public long Id { get; set; } + + /// + /// نام و نام خانوادگی + /// + public string FullName { get; set; } + + /// + /// نام + /// + public string FName{ get; set; } + + /// + /// نام خانوادگی + /// + public string LName { get; set; } + + /// + /// کدملی + /// + public string NationalCode { get; set; } + + /// + /// جنسیت فارسی + /// + public string GenderStr { get; set; } + + /// + /// جنسیت + /// + public Gender Gender { get; set; } + + /// + /// ملیت + /// + public string Nationality { get; set; } + + /// + /// شماره تلفن همراه + /// + public string PhoneNumber { get; set; } + + /// + /// نام پدر + /// + public string FatherName { get; set; } + + /// + /// شماره شناسنامه + /// + public string IdNumber { get; set; } + + /// + /// تاریخ تولد + /// + public string DateOfBirth { get; set; } + + /// + /// نام طرف حساب + /// + public string ContractingPartyName { get; set; } + + + /// + /// آیدی طرف حساب + /// + public long ContractingPartyId { get; set; } + + /// + /// کد کارفرما + /// + public string EmployerNo { get; set; } + + + /// + /// شماره تلفن ثابت + /// + public string TelephoneNumber { get; set; } + + /// + /// تاریخ صدور شناسنامه + /// + public string DateOfIssue { get; set; } + + /// + /// محل صدور شناسنامه + /// + public string PlaceOfIssue { get; set; } + + /// + /// اطلاعات سامانه های دولتی + /// + public GovernmentSystemInfo GovernmentSystemInfo { get; set; } +} \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/Employer/GovernmentSystemInfo.cs b/CompanyManagment.App.Contracts/Employer/GovernmentSystemInfo.cs new file mode 100644 index 00000000..611ccb16 --- /dev/null +++ b/CompanyManagment.App.Contracts/Employer/GovernmentSystemInfo.cs @@ -0,0 +1,54 @@ +using System; + +namespace CompanyManagment.App.Contracts.Employer; + +/// +/// اطلاعات سامانه های دولتی +/// +public class GovernmentSystemInfo +{ + #region MCL + /// + /// نام کاربری اداره کار + /// + public string MclUsername { get; set; } + /// + /// رمز عبور اداره کار + /// + public string MclPassword { get; set; } + #endregion + + #region E-Service تامین اجتماعی + /// + /// نام کاربری سازمان تامین اجتماعی + /// + public string EServiceUsername { get; set; } + /// + /// رمز عبور سازمان تامین اجتماعی + /// + public string EServicePassword { get; set; } + #endregion + + #region Tax سامانه مالیاتی + /// + /// نام کاربری سامانه مالیاتی + /// + public string TaxUsername { get; set; } + /// + /// رمز عبور سامانه مالیاتی + /// + public string TaxPassword { get; set; } + #endregion + + #region Sana سامانه ثنا + /// + /// نام کاربری ثنا + /// + public string SanaUsername { get; set; } + /// + /// رمز عبور ثنا + /// + public string SanaPassword { get; set; } + #endregion + +} \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/Employer/IEmployerApplication.cs b/CompanyManagment.App.Contracts/Employer/IEmployerApplication.cs index ec8582f1..86c5c41f 100644 --- a/CompanyManagment.App.Contracts/Employer/IEmployerApplication.cs +++ b/CompanyManagment.App.Contracts/Employer/IEmployerApplication.cs @@ -2,6 +2,7 @@ using System.Threading.Tasks; using _0_Framework.Application; using CompanyManagment.App.Contracts.Checkout; +using CompanyManagment.App.Contracts.Employee; namespace CompanyManagment.App.Contracts.Employer; @@ -19,7 +20,7 @@ public interface IEmployerApplication OperationResult Active(long id); OperationResult DeActive(long id); - OperationResult Remove(long id); + OperationResult Remove_Old(long id); List GetEmployers(); List Search(EmployerSearchModel searchModel); @@ -36,7 +37,13 @@ public interface IEmployerApplication #region Mahan List GetEmployersHasWorkshop(); - Task> GetSelectList(string search); + + /// + /// لیست نام کارفرما ها برای جستجو + /// + /// + /// + Task> GetSelectList(string search); #endregion #region NewByHeydari @@ -53,6 +60,68 @@ public interface IEmployerApplication (string employerName, bool isLegal) InsuranceEmployerByWorkshopId(long workshopId); + + + #endregion + #region Api + /// + /// لیست کارفرما ها + /// + /// + Task> GetEmployerList(GetEmployerSearchModel searchModel); + + /// + /// جزئیات کارفرما حقوقی + /// + /// + /// + Task GetLegalEmployerDetail(long id); + + /// + /// جزئیات کارفرما حقیقی + /// + /// + /// + Task GetRealEmployerDetail(long id); + + /// + /// ایجاد کارفرمای حقیقی + /// + /// + /// + Task CreateReal(CreateRealEmployer command); + + /// + /// ایجاد کارفرمای حقوقی + /// + /// + /// + Task CreateLegal(CreateLegalEmployer command); + + /// + /// ویرایش کارفرمای حقیقی + /// + /// + /// + Task EditReal(EditRealEmployer command); + + + /// + /// ویرایش کارفرمای حقوقی + /// + /// + /// + Task EditLegal(EditLegalEmployer command); + + + + /// + /// حذف کارفرما - درصورت داشتن کارگاه کارفرما غیرفعال میشود + /// + /// + /// + public Task> Remove(long id); + #endregion } \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/FinancialStatment/IFinancialStatmentApplication.cs b/CompanyManagment.App.Contracts/FinancialStatment/IFinancialStatmentApplication.cs index d2ac6498..45e18826 100644 --- a/CompanyManagment.App.Contracts/FinancialStatment/IFinancialStatmentApplication.cs +++ b/CompanyManagment.App.Contracts/FinancialStatment/IFinancialStatmentApplication.cs @@ -4,6 +4,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; using _0_Framework.Application; +using CompanyManagment.App.Contracts.FinancilTransaction; namespace CompanyManagment.App.Contracts.FinancialStatment; @@ -13,4 +14,123 @@ public interface IFinancialStatmentApplication List Search(FinancialStatmentSearchModel searchModel); FinancialStatmentViewModel GetDetailsByContractingPartyId(long contractingPartyId); -} \ No newline at end of file + + /// + /// نمایش اطلاعات صورت حساب مالی کلاینت + /// + /// + /// + /// مدل صورت حساب مالی کلاینت + Task GetClientFinancialStatement(ClientFinancialStatementSearchModel searchModel, + long accountId); +} + +public class ClientFinancialStatementSearchModel +{ + /// + /// از تاریخ + /// + public string FromDate { get; set; } + /// + /// تا تاریخ + /// + public string ToDate { get; set; } + /// + /// از مبلغ + /// + public double FromAmount { get; set; } + /// + /// تا مبلغ + /// + public double ToAmount { get; set; } + /// + /// نوع عملیات تراکنش + /// + public FinancialTransactionType? Type { get; set; } + + /// + /// صفحه بندی + /// + public int PageIndex { get; set; } + +} + +public enum FinancialTransactionType +{ + /// + /// ایجاد درآمد + /// + Debt, + /// + /// دریافت درآمد + /// + Credit +} + +public class ClientFinancialStatementViewModel +{ + /// + /// آیدی FinancialStatement + /// + public long Id { get; set; } + + /// + /// جمع بدهکاری + /// + public double TotalDebt { get; set; } + /// + /// جمع بستانکاری + /// + public double TotalCredit { get; set; } + /// + /// مبلغ قابل پرداخت + /// + public double TotalAmountPayable { get; set; } + + /// + /// تراکنش ها + /// + public List Transactions { get; set; } +} + +public class ClientFinancialTransactionViewModel +{ + /// + /// زمان و تاریخ میلادی + /// + public DateTime DateTimeGr { get; set; } + /// + /// تاریخ + /// + public string DateFa { get; set; } + /// + /// زمان + /// + public string TimeFa { get; set; } + /// + /// شرح + /// + public string Description { get; set; } + /// + /// نوع عملیات پرداخت + /// + public FinancialTransactionType Type { get; set; } + + /// + /// نوع عملیات پرداخت به صورت استرینگ + /// + public string TypeStr { get; set; } + /// + /// بدهکار + /// + public double Debtor { get; set; } + /// + /// بستانکار + /// + public double Creditor { get; set; } + /// + /// باقی مانده + /// + public double Balance { get; set; } +} + diff --git a/CompanyManagment.App.Contracts/PaymentTransaction/CreatePaymentTransaction.cs b/CompanyManagment.App.Contracts/PaymentTransaction/CreatePaymentTransaction.cs new file mode 100644 index 00000000..6c1e41fd --- /dev/null +++ b/CompanyManagment.App.Contracts/PaymentTransaction/CreatePaymentTransaction.cs @@ -0,0 +1,54 @@ +namespace CompanyManagment.App.Contracts.PaymentTransaction; + +public class CreatePaymentTransaction +{ + /// + /// شناسه طرف قرارداد + /// + public long ContractingPartyId { get; set; } + + /// + /// نام صاحب حساب بانکی + /// + public string BankAccountHolderName { get; set; } + + /// + /// نام بانک + /// + public string BankName { get; set; } + + /// + /// شماره کارت + /// + public string CardNumber { get; set; } + + /// + /// شماره شبا + /// + public string ShebaNumber { get; set; } + + /// + /// شماره حساب بانکی + /// + public string AccountNumber { get; set; } + + /// + /// وضعیت تراکنش پرداخت + /// + public PaymentTransactionStatus Status { get; set; } + + /// + /// مبلغ تراکنش + /// + public double Amount { get; set; } + + /// + /// شناسه یکتای تراکنش + /// + public string TransactionId { get; set; } + + /// + /// نام طرف حساب + /// + public string ContractingPartyName { get; set; } +} \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/PaymentTransaction/GetPaymentTransactionListSearchModel.cs b/CompanyManagment.App.Contracts/PaymentTransaction/GetPaymentTransactionListSearchModel.cs new file mode 100644 index 00000000..6b6f6c56 --- /dev/null +++ b/CompanyManagment.App.Contracts/PaymentTransaction/GetPaymentTransactionListSearchModel.cs @@ -0,0 +1,43 @@ +namespace CompanyManagment.App.Contracts.PaymentTransaction; + +/// +/// مدل جستجو برای دریافت لیست تراکنش‌های پرداخت. +/// شامل فیلترهایی مانند نام طرف قرارداد یا صاحب حساب، بازه تاریخ، بازه مبلغ و وضعیت تراکنش. +/// +public class GetPaymentTransactionListSearchModel +{ + /// + /// نام طرف قرارداد یا صاحب حساب بانکی جهت جستجو + /// + public string ContractingPartyOrAccountHolderName { get; set; } + + /// + /// تاریخ شروع بازه جستجو (به صورت رشته) + /// + public string FromDate { get; set; } + + /// + /// تاریخ پایان بازه جستجو (به صورت رشته) + /// + public string ToDate { get; set; } + + /// + /// حداقل مبلغ تراکنش جهت جستجو + /// + public double FromAmount { get; set; } + + /// + /// حداکثر مبلغ تراکنش جهت جستجو + /// + public double ToAmount { get; set; } + + /// + /// وضعیت تراکنش جهت فیلتر کردن نتایج + /// + public PaymentTransactionStatus? StatusEnum { get; set; } + + /// + /// شماره صفحه برای پیاده‌سازی pagination + /// + public int PageIndex { get; set; } +} \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/PaymentTransaction/GetPaymentTransactionListViewModel.cs b/CompanyManagment.App.Contracts/PaymentTransaction/GetPaymentTransactionListViewModel.cs new file mode 100644 index 00000000..d8bb9e4e --- /dev/null +++ b/CompanyManagment.App.Contracts/PaymentTransaction/GetPaymentTransactionListViewModel.cs @@ -0,0 +1,73 @@ +namespace CompanyManagment.App.Contracts.PaymentTransaction; + +/// +/// مدل نمایش اطلاعات هر تراکنش پرداخت در لیست تراکنش‌ها. +/// شامل جزئیاتی مانند تاریخ و زمان پرداخت، نام طرف حساب، اطلاعات بانکی، وضعیت و مبلغ تراکنش. +/// +public class GetPaymentTransactionListViewModel +{ + /// + /// آیدی تراکنش پرداخت + /// + public long Id { get; set; } + + /// + /// تاریخ پرداخت + /// + public string PaymentDate { get; set; } + + /// + /// زمان پرداخت + /// + public string PaymentTime { get; set; } + + /// + /// نام طرف حساب + /// + public string ContractingPartyName { get; set; } + + /// + /// نام صاحب حساب بانکی + /// + public string BankAccountHolderName { get; set; } + + /// + /// نام بانک + /// + public string BankName { get; set; } + + /// + /// شماره کارت + /// + public string CardNumber { get; set; } + + /// + /// شماره شبا + /// + public string ShebaNumber { get; set; } + + /// + /// شماره حساب بانکی + /// + public string AccountNumber { get; set; } + + /// + /// وضعیت تراکنش به صورت متنی + /// + public string Status { get; set; } + + /// + /// وضعیت تراکنش به صورت Enum + /// + public PaymentTransactionStatus StatusEnum { get; set; } + + /// + /// مبلغ تراکنش + /// + public double Amount { get; set; } + + /// + /// شناسه یکتای تراکنش + /// + public string TransactionId { get; set; } +} \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/PaymentTransaction/IPaymentTransactionApplication.cs b/CompanyManagment.App.Contracts/PaymentTransaction/IPaymentTransactionApplication.cs new file mode 100644 index 00000000..b871b1a7 --- /dev/null +++ b/CompanyManagment.App.Contracts/PaymentTransaction/IPaymentTransactionApplication.cs @@ -0,0 +1,30 @@ +using System.Collections.Generic; +using System.Threading; +using System.Threading.Tasks; +using _0_Framework.Application; +using _0_Framework.Application.PaymentGateway; + +namespace CompanyManagment.App.Contracts.PaymentTransaction; + +/// +/// +/// +public interface IPaymentTransactionApplication +{ + /// + /// لیست تراکنش های پرداخت را بر اساس فیلتر مشخص شده برمی گرداند. + /// + /// + /// + Task> GetPaymentTransactionList( + GetPaymentTransactionListSearchModel searchModel); + /// + /// ایجاد تراکنش + /// + /// + /// + Task Create(CreatePaymentTransaction command); + + Task GetWalletAmount(CancellationToken cancellationToken); + +} \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/PaymentTransaction/PaymentTransactionStatus.cs b/CompanyManagment.App.Contracts/PaymentTransaction/PaymentTransactionStatus.cs new file mode 100644 index 00000000..d49ac4c5 --- /dev/null +++ b/CompanyManagment.App.Contracts/PaymentTransaction/PaymentTransactionStatus.cs @@ -0,0 +1,17 @@ +namespace CompanyManagment.App.Contracts.PaymentTransaction; + +/// +/// وضعیت تراکنش درگاه پرداخت +/// +public enum PaymentTransactionStatus +{ + /// + /// تراکنش با شکست مواجه شد. + /// + Failed, + /// + /// تراکنش با موفقیت انجام شد. + /// + Success, + +} \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/PersonalContractingParty/ContractingPartyGetListSearchModel.cs b/CompanyManagment.App.Contracts/PersonalContractingParty/ContractingPartyGetListSearchModel.cs new file mode 100644 index 00000000..fd2f7f9a --- /dev/null +++ b/CompanyManagment.App.Contracts/PersonalContractingParty/ContractingPartyGetListSearchModel.cs @@ -0,0 +1,37 @@ +using _0_Framework.Application.Enums; + +namespace CompanyManagment.App.Contracts.PersonalContractingParty; + +public class ContractingPartyGetListSearchModel +{ + /// + /// تعدادی که برای لیست بعدی آیتم باید رد کنه + /// + public int PageIndex { get; set; } + + /// + /// نام شرکت یا نام و نام خانوادگی طرف حساب + /// + public string FullNameOrCompanyName { get; set; } + + /// + /// شناسه ملی یا شماره ملی + /// + public string NationalIdOrNationalCode { get; set; } + + /// + /// نام معرف + /// + public string RepresentativeName { get; set; } + + /// + /// نوع طرف حساب + /// + public LegalType ContractingPartyType { get; set; } + + /// + /// وضعیت طرف حساب + /// + public ActivationStatus ContractingPartyStatus { get; set; } + +} \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/PersonalContractingParty/ContractingPartyGetListViewModel.cs b/CompanyManagment.App.Contracts/PersonalContractingParty/ContractingPartyGetListViewModel.cs new file mode 100644 index 00000000..ab435f57 --- /dev/null +++ b/CompanyManagment.App.Contracts/PersonalContractingParty/ContractingPartyGetListViewModel.cs @@ -0,0 +1,60 @@ +using System.Collections.Generic; +using _0_Framework.Application.Enums; + +namespace CompanyManagment.App.Contracts.PersonalContractingParty; + +public record ContractingPartyGetListEmployerViewModel(long EmployerId, string EmployerName); + +public class ContractingPartyGetListViewModel +{ + /// + /// آیدی طرف حساب + /// + public long Id { get; set; } + + /// + /// کد طرف حساب + /// + public int ArchiveCode { get; set; } + + /// + /// شناسه ملی یا شماره ملی + /// + public string NationalIdOrNationalCode { get; set; } + + /// + /// نام طرف حساب + /// + public string ContractingPartyName { get; set; } + + /// + /// لیست کارفرما ها + /// + public ICollection Employers { get; set; } + + /// + /// تعداد بلاک + /// + public int BlockTimes { get; set; } + + /// + /// آیا بلاک هست + /// + public bool IsBlock { get; set; } + + /// + /// آیا دارای قرارداد مالی است + /// + public bool HasInstitutionContract { get; set; } + + /// + /// نوع طرف حساب + /// + public LegalType ContractingPartyType { get; set; } + + /// + /// وضعیت طرف حساب + /// + public ActivationStatus Status { get; set; } + +} \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/PersonalContractingParty/ContractingPartySelectListViewModel.cs b/CompanyManagment.App.Contracts/PersonalContractingParty/ContractingPartySelectListViewModel.cs new file mode 100644 index 00000000..29186b6b --- /dev/null +++ b/CompanyManagment.App.Contracts/PersonalContractingParty/ContractingPartySelectListViewModel.cs @@ -0,0 +1,8 @@ +using _0_Framework.Application; + +namespace CompanyManagment.App.Contracts.PersonalContractingParty; + +public class ContractingPartySelectListViewModel: SelectListViewModel +{ + +} \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/PersonalContractingParty/CreateLegalContractingParty.cs b/CompanyManagment.App.Contracts/PersonalContractingParty/CreateLegalContractingParty.cs new file mode 100644 index 00000000..996070fc --- /dev/null +++ b/CompanyManagment.App.Contracts/PersonalContractingParty/CreateLegalContractingParty.cs @@ -0,0 +1,74 @@ +using System.ComponentModel.DataAnnotations; + +namespace CompanyManagment.App.Contracts.PersonalContractingParty; + +public class CreateLegalContractingParty +{ + /// + /// آیدی معرف + /// + [Required] + public long RepresentativeId { get; set; } + + /// + /// نام شرکت + /// + [Required] + public string CompanyName { get; set; } + + /// + /// شناسه ملی + /// + [Required] + public string NationalId { get; set; } + + /// + /// کد طرف حساب + /// + [Required] + public int ArchiveCode { get; set; } + + /// + /// نام مستعار + /// + public string SureName { get; set; } + + /// + /// شماره ثبت + /// + public string RegisterId { get; set; } + + + + /// + /// شماره تلفن + /// + public string PhoneNumber { get; set; } + + /// + /// شماره تلفن نماینده + /// + public string AgentPhone { get; set; } + + /// + /// استان + /// + public string State { get; set; } + + /// + /// شهر + /// + public string City { get; set; } + + /// + /// محله + /// + public string Zone { get; set; } + + /// + /// نشانی + /// + public string Address { get; set; } + + +} \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/PersonalContractingParty/CreateRealContractingParty.cs b/CompanyManagment.App.Contracts/PersonalContractingParty/CreateRealContractingParty.cs new file mode 100644 index 00000000..e35fe25c --- /dev/null +++ b/CompanyManagment.App.Contracts/PersonalContractingParty/CreateRealContractingParty.cs @@ -0,0 +1,77 @@ +using System.ComponentModel.DataAnnotations; + +namespace CompanyManagment.App.Contracts.PersonalContractingParty; + +public class CreateRealContractingParty +{ + /// + /// نام + /// + [Required] + public string FName { get; set; } + + /// + /// نام خانوادگی + /// + [Required] + public string LName { get; set; } + + /// + /// آیدی معرف + /// + [Required] + public long RepresentativeId { get; set; } + + /// + /// کد ملی + /// + [Required] + public string NationalCode { get; set; } + + /// + /// شماره شناسنامه + /// + [Required] + public string IdNumber { get; set; } + + /// + /// کد طرف حساب + /// + [Required] + public int ArchiveCode { get; set; } + + /// + /// نام مستعار + /// + public string SureName { get; set; } + + /// + /// شماره تلفن + /// + public string PhoneNumber { get; set; } + + /// + /// شماره تلفن نماینده + /// + public string AgentPhone { get; set; } + + /// + /// استان + /// + public string State { get; set; } + + /// + /// شهر + /// + public string City { get; set; } + + /// + /// محله + /// + public string Zone { get; set; } + + /// + /// نشانی + /// + public string Address { get; set; } +} \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/PersonalContractingParty/EditLegalContractingParty.cs b/CompanyManagment.App.Contracts/PersonalContractingParty/EditLegalContractingParty.cs new file mode 100644 index 00000000..a55c28da --- /dev/null +++ b/CompanyManagment.App.Contracts/PersonalContractingParty/EditLegalContractingParty.cs @@ -0,0 +1,12 @@ +namespace CompanyManagment.App.Contracts.PersonalContractingParty; + +/// +/// ویرایش طرف حساب حقوقی +/// +public class EditLegalContractingParty:CreateLegalContractingParty +{ + /// + /// آیدی طرف حساب + /// + public long Id { get; set; } +} \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/PersonalContractingParty/EditRealContractingParty.cs b/CompanyManagment.App.Contracts/PersonalContractingParty/EditRealContractingParty.cs new file mode 100644 index 00000000..04150cc5 --- /dev/null +++ b/CompanyManagment.App.Contracts/PersonalContractingParty/EditRealContractingParty.cs @@ -0,0 +1,13 @@ +namespace CompanyManagment.App.Contracts.PersonalContractingParty; + +/// +/// ویرایش طرف حساب حقیقی +/// +public class EditRealContractingParty:CreateRealContractingParty +{ + /// + /// آیدی طرف حساب + /// + public long Id { get; set; } + +} \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/PersonalContractingParty/GetContractingPartyNationalCodeOrNationalIdViewModel.cs b/CompanyManagment.App.Contracts/PersonalContractingParty/GetContractingPartyNationalCodeOrNationalIdViewModel.cs new file mode 100644 index 00000000..5258c58a --- /dev/null +++ b/CompanyManagment.App.Contracts/PersonalContractingParty/GetContractingPartyNationalCodeOrNationalIdViewModel.cs @@ -0,0 +1,12 @@ +namespace CompanyManagment.App.Contracts.PersonalContractingParty; + +/// +/// شماره ملی یا شناسه ملی بر اساس حقیقی یا حقوقی بودن +/// +public class GetContractingPartyNationalCodeOrNationalIdViewModel +{ + /// + /// شماره ملی یا شناسه ملی + /// + public string NationalCodeOrNationalId { get; set; } +} \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/PersonalContractingParty/GetLegalContractingPartyDetailsViewModel.cs b/CompanyManagment.App.Contracts/PersonalContractingParty/GetLegalContractingPartyDetailsViewModel.cs new file mode 100644 index 00000000..787ffec5 --- /dev/null +++ b/CompanyManagment.App.Contracts/PersonalContractingParty/GetLegalContractingPartyDetailsViewModel.cs @@ -0,0 +1,83 @@ +namespace CompanyManagment.App.Contracts.PersonalContractingParty; + +/// +/// ویو مدل جزئیات طرف حساب حقوقی +/// +public class GetLegalContractingPartyDetailsViewModel +{ + /// + /// آیدی طرف حساب + /// + public long Id { get; set; } + + /// + /// نام کامل شرکت(به همراه نام مستعار)ء + /// + public string CompanyFullName { get; set; } + + /// + /// نام شرکت (بدون نام مستعار)ء + /// + public string CompanyName { get; set; } + + /// + /// نام مستعار + /// + public string SureName { get; set; } + + /// + /// شماره ثبت + /// + public string RegisterId { get; set; } + + /// + /// شماره ملی + /// + public string NationalId { get; set; } + + /// + /// شماره تماس + /// + public string PhoneNumber { get; set; } + + /// + /// شماره تماس نماینده + /// + public string AgentPhone { get; set; } + + /// + /// آدرس + /// + public string Address { get; set; } + + /// + /// معرف + /// + public string RepresentativeName { get; set; } + + /// + /// آیدی معرف + /// + public long RepresentativeId { get; set; } + + /// + /// کد طرف حساب + /// + public int ArchiveCode { get; set; } + + /// + /// استان + /// + public string State { get; set; } + + /// + /// شهر + /// + public string City { get; set; } + + /// + /// محله + /// + public string Zone { get; set; } + +} \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/PersonalContractingParty/GetRealContractingPartyDetailsViewModel.cs b/CompanyManagment.App.Contracts/PersonalContractingParty/GetRealContractingPartyDetailsViewModel.cs new file mode 100644 index 00000000..165871a6 --- /dev/null +++ b/CompanyManagment.App.Contracts/PersonalContractingParty/GetRealContractingPartyDetailsViewModel.cs @@ -0,0 +1,94 @@ +using System.Runtime.CompilerServices; +using Microsoft.AspNetCore.Builder; + +namespace CompanyManagment.App.Contracts.PersonalContractingParty; + +/// +/// ویو مدل جزئیات طرف حساب حقیقی +/// +public class GetRealContractingPartyDetailsViewModel +{ + /// + /// آیدی طرف حساب + /// + public long Id { get; set; } + + /// + /// نام + /// + public string FName { get; set; } + + /// + /// نام خانوادگی + /// + public string LName { get; set; } + + /// + /// نام و نام خانوادگی + /// + public string FullName { get; set; } + + /// + /// کد ملی + /// + public string NationalCode { get; set; } + + /// + /// شماره شناسنامه + /// + public string IdNumber { get; set; } + + /// + /// شماره تلفن + /// + public string PhoneNumber { get; set; } + + /// + /// شماره تلفن نماینده + /// + public string AgentPhone { get; set; } + + /// + /// آدرس + /// + public string Address { get; set; } + + + /// + /// نام معرف + /// + public string RepresentativeName { get; set; } + + /// + /// آیدی معرف + /// + public long RepresentativeId { get; set; } + + /// + /// نام مستعار + /// + public string SureName { get; set; } + + /// + /// کد طرف حساب + /// + public int ArchiveCode { get; set; } + + + /// + /// استان + /// + public string State { get; set; } + + /// + /// شهر + /// + public string City { get; set; } + + /// + /// محله + /// + public string Zone { get; set; } + + +} \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/PersonalContractingParty/IPersonalContractingPartyApp.cs b/CompanyManagment.App.Contracts/PersonalContractingParty/IPersonalContractingPartyApp.cs index b3303f0a..cfa0bc11 100644 --- a/CompanyManagment.App.Contracts/PersonalContractingParty/IPersonalContractingPartyApp.cs +++ b/CompanyManagment.App.Contracts/PersonalContractingParty/IPersonalContractingPartyApp.cs @@ -1,5 +1,6 @@ using _0_Framework.Application; using System.Collections.Generic; +using System.Threading.Tasks; namespace CompanyManagment.App.Contracts.PersonalContractingParty; @@ -54,4 +55,79 @@ public interface IPersonalContractingPartyApp #endregion + + #region Api + /// + /// لیست طرف حساب ها + /// + /// + /// + Task> GetList(ContractingPartyGetListSearchModel searchModel); + + /// + /// لیست طرف حساب برای سلکت لیست سرچ + /// + /// + Task> GetSelectList(); + + /// + /// ایجاد طرف حساب حقیقی + /// + /// + /// + Task CreateReal(CreateRealContractingParty command); + + /// + /// ایجاد ظرف حساب حقوقی + /// + /// + /// + Task CreateLegal(CreateLegalContractingParty command); + + + /// + /// لیستی از شماره ملی یا شناسه ملی بر اساس حقیقی یا حقوقی بودن + /// + /// + Task> GetNationalCodeOrNationalId(); + + + /// + /// حذف طرف حساب. در صورتی که طرف حساب دارای قرارداد مالی یا دارای کارفرما باشد غیرفعال میشود + /// + /// + /// + Task> Delete(long id); + + /// + /// ویرایش طرف حساب حقیقی + /// + /// + /// + OperationResult EditRealApi(EditRealContractingParty command); + + + /// + /// ویرایش طرف حساب حقوقی + /// + /// + /// + OperationResult EditLegal(EditLegalContractingParty command); + + /// + /// گرفتن جزئیات طرف حساب حقوقی + /// + /// + /// + Task GetRealDetails(long id); + + /// + /// گرفتن جزئیات طرف حساب حقوقی + /// + /// + /// + Task GetLegalDetails(long id); + + #endregion + } \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/PersonalContractingParty/PersonalContractingPartyViewModel.cs b/CompanyManagment.App.Contracts/PersonalContractingParty/PersonalContractingPartyViewModel.cs index c2e955b2..44cc96b2 100644 --- a/CompanyManagment.App.Contracts/PersonalContractingParty/PersonalContractingPartyViewModel.cs +++ b/CompanyManagment.App.Contracts/PersonalContractingParty/PersonalContractingPartyViewModel.cs @@ -47,4 +47,6 @@ public class PersonalContractingPartyViewModel public bool IsAuthenticated { get; set; } public List EmployerList { get; set; } + + } \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/Representative/CreateLegalRepresentative.cs b/CompanyManagment.App.Contracts/Representative/CreateLegalRepresentative.cs new file mode 100644 index 00000000..05bdfd2a --- /dev/null +++ b/CompanyManagment.App.Contracts/Representative/CreateLegalRepresentative.cs @@ -0,0 +1,46 @@ +using System.ComponentModel.DataAnnotations; + +namespace CompanyManagment.App.Contracts.Representative; + +public class CreateLegalRepresentative +{ + + /// + /// نام حقوقی + /// + [Required(ErrorMessage = "این مقدار نمی تواند خالی باشد")] + public string LegalName { get; set; } + + + /// + /// شناسه ثبت + /// + [RegularExpression("^[0-9]*$", ErrorMessage = "لطفا فقط عدد وارد کنید")] + public string RegisterId { get; set; } + + + /// + /// شناسه ملی + /// + [RegularExpression("[0-9]{11}", ErrorMessage = "لطفا فقط عدد 11 رقمی وارد کنید")] + public string NationalId { get; set; } + + + /// + /// شماره تلفن + /// + [DataType(DataType.PhoneNumber)] + [RegularExpression(@"^\(?([0-9]{4})\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$", ErrorMessage = "لطفا شماره تلفن معتبر وارد کنید")] + public string Phone { get; set; } + + /// + /// شماره تلفن نماینده + /// + [RegularExpression("^[0-9]*$", ErrorMessage = "لطفا فقط عدد وارد کنید")] + public string AgentPhone { get; set; } + + /// + /// آدرس + /// + public string Address { get; set; } +} \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/Representative/CreateRealRepresentative.cs b/CompanyManagment.App.Contracts/Representative/CreateRealRepresentative.cs new file mode 100644 index 00000000..35967dab --- /dev/null +++ b/CompanyManagment.App.Contracts/Representative/CreateRealRepresentative.cs @@ -0,0 +1,54 @@ +using System.ComponentModel.DataAnnotations; + +namespace CompanyManagment.App.Contracts.Representative; + +public class CreateRealRepresentative +{ + + + /// + /// نام کوچک + /// + [Required(ErrorMessage = "این مقدار نمی تواند خالی باشد")] + public string FName { get; set; } + + /// + /// نام خانوادگی + /// + [Required(ErrorMessage = "این مقدار نمی تواند خالی باشد")] + public string LName { get; set; } + + + /// + /// کد ملی + /// + [RegularExpression("^[0-9]*$", ErrorMessage = "لطفا فقط عدد وارد کنید")] + public string Nationalcode { get; set; } + + + /// + /// شماره شناسنامه + /// + [MaxLength(12)] + [MinLength(1)] + [RegularExpression("^[0-9]*$", ErrorMessage = "لطفا فقط عدد وارد کنید")] + public string IdNumber { get; set; } + + + /// + /// شماره تلفن + /// + [DataType(DataType.PhoneNumber)] + [RegularExpression(@"^\(?([0-9]{4})\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$", ErrorMessage = "لطفا شماره تلفن معتبر وارد کنید")] + public string Phone { get; set; } + + + [RegularExpression("^[0-9]*$", ErrorMessage = "لطفا فقط عدد وارد کنید")] + public string AgentPhone { get; set; } + + /// + /// آدرس + /// + public string Address { get; set; } + +} \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/Representative/EditLegalRepresentative.cs b/CompanyManagment.App.Contracts/Representative/EditLegalRepresentative.cs new file mode 100644 index 00000000..36e9198f --- /dev/null +++ b/CompanyManagment.App.Contracts/Representative/EditLegalRepresentative.cs @@ -0,0 +1,6 @@ +namespace CompanyManagment.App.Contracts.Representative; + +public class EditLegalRepresentative : CreateLegalRepresentative +{ + public long Id { get; set; } +} \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/Representative/EditRealRepresentative.cs b/CompanyManagment.App.Contracts/Representative/EditRealRepresentative.cs new file mode 100644 index 00000000..0ee00e20 --- /dev/null +++ b/CompanyManagment.App.Contracts/Representative/EditRealRepresentative.cs @@ -0,0 +1,6 @@ +namespace CompanyManagment.App.Contracts.Representative; + +public class EditRealRepresentative : CreateRealRepresentative +{ + public long Id { get; set; } +} \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/Representative/GetSelectListRepresentativeViewModel.cs b/CompanyManagment.App.Contracts/Representative/GetSelectListRepresentativeViewModel.cs new file mode 100644 index 00000000..5129d8d0 --- /dev/null +++ b/CompanyManagment.App.Contracts/Representative/GetSelectListRepresentativeViewModel.cs @@ -0,0 +1,17 @@ +namespace CompanyManagment.App.Contracts.Representative; + +/// +/// ویو مدل سلکت لیست برای معرف +/// +public class GetSelectListRepresentativeViewModel +{ + /// + /// آیدی + /// + public long Id { get; set; } + + /// + /// نام معرف + /// + public string Name { get; set; } +} \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/Representative/IRepresentativeApplication.cs b/CompanyManagment.App.Contracts/Representative/IRepresentativeApplication.cs index 7c751c5d..ece54ff7 100644 --- a/CompanyManagment.App.Contracts/Representative/IRepresentativeApplication.cs +++ b/CompanyManagment.App.Contracts/Representative/IRepresentativeApplication.cs @@ -24,8 +24,27 @@ public interface IRepresentativeApplication OperationResult DeleteRepresentative(long id); OperationResult Active(long id); OperationResult DeActive(long id); - #endregion + #endregion + #region Api + + Task> GetList(RepresentativeGetListSearchModel searchModel); + + bool HasAnyContractingParty(long id); + + + OperationResult CreateReal(CreateRealRepresentative command); + OperationResult CreateLegal(CreateLegalRepresentative command); + OperationResult EditReal(EditRealRepresentative command); + OperationResult EditLegal(EditLegalRepresentative command); + + /// + /// لیست نام های معرف برای سلکت لیست + /// + /// + Task> GetSelectList(); + + #endregion } \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/Representative/RepresentativeGetListSearchModel.cs b/CompanyManagment.App.Contracts/Representative/RepresentativeGetListSearchModel.cs new file mode 100644 index 00000000..f3ce1dba --- /dev/null +++ b/CompanyManagment.App.Contracts/Representative/RepresentativeGetListSearchModel.cs @@ -0,0 +1,41 @@ +using _0_Framework.Application.Enums; + +namespace CompanyManagment.App.Contracts.Representative; + +public class RepresentativeGetListSearchModel +{ + + public int PageIndex { get; set; } + + /// + /// نام شرکت یا نام و نام خانوادگی + /// + public string CompanyNameOrFullName { get; set; } + + /// + /// شناسه ملی یا کدملی + /// + public string NationalCodeOrNationalId { get; set; } + + /// + /// شماره شناسنامه + /// + public string IdNumber { get; set; } + + /// + /// آیدی طرف حساب + /// + public long ContractingPartyId { get; set; } + + /// + /// نوع معرف + /// + public LegalType RepresentativeType { get; set; } + + + /// + /// وضعیت معرف + /// + public ActivationStatus RepresentativeStatus { get; set; } + +} \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/Representative/RepresentativeGetListViewModel.cs b/CompanyManagment.App.Contracts/Representative/RepresentativeGetListViewModel.cs new file mode 100644 index 00000000..2fed51e0 --- /dev/null +++ b/CompanyManagment.App.Contracts/Representative/RepresentativeGetListViewModel.cs @@ -0,0 +1,29 @@ +using _0_Framework.Application.Enums; + +namespace CompanyManagment.App.Contracts.Representative; + +public class RepresentativeGetListViewModel +{ + /// + /// آیدی معرف + /// + public long Id { get; set; } + + /// + /// نام حقیقی یا نام حقوقی + /// + public string RealNameOrLegalName { get; set; } + + /// + /// کدملی یا شناسه ملی + /// + public string NationalIdOrNationalCode { get; set; } + + /// + /// آیا این معرف طرف حسابی دارد؟ + /// + public bool HasAnyContractingParty { get; set; } + + public ActivationStatus RepresentativeStatus { get; set; } + public LegalType RepresentativeType { get; set; } +} \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/TemporaryClientRegistration/ITemporaryClientRegistrationApplication.cs b/CompanyManagment.App.Contracts/TemporaryClientRegistration/ITemporaryClientRegistrationApplication.cs index 17ed2570..6de66312 100644 --- a/CompanyManagment.App.Contracts/TemporaryClientRegistration/ITemporaryClientRegistrationApplication.cs +++ b/CompanyManagment.App.Contracts/TemporaryClientRegistration/ITemporaryClientRegistrationApplication.cs @@ -1,4 +1,5 @@ -using System.Collections.Generic; +using System; +using System.Collections.Generic; using System.Threading.Tasks; using _0_Framework.Application; using CompanyManagment.App.Contracts.InstitutionPlan; @@ -38,7 +39,7 @@ public interface ITemporaryClientRegistrationApplication /// /// /// - Task CreateOrUpdateWorkshopTemp(List command); + Task CreateOrUpdateWorkshopTemp(List command, long contractingPartyTempId); /// /// دریافت جمع کل خدمات برای یک کارگاه @@ -55,14 +56,14 @@ public interface ITemporaryClientRegistrationApplication /// /// Task GetTotalPaymentAndWorkshopList(long contractingPartyTempId, - string periodModel = "12", string paymentModel = "OneTime"); + string periodModel = "12", string paymentModel = "OneTime", string contractStartType = "currentMonth"); /// /// ایجاد یا ویرایش قرارداد موقت /// /// /// - Task CreateOrUpdateInstitutionContractTemp(long contractingPartyTempId, string periodModel, string paymentModel, double totalPayment, double valueAddedTax); + Task CreateOrUpdateInstitutionContractTemp(long contractingPartyTempId, string periodModel, string paymentModel, double totalPayment, double valueAddedTax, DateTime contractStart); /// /// دریافت کد برای کلاینت @@ -92,4 +93,11 @@ public interface ITemporaryClientRegistrationApplication /// /// Task PayOffCompleted(long contractingPartyTempId); + + /// + /// دریافت لیست طرف حساب هایی که ثبت نام آنها تکمیل شده + /// جهت نمایش در کارپوشه + /// + /// + Task> RegistrationWorkflowMainList(); } \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/TemporaryClientRegistration/MonthlyInstallment.cs b/CompanyManagment.App.Contracts/TemporaryClientRegistration/MonthlyInstallment.cs new file mode 100644 index 00000000..efa53d67 --- /dev/null +++ b/CompanyManagment.App.Contracts/TemporaryClientRegistration/MonthlyInstallment.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CompanyManagment.App.Contracts.TemporaryClientRegistration; + +public class MonthlyInstallment +{ + /// + /// مبلغ قسط ماهانه + /// + public string InstallmentAmountStr { get; set; } + + /// + /// تاریخ قسط ماهانه + /// + public string InstalmentDate { get; set; } + + /// + /// شمارنده قسط + /// + public string InstallmentCounter{ get; set; } +} \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/TemporaryClientRegistration/RegistrationWorkflowMainList.cs b/CompanyManagment.App.Contracts/TemporaryClientRegistration/RegistrationWorkflowMainList.cs new file mode 100644 index 00000000..773a3130 --- /dev/null +++ b/CompanyManagment.App.Contracts/TemporaryClientRegistration/RegistrationWorkflowMainList.cs @@ -0,0 +1,21 @@ +namespace CompanyManagment.App.Contracts.TemporaryClientRegistration; + +public class RegistrationWorkflowMainList +{ + /// + /// آی دی طرف حساب ثبت شده موقت + /// + public long ContractingPartyTempId { get; set; } + + + /// + /// نام کامل طرف حساب + /// + public string ContractingPartyFullName { get; set; } + + /// + /// شماره همراه + /// + public string Phone { get; set; } + +} \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/TemporaryClientRegistration/ReviewAndPaymentViewModel.cs b/CompanyManagment.App.Contracts/TemporaryClientRegistration/ReviewAndPaymentViewModel.cs index bc2478b3..10912190 100644 --- a/CompanyManagment.App.Contracts/TemporaryClientRegistration/ReviewAndPaymentViewModel.cs +++ b/CompanyManagment.App.Contracts/TemporaryClientRegistration/ReviewAndPaymentViewModel.cs @@ -1,4 +1,5 @@ -using System.Collections.Generic; +using System; +using System.Collections.Generic; namespace CompanyManagment.App.Contracts.TemporaryClientRegistration; @@ -23,28 +24,54 @@ public class ReviewAndPaymentViewModel /// مبلغ پرداخت بدون مالیات /// Double /// - public double WithoutTaxPaymentDouble { get; set; } + public double OneTimeWithoutTaxPaymentDouble { get; set; } /// /// مبلغ پرداخت بدون مالیات /// string /// - public string WithoutTaxPaymentStr { get; set; } + public string OneTimeWithoutTaxPaymentStr { get; set; } /// /// مبلغ پرداخت کامل /// Double /// - public double TotalPaymentDouble { get; set; } + public double OneTimeTotalPaymentDouble { get; set; } /// /// مبلغ پرداخت کامل /// string /// - public string TotalPaymentStr { get; set; } + public string OneTimeTotalPaymentStr { get; set; } + + /// + /// مبلغ پرداخت بدون مالیات + /// Double + /// + public double MonthlyWithoutTaxPaymentDouble { get; set; } + + /// + /// مبلغ پرداخت بدون مالیات + /// string + /// + public string MonthlyWithoutTaxPaymentStr { get; set; } + + + /// + /// مبلغ پرداخت کامل + /// Double + /// + public double MonthlyTotalPaymentDouble { get; set; } + + /// + /// مبلغ پرداخت کامل + /// string + /// + public string MonthlyTotalPaymentStr { get; set; } + /// /// مالیات بر ارزش افزوده /// Double @@ -83,4 +110,52 @@ public class ReviewAndPaymentViewModel /// آی دی طرف حساب /// public long ContractingPartTempId { get; set; } + + /// + /// لیست اقساط ماهیانه + /// + public List MonthlyInstallments { get; set; } + + + /// + /// تاریخ شروع قرارداد در اول ماه جاری + /// - + /// شمسی + /// + public string ContractStartCurrentMonthFa { get; set; } + + /// + /// تاریخ شروع قرارداد در اول ماه جاری + /// - + /// میلادی + /// + public DateTime ContractStartCurrentMonthGr { get; set; } + + /// + /// تاریخ شروع قرارداد در اول ماه بعد + /// - + /// شمسی + /// + public string ContractStartNextMonthFa{ get; set; } + + /// + /// تاریخ شروع قرارداد در اول ماه بعد + /// - + /// میلادی + /// + public DateTime ContractStartNextMonthGr { get; set; } + + /// + /// تاریخ پایان قرارداد + /// - + /// میلادی + /// + public DateTime ContractEndGr { get; set; } + + /// + /// تاریخ پایان قرارداد + /// - + /// شمسی + /// + public string ContractEndFa { get; set; } } \ No newline at end of file diff --git a/CompanyManagment.Application/ContactUsApplication.cs b/CompanyManagment.Application/ContactUsApplication.cs new file mode 100644 index 00000000..d1912132 --- /dev/null +++ b/CompanyManagment.Application/ContactUsApplication.cs @@ -0,0 +1,70 @@ +using System.Text.RegularExpressions; +using _0_Framework.Application; +using Company.Domain.ContactUsAgg; +using CompanyManagment.App.Contracts.ContactUs; + +namespace CompanyManagment.Application; + +public class ContactUsApplication : IContactUsApplication +{ + private readonly IContactUsRepository _contactUsRepository; + + public ContactUsApplication(IContactUsRepository contactUsRepository) + { + _contactUsRepository = contactUsRepository; + } + + public OperationResult Create(CreateContactUs command) + { + var op = new OperationResult(); + if (string.IsNullOrWhiteSpace(command.FirstName)) + { + return op.Failed("لطفا نام خود را وارد کنید"); + } + + if (string.IsNullOrWhiteSpace(command.LastName)) + { + return op.Failed("لطفا نام خانوادگی خود را وارد کنید"); + } + + if (string.IsNullOrWhiteSpace(command.Email)) + { + return op.Failed("لطفا ایمیل خود را وارد کنید"); + } + + if (string.IsNullOrWhiteSpace(command.PhoneNumber)) + { + return op.Failed("لطفا شماره تماس خود را وارد کنید"); + } + + if (!Regex.IsMatch(command.PhoneNumber, @"^(\+98|0)?9\d{9}$")) + { + return op.Failed("شماره تماس وارد شده نامعتبر است"); + } + + if (!Regex.IsMatch(command.Email, @"^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$")) + { + return op.Failed("ایمیل وارد شده نامعتبر است"); + } + + if (string.IsNullOrWhiteSpace(command.Title)) + { + return op.Failed("لطفا عنوان پیغام خود را وارد کنید"); + } + + if (string.IsNullOrWhiteSpace(command.Message)) + { + return op.Failed("لطفا پیغام خود را وارد کنید"); + } + + var entity = new ContactUs(command.FirstName, command.LastName, command.Email, command.PhoneNumber, + command.Title, command.Message); + + _contactUsRepository.Create(entity); + + _contactUsRepository.SaveChanges(); + + return op.Succcedded(); + + } +} \ No newline at end of file diff --git a/CompanyManagment.Application/EmployeeAplication.cs b/CompanyManagment.Application/EmployeeAplication.cs index 5842c8eb..acf86fe6 100644 --- a/CompanyManagment.Application/EmployeeAplication.cs +++ b/CompanyManagment.Application/EmployeeAplication.cs @@ -1660,5 +1660,19 @@ public class EmployeeAplication : RepositoryBase, IEmployeeAppli } - #endregion + #endregion + + #region Api + + public async Task> GetSelectList(string searchText) + { + return await _EmployeeRepository.GetSelectList(searchText); + } + + public async Task> GetList(GetEmployeeListSearchModel searchModel) + { + return await _EmployeeRepository.GetList(searchModel); + } + + #endregion } \ No newline at end of file diff --git a/CompanyManagment.Application/EmployerApplication.cs b/CompanyManagment.Application/EmployerApplication.cs index 3c6eb318..6b937dcd 100644 --- a/CompanyManagment.Application/EmployerApplication.cs +++ b/CompanyManagment.Application/EmployerApplication.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using _0_Framework.Application; +using _0_Framework.Exceptions; using Company.Domain.empolyerAgg; using Company.Domain.WorkshopAgg; using CompanyManagment.App.Contracts.Checkout; @@ -239,7 +240,7 @@ public class EmployerApplication : IEmployerApplication return opration.Succcedded(); } - public OperationResult Remove(long id) + public OperationResult Remove_Old(long id) { var opration = new OperationResult(); @@ -894,10 +895,10 @@ public class EmployerApplication : IEmployerApplication return _EmployerRepository.GetEmployersHasWorkshop(); } - public async Task> GetSelectList(string search) - { - return await _EmployerRepository.GetSelectList(search); - } + //public async Task> GetSelectList(string search) + //{ + // return await _EmployerRepository.GetSelectList(search); + //} #endregion #region NewByHeydari @@ -957,4 +958,255 @@ public class EmployerApplication : IEmployerApplication } #endregion + + #region Api + public async Task> GetEmployerList(GetEmployerSearchModel searchModel) + { + return await _EmployerRepository.GetEmployerList(searchModel); + } + public async Task GetLegalEmployerDetail(long id) + { + var employer = await _EmployerRepository.GetLegalEmployerDetail(id); + if (employer == null) + { + throw new NotFoundException("کارفرمای مورد نطر یافت نشد"); + } + return employer; + } + + public async Task GetRealEmployerDetail(long id) + { + var employer = await _EmployerRepository.GetRealEmployerDetail(id); + if (employer == null) + { + throw new NotFoundException("کارفرمای مورد نطر یافت نشد"); + } + return employer; + } + + public async Task CreateReal(CreateRealEmployer command) + { + var opration = new OperationResult(); + if (_EmployerRepository.Exists(x => + (x.FName == command.FName && x.LName == command.LName) && x.Nationalcode == command.NationalCode && x.Nationalcode != null)) + return opration.Failed("امکان ثبت رکورد تکراری وجود ندارد"); + + if (string.IsNullOrWhiteSpace(command.FName)) + return opration.Failed("لطفا نام را وارد کنید"); + + if (!string.IsNullOrWhiteSpace(command.NationalCode)) + { + if (command.NationalCode.NationalCodeValid() != "valid") + { + return opration.Failed("کدملی وارد شده نامعتبر است"); + } + if (_EmployerRepository.Exists(x => x.Nationalcode == command.NationalCode && !string.IsNullOrWhiteSpace(command.NationalCode))) + { + return opration.Failed("کد ملی وارد شده تکراری است"); + } + } + string initial = "1300/10/11"; + var dateOfBirth = command.DateOfBirth?.ToGeorgianDateTime() ?? initial.ToGeorgianDateTime(); + var dateOfIssue = command.DateOfIssue?.ToGeorgianDateTime() ?? initial.ToGeorgianDateTime(); + + var gender = command.Gender switch + { + Gender.Male => "مرد", + Gender.Female => "زن", + Gender.None => null, + _ => throw new BadRequestException("جنسیت وارد شده نامعتبر است") + }; + + var employerData = new Employer(command.FName, command.LName, command.ContractingPartyId, gender, + command.NationalCode, command.IdNumber, "ایرانی", command.FatherName, dateOfBirth, + dateOfIssue, command.PlaceOfIssue, "*", "*", "*", "حقیقی", command.PhoneNumber, + command.Telephone, "true", command.GovernmentSystemInfo.MclUsername, command.GovernmentSystemInfo.MclPassword, command.GovernmentSystemInfo.EServiceUsername, command.GovernmentSystemInfo.EServicePassword, + command.GovernmentSystemInfo.TaxUsername, command.GovernmentSystemInfo.TaxPassword, command.GovernmentSystemInfo.SanaUsername, command.GovernmentSystemInfo.SanaPassword); + + await _EmployerRepository.CreateAsync(employerData); + await _EmployerRepository.SaveChangesAsync(); + + return opration.Succcedded(); + } + + public async Task CreateLegal(CreateLegalEmployer command) + { + if (string.IsNullOrWhiteSpace(command.EmployerLName)) + command.EmployerLName = "#"; + var opration = new OperationResult(); + if (_EmployerRepository.Exists(x => + x.LName == command.CompanyName && x.NationalId == command.NationalId && x.EmployerLName == command.EmployerLName)) + return opration.Failed("امکان ثبت رکورد تکراری وجود ندارد"); + + if (_EmployerRepository.Exists(x => x.NationalId == command.NationalId && !string.IsNullOrWhiteSpace(command.NationalId) && x.NationalId != null)) + { + return opration.Failed(" شناسه ملی وارد شده تکراری است"); + } + if (_EmployerRepository.Exists(x => x.LName == command.CompanyName)) + { + return opration.Failed("نام شرکت وارد شده تکراری است"); + } + if (_EmployerRepository.Exists(x => x.RegisterId == command.RegisterId && !string.IsNullOrWhiteSpace(command.RegisterId) && x.RegisterId != null)) + { + return opration.Failed(" شماره ثبت وارد شده تکراری است"); + } + + if (!string.IsNullOrEmpty(command.NationalId) && command.NationalId.Length != 11) + { + return opration.Failed(" شناسه ملی باید 11 رقم باشد"); + } + + if (!string.IsNullOrWhiteSpace(command.EmployerNationalCode)) + { + if (command.EmployerNationalCode.NationalCodeValid() != "valid") + { + return opration.Failed("کد ملی وارد شده نا معتبر است"); + } + } + + string initial = "1300/10/11"; + var dateOfBirth = command.EmployerDateOfBirth?.ToGeorgianDateTime() ?? initial.ToGeorgianDateTime(); + var dateOfIssue = command.EmployerDateOfIssue?.ToGeorgianDateTime() ?? initial.ToGeorgianDateTime(); + + var gender = command.EmployerGender switch + { + Gender.Male => "مرد", + Gender.Female => "زن", + Gender.None => null, + _ => throw new BadRequestException("جنسیت وارد شده نامعتبر است") + }; + + + var legalEmployerData = new Employer(command.EmployerFName, command.CompanyName, command.ContractingPartyId, gender, + command.EmployerNationalCode, command.EmployerIdNumber, "ایرانی", command.EmployerFatherName, dateOfBirth, + dateOfIssue, command.EmployerPlaceOfIssue, command.RegisterId, command.NationalId, command.EmployerLName, "حقوقی", command.PhoneNumber, + command.TelephoneNumber, "true", command.GovernmentSystemInfo.MclUsername, command.GovernmentSystemInfo.MclPassword, + command.GovernmentSystemInfo.EServiceUsername, command.GovernmentSystemInfo.EServicePassword, + command.GovernmentSystemInfo.TaxUsername, command.GovernmentSystemInfo.TaxPassword, command.GovernmentSystemInfo.SanaUsername, command.GovernmentSystemInfo.SanaPassword); + + await _EmployerRepository.CreateAsync(legalEmployerData); + await _EmployerRepository.SaveChangesAsync(); + + return opration.Succcedded(); + } + + public async Task EditReal(EditRealEmployer command) + { + var opration = new OperationResult(); + var employer = _EmployerRepository.Get(command.Id); + if (employer == null) + return opration.Failed("رکورد مورد نظر یافت نشد"); + + if (_EmployerRepository.Exists(x => + (x.FName == command.FName && x.LName == command.LName) && x.Nationalcode == command.NationalCode && x.id != command.Id)) + return opration.Failed("امکان ثبت رکورد تکراری وجود ندارد"); + if (!string.IsNullOrWhiteSpace(command.NationalCode)) + { + if (command.NationalCode.NationalCodeValid() != "valid") + { + return opration.Failed("کد ملی وارد شده نا معتبر است"); + } + } + + if (_EmployerRepository.Exists(x => x.Nationalcode == command.NationalCode && !string.IsNullOrWhiteSpace(command.NationalCode) && x.id != command.Id)) + { + + return opration.Failed(" کد ملی وارد شده تکراری است"); + } + + + + string initial = "1300/10/11"; + + var dateOfBirth = command.DateOfBirth?.ToGeorgianDateTime() ?? initial.ToGeorgianDateTime(); + var dateOfIssue = command.DateOfIssue?.ToGeorgianDateTime() ?? initial.ToGeorgianDateTime(); + + var gender = command.Gender switch + { + Gender.Male => "مرد", + Gender.Female => "زن", + Gender.None => null, + _ => throw new BadRequestException("جنسیت وارد شده نامعتبر است") + }; + + employer.Edit(command.FName, command.LName, command.ContractingPartyId, + gender, command.NationalCode, command.IdNumber, "ایرانی", command.FatherName, + dateOfBirth, dateOfIssue, command.PlaceOfIssue, command.PhoneNumber, command.Telephone, + command.GovernmentSystemInfo.MclUsername, command.GovernmentSystemInfo.MclPassword, command.GovernmentSystemInfo.EServiceUsername, command.GovernmentSystemInfo.EServicePassword, + command.GovernmentSystemInfo.TaxUsername, command.GovernmentSystemInfo.TaxPassword, command.GovernmentSystemInfo.SanaUsername, command.GovernmentSystemInfo.SanaPassword, null); + + await _EmployerRepository.SaveChangesAsync(); + return opration.Succcedded(); + } + + public async Task EditLegal(EditLegalEmployer command) + { + var opration = new OperationResult(); + var legalEmployer = _EmployerRepository.Get(command.Id); + if (legalEmployer == null) + return opration.Failed("رکورد مورد نظر یافت نشد"); + + if (_EmployerRepository.Exists(x => + x.LName == command.CompanyName && x.NationalId == command.NationalId && !string.IsNullOrWhiteSpace(command.NationalId) && x.id != command.Id)) + return opration.Failed("امکان ثبت رکورد تکراری وجود ندارد"); + + + if (!string.IsNullOrEmpty(command.NationalId) && command.NationalId.Length != 11) + { + return opration.Failed(" شناسه ملی باید 11 رقم باشد"); + } + + if (!string.IsNullOrWhiteSpace(command.EmployerNationalCode)) + { + if (command.EmployerNationalCode.NationalCodeValid() != "valid") + { + return opration.Failed("کد ملی وارد شده نا معتبر است"); + } + } + + var gender = command.EmployerGender switch + { + Gender.Male => "مرد", + Gender.Female => "زن", + Gender.None => null, + _ => throw new BadRequestException("جنسیت وارد شده نامعتبر است") + }; + + string initial = "1300/10/11"; + var dateOfBirth = command.EmployerDateOfBirth?.ToGeorgianDateTime() ?? initial.ToGeorgianDateTime(); + var dateOfIssue = command.EmployerDateOfIssue?.ToGeorgianDateTime() ?? initial.ToGeorgianDateTime(); + legalEmployer.EditLegal(command.EmployerFName, command.CompanyName, command.ContractingPartyId, gender, + command.EmployerNationalCode, command.EmployerIdNumber, "ایرانی", command.EmployerFatherName, dateOfBirth, + dateOfIssue, command.EmployerPlaceOfIssue, command.RegisterId, command.NationalId, command.EmployerLName, + command.PhoneNumber, command.TelephoneNumber, command.GovernmentSystemInfo.MclUsername, command.GovernmentSystemInfo.MclUsername, command.GovernmentSystemInfo.EServiceUsername, command.GovernmentSystemInfo.EServicePassword, + command.GovernmentSystemInfo.TaxUsername, command.GovernmentSystemInfo.TaxPassword, command.GovernmentSystemInfo.SanaUsername, command.GovernmentSystemInfo.SanaPassword, null); + + await _EmployerRepository.SaveChangesAsync(); + return opration.Succcedded(); + } + + public async Task> GetSelectList(string search) + { + return await _EmployerRepository.GetSelectList(search); + } + + async Task> IEmployerApplication.Remove(long id) + { + var employer = _EmployerRepository.Get(id); + if (employer == null) + throw new NotFoundException("دیتای مورد نظر یافت نشد"); + + var workshops = _workshopRepository.GetWorkshopsByEmployerId([id]); + + if (workshops.Any()) + { + return await _EmployerRepository.DeactivateWithSubordinates(id); + } + + _EmployerRepository.Remove(id); + + return new OperationResult().Succcedded("Deleted"); + + } + #endregion } \ No newline at end of file diff --git a/CompanyManagment.Application/FinancialStatmentApplication.cs b/CompanyManagment.Application/FinancialStatmentApplication.cs index a4ee6c50..283c1091 100644 --- a/CompanyManagment.Application/FinancialStatmentApplication.cs +++ b/CompanyManagment.Application/FinancialStatmentApplication.cs @@ -1,4 +1,5 @@ using System.Collections.Generic; +using System.Threading.Tasks; using _0_Framework.Application; using Company.Domain.FinancialStatmentAgg; using CompanyManagment.App.Contracts.FinancialStatment; @@ -110,4 +111,10 @@ public class FinancialStatmentApplication : IFinancialStatmentApplication { return _financialStatmentRepository.GetDetailsByContractingPartyId(contractingPartyId); } + + public async Task GetClientFinancialStatement( + ClientFinancialStatementSearchModel searchModel, long accountId) + { + return await _financialStatmentRepository.GetClientFinancialStatement(accountId, searchModel); + } } \ No newline at end of file diff --git a/CompanyManagment.Application/PaymentTransactionApplication.cs b/CompanyManagment.Application/PaymentTransactionApplication.cs new file mode 100644 index 00000000..5bd3d695 --- /dev/null +++ b/CompanyManagment.Application/PaymentTransactionApplication.cs @@ -0,0 +1,57 @@ +using System.Collections.Generic; +using System.Net.Http; +using System.Reflection; +using System.Threading; +using System.Threading.Tasks; +using _0_Framework.Application; +using _0_Framework.Application.PaymentGateway; +using Company.Domain.PaymentTransactionAgg; +using CompanyManagment.App.Contracts.PaymentTransaction; + +namespace CompanyManagment.Application; + +public class PaymentTransactionApplication : IPaymentTransactionApplication +{ + private readonly IPaymentTransactionRepository _paymentTransactionRepository; + private readonly IPaymentGateway _paymentGateway; + + public PaymentTransactionApplication(IPaymentTransactionRepository paymentTransactionRepository,IHttpClientFactory httpClientFactory) + { + _paymentTransactionRepository = paymentTransactionRepository; + _paymentGateway = new AqayePardakhtPaymentGateway(httpClientFactory); + } + + public async Task> GetPaymentTransactionList( + GetPaymentTransactionListSearchModel searchModel) + { + return await _paymentTransactionRepository.GetPaymentTransactionList(searchModel); + } + + public async Task Create(CreatePaymentTransaction command) + { + var operationResult = new OperationResult(); + var entity = new PaymentTransaction( + command.ContractingPartyId, + command.BankAccountHolderName, + command.BankName, + command.CardNumber, + command.ShebaNumber, + command.AccountNumber, + command.Status, + command.Amount, + command.TransactionId, + command.ContractingPartyName); + + await _paymentTransactionRepository.CreateAsync(entity); + await _paymentTransactionRepository.SaveChangesAsync(); + return operationResult.Succcedded(); + } + + + + public async Task GetWalletAmount(CancellationToken cancellationToken) + { + var result = await _paymentGateway.GetWalletAmount(cancellationToken); + return result; + } +} \ No newline at end of file diff --git a/CompanyManagment.Application/PersonalContractingPartyApplication.cs b/CompanyManagment.Application/PersonalContractingPartyApplication.cs index df060edf..d44162ff 100644 --- a/CompanyManagment.Application/PersonalContractingPartyApplication.cs +++ b/CompanyManagment.Application/PersonalContractingPartyApplication.cs @@ -1,17 +1,19 @@ using System; using System.Collections.Generic; +using System.Threading.Tasks; using _0_Framework.Application; using CompanyManagment.App.Contracts.PersonalContractingParty; using Company.Domain.ContarctingPartyAgg; using Company.Domain.empolyerAgg; using CompanyManagment.App.Contracts.Representative; using Company.Domain.InstitutionContractAgg; +using CompanyManagment.EFCore.Repository; namespace CompanyManagment.Application; public class PersonalContractingPartyApplication : IPersonalContractingPartyApp { - private readonly IPersonalContractingPartyRepository _personalContractingPartyRepository2; + private readonly IPersonalContractingPartyRepository _personalContractingPartyRepository; private readonly IRepresentativeApplication _representativeApplication; private readonly IEmployerRepository _employerRepository; private readonly IInstitutionContractRepository _institutionContractRepository; @@ -26,7 +28,7 @@ public class PersonalContractingPartyApplication : IPersonalContractingPartyApp public PersonalContractingPartyApplication( IPersonalContractingPartyRepository personalContractingPartyRepository, IRepresentativeApplication representativeApplication, IEmployerRepository employerRepository, IInstitutionContractRepository institutionContractRepository) { - _personalContractingPartyRepository2 = personalContractingPartyRepository; + _personalContractingPartyRepository = personalContractingPartyRepository; _representativeApplication = representativeApplication; _employerRepository = employerRepository; _institutionContractRepository = institutionContractRepository; @@ -36,7 +38,7 @@ public class PersonalContractingPartyApplication : IPersonalContractingPartyApp public OperationResult Create(CreatePersonalContractingParty command) { var opration = new OperationResult(); - if (_personalContractingPartyRepository2.Exists(x => + if (_personalContractingPartyRepository.Exists(x => x.LName == command.LName && x.Nationalcode == command.Nationalcode && x.SureName == command.SureName )) return opration.Failed("امکان ثبت رکورد تکراری وجود ندارد"); if (command.RepresentativeId < 1) @@ -54,14 +56,14 @@ public class PersonalContractingPartyApplication : IPersonalContractingPartyApp // return opration.Failed("نام خانوادگی وارد شده تکراری است"); //} - if (_personalContractingPartyRepository2.Exists(x => x.Nationalcode == command.Nationalcode && x.LName != command.LName)) + if (_personalContractingPartyRepository.Exists(x => x.Nationalcode == command.Nationalcode && x.LName != command.LName)) { nationalcodeIsOk = false; return opration.Failed("کد ملی وارد شده تکراری است"); } - if (_personalContractingPartyRepository2.Exists(x => x.ArchiveCode == command.ArchiveCode)) + if (_personalContractingPartyRepository.Exists(x => x.ArchiveCode == command.ArchiveCode)) return opration.Failed("کد طرف حساب تکراری است"); try @@ -132,8 +134,8 @@ public class PersonalContractingPartyApplication : IPersonalContractingPartyApp command.State,command.City,command.Zone,command.SureName); - _personalContractingPartyRepository2.Create(personalContractingParty); - _personalContractingPartyRepository2.SaveChanges(); + _personalContractingPartyRepository.Create(personalContractingParty); + _personalContractingPartyRepository.SaveChanges(); return opration.Succcedded(); @@ -152,13 +154,13 @@ public class PersonalContractingPartyApplication : IPersonalContractingPartyApp public OperationResult Edit2(EditPersonalContractingParty command) { var opration = new OperationResult(); - var personalContractingParty = _personalContractingPartyRepository2.Get(command.Id); + var personalContractingParty = _personalContractingPartyRepository.Get(command.Id); if (personalContractingParty == null) return opration.Failed("رکورد مورد نظر یافت نشد"); personalContractingParty.Edit2(command.Address); - _personalContractingPartyRepository2.SaveChanges(); + _personalContractingPartyRepository.SaveChanges(); return opration.Succcedded(); } @@ -166,7 +168,7 @@ public class PersonalContractingPartyApplication : IPersonalContractingPartyApp { var opration = new OperationResult(); - if (_personalContractingPartyRepository2.Exists(x => + if (_personalContractingPartyRepository.Exists(x => x.LName == command.LName && x.RegisterId == command.RegisterId && x.SureName == command.SureName)) return opration.Failed("امکان ثبت رکورد تکراری وجود ندارد"); if (command.RepresentativeId < 1) @@ -174,23 +176,23 @@ public class PersonalContractingPartyApplication : IPersonalContractingPartyApp - if (_personalContractingPartyRepository2.Exists(x => x.LName == command.LName && x.SureName == command.SureName)) + if (_personalContractingPartyRepository.Exists(x => x.LName == command.LName && x.SureName == command.SureName)) { legalNameIsOk = false; return opration.Failed("نام شرکت وارد شده تکراری است"); } - if (_personalContractingPartyRepository2.Exists(x => x.RegisterId == command.RegisterId && x.LName != command.LName)) + if (_personalContractingPartyRepository.Exists(x => x.RegisterId == command.RegisterId && x.LName != command.LName)) { registerIdIsOk = false; return opration.Failed("شماره ثبت وارد شده تکراری است"); } - if (_personalContractingPartyRepository2.Exists(x => x.NationalId == command.NationalId && x.LName != command.LName)) + if (_personalContractingPartyRepository.Exists(x => x.NationalId == command.NationalId && x.LName != command.LName)) { nationalIdIsOk = false; return opration.Failed("شناسه ملی وارد شده تکراری است"); } - if (_personalContractingPartyRepository2.Exists(x => x.ArchiveCode == command.ArchiveCode)) + if (_personalContractingPartyRepository.Exists(x => x.ArchiveCode == command.ArchiveCode)) return opration.Failed("کد طرف حساب تکراری است"); @@ -204,8 +206,8 @@ public class PersonalContractingPartyApplication : IPersonalContractingPartyApp command.State, command.City, command.Zone,command.SureName); - _personalContractingPartyRepository2.Create(legalContractingParty); - _personalContractingPartyRepository2.SaveChanges(); + _personalContractingPartyRepository.Create(legalContractingParty); + _personalContractingPartyRepository.SaveChanges(); return opration.Succcedded(); @@ -223,15 +225,15 @@ public class PersonalContractingPartyApplication : IPersonalContractingPartyApp { var opration = new OperationResult(); - var personalContractingParty = _personalContractingPartyRepository2.Get(command.Id); + var personalContractingParty = _personalContractingPartyRepository.Get(command.Id); if (personalContractingParty == null) return opration.Failed("رکورد مورد نظر یافت نشد"); if (command.RepresentativeId < 1) return opration.Failed("لطفا معرف را انتخاب کنید"); - if (_personalContractingPartyRepository2.Exists(x => + if (_personalContractingPartyRepository.Exists(x => x.LName == command.LName && x.Nationalcode == command.Nationalcode && x.SureName == command.SureName && x.id != command.Id)) return opration.Failed("امکان ثبت رکورد تکراری وجود ندارد"); - if (_personalContractingPartyRepository2.Exists(x => x.ArchiveCode == command.ArchiveCode && x.id != command.Id)) + if (_personalContractingPartyRepository.Exists(x => x.ArchiveCode == command.ArchiveCode && x.id != command.Id)) return opration.Failed("کد طرف حساب تکراری است"); try { @@ -300,7 +302,7 @@ public class PersonalContractingPartyApplication : IPersonalContractingPartyApp command.Phone, command.AgentPhone, command.Address, command.RepresentativeId, representative.FullName, command.ArchiveCode, command.State, command.City, command.Zone,command.SureName); - _personalContractingPartyRepository2.SaveChanges(); + _personalContractingPartyRepository.SaveChanges(); return opration.Succcedded(); } else @@ -314,16 +316,16 @@ public class PersonalContractingPartyApplication : IPersonalContractingPartyApp { var opration = new OperationResult(); - var legalContractingParty = _personalContractingPartyRepository2.Get(command.Id); + var legalContractingParty = _personalContractingPartyRepository.Get(command.Id); if (legalContractingParty == null) return opration.Failed("رکورد مورد نظر یافت نشد"); - if (_personalContractingPartyRepository2.Exists(x => + if (_personalContractingPartyRepository.Exists(x => x.LName== command.LName && x.RegisterId == command.RegisterId &&x.SureName == command.SureName &&x.id != command.Id)) return opration.Failed("امکان ثبت رکورد تکراری وجود ندارد"); if (command.RepresentativeId < 1) return opration.Failed("لطفا معرف را انتخاب کنید"); - if (_personalContractingPartyRepository2.Exists(x => x.ArchiveCode == command.ArchiveCode && x.id != command.Id)) + if (_personalContractingPartyRepository.Exists(x => x.ArchiveCode == command.ArchiveCode && x.id != command.Id)) return opration.Failed("کد طرف حساب تکراری است"); var representative = _representativeApplication.GetDetails(command.RepresentativeId); legalContractingParty.EditLegal(command.LName, command.RegisterId, @@ -331,54 +333,54 @@ public class PersonalContractingPartyApplication : IPersonalContractingPartyApp command.Phone, command.AgentPhone, command.Address, command.RepresentativeId, representative.FullName,command.ArchiveCode, command.State, command.City, command.Zone, command.SureName); - _personalContractingPartyRepository2.SaveChanges(); + _personalContractingPartyRepository.SaveChanges(); return opration.Succcedded(); } public EditPersonalContractingParty GetDetails(long id) { - return _personalContractingPartyRepository2.GetDetails(id); + return _personalContractingPartyRepository.GetDetails(id); } public string IsBlockByEmployerId(long employerId) { - return _personalContractingPartyRepository2.IsBlockByEmployerId(employerId); + return _personalContractingPartyRepository.IsBlockByEmployerId(employerId); } public EditPersonalContractingParty GetDetailsToEdit(long id) { - return _personalContractingPartyRepository2.GetDetailsToEdit(id); + return _personalContractingPartyRepository.GetDetailsToEdit(id); } public string GetFullName(long id) { - return _personalContractingPartyRepository2.GetFullName(id); + return _personalContractingPartyRepository.GetFullName(id); } public List GetPersonalContractingParties() { - return _personalContractingPartyRepository2.GetPersonalContractingParties(); + return _personalContractingPartyRepository.GetPersonalContractingParties(); } public List Search(PersonalContractingPartySearchModel searchModel2) { - return _personalContractingPartyRepository2.Search(searchModel2); + return _personalContractingPartyRepository.Search(searchModel2); } public int GetLastArchiveCode() { - return _personalContractingPartyRepository2.GetLastArchiveCode(); + return _personalContractingPartyRepository.GetLastArchiveCode(); } #region Mahan public List SearchByName(string name) { - return _personalContractingPartyRepository2.SearchByName(name); + return _personalContractingPartyRepository.SearchByName(name); } #endregion public ContractingPartyAndStatmentIdViewModel GetContractingpartyIdByAccountId(long accountId) { - return _personalContractingPartyRepository2.GetContractingpartyIdByAccountId(accountId); + return _personalContractingPartyRepository.GetContractingpartyIdByAccountId(accountId); } @@ -386,15 +388,15 @@ public class PersonalContractingPartyApplication : IPersonalContractingPartyApp public List GetPersonalContractingPartiesForNationalcode(string searchText) { - return _personalContractingPartyRepository2.GetPersonalContractingPartiesForNationalcode(searchText); + return _personalContractingPartyRepository.GetPersonalContractingPartiesForNationalcode(searchText); } public List SearchForMain(PersonalContractingPartySearchModel searchModel2) { - var result= _personalContractingPartyRepository2.SearchForMain(searchModel2); + var result= _personalContractingPartyRepository.SearchForMain(searchModel2); foreach (var item in result) { - item.HasInstitutionContract = _personalContractingPartyRepository2.GetHasContract(item.id); + item.HasInstitutionContract = _personalContractingPartyRepository.GetHasContract(item.id); } return result; } @@ -411,12 +413,12 @@ public class PersonalContractingPartyApplication : IPersonalContractingPartyApp //اونهایی که کارفرما یا قرارداد غیر فعال دارند غیر فعال می شوند if (_employerRepository.Exists(x => x.ContractingPartyId == id)|| _institutionContractRepository.Exists(x => x.ContractingPartyId == id)) { - opration= _personalContractingPartyRepository2.DeActiveAll(id); + opration= _personalContractingPartyRepository.DeActiveAll(id); return opration; } else { - opration = _personalContractingPartyRepository2.DeletePersonalContractingParties(id); + opration = _personalContractingPartyRepository.DeletePersonalContractingParties(id); } return opration; @@ -428,10 +430,10 @@ public class PersonalContractingPartyApplication : IPersonalContractingPartyApp { var opration = new OperationResult(); - var contract = _personalContractingPartyRepository2.Get(id); + var contract = _personalContractingPartyRepository.Get(id); if (contract == null) return opration.Failed("رکورد مورد نظر یافت نشد"); - return _personalContractingPartyRepository2.ActiveAll(id); + return _personalContractingPartyRepository.ActiveAll(id); //var opration = new OperationResult(); @@ -446,44 +448,44 @@ public class PersonalContractingPartyApplication : IPersonalContractingPartyApp public OperationResult DeActive(long id) { var opration = new OperationResult(); - var personalContracting = _personalContractingPartyRepository2.Get(id); + var personalContracting = _personalContractingPartyRepository.Get(id); if (personalContracting == null) return opration.Failed("رکورد مورد نظر یافت نشد"); personalContracting.DeActive(); - _personalContractingPartyRepository2.SaveChanges(); + _personalContractingPartyRepository.SaveChanges(); return opration.Succcedded(); } public bool GetHasContract(long id) { - return _personalContractingPartyRepository2.GetHasContract(id); + return _personalContractingPartyRepository.GetHasContract(id); } public OperationResult Block(long id) { var opration = new OperationResult(); - var contract = _personalContractingPartyRepository2.Get(id); + var contract = _personalContractingPartyRepository.Get(id); if (contract == null) return opration.Failed("رکورد مورد نظر یافت نشد"); contract.Block(); - _personalContractingPartyRepository2.SaveChanges(); + _personalContractingPartyRepository.SaveChanges(); return opration.Succcedded(); } public OperationResult DisableBlock(long id) { var opration = new OperationResult(); - var personalContracting = _personalContractingPartyRepository2.Get(id); + var personalContracting = _personalContractingPartyRepository.Get(id); if (personalContracting == null) return opration.Failed("رکورد مورد نظر یافت نشد"); int blockTimes = personalContracting.BlockTimes + 1; personalContracting.DisableBlock(blockTimes); - _personalContractingPartyRepository2.SaveChanges(); + _personalContractingPartyRepository.SaveChanges(); @@ -499,7 +501,225 @@ public class PersonalContractingPartyApplication : IPersonalContractingPartyApp public bool IsBlockCheckByWorkshopId(long workshopId) { - return _personalContractingPartyRepository2.IsBlockCheckByWorkshopId(workshopId); + return _personalContractingPartyRepository.IsBlockCheckByWorkshopId(workshopId); + } + + + + #endregion + + + #region Api + + + public async Task> GetList( + ContractingPartyGetListSearchModel searchModel) + { + return await _personalContractingPartyRepository.GetList(searchModel); + } + + public async Task> GetSelectList() + { + return await _personalContractingPartyRepository.GetSelectList(); + } + public async Task CreateReal(CreateRealContractingParty command) + { + var operation = new OperationResult(); + + if (_personalContractingPartyRepository.Exists(x => + x.LName == command.LName && x.Nationalcode == command.NationalCode && x.SureName == command.SureName)) + return operation.Failed("امکان ثبت رکورد تکراری وجود ندارد"); + + if (command.RepresentativeId < 1) + return operation.Failed("لطفا معرف را انتخاب کنید"); + + if (_personalContractingPartyRepository.Exists(x => x.Nationalcode == command.NationalCode && x.LName != command.LName)) + { + nationalcodeIsOk = false; + + return operation.Failed("کد ملی وارد شده تکراری است"); + } + + + if (_personalContractingPartyRepository.Exists(x => x.ArchiveCode == command.ArchiveCode)) + return operation.Failed("کد طرف حساب تکراری است"); + + if (command.NationalCode.NationalCodeValid() != "valid") + { + return operation.Failed("کد ملی وارد شده نا معتبر است"); + } + + var representative = _representativeApplication.GetDetails(command.RepresentativeId); + var personalContractingParty = new PersonalContractingParty(command.FName, command.LName, + command.NationalCode, command.IdNumber, "*", "*", + "حقیقی", + command.PhoneNumber, command.AgentPhone, command.Address, command.RepresentativeId, representative.FullName, command.ArchiveCode, + command.State, command.City, command.Zone, command.SureName); + + + await _personalContractingPartyRepository.CreateAsync(personalContractingParty); + await _personalContractingPartyRepository.SaveChangesAsync(); + + return operation.Succcedded(); + } + + public async Task CreateLegal(CreateLegalContractingParty command) + { + var opration = new OperationResult(); + + if (_personalContractingPartyRepository.Exists(x => + x.LName == command.CompanyName && x.RegisterId == command.RegisterId && x.SureName == command.SureName)) + return opration.Failed("امکان ثبت رکورد تکراری وجود ندارد"); + + if (command.RepresentativeId < 1) + return opration.Failed("لطفا معرف را انتخاب کنید"); + + if (_personalContractingPartyRepository.Exists(x => + x.LName == command.CompanyName && x.SureName == command.SureName)) + { + legalNameIsOk = false; + return opration.Failed("نام شرکت وارد شده تکراری است"); + } + + if (_personalContractingPartyRepository.Exists(x => + x.RegisterId == command.RegisterId && x.LName != command.CompanyName)) + { + registerIdIsOk = false; + return opration.Failed("شماره ثبت وارد شده تکراری است"); + + } + + if (_personalContractingPartyRepository.Exists(x => + x.NationalId == command.NationalId && x.LName != command.CompanyName)) + { + nationalIdIsOk = false; + return opration.Failed("شناسه ملی وارد شده تکراری است"); + } + + if (_personalContractingPartyRepository.Exists(x => x.ArchiveCode == command.ArchiveCode)) + return opration.Failed("کد طرف حساب تکراری است"); + + + + var representative = _representativeApplication.GetDetails(command.RepresentativeId); + var legalContractingParty = new PersonalContractingParty("*", command.CompanyName, + "*", "*", command.RegisterId, command.NationalId, + "حقوقی", + command.PhoneNumber, command.AgentPhone, command.Address, command.RepresentativeId, representative.FullName, + command.ArchiveCode, + command.State, command.City, command.Zone, command.SureName); + + + await _personalContractingPartyRepository.CreateAsync(legalContractingParty); + await _personalContractingPartyRepository.SaveChangesAsync(); + + return opration.Succcedded(); + + } + + public async Task> GetNationalCodeOrNationalId() + { + return await _personalContractingPartyRepository.GetNationalCodeOrNationalId(); + } + + public async Task> Delete(long id) + { + var operationResult = new OperationResult(); + + try + { + //اگر دارای قرارداد یا دازای کارفرما باشد غیر فعال می شود + if (_employerRepository.Exists(x => x.ContractingPartyId == id) || _institutionContractRepository.Exists(x => x.ContractingPartyId == id)) + { + operationResult = await _personalContractingPartyRepository.DeactivateWithSubordinates(id); + return operationResult; + } + + var entity = _personalContractingPartyRepository.Get(id); + _personalContractingPartyRepository.Remove(entity); + operationResult.Succcedded("Deleted"); + } + catch + { + return operationResult.Failed("خطایی رخ داده است"); + } + + return operationResult; + } + + public OperationResult EditRealApi(EditRealContractingParty command) + { + var opration = new OperationResult(); + var personalContractingParty = _personalContractingPartyRepository.Get(command.Id); + + if (personalContractingParty == null) + return opration.Failed("رکورد مورد نظر یافت نشد"); + + if (command.RepresentativeId < 1) + return opration.Failed("لطفا معرف را انتخاب کنید"); + + if (_personalContractingPartyRepository.Exists(x => + x.LName == command.LName && x.Nationalcode == command.NationalCode && x.SureName == command.SureName && x.id != command.Id)) + return opration.Failed("امکان ثبت رکورد تکراری وجود ندارد"); + + if (_personalContractingPartyRepository.Exists(x => x.ArchiveCode == command.ArchiveCode && x.id != command.Id)) + return opration.Failed("کد طرف حساب تکراری است"); + + if (command.NationalCode.NationalCodeValid() != "valid") + { + return opration.Failed("کد ملی وارد شده نا معتبر است"); + } + + try + { + var representative = _representativeApplication.GetDetails(command.RepresentativeId); + personalContractingParty.Edit(command.FName, command.LName, + command.NationalCode, command.IdNumber, + command.PhoneNumber, command.AgentPhone, command.Address, command.RepresentativeId, representative.FullName, command.ArchiveCode, + command.State, command.City, command.Zone, command.SureName); + + _personalContractingPartyRepository.SaveChanges(); + return opration.Succcedded(); + } + catch + { + + return opration.Failed("خطایی رخ داده است"); + } + } + + public OperationResult EditLegal(EditLegalContractingParty command) + { + var opration = new OperationResult(); + var legalContractingParty = _personalContractingPartyRepository.Get(command.Id); + if (legalContractingParty == null) + return opration.Failed("رکورد مورد نظر یافت نشد"); + + if (_personalContractingPartyRepository.Exists(x => + x.LName == command.CompanyName && x.RegisterId == command.RegisterId && x.SureName == command.SureName && x.id != command.Id)) + return opration.Failed("امکان ثبت رکورد تکراری وجود ندارد"); + if (command.RepresentativeId < 1) + return opration.Failed("لطفا معرف را انتخاب کنید"); + if (_personalContractingPartyRepository.Exists(x => x.ArchiveCode == command.ArchiveCode && x.id != command.Id)) + return opration.Failed("کد طرف حساب تکراری است"); + var representative = _representativeApplication.GetDetails(command.RepresentativeId); + legalContractingParty.EditLegal(command.CompanyName, command.RegisterId, + command.NationalId, + command.PhoneNumber, command.AgentPhone, command.Address, command.RepresentativeId, representative.FullName, command.ArchiveCode, + command.State, command.City, command.Zone, command.SureName); + + _personalContractingPartyRepository.SaveChanges(); + return opration.Succcedded(); + } + + public async Task GetRealDetails(long id) + { + return await _personalContractingPartyRepository.GetRealDetails(id); + } + + public async Task GetLegalDetails(long id) + { + return await _personalContractingPartyRepository.GetLegalDetails(id); } #endregion diff --git a/CompanyManagment.Application/RepresentativeApplication.cs b/CompanyManagment.Application/RepresentativeApplication.cs index 78541931..a8bd4f0b 100644 --- a/CompanyManagment.Application/RepresentativeApplication.cs +++ b/CompanyManagment.Application/RepresentativeApplication.cs @@ -1,5 +1,7 @@ using System; using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; using _0_Framework.Application; using Company.Domain.RepresentativeAgg; using CompanyManagment.App.Contracts.PersonalContractingParty; @@ -350,5 +352,290 @@ public class RepresentativeApplication : IRepresentativeApplication _representativeRepository.SaveChanges(); return opration.Succcedded(); } - #endregion + #endregion + + #region Api + public OperationResult CreateReal(CreateRealRepresentative command) + { + var nationalCode = string.Empty; + var op = new OperationResult(); + if (_representativeRepository.Exists(x => + x.LName == command.LName && x.Nationalcode == command.Nationalcode)) + return op.Failed("امکان ثبت رکورد تکراری وجود ندارد"); + if (_representativeRepository.Exists(x => x.LName == command.LName)) + { + + + return op.Failed("نام خانوادگی وارد شده تکراری است"); + + } + if (_representativeRepository.Exists(x => x.Nationalcode == command.Nationalcode)) + { + + + return op.Failed("کد ملی وارد شده تکراری است"); + } + + if (!string.IsNullOrWhiteSpace(command.Nationalcode)) + { + if (_representativeRepository.Exists(x => x.Nationalcode == command.Nationalcode)) + { + + + return op.Failed("کد ملی وارد شده تکراری است"); + } + try + { + + + char[] chArray = command.Nationalcode.ToCharArray(); + int[] numArray = new int[chArray.Length]; + var cunt = chArray.Length; + for (int i = 0; i < chArray.Length; i++) + { + numArray[i] = (int)char.GetNumericValue(chArray[i]); + } + + int num2 = numArray[9]; + switch (command.Nationalcode) + { + case "0000000000": + case "1111111111": + case "22222222222": + case "33333333333": + case "4444444444": + case "5555555555": + case "6666666666": + case "7777777777": + case "8888888888": + case "9999999999": + + + + + return op.Failed("کد ملی وارد شده صحیح نمی باشد"); + + + } + + int num3 = + ((((((((numArray[0] * 10) + (numArray[1] * 9)) + (numArray[2] * 8)) + (numArray[3] * 7)) + + (numArray[4] * 6)) + (numArray[5] * 5)) + (numArray[6] * 4)) + (numArray[7] * 3)) + + (numArray[8] * 2); + int num4 = num3 - ((num3 / 11) * 11); + if ((((num4 == 0) && (num2 == num4)) || ((num4 == 1) && (num2 == 1))) || + ((num4 > 1) && (num2 == Math.Abs((int)(num4 - 11)))) && cunt <= 10) + { + + + + + nationalCode = command.Nationalcode; + + + } + else + { + + + return op.Failed("کد ملی وارد شده نا معتبر است"); + } + } + catch (Exception) + { + + return op.Failed("لطفا کد ملی 10 رقمی وارد کنید"); + + } + + } + else + { + nationalCode = ""; + } + + var createReal = new Representative(command.FName, command.LName, "*", + nationalCode, command.IdNumber, "*", "*", + "false", command.Phone, command.AgentPhone, command.Address + ); + + + _representativeRepository.Create(createReal); + _representativeRepository.SaveChanges(); + + return op.Succcedded(); + + + + } + + public OperationResult CreateLegal(CreateLegalRepresentative command) + + { + var op = new OperationResult(); + if (_representativeRepository.Exists(x => + x.LegalName == command.LegalName && x.RegisterId == command.RegisterId)) + return op.Failed("امکان ثبت رکورد تکراری وجود ندارد"); + if (_representativeRepository.Exists(x => x.LegalName == command.LegalName)) + { + legalNameIsOk = false; + return op.Failed("نام شرکت وارد شده تکراری است"); + } + if (_representativeRepository.Exists(x => x.RegisterId == command.RegisterId)) + { + + return op.Failed("شماره ثبت وارد شده تکراری است"); + + } + if (_representativeRepository.Exists(x => x.NationalId == command.NationalId)) + { + + return op.Failed("شناسه ملی وارد شده تکراری است"); + } + var createLegal = new Representative("*", "*", + command.LegalName, "*", "*", command.RegisterId, command.NationalId, + "true", + command.Phone, command.AgentPhone, command.Address); + + + _representativeRepository.Create(createLegal); + _representativeRepository.SaveChanges(); + + return op.Succcedded(); + + + } + + public OperationResult EditReal(EditRealRepresentative command) + { + var nationalCode = string.Empty; + var opration = new OperationResult(); + var representativeRealEdit = _representativeRepository.Get(command.Id); + if (representativeRealEdit == null) + return opration.Failed("رکورد مورد نظر یافت نشد"); + + if (_representativeRepository.Exists(x => + x.LName == command.LName && x.FName == command.FName && x.id != command.Id)) + return opration.Failed("امکان ثبت رکورد تکراری وجود ندارد"); + if (!string.IsNullOrWhiteSpace(command.Nationalcode)) + { + if (_representativeRepository.Exists(x => x.Nationalcode == command.Nationalcode && x.id != command.Id)) + { + + + return opration.Failed("کد ملی وارد شده تکراری است"); + } + try + { + + + char[] chArray = command.Nationalcode.ToCharArray(); + int[] numArray = new int[chArray.Length]; + var cunt = chArray.Length; + for (int i = 0; i < chArray.Length; i++) + { + numArray[i] = (int)char.GetNumericValue(chArray[i]); + } + + int num2 = numArray[9]; + switch (command.Nationalcode) + { + case "0000000000": + case "1111111111": + case "22222222222": + case "33333333333": + case "4444444444": + case "5555555555": + case "6666666666": + case "7777777777": + case "8888888888": + case "9999999999": + + + + + return opration.Failed("کد ملی وارد شده صحیح نمی باشد"); + + + } + + int num3 = + ((((((((numArray[0] * 10) + (numArray[1] * 9)) + (numArray[2] * 8)) + (numArray[3] * 7)) + + (numArray[4] * 6)) + (numArray[5] * 5)) + (numArray[6] * 4)) + (numArray[7] * 3)) + + (numArray[8] * 2); + int num4 = num3 - ((num3 / 11) * 11); + if ((((num4 == 0) && (num2 == num4)) || ((num4 == 1) && (num2 == 1))) || + ((num4 > 1) && (num2 == Math.Abs((int)(num4 - 11)))) && cunt <= 10) + { + + + + + nationalCode = command.Nationalcode; + + + } + else + { + + + return opration.Failed("کد ملی وارد شده نا معتبر است"); + } + } + catch (Exception) + { + + return opration.Failed("لطفا کد ملی 10 رقمی وارد کنید"); + + } + + } + else + { + nationalCode = ""; + } + + representativeRealEdit.EditReal(command.FName, command.LName, + nationalCode, command.IdNumber, + command.Phone, command.AgentPhone, command.Address); + + _representativeRepository.SaveChanges(); + return opration.Succcedded(); + + } + public OperationResult EditLegal(EditLegalRepresentative command) + { + var opration = new OperationResult(); + var representativeLegalEdit = _representativeRepository.Get(command.Id); + if (representativeLegalEdit == null) + return opration.Failed("رکورد مورد نظر یافت نشد"); + + if (_representativeRepository.Exists(x => + x.LegalName == command.LegalName && x.RegisterId == command.RegisterId && x.id != command.Id)) + return opration.Failed("امکان ثبت رکورد تکراری وجود ندارد"); + + representativeLegalEdit.EditLegal(command.LegalName, command.RegisterId, + command.NationalId, + command.Phone, command.AgentPhone, command.Address); + + _representativeRepository.SaveChanges(); + return opration.Succcedded(); + } + + public async Task> GetSelectList() + { + return await _representativeRepository.GetSelectList(); + } + + public async Task> GetList(RepresentativeGetListSearchModel searchModel) + { + return (await _representativeRepository.GetList(searchModel)).ToList(); + } + + public bool HasAnyContractingParty(long id) + { + return _representativeRepository.HasAnyContractingParty(id); + } + + #endregion } \ No newline at end of file diff --git a/CompanyManagment.Application/TemporaryClientRegistrationApplication.cs b/CompanyManagment.Application/TemporaryClientRegistrationApplication.cs index 941e283f..a74e1df6 100644 --- a/CompanyManagment.Application/TemporaryClientRegistrationApplication.cs +++ b/CompanyManagment.Application/TemporaryClientRegistrationApplication.cs @@ -13,6 +13,7 @@ using CompanyManagment.App.Contracts.TemporaryClientRegistration; using IPE.SmsIrClient.Models.Results; using Microsoft.EntityFrameworkCore; using PersianTools.Core; +using static Microsoft.EntityFrameworkCore.DbLoggerCategory.Database; namespace CompanyManagment.Application; @@ -67,7 +68,7 @@ public class TemporaryClientRegistrationApplication : ITemporaryClientRegistrati return op.Failed("شماره همراه نا معتبر است"); - + #endregion @@ -141,6 +142,8 @@ public class TemporaryClientRegistrationApplication : ITemporaryClientRegistrati result.FName = createTemp.FName; result.LName = createTemp.LName; result.DateOfBirthFa = dateOfBirth; + result.FatherName = createTemp.FatherName; + result.IdNumberSerial = createTemp.IdNumberSerial; result.IdNumber = idNumber; return op.Succcedded(result); @@ -188,7 +191,7 @@ public class TemporaryClientRegistrationApplication : ITemporaryClientRegistrati /// /// /// - public async Task CreateOrUpdateWorkshopTemp(List command) + public async Task CreateOrUpdateWorkshopTemp(List command, long contractingPartyTempId) { var op = new OperationResult(); var updateWorkshopList = command.Where(x => x.Id > 0).ToList(); @@ -196,10 +199,17 @@ public class TemporaryClientRegistrationApplication : ITemporaryClientRegistrati if (updateWorkshopList.Count == 0 && createNewWorkshopList.Count == 0) return op.Failed("هیچ مجموعه ای ایجاد نشده است"); + var oldWorkshops = await _workshopTempRepository.GetWorkshopTemp(contractingPartyTempId); #region Update if (updateWorkshopList.Count > 0) { + var updateListIds = updateWorkshopList.Select(x => x.Id).ToList(); + var oldWorkshopsIds = oldWorkshops.Select(x => x.Id).ToList(); + var exceptWorkshops = oldWorkshopsIds.Except(updateListIds).ToList(); + if (exceptWorkshops.Any()) + await _workshopTempRepository.RemoveWorkshopTemps(exceptWorkshops); + foreach (var workshop in updateWorkshopList) { @@ -212,6 +222,7 @@ public class TemporaryClientRegistrationApplication : ITemporaryClientRegistrati workshop.RollCall == false && workshop.Insurance == false) op.Failed($"برای مجموعه {workshop.WorkshopName} هیچ سرویسی انتخاب نشده است"); var existWorkshops = _workshopTempRepository.Get(workshop.Id); + if (existWorkshops != null) { if (workshop.ContractAndCheckout) @@ -256,6 +267,8 @@ public class TemporaryClientRegistrationApplication : ITemporaryClientRegistrati if (workshop.CustomizeCheckout) await _workshopServicesTempRepository.CreateAsync( new WorkshopServicesTemp("CustomizeCheckout", workshop.CountPerson, workshop.Id)); + + await _workshopServicesTempRepository.SaveChangesAsync(); } } @@ -324,6 +337,8 @@ public class TemporaryClientRegistrationApplication : ITemporaryClientRegistrati if (workshop.CustomizeCheckout) await _workshopServicesTempRepository.CreateAsync( new WorkshopServicesTemp("CustomizeCheckout", workshop.CountPerson, createNewWorkshopTemp.id)); + + await _workshopServicesTempRepository.SaveChangesAsync(); } } @@ -352,8 +367,9 @@ public class TemporaryClientRegistrationApplication : ITemporaryClientRegistrati /// /// /// - public async Task GetTotalPaymentAndWorkshopList(long contractingPartyTempId, string periodModel = "12", string paymentModel = "OneTime") + public async Task GetTotalPaymentAndWorkshopList(long contractingPartyTempId, string periodModel = "12", string paymentModel = "OneTime", string contractStartType = "currentMonth") { + //دریافت کارگاه ها var workshops = await _workshopTempRepository.GetWorkshopTemp(contractingPartyTempId); @@ -380,9 +396,10 @@ public class TemporaryClientRegistrationApplication : ITemporaryClientRegistrati _ => 12, }; //رند کردن مبالغ کارگاه ها - var roundAmount = (int)(totalPayment1MonthDouble / 1000000) * 1000000; + var roundAmount = (((Convert.ToInt64(totalPayment1MonthDouble))) / 1000000) * 1000000; + double roundAmount2 = roundAmount; //بدست آوردن جمع کل مبالغ کارگاه بر اساس مدت قراداد - result.SumOfWorkshopsPaymentDouble = roundAmount * months; + result.SumOfWorkshopsPaymentDouble = months * roundAmount2; result.SumOfWorkshopsPaymentPaymentStr = result.SumOfWorkshopsPaymentDouble.ToMoney(); @@ -394,31 +411,112 @@ public class TemporaryClientRegistrationApplication : ITemporaryClientRegistrati //مالیات result.ValueAddedTaxDouble = tenPercent; result.ValueAddedTaxSt = tenPercent.ToMoney(); - if (paymentModel == "OneTime")//تخفیف 10 درصدی درصورت پرداخت یکجا + //پرداخت یکجا + #region OneTimePaymentResult + + double discountOneTimePeyment = result.SumOfWorkshopsPaymentDouble - tenPercent; + + + //مبلغ بدون مالیات و با تخفیف + result.OneTimeWithoutTaxPaymentDouble = discountOneTimePeyment; + result.OneTimeWithoutTaxPaymentStr = discountOneTimePeyment.ToMoney(); + + //مبلغ با مالیات + result.OneTimeTotalPaymentDouble = discountOneTimePeyment + tenPercent; + result.OneTimeTotalPaymentStr = result.OneTimeTotalPaymentDouble.ToMoney(); + + #endregion + + //پرداخت ماهیانه + #region MonthlyPaymentResult + + //مبلغ بدون مالیات + result.MonthlyWithoutTaxPaymentDouble = result.SumOfWorkshopsPaymentDouble; + result.MonthlyWithoutTaxPaymentStr = result.SumOfWorkshopsPaymentDouble.ToMoney(); + + // مبلغ با مالیات + result.MonthlyTotalPaymentDouble = result.SumOfWorkshopsPaymentDouble + tenPercent; + result.MonthlyTotalPaymentStr = result.MonthlyTotalPaymentDouble.ToMoney(); + var installmentList = new List(); + + var startDate = (DateTime.Now).ToFarsi(); + result.ContractStartCurrentMonthFa = $"{startDate.Substring(0, 8)}01"; + result.ContractStartCurrentMonthGr = result.ContractStartCurrentMonthFa.ToGeorgianDateTime(); + startDate = result.ContractStartCurrentMonthFa; + + result.ContractStartNextMonthGr = ((startDate.FindeEndOfMonth()).ToGeorgianDateTime()).AddDays(1); + result.ContractStartNextMonthFa = result.ContractStartNextMonthGr.ToFarsi(); + + if (contractStartType == "nextMonth") + startDate = result.ContractStartNextMonthFa; + + + + var findeEnd = Tools.FindEndOfContract(startDate, periodModel); + var contractEndDate = findeEnd.endDateGr; + result.ContractEndGr = contractEndDate; + result.ContractEndFa = contractEndDate.ToFarsi(); + + if (periodModel == "1") { - double discountOneTimePeyment = result.SumOfWorkshopsPaymentDouble - tenPercent; - + installmentList.Add(new MonthlyInstallment() + { + InstallmentAmountStr = result.MonthlyTotalPaymentStr, + InstallmentCounter = "سررسید پرداخت اول", + InstalmentDate = (DateTime.Now).ToFarsi() - //مبلغ بدون مالیات و با تخفیف - result.WithoutTaxPaymentDouble = discountOneTimePeyment; - result.WithoutTaxPaymentStr = discountOneTimePeyment.ToMoney(); - - //مبلغ با مالیات - result.TotalPaymentDouble = discountOneTimePeyment + tenPercent; - result.TotalPaymentStr = result.TotalPaymentDouble.ToMoney(); + }); + result.MonthlyInstallments = installmentList; } else { - //مبلغ بدون مالیات - result.WithoutTaxPaymentDouble = result.SumOfWorkshopsPaymentDouble; - result.WithoutTaxPaymentStr = result.SumOfWorkshopsPaymentDouble.ToMoney(); + int instalmentCount = Convert.ToInt32(periodModel); + var instalmentAmount = result.MonthlyTotalPaymentDouble / instalmentCount; + var findEndOfMonth = startDate.FindeEndOfMonth(); + for (int i = 1; i <= instalmentCount; i++) + { + if (i == 1) + { + startDate = (DateTime.Now).ToFarsi(); + + } + else if (i > 1) + { + var currentMonthStart = ((findEndOfMonth.ToGeorgianDateTime()).AddDays(1)).ToFarsi(); + startDate = currentMonthStart.FindeEndOfMonth(); + findEndOfMonth = startDate; + } + + installmentList.Add(new MonthlyInstallment() + { + InstallmentAmountStr = instalmentAmount.ToMoney(), + InstallmentCounter = i switch + { + 1 => "سررسید پرداخت اول", + 2 => "سررسید پرداخت دوم", + 3 => "سررسید پرداخت سوم", + 4 => "سررسید پرداخت چهارم", + 5 => "سررسید پرداخت پنجم", + 6 => "سررسید پرداخت ششم", + 7 => "سررسید پرداخت هفتم", + 8 => "سررسید پرداخت هشتم", + 9 => "سررسید پرداخت نهم", + 10 => "سررسید پرداخت دهم", + 11 => "سررسید پرداخت یازدهم", + 12 => "سررسید پرداخت دوازدهم", + _ => "سررسید پرداخت دوازدهم", + }, + InstalmentDate = startDate + + }); + } - // مبلغ با مالیات - result.TotalPaymentDouble = result.SumOfWorkshopsPaymentDouble + tenPercent; - result.TotalPaymentStr = result.TotalPaymentDouble.ToMoney(); } + #endregion + + result.MonthlyInstallments = installmentList; result.ContractingPartTempId = contractingPartyTempId; return result; @@ -430,42 +528,57 @@ public class TemporaryClientRegistrationApplication : ITemporaryClientRegistrati /// /// /// - public async Task CreateOrUpdateInstitutionContractTemp(long contractingPartyTempId, string periodModel, string paymentModel, double totalPayment, double valueAddedTax) + public async Task CreateOrUpdateInstitutionContractTemp(long contractingPartyTempId, string periodModel, string paymentModel, double totalPayment, double valueAddedTax, DateTime contractStart) { var op = new OperationResult(); + + + var institutionContractTemp = await _institutionContractTempRepository.GetInstitutionContractTemp(0, contractingPartyTempId); - + var contractStartDate = contractStart; + string contractStartFa = contractStart.ToFarsi(); + var findeEnd = Tools.FindEndOfContract(contractStartFa, periodModel); + var contractEndDate = findeEnd.endDateGr; if (institutionContractTemp == null) { var periodModelInt = Convert.ToInt32(periodModel); - var contractstart = DateTime.Now; - var contractEnd = DateTime.Now.AddMonths(periodModelInt); - var create = new InstitutionContractTemp(contractingPartyTempId,paymentModel,periodModel,totalPayment,contractstart,contractEnd,"official", valueAddedTax,"", "BeforeSendVerifyCode", 0,null,null); + + var create = new InstitutionContractTemp(contractingPartyTempId, paymentModel, periodModel, totalPayment, contractStartDate, contractEndDate, "official", valueAddedTax, "", "BeforeSendVerifyCode", 0, null, null); _institutionContractTempRepository.Create(create); _institutionContractTempRepository.SaveChanges(); + + //temporary + var res = await PayOffCompleted(contractingPartyTempId); + if (!res.IsSuccedded) + return op.Failed(res.Message); return op.Succcedded(); } else { if (institutionContractTemp.VerifyCodeEndTime != null) { - var spaning = (institutionContractTemp.VerifyCodeEndTime.Value - DateTime.Now); + var spaning = (DateTime.Now - institutionContractTemp.VerifyCodeEndTime.Value); if (institutionContractTemp.RegistrationStatus == "VerifyCodeSent" && spaning > new TimeSpan(0, 0, 0) && spaning < new TimeSpan(0, 1, 0)) return op.Failed("شما به تازگی پیامک دریافت نموده اید دو دقیقه صبر کنید و دوباره تلاش کنید"); } - + if (institutionContractTemp.RegistrationStatus == "Completed") return op.Failed("شما قبلا ثبت نام خود را تکمیل نموده اید"); - + var periodModelInt = Convert.ToInt32(periodModel); var contractstart = DateTime.Now; var contractEnd = DateTime.Now.AddMonths(periodModelInt); var update = _institutionContractTempRepository.Get(institutionContractTemp.Id); - update.Edit(contractingPartyTempId, paymentModel, periodModel, totalPayment, contractstart, contractEnd, "official", valueAddedTax, "", "BeforeSendVerifyCode", 0, null, null); + update.Edit(contractingPartyTempId, paymentModel, periodModel, totalPayment, contractStartDate, contractEndDate, "official", valueAddedTax, "", "BeforeSendVerifyCode", 0, null, null); _institutionContractTempRepository.SaveChanges(); + + //temporary + var res = await PayOffCompleted(contractingPartyTempId); + if (!res.IsSuccedded) + return op.Failed(res.Message); return op.Succcedded(); } @@ -483,14 +596,16 @@ public class TemporaryClientRegistrationApplication : ITemporaryClientRegistrati { var op = new OperationResult(); - var institutionContractTemp = await - _institutionContractTempRepository.GetInstitutionContractTemp(0, contractingPartyTempId); + + + var institutionContractTemp = await + _institutionContractTempRepository.GetInstitutionContractTemp(0, contractingPartyTempId); if (institutionContractTemp == null) - return op.Failed("خظا"); + return op.Failed("خطا"); var update = _institutionContractTempRepository.Get(institutionContractTemp.Id); - + if (institutionContractTemp.RegistrationStatus == "BeforeSendVerifyCode") @@ -516,26 +631,29 @@ public class TemporaryClientRegistrationApplication : ITemporaryClientRegistrati return op.Succcedded(1, "کد برای شما پیامک شد"); } - + } if (institutionContractTemp.RegistrationStatus == "VerifyCodeSent") { - var spaning = (institutionContractTemp.VerifyCodeEndTime.Value - DateTime.Now); - if ((spaning > new TimeSpan(0, 0, 0) && spaning < new TimeSpan(0, 1, 0))) + + if (DateTime.Now < institutionContractTemp.VerifyCodeEndTime.Value) + return op.Failed("کد دریافت شده را وارد کنید"); + var spaning = (DateTime.Now - institutionContractTemp.VerifyCodeEndTime.Value); + if ((spaning > new TimeSpan(0, 0, 0) && spaning < new TimeSpan(0, 1, 0))) return op.Failed("شما به تازگی پیامک دریافت نموده اید دو دقیقه صبر کنید و دوباره تلاش کنید"); - if ((spaning > new TimeSpan(0, 0, 0) && spaning > new TimeSpan(0, 1, 0))) + if ((spaning > new TimeSpan(0, 1, 0))) { //ساخت کد شش رقمی Random generator = new Random(); String code = generator.Next(1, 1000000).ToString("D6"); //ارسال اس ام اس var getContractingPaty = _contractingPartyTempRepository.GetByContractingPartyTempId(contractingPartyTempId); - var sendResult =await _smsService.SendVerifyCodeToClient(getContractingPaty.Phone, code); + var sendResult = await _smsService.SendVerifyCodeToClient(getContractingPaty.Phone, code); - if(!sendResult.IsSuccedded) + if (!sendResult.IsSuccedded) return op.Failed($"{sendResult.Message}"); @@ -544,16 +662,16 @@ public class TemporaryClientRegistrationApplication : ITemporaryClientRegistrati //ذخیره تاریخ ارسال و مهلت پایان //ذخیره آیدی پیامک //تغییر وضعیت به ارسال شده - + if (update != null) { - update.Update(code, "VerifyCodeSent",sendResult.MessageId, DateTime.Now, DateTime.Now.AddMinutes(2)); + update.Update(code, "VerifyCodeSent", sendResult.MessageId, DateTime.Now, DateTime.Now.AddMinutes(2)); _institutionContractTempRepository.SaveChanges(); return op.Succcedded(1, "کد برای شما پیامک شد"); } - - + + } } @@ -580,25 +698,25 @@ public class TemporaryClientRegistrationApplication : ITemporaryClientRegistrati _institutionContractTempRepository.GetInstitutionContractTemp(0, contractingPartyTempId); if (institutionContractTemp == null) return op.Failed("خظا"); - if(institutionContractTemp.RegistrationStatus != "VerifyCodeSent") + if (institutionContractTemp.RegistrationStatus != "VerifyCodeSent") return op.Failed("خطا"); - if(institutionContractTemp.VerifyCodeEndTime < DateTime.Now) + if (institutionContractTemp.VerifyCodeEndTime < DateTime.Now) return op.Failed("کد شما منقضی شده است"); - if(institutionContractTemp.SendVerifyCodeTime < DateTime.Now && institutionContractTemp.VerifyCodeEndTime >= DateTime.Now) + if (institutionContractTemp.SendVerifyCodeTime < DateTime.Now && institutionContractTemp.VerifyCodeEndTime >= DateTime.Now) { if (institutionContractTemp.VerifyCode == verifyCode) { - + return op.Succcedded(); } else { return op.Failed("کد وارد شده صحیح نیست"); } - + } @@ -615,7 +733,38 @@ public class TemporaryClientRegistrationApplication : ITemporaryClientRegistrati public async Task PayOffCompleted(long contractingPartyTempId) { var op = new OperationResult(); + + var temp = _contractingPartyTempRepository.GetByContractingPartyTempId(contractingPartyTempId); + if (_personalContractingPartyRepository.Exists(x => + x.Nationalcode == temp.NationalCode)) + return op.Failed("امکان ثبت رکورد تکراری وجود ندارد"); + + var lastArchiveCode = _personalContractingPartyRepository.GetLastArchiveCode(); + var personalContractingParty = new PersonalContractingParty(temp.FName, temp.LName, + temp.NationalCode, temp.IdNumber, "*", "*", + "حقیقی", + temp.Phone, null, temp.Address, 1, "-", lastArchiveCode, + temp.State, temp.City, null, null); + _personalContractingPartyRepository.Create(personalContractingParty); + _personalContractingPartyRepository.SaveChanges(); + + personalContractingParty.RegisterComplete(temp.FatherName, temp.IdNumberSeri, temp.IdNumberSerial, temp.DateOfBirth, temp.Gender); + _personalContractingPartyRepository.SaveChanges(); + var institutionContractTemp = await + _institutionContractTempRepository.GetInstitutionContractTemp(0, contractingPartyTempId); + var update = _institutionContractTempRepository.Get(institutionContractTemp.Id); + update.ChangeRegistrationStatus("Completed"); + _institutionContractTempRepository.SaveChanges(); + + return op.Succcedded(); } + + public async Task> RegistrationWorkflowMainList() + { + + return await _institutionContractTempRepository.GetAllCompletedRegistration(); + } + } \ No newline at end of file diff --git a/CompanyManagment.EFCore/CompanyContext.cs b/CompanyManagment.EFCore/CompanyContext.cs index 3697248b..5252f4a9 100644 --- a/CompanyManagment.EFCore/CompanyContext.cs +++ b/CompanyManagment.EFCore/CompanyContext.cs @@ -9,6 +9,7 @@ using Company.Domain.CheckoutAgg; using Company.Domain.ClassifiedSalaryAgg; using Company.Domain.ClientEmployeeWorkshopAgg; using Company.Domain.Contact2Agg; +using Company.Domain.ContactUsAgg; using Company.Domain.ContarctingPartyAgg; using Company.Domain.ContractAgg; using Company.Domain.ContractingPartyAccountAgg; @@ -77,6 +78,7 @@ using Company.Domain.ModuleTextManagerAgg; using Company.Domain.OriginalTitleAgg; using Company.Domain.PaymentToEmployeeAgg; using Company.Domain.PaymentToEmployeeItemAgg; +using Company.Domain.PaymentTransactionAgg; using Company.Domain.PenaltyTitle; using Company.Domain.PercentageAgg; using Company.Domain.PersonnelCodeAgg; @@ -175,9 +177,12 @@ public class CompanyContext : DbContext public DbSet EmployeeClientTemps { get; set; } public DbSet LeftWorkTemps { get; set; } + public DbSet ContactUs { get; set; } + public DbSet EmployeeAuthorizeTemps { get; set; } public DbSet AdminMonthlyOverviews { get; set; } + public DbSet PaymentTransactions{ get; set; } #endregion #region Pooya diff --git a/CompanyManagment.EFCore/Mapping/ContactUsMapping.cs b/CompanyManagment.EFCore/Mapping/ContactUsMapping.cs new file mode 100644 index 00000000..cc3b5ddf --- /dev/null +++ b/CompanyManagment.EFCore/Mapping/ContactUsMapping.cs @@ -0,0 +1,20 @@ +using Company.Domain.ContactUsAgg; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Metadata.Builders; + +namespace CompanyManagment.EFCore.Mapping; + +public class ContactUsMapping:IEntityTypeConfiguration +{ + public void Configure(EntityTypeBuilder builder) + { + builder.HasKey(x => x.id); + builder.Property(x => x.FullName).HasMaxLength(200); + builder.Property(x => x.Title).HasMaxLength(200); + builder.Property(x => x.Email).HasMaxLength(200); + builder.Property(x => x.FirstName).HasMaxLength(100); + builder.Property(x => x.LastName).HasMaxLength(100); + builder.Property(x => x.Message).HasMaxLength(500); + builder.Property(x => x.PhoneNumber).HasMaxLength(20); + } +} \ No newline at end of file diff --git a/CompanyManagment.EFCore/Mapping/PaymentTransactionMapping.cs b/CompanyManagment.EFCore/Mapping/PaymentTransactionMapping.cs new file mode 100644 index 00000000..9a8742e1 --- /dev/null +++ b/CompanyManagment.EFCore/Mapping/PaymentTransactionMapping.cs @@ -0,0 +1,24 @@ +using Company.Domain.PaymentTransactionAgg; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Metadata.Builders; + +namespace CompanyManagment.EFCore.Mapping; + +public class PaymentTransactionMapping:IEntityTypeConfiguration +{ + public void Configure(EntityTypeBuilder builder) + { + builder.ToTable("PaymentTransactions"); + builder.HasKey(pt => pt.id); + + builder.Property(x => x.TransactionId).HasMaxLength(60); + builder.Property(x => x.CardNumber).HasMaxLength(25); + builder.Property(x => x.AccountNumber).HasMaxLength(25); + builder.Property(x => x.BankName).HasMaxLength(50); + builder.Property(x => x.BankAccountHolderName).HasMaxLength(255); + builder.Property(x => x.Status).HasConversion().HasMaxLength(35); + builder.Property(x => x.ShebaNumber).HasMaxLength(30); + builder.Property(x => x.ContractingPartyName).HasMaxLength(255); + + } +} \ No newline at end of file diff --git a/CompanyManagment.EFCore/Mapping/PersonalContractingpartyMapping.cs b/CompanyManagment.EFCore/Mapping/PersonalContractingpartyMapping.cs index 60d0179a..9274487d 100644 --- a/CompanyManagment.EFCore/Mapping/PersonalContractingpartyMapping.cs +++ b/CompanyManagment.EFCore/Mapping/PersonalContractingpartyMapping.cs @@ -39,7 +39,7 @@ public class PersonalContractingpartyMapping : IEntityTypeConfiguration x.IdNumberSerial).HasMaxLength(15); builder.Property(x => x.FatherName).HasMaxLength(20); builder.Property(x => x.DateOfBirth).IsRequired(false); - builder.Property(x => x.Gender).HasConversion( + builder.Property(x => x.Gender).HasConversion( v => v.ToString(), v => string.IsNullOrWhiteSpace(v) ? Gender.None : (Gender)Enum.Parse(typeof(Gender), v)).HasMaxLength(6); diff --git a/CompanyManagment.EFCore/Migrations/20250423184716_add contact us .Designer.cs b/CompanyManagment.EFCore/Migrations/20250423184716_add contact us .Designer.cs new file mode 100644 index 00000000..0e4931ae --- /dev/null +++ b/CompanyManagment.EFCore/Migrations/20250423184716_add contact us .Designer.cs @@ -0,0 +1,9450 @@ +// +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("20250423184716_add contact us ")] + partial class addcontactus + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "8.0.10") + .HasAnnotation("Relational:MaxIdentifierLength", 128); + + SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); + + modelBuilder.Entity("Company.Domain.AndroidApkVersionAgg.AndroidApkVersion", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("IsActive") + .IsRequired() + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("Path") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Title") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("VersionCode") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("VersionName") + .HasMaxLength(35) + .HasColumnType("nvarchar(35)"); + + b.HasKey("id"); + + b.ToTable("AndroidApkVersions", (string)null); + }); + + modelBuilder.Entity("Company.Domain.BankAgg.Bank", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BankLogoMediaId") + .HasColumnType("bigint"); + + b.Property("BankName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.HasKey("id"); + + b.ToTable("Banks", (string)null); + }); + + modelBuilder.Entity("Company.Domain.BillAgg.EntityBill", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Appointed") + .HasColumnType("nvarchar(max)"); + + b.Property("Contact") + .HasColumnType("nvarchar(max)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Description") + .HasColumnType("nvarchar(max)"); + + b.Property("IsActiveString") + .HasColumnType("nvarchar(max)"); + + b.Property("ProcessingStage") + .HasColumnType("nvarchar(max)"); + + b.Property("SubjectBill") + .IsRequired() + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.HasKey("id"); + + b.ToTable("TextManager_Bill", (string)null); + }); + + modelBuilder.Entity("Company.Domain.Board.Board", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BoardChairman") + .HasColumnType("nvarchar(max)"); + + b.Property("BoardType_Id") + .HasColumnType("int"); + + b.Property("Branch") + .HasColumnType("nvarchar(max)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DisputeResolutionPetitionDate") + .HasColumnType("datetime2"); + + b.Property("ExpertReport") + .HasColumnType("nvarchar(max)"); + + b.Property("File_Id") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("BoardType_Id"); + + b.HasIndex("File_Id"); + + b.ToTable("Boards", (string)null); + }); + + modelBuilder.Entity("Company.Domain.BoardType.BoardType", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("Title") + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + b.ToTable("BoardTypes", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ChapterAgg.EntityChapter", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Chapter") + .IsRequired() + .HasMaxLength(60) + .HasColumnType("nvarchar(60)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("IsActiveString") + .HasColumnType("nvarchar(max)"); + + b.Property("Subtitle_Id") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("Subtitle_Id"); + + b.ToTable("TextManager_Chapter", (string)null); + }); + + modelBuilder.Entity("Company.Domain.CheckoutAgg.Checkout", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("AbsenceDeduction") + .HasColumnType("float"); + + b.Property("AbsencePeriod") + .HasColumnType("float"); + + b.Property("AbsenceValue") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("ArchiveCode") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("AverageHoursPerDay") + .HasColumnType("float"); + + b.Property("BaseYearsPay") + .HasColumnType("float"); + + b.Property("BonusesPay") + .HasColumnType("float"); + + b.Property("ConsumableItems") + .HasColumnType("float"); + + b.Property("ContractEnd") + .HasColumnType("datetime2"); + + b.Property("ContractId") + .HasColumnType("bigint"); + + b.Property("ContractNo") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("ContractStart") + .HasColumnType("datetime2"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("CreditLeaves") + .HasColumnType("float"); + + b.Property("DateOfBirth") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("EmployeeFullName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("FamilyAllowance") + .HasColumnType("float"); + + b.Property("FathersName") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("FridayPay") + .HasColumnType("float"); + + b.Property("FridayWorkValue") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("HasRollCall") + .HasColumnType("bit"); + + b.Property("HousingAllowance") + .HasColumnType("float"); + + b.Property("InstallmentDeduction") + .HasColumnType("float"); + + b.Property("InsuranceDeduction") + .HasColumnType("float"); + + b.Property("IsActiveString") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("LeaveCheckout") + .HasColumnType("bit"); + + b.Property("LeavePay") + .HasColumnType("float"); + + b.Property("MarriedAllowance") + .HasColumnType("float"); + + b.Property("MissionPay") + .HasColumnType("float"); + + b.Property("Month") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("MonthlySalary") + .HasColumnType("float"); + + b.Property("NationalCode") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("NightworkPay") + .HasColumnType("float"); + + b.Property("OverNightWorkValue") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("OverTimeWorkValue") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("OvertimePay") + .HasColumnType("float"); + + b.Property("PersonnelCode") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("RewardPay") + .HasColumnType("float"); + + b.Property("RotatingShiftValue") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("SalaryAidDeduction") + .HasColumnType("float"); + + b.Property("ShiftPay") + .HasColumnType("float"); + + b.Property("Signature") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("SumOfWorkingDays") + .HasMaxLength(6) + .HasColumnType("nvarchar(6)"); + + b.Property("TaxDeducation") + .HasColumnType("float"); + + b.Property("TotalClaims") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("TotalDayOfBunosesCompute") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("TotalDayOfLeaveCompute") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("TotalDayOfYearsCompute") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("TotalDeductions") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("TotalPayment") + .HasColumnType("float"); + + b.Property("WorkingHoursId") + .HasColumnType("bigint"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("WorkshopName") + .HasMaxLength(70) + .HasColumnType("nvarchar(70)"); + + b.Property("Year") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)"); + + b.Property("YearsPay") + .HasColumnType("float"); + + b.HasKey("id"); + + b.HasIndex("WorkshopId"); + + b.ToTable("Checkouts", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ClassifiedSalaryAgg.ClassifiedSalary", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EndDate") + .HasColumnType("datetime2"); + + b.Property("Group1") + .HasColumnType("float"); + + b.Property("Group10") + .HasColumnType("float"); + + b.Property("Group11") + .HasColumnType("float"); + + b.Property("Group12") + .HasColumnType("float"); + + b.Property("Group13") + .HasColumnType("float"); + + b.Property("Group14") + .HasColumnType("float"); + + b.Property("Group15") + .HasColumnType("float"); + + b.Property("Group16") + .HasColumnType("float"); + + b.Property("Group17") + .HasColumnType("float"); + + b.Property("Group18") + .HasColumnType("float"); + + b.Property("Group19") + .HasColumnType("float"); + + b.Property("Group2") + .HasColumnType("float"); + + b.Property("Group20") + .HasColumnType("float"); + + b.Property("Group3") + .HasColumnType("float"); + + b.Property("Group4") + .HasColumnType("float"); + + b.Property("Group5") + .HasColumnType("float"); + + b.Property("Group6") + .HasColumnType("float"); + + b.Property("Group7") + .HasColumnType("float"); + + b.Property("Group8") + .HasColumnType("float"); + + b.Property("Group9") + .HasColumnType("float"); + + b.Property("StartDate") + .HasColumnType("datetime2"); + + b.Property("Year") + .HasColumnType("int"); + + b.HasKey("id"); + + b.ToTable("ClassifiedSalaries", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ClientEmployeeWorkshopAgg.ClientEmployeeWorkshop", b => + { + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.HasKey("WorkshopId", "EmployeeId"); + + b.HasIndex("EmployeeId"); + + b.ToTable("ClientWorkshopEmployee", (string)null); + }); + + modelBuilder.Entity("Company.Domain.Contact2Agg.EntityContact", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("IsActiveString") + .HasColumnType("nvarchar(max)"); + + b.Property("NameContact") + .HasColumnType("nvarchar(max)"); + + b.Property("Signature") + .HasColumnType("nvarchar(max)"); + + b.HasKey("id"); + + b.ToTable("TextManager_Contact", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ContactUsAgg.ContactUs", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Email") + .HasMaxLength(200) + .HasColumnType("nvarchar(200)"); + + b.Property("FirstName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("FullName") + .HasMaxLength(200) + .HasColumnType("nvarchar(200)"); + + b.Property("LastName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("Message") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("PhoneNumber") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("Title") + .HasMaxLength(200) + .HasColumnType("nvarchar(200)"); + + b.HasKey("id"); + + b.ToTable("ContactUs"); + }); + + modelBuilder.Entity("Company.Domain.ContarctingPartyAgg.PersonalContractingParty", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Address") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("AgentPhone") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("ArchiveCode") + .HasColumnType("int"); + + b.Property("BlockTimes") + .HasColumnType("int"); + + b.Property("City") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DateOfBirth") + .HasColumnType("datetime2"); + + b.Property("FName") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("FatherName") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("Gender") + .IsRequired() + .HasMaxLength(6) + .HasColumnType("nvarchar(6)"); + + b.Property("IdNumber") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("IdNumberSeri") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("IdNumberSerial") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("IsActiveString") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("IsAuthenticated") + .HasColumnType("bit"); + + b.Property("IsBlock") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("IsLegal") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("LName") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("NationalId") + .IsRequired() + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("Nationalcode") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("Phone") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("RegisterId") + .IsRequired() + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("RepresentativeFullName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("RepresentativeId") + .HasColumnType("bigint"); + + b.Property("State") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("SureName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("Zone") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.HasKey("id"); + + b.HasIndex("RepresentativeId"); + + b.ToTable("PersonalContractingParties", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ContractAgg.Contract", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("AgreementSalary") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("ArchiveCode") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("ConsumableItems") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("ContarctStart") + .HasColumnType("datetime2"); + + b.Property("ContractEnd") + .HasColumnType("datetime2"); + + b.Property("ContractNo") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("ContractPeriod") + .HasMaxLength(2) + .HasColumnType("nvarchar(2)"); + + b.Property("ContractType") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DayliWage") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("EmployerId") + .HasColumnType("bigint"); + + b.Property("FamilyAllowance") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("GetWorkDate") + .HasColumnType("datetime2"); + + b.Property("HousingAllowance") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("IsActiveString") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("JobType") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("JobTypeId") + .HasColumnType("bigint"); + + b.Property("MandatoryHoursid") + .HasColumnType("bigint"); + + b.Property("PersonnelCode") + .HasColumnType("bigint"); + + b.Property("SetContractDate") + .HasColumnType("datetime2"); + + b.Property("Signature") + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b.Property("WorkingHoursWeekly") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("WorkshopAddress1") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("WorkshopAddress2") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("WorkshopIds") + .HasColumnType("bigint"); + + b.Property("YearlySalaryId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("EmployeeId"); + + b.HasIndex("EmployerId"); + + b.HasIndex("JobTypeId"); + + b.HasIndex("MandatoryHoursid"); + + b.HasIndex("WorkshopIds"); + + b.HasIndex("YearlySalaryId"); + + b.ToTable("Contracts", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ContractingPartyAccountAgg.ContractingPartyAccount", b => + { + b.Property("PersonalContractingPartyId") + .HasColumnType("bigint"); + + b.Property("AccountId") + .HasColumnType("bigint"); + + b.HasKey("PersonalContractingPartyId", "AccountId"); + + b.ToTable("ContractingPartyAccount", (string)null); + }); + + modelBuilder.Entity("Company.Domain.CrossJobAgg.CrossJob", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("CrossJobGuildId") + .HasColumnType("bigint"); + + b.Property("EquivalentRialOver") + .HasColumnType("bigint"); + + b.Property("EquivalentRialUnder") + .HasColumnType("bigint"); + + b.Property("SalaryRatioOver") + .HasColumnType("float"); + + b.Property("SalaryRatioUnder") + .HasColumnType("float"); + + b.HasKey("id"); + + b.HasIndex("CrossJobGuildId"); + + b.ToTable("CrossJobs", (string)null); + }); + + modelBuilder.Entity("Company.Domain.CrossJobGuildAgg.CrossJobGuild", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EconomicCode") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Title") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Year") + .HasMaxLength(4) + .HasColumnType("int"); + + b.HasKey("id"); + + b.ToTable("CrossJobGuilds", (string)null); + }); + + modelBuilder.Entity("Company.Domain.CrossJobItemsAgg.CrossJobItems", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("CrossJobId") + .HasColumnType("bigint"); + + b.Property("JobId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("CrossJobId"); + + b.HasIndex("JobId"); + + b.ToTable("CrossJobItems", (string)null); + }); + + modelBuilder.Entity("Company.Domain.CustomizeCheckoutAgg.CustomizeCheckout", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BaseYearsPay") + .HasColumnType("float"); + + b.Property("BonusesPay") + .HasColumnType("float"); + + b.Property("ContractEnd") + .HasColumnType("datetime2"); + + b.Property("ContractId") + .HasColumnType("bigint"); + + b.Property("ContractNo") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("ContractStart") + .HasColumnType("datetime2"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DailyWage") + .HasColumnType("float"); + + b.Property("DateOfBirth") + .HasColumnType("datetime2"); + + b.Property("EarlyExitDeduction") + .HasColumnType("float"); + + b.Property("EmployeeFName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("EmployeeLName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("FamilyAllowance") + .HasColumnType("float"); + + b.Property("FineAbsenceDeduction") + .HasColumnType("float"); + + b.Property("FineDeduction") + .HasColumnType("float"); + + b.Property("FridayPay") + .HasColumnType("float"); + + b.Property("InstallmentDeduction") + .HasColumnType("float"); + + b.Property("InsuranceDeduction") + .HasColumnType("float"); + + b.Property("LateToWorkDeduction") + .HasColumnType("float"); + + b.Property("LateToWorkValue") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("LeavePay") + .HasColumnType("float"); + + b.Property("MarriedAllowance") + .HasColumnType("float"); + + b.Property("MonthInt") + .HasColumnType("int"); + + b.Property("MonthlySalary") + .HasColumnType("float"); + + b.Property("NationalCode") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("NightWorkPay") + .HasColumnType("float"); + + b.Property("OverTimePay") + .HasColumnType("float"); + + b.Property("RewardPay") + .HasColumnType("float"); + + b.Property("SalaryAidDeduction") + .HasColumnType("float"); + + b.Property("SettingSalary") + .HasColumnType("float"); + + b.Property("ShiftPay") + .HasColumnType("float"); + + b.Property("ShiftStatus") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("SumOfWorkingDays") + .HasColumnType("nvarchar(max)"); + + b.Property("TaxDeduction") + .HasColumnType("float"); + + b.Property("TotalClaims") + .HasColumnType("nvarchar(max)"); + + b.Property("TotalDeductions") + .HasColumnType("nvarchar(max)"); + + b.Property("TotalPayment") + .HasColumnType("float"); + + b.Property("WorkshopFullName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("YearInt") + .HasColumnType("int"); + + b.HasKey("id"); + + b.HasIndex("EmployeeId"); + + b.HasIndex("WorkshopId"); + + b.ToTable("CustomizeCheckouts", (string)null); + }); + + modelBuilder.Entity("Company.Domain.CustomizeCheckoutTempAgg.CustomizeCheckoutTemp", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BaseYearsPay") + .HasColumnType("float"); + + b.Property("BonusesPay") + .HasColumnType("float"); + + b.Property("ContractEnd") + .HasColumnType("datetime2"); + + b.Property("ContractId") + .HasColumnType("bigint"); + + b.Property("ContractNo") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("ContractStart") + .HasColumnType("datetime2"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DailyWage") + .HasColumnType("float"); + + b.Property("DateOfBirth") + .HasColumnType("datetime2"); + + b.Property("EarlyExitDeduction") + .HasColumnType("float"); + + b.Property("EmployeeFName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("EmployeeLName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("FamilyAllowance") + .HasColumnType("float"); + + b.Property("FineAbsenceDeduction") + .HasColumnType("float"); + + b.Property("FineDeduction") + .HasColumnType("float"); + + b.Property("FridayPay") + .HasColumnType("float"); + + b.Property("InstallmentDeduction") + .HasColumnType("float"); + + b.Property("InsuranceDeduction") + .HasColumnType("float"); + + b.Property("LateToWorkDeduction") + .HasColumnType("float"); + + b.Property("LateToWorkValue") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("LeavePay") + .HasColumnType("float"); + + b.Property("MarriedAllowance") + .HasColumnType("float"); + + b.Property("MonthInt") + .HasColumnType("int"); + + b.Property("MonthlySalary") + .HasColumnType("float"); + + b.Property("NationalCode") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("NightWorkPay") + .HasColumnType("float"); + + b.Property("OverTimePay") + .HasColumnType("float"); + + b.Property("RewardPay") + .HasColumnType("float"); + + b.Property("SalaryAidDeduction") + .HasColumnType("float"); + + b.Property("SettingSalary") + .HasColumnType("float"); + + b.Property("ShiftPay") + .HasColumnType("float"); + + b.Property("ShiftStatus") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("SumOfWorkingDays") + .HasColumnType("nvarchar(max)"); + + b.Property("TaxDeduction") + .HasColumnType("float"); + + b.Property("TotalClaims") + .HasColumnType("nvarchar(max)"); + + b.Property("TotalDeductions") + .HasColumnType("nvarchar(max)"); + + b.Property("TotalPayment") + .HasColumnType("float"); + + b.Property("WorkshopFullName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("YearInt") + .HasColumnType("int"); + + b.HasKey("id"); + + b.HasIndex("EmployeeId"); + + b.HasIndex("WorkshopId"); + + b.ToTable("CustomizeCheckoutTemps", (string)null); + }); + + modelBuilder.Entity("Company.Domain.CustomizeWorkshopEmployeeSettingsAgg.Entities.CustomizeWorkshopEmployeeSettings", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("CustomizeWorkshopGroupSettingId") + .HasColumnType("bigint"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("FridayWork") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b.Property("HolidayWork") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b.Property("IsSettingChanged") + .HasColumnType("bit"); + + b.Property("IsShiftChanged") + .HasColumnType("bit"); + + b.Property("LeavePermittedDays") + .HasColumnType("int"); + + b.Property("Salary") + .HasColumnType("float"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("WorkshopShiftStatus") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b.HasKey("id"); + + b.HasIndex("CustomizeWorkshopGroupSettingId"); + + b.ToTable("CustomizeWorkshopEmployeeSettings", (string)null); + }); + + modelBuilder.Entity("Company.Domain.CustomizeWorkshopGroupSettingsAgg.Entities.CustomizeWorkshopGroupSettings", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("CustomizeWorkshopSettingId") + .HasColumnType("bigint"); + + b.Property("FridayWork") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b.Property("GroupName") + .HasMaxLength(120) + .HasColumnType("nvarchar(120)"); + + b.Property("HolidayWork") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b.Property("IsSettingChange") + .HasColumnType("bit"); + + b.Property("IsShiftChange") + .HasColumnType("bit"); + + b.Property("LeavePermittedDays") + .HasColumnType("int"); + + b.Property("MainGroup") + .HasColumnType("bit"); + + b.Property("Salary") + .HasColumnType("float"); + + b.Property("WorkshopShiftStatus") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b.HasKey("id"); + + b.HasIndex("CustomizeWorkshopSettingId"); + + b.ToTable("CustomizeWorkshopGroupSettings", (string)null); + }); + + modelBuilder.Entity("Company.Domain.CustomizeWorkshopSettingsAgg.Entities.CustomizeWorkshopSettings", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BaseYearsPayInEndOfYear") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b.Property("BonusesPaysInEndOfMonth") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Currency") + .HasColumnType("int"); + + b.Property("EndTimeOffSet") + .HasColumnType("time"); + + b.Property("FridayWork") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b.Property("HolidayWork") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b.Property("LeavePermittedDays") + .HasColumnType("int"); + + b.Property("MaxMonthDays") + .HasColumnType("int"); + + b.Property("OverTimeThresholdMinute") + .HasColumnType("int"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("WorkshopShiftStatus") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b.HasKey("id"); + + b.HasIndex("WorkshopId") + .IsUnique(); + + b.ToTable("CustomizeWorkshopSettings", (string)null); + }); + + modelBuilder.Entity("Company.Domain.DateSalaryAgg.DateSalary", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EndDateFa") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("EndDateGr") + .HasColumnType("datetime2"); + + b.Property("StartDateFa") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("StartDateGr") + .HasColumnType("datetime2"); + + b.Property("Year") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)"); + + b.HasKey("id"); + + b.ToTable("DateSalaries", (string)null); + }); + + modelBuilder.Entity("Company.Domain.DateSalaryItemAgg.DateSalaryItem", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DateSalaryId") + .HasColumnType("bigint"); + + b.Property("Percent") + .HasColumnType("float"); + + b.Property("PercentageId") + .HasColumnType("bigint"); + + b.Property("Salary") + .HasColumnType("float"); + + b.HasKey("id"); + + b.HasIndex("DateSalaryId"); + + b.HasIndex("PercentageId"); + + b.ToTable("DateSalaryItems", (string)null); + }); + + modelBuilder.Entity("Company.Domain.EmployeeAccountAgg.EmployeeAccount", b => + { + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("AccountId") + .HasColumnType("bigint"); + + b.HasKey("EmployeeId", "AccountId"); + + b.ToTable("EmployeeAccounts", (string)null); + }); + + modelBuilder.Entity("Company.Domain.EmployeeAgg.Employee", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Address") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("BankBranch") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("BankCardNumber") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("City") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DateOfBirth") + .HasColumnType("datetime2"); + + b.Property("DateOfIssue") + .HasColumnType("datetime2"); + + b.Property("EservicePassword") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("EserviceUserName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("FName") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("FatherName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("FieldOfStudy") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Gender") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("IdNumber") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("InsuranceCode") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("InsuranceHistoryByMonth") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("InsuranceHistoryByYear") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("IsActive") + .HasColumnType("bit"); + + b.Property("IsActiveString") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("IsAuthorized") + .HasColumnType("bit"); + + b.Property("LName") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("LevelOfEducation") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("MaritalStatus") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("MclsPassword") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("MclsUserName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("MilitaryService") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("NationalCode") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("Nationality") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("NumberOfChildren") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("OfficePhone") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("Phone") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("PlaceOfIssue") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("SanaPassword") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("SanaUserName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("State") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("TaxOfficeUserName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("TaxOfficepassword") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.HasKey("id"); + + b.ToTable("Employees", (string)null); + }); + + modelBuilder.Entity("Company.Domain.EmployeeBankInformationAgg.EmployeeBankInformation", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BankAccountNumber") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("BankId") + .HasColumnType("bigint"); + + b.Property("CardNumber") + .HasMaxLength(16) + .HasColumnType("nvarchar(16)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("IsDefault") + .HasColumnType("bit"); + + b.Property("ShebaNumber") + .HasMaxLength(26) + .HasColumnType("nvarchar(26)"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("BankId"); + + b.HasIndex("EmployeeId"); + + b.ToTable("EmployeeBankInformationSet", (string)null); + }); + + modelBuilder.Entity("Company.Domain.EmployeeChildrenAgg.EmployeeChildren", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DateOfBirth") + .HasColumnType("datetime2"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("FName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("ParentNationalCode") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.HasKey("id"); + + b.HasIndex("EmployeeId"); + + b.ToTable("EmployeeChildren", (string)null); + }); + + modelBuilder.Entity("Company.Domain.EmployeeClientTempAgg.EmployeeClientTemp", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployeeFullName") + .HasColumnType("nvarchar(max)"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("MaritalStatus") + .HasColumnType("nvarchar(max)"); + + b.Property("StartWorkDate") + .HasColumnType("datetime2"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.ToTable("EmployeeClientTemps"); + }); + + modelBuilder.Entity("Company.Domain.EmployeeComputeOptionsAgg.EmployeeComputeOptions", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BonusesOptions") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("ComputeOptions") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("YearsOptions") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.HasKey("id"); + + b.ToTable("EmployeeComputeOptions", (string)null); + }); + + modelBuilder.Entity("Company.Domain.EmployeeDocumentItemAgg.EmployeeDocumentItem", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("ConfirmationDateTime") + .HasColumnType("datetime2"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DocumentLabel") + .IsRequired() + .HasMaxLength(31) + .HasColumnType("nvarchar(31)"); + + b.Property("DocumentStatus") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("EmployeeDocumentId") + .HasColumnType("bigint"); + + b.Property("EmployeeDocumentsAdminViewId") + .HasColumnType("bigint"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("MediaId") + .HasColumnType("bigint"); + + b.Property("RejectionReason") + .HasMaxLength(150) + .HasColumnType("nvarchar(150)"); + + b.Property("ReviewedById") + .HasMaxLength(120) + .HasColumnType("bigint"); + + b.Property("UploaderId") + .HasColumnType("bigint"); + + b.Property("UploaderType") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("EmployeeDocumentId"); + + b.HasIndex("EmployeeDocumentsAdminViewId"); + + b.ToTable("EmployeeDocumentItems", (string)null); + }); + + modelBuilder.Entity("Company.Domain.EmployeeDocumentsAdminSelectionAgg.EmployeeDocumentsAdminSelection", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("EmployeeId") + .IsUnique(); + + b.ToTable("EmployeeDocumentsAdminSelection", (string)null); + }); + + modelBuilder.Entity("Company.Domain.EmployeeDocumentsAgg.EmployeeDocuments", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("Gender") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("HasRejectedItems") + .HasColumnType("bit"); + + b.Property("IsConfirmed") + .HasColumnType("bit"); + + b.Property("IsSentToChecker") + .HasColumnType("bit"); + + b.Property("RequiredItemsSubmittedByClient") + .HasColumnType("bit"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("EmployeeId"); + + b.HasIndex("WorkshopId"); + + b.ToTable("EmployeeDocuments", (string)null); + }); + + modelBuilder.Entity("Company.Domain.EmployeeInsurancListDataAgg.EmployeeInsurancListData", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BaseYears") + .HasColumnType("float"); + + b.Property("BenefitsIncludedContinuous") + .HasColumnType("float"); + + b.Property("BenefitsIncludedNonContinuous") + .HasColumnType("float"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DailyWage") + .HasColumnType("float"); + + b.Property("DailyWagePlusBaseYears") + .HasColumnType("float"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("IncludeStatus") + .HasColumnType("bit"); + + b.Property("InsuranceListId") + .HasColumnType("bigint"); + + b.Property("InsuranceShare") + .HasColumnType("float"); + + b.Property("JobId") + .HasColumnType("bigint"); + + b.Property("LeftWorkDate") + .HasColumnType("datetime2(7)"); + + b.Property("MarriedAllowance") + .HasColumnType("float"); + + b.Property("MonthlyBenefits") + .HasColumnType("float"); + + b.Property("MonthlyBenefitsIncluded") + .HasColumnType("float"); + + b.Property("MonthlySalary") + .HasColumnType("float"); + + b.Property("StartWorkDate") + .HasColumnType("datetime2"); + + b.Property("WorkingDays") + .HasColumnType("int"); + + b.HasKey("id"); + + b.ToTable("EmployeeInsurancListData", (string)null); + }); + + modelBuilder.Entity("Company.Domain.EmployeeInsuranceRecordAgg.EmployeeInsuranceRecord", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DateOfEnd") + .HasColumnType("datetime2"); + + b.Property("DateOfStart") + .HasColumnType("datetime2"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("WorkShopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("EmployeeId"); + + b.HasIndex("WorkShopId"); + + b.ToTable("EmployeeInsuranceRecord", (string)null); + }); + + modelBuilder.Entity("Company.Domain.EmployerAccountAgg.EmployerAccount", b => + { + b.Property("EmployerId") + .HasColumnType("bigint"); + + b.Property("AccountId") + .HasColumnType("bigint"); + + b.HasKey("EmployerId", "AccountId"); + + b.ToTable("EmployerAccounts", (string)null); + }); + + modelBuilder.Entity("Company.Domain.Evidence.Evidence", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BoardType_Id") + .HasColumnType("int"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Description") + .HasColumnType("nvarchar(max)"); + + b.Property("File_Id") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("BoardType_Id"); + + b.HasIndex("File_Id"); + + b.ToTable("Evidences", (string)null); + }); + + modelBuilder.Entity("Company.Domain.EvidenceDetail.EvidenceDetail", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Day") + .HasColumnType("nvarchar(max)"); + + b.Property("Description") + .HasColumnType("nvarchar(max)"); + + b.Property("Evidence_Id") + .HasColumnType("bigint"); + + b.Property("FromDate") + .HasColumnType("datetime2"); + + b.Property("Title") + .HasColumnType("nvarchar(max)"); + + b.Property("ToDate") + .HasColumnType("datetime2"); + + b.HasKey("id"); + + b.HasIndex("Evidence_Id"); + + b.ToTable("EvidenceDetails", (string)null); + }); + + modelBuilder.Entity("Company.Domain.File1.File1", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("ArchiveNo") + .HasColumnType("bigint"); + + b.Property("Client") + .HasColumnType("int"); + + b.Property("ClientVisitDate") + .HasColumnType("datetime2"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Description") + .HasColumnType("nvarchar(max)"); + + b.Property("FileClass") + .HasColumnType("nvarchar(max)"); + + b.Property("HasMandate") + .HasColumnType("int"); + + b.Property("ProceederReference") + .HasColumnType("nvarchar(max)"); + + b.Property("Reqester") + .HasColumnType("bigint"); + + b.Property("Status") + .HasColumnType("int"); + + b.Property("Summoned") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.ToTable("Files", (string)null); + }); + + modelBuilder.Entity("Company.Domain.FileAlert.FileAlert", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("AdditionalDeadline") + .HasColumnType("int"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("FileState_Id") + .HasColumnType("bigint"); + + b.Property("File_Id") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("FileState_Id"); + + b.HasIndex("File_Id"); + + b.ToTable("File_Alerts", (string)null); + }); + + modelBuilder.Entity("Company.Domain.FileAndFileEmployerAgg.FileAndFileEmployer", b => + { + b.Property("FileId") + .HasColumnType("bigint"); + + b.Property("FileEmployerId") + .HasColumnType("bigint"); + + b.HasKey("FileId", "FileEmployerId"); + + b.HasIndex("FileEmployerId"); + + b.ToTable("FileAndFileEmployers", (string)null); + }); + + modelBuilder.Entity("Company.Domain.FileEmployeeAgg.FileEmployee", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DateOfBirth") + .HasColumnType("datetime2"); + + b.Property("EservicePassword") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("EserviceUserName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("FName") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("FatherName") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("FieldOfStudy") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("Gender") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("IdNumber") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("InsuranceCode") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("IsActive") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("LName") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("LevelOfEducation") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("MaritalStatus") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("MclsPassword") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("MclsUserName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("NationalCode") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("OfficePhone") + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("Phone") + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("RepresentativeFullName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("RepresentativeId") + .HasColumnType("bigint"); + + b.Property("SanaPassword") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("SanaUserName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("TaxOfficeUserName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("TaxOfficepassword") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.HasKey("id"); + + b.HasIndex("RepresentativeId"); + + b.ToTable("FileEmployee", (string)null); + }); + + modelBuilder.Entity("Company.Domain.FileEmployerAgg.FileEmployer", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DateOfBirth") + .HasColumnType("datetime2"); + + b.Property("EservicePassword") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("EserviceUserName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("FName") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("FieldOfStudy") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("FullName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("Gender") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("IdNumber") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("InsuranceWorkshopCode") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("IsActive") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("IsLegal") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("LName") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("LegalName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("LevelOfEducation") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("MaritalStatus") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("MclsPassword") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("MclsUserName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("NationalCode") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("NationalId") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("OfficePhone") + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("Phone") + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("RegisterId") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("RepresentativeFullName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("RepresentativeId") + .HasColumnType("bigint"); + + b.Property("SanaPassword") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("SanaUserName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("TaxOfficeUserName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("TaxOfficepassword") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.HasKey("id"); + + b.HasIndex("RepresentativeId"); + + b.ToTable("FileEmployer", (string)null); + }); + + modelBuilder.Entity("Company.Domain.FileState.FileState", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("FileTiming_Id") + .HasColumnType("bigint"); + + b.Property("State") + .HasColumnType("int"); + + b.Property("Title") + .HasColumnType("nvarchar(max)"); + + b.HasKey("id"); + + b.HasIndex("FileTiming_Id"); + + b.ToTable("File_States", (string)null); + }); + + modelBuilder.Entity("Company.Domain.FileTiming.FileTiming", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Deadline") + .HasColumnType("int"); + + b.Property("Tips") + .HasColumnType("nvarchar(max)"); + + b.Property("Title") + .HasColumnType("nvarchar(max)"); + + b.HasKey("id"); + + b.ToTable("File_Timings", (string)null); + }); + + modelBuilder.Entity("Company.Domain.FileTitle.FileTitle", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Title") + .HasColumnType("nvarchar(max)"); + + b.Property("Type") + .HasColumnType("nvarchar(max)"); + + b.HasKey("id"); + + b.ToTable("File_Titles", (string)null); + }); + + modelBuilder.Entity("Company.Domain.FinancialStatmentAgg.FinancialStatment", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("ContractingPartyId") + .HasColumnType("bigint"); + + b.Property("ContractingPartyName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.HasKey("id"); + + b.ToTable("FinancialStatments", (string)null); + }); + + modelBuilder.Entity("Company.Domain.FinancialTransactionAgg.FinancialTransaction", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Balance") + .HasColumnType("float"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Creditor") + .HasColumnType("float"); + + b.Property("Deptor") + .HasColumnType("float"); + + b.Property("Description") + .HasMaxLength(600) + .HasColumnType("nvarchar(600)"); + + b.Property("DescriptionOption") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("FinancialStatementId") + .HasColumnType("bigint"); + + b.Property("MessageText") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("SentSms") + .HasColumnType("bit"); + + b.Property("SentSmsDateFa") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("TdateFa") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("TdateGr") + .HasColumnType("datetime2"); + + b.Property("TypeOfTransaction") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.HasKey("id"); + + b.HasIndex("FinancialStatementId"); + + b.ToTable("FinancialTransactions", (string)null); + }); + + modelBuilder.Entity("Company.Domain.FineAgg.Fine", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Amount") + .HasColumnType("float"); + + b.Property("CreatedByAccountId") + .HasColumnType("bigint"); + + b.Property("CreatedByUserType") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("FineDate") + .HasColumnType("datetime2"); + + b.Property("IsActive") + .IsRequired() + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("LastModifiedByAccountId") + .HasColumnType("bigint"); + + b.Property("LastModifiedByUserType") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("Title") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.ToTable("Fines", (string)null); + }); + + modelBuilder.Entity("Company.Domain.FineSubjectAgg.FineSubject", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Amount") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Title") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.ToTable("FineSubjects", (string)null); + }); + + modelBuilder.Entity("Company.Domain.GroupPlanAgg.GroupPlan", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("AnnualSalary") + .HasColumnType("float"); + + b.Property("BaseSalary") + .HasColumnType("float"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("GroupNo") + .HasMaxLength(2) + .HasColumnType("nvarchar(2)"); + + b.Property("JobSalary") + .HasColumnType("float"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("WorkshopPlanId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("WorkshopPlanId"); + + b.ToTable("GroupPlans", (string)null); + }); + + modelBuilder.Entity("Company.Domain.GroupPlanJobItemAgg.GroupPlanJobItem", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("GroupNo") + .HasMaxLength(2) + .HasColumnType("nvarchar(2)"); + + b.Property("GroupPlanId") + .HasColumnType("bigint"); + + b.Property("JobId") + .HasColumnType("bigint"); + + b.Property("JobName") + .HasMaxLength(150) + .HasColumnType("nvarchar(150)"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("WorkshopPlanId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("GroupPlanId"); + + b.ToTable("GroupPlanJobItems", (string)null); + }); + + modelBuilder.Entity("Company.Domain.HolidayAgg.Holiday", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Year") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)"); + + b.HasKey("id"); + + b.ToTable("Holidays", (string)null); + }); + + modelBuilder.Entity("Company.Domain.HolidayItemAgg.HolidayItem", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("HolidayId") + .HasColumnType("bigint"); + + b.Property("HolidayYear") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)"); + + b.Property("Holidaydate") + .HasColumnType("datetime2"); + + b.HasKey("id"); + + b.HasIndex("HolidayId"); + + b.ToTable("Holidayitems", (string)null); + }); + + modelBuilder.Entity("Company.Domain.InstitutionContractAgg.InstitutionContract", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Address") + .HasMaxLength(250) + .HasColumnType("nvarchar(250)"); + + b.Property("City") + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("ContractAmount") + .HasColumnType("float"); + + b.Property("ContractDateFa") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("ContractDateGr") + .HasColumnType("datetime2"); + + b.Property("ContractEndFa") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("ContractEndGr") + .HasColumnType("datetime2"); + + b.Property("ContractNo") + .HasMaxLength(40) + .HasColumnType("nvarchar(40)"); + + b.Property("ContractStartFa") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("ContractStartGr") + .HasColumnType("datetime2"); + + b.Property("ContractingPartyId") + .HasColumnType("bigint"); + + b.Property("ContractingPartyName") + .HasMaxLength(80) + .HasColumnType("nvarchar(80)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DailyCompenseation") + .HasColumnType("float"); + + b.Property("Description") + .HasMaxLength(10000) + .HasColumnType("nvarchar(max)"); + + b.Property("EmployeeManualCount") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("ExtensionNo") + .HasColumnType("int"); + + b.Property("HasValueAddedTax") + .HasColumnType("nvarchar(max)"); + + b.Property("IsActiveString") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("Obligation") + .HasColumnType("float"); + + b.Property("OfficialCompany") + .HasMaxLength(12) + .HasColumnType("nvarchar(12)"); + + b.Property("RepresentativeId") + .HasColumnType("bigint"); + + b.Property("RepresentativeName") + .HasMaxLength(80) + .HasColumnType("nvarchar(80)"); + + b.Property("Signature") + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b.Property("State") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("TotalAmount") + .HasColumnType("float"); + + b.Property("TypeOfContract") + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("ValueAddedTax") + .HasColumnType("float"); + + b.Property("WorkshopManualCount") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.HasKey("id"); + + b.ToTable("InstitutionContracts", (string)null); + }); + + modelBuilder.Entity("Company.Domain.InstitutionContractContactInfoAgg.InstitutionContractContactInfo", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("FnameLname") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("InstitutionContractId") + .HasColumnType("bigint"); + + b.Property("PhoneNumber") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("PhoneType") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("Position") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("SendSms") + .HasColumnType("bit"); + + b.HasKey("id"); + + b.HasIndex("InstitutionContractId"); + + b.ToTable("InstitutinContractContactInfo", (string)null); + }); + + modelBuilder.Entity("Company.Domain.InstitutionPlanAgg.InstitutionPlan", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BaseContractAmont") + .HasColumnType("float"); + + b.Property("CountPerson") + .HasColumnType("int"); + + b.Property("FinalContractAmont") + .HasColumnType("float"); + + b.Property("IncreasePercentage") + .HasColumnType("float"); + + b.HasKey("id"); + + b.ToTable("InstitutionPlan", (string)null); + }); + + modelBuilder.Entity("Company.Domain.InstitutionPlanAgg.PlanPercentage", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("ContractAndCheckoutInPersonPercent") + .HasColumnType("int"); + + b.Property("ContractAndCheckoutPercent") + .HasColumnType("int"); + + b.Property("CustomizeCheckoutPercent") + .HasColumnType("int"); + + b.Property("InsuranceInPersonPercent") + .HasColumnType("int"); + + b.Property("InsurancePercent") + .HasColumnType("int"); + + b.Property("RollCallPercent") + .HasColumnType("int"); + + b.HasKey("id"); + + b.ToTable("PlanPercentage", (string)null); + }); + + modelBuilder.Entity("Company.Domain.InsurancJobAgg.InsuranceJob", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EconomicCode") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("InsuranceJobTitle") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("Year") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)"); + + b.Property("YearlySalaryId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.ToTable("InsuranceJobs", (string)null); + }); + + modelBuilder.Entity("Company.Domain.InsurancWorkshopInfoAgg.InsuranceWorkshopInfo", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Address") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("AgreementNumber") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployerName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("InsuranceCode") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("ListNumber") + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("WorkshopName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.HasKey("id"); + + b.HasIndex("WorkshopId") + .IsUnique(); + + b.ToTable("InsuranceWorkshopInformation", (string)null); + }); + + modelBuilder.Entity("Company.Domain.InsuranceAgg.Insurance", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Address") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployerStr") + .HasColumnType("nvarchar(max)"); + + b.Property("ListNumber") + .HasColumnType("nvarchar(max)"); + + b.Property("Month") + .HasMaxLength(2) + .HasColumnType("int"); + + b.Property("WorkShopId") + .HasColumnType("bigint"); + + b.Property("WorkShopStr") + .HasColumnType("nvarchar(max)"); + + b.Property("Year") + .HasMaxLength(4) + .HasColumnType("int"); + + b.HasKey("id"); + + b.HasIndex("WorkShopId"); + + b.ToTable("Insurances", (string)null); + }); + + modelBuilder.Entity("Company.Domain.InsuranceEmployeeInfoAgg.InsuranceEmployeeInfo", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DateOfBirth") + .HasColumnType("datetime2"); + + b.Property("DateOfIssue") + .HasColumnType("datetime2"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("FName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("FatherName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("Gender") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("IdNumber") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("InsuranceCode") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("LName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("NationalCode") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("PlaceOfIssue") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.HasKey("id"); + + b.HasIndex("EmployeeId") + .IsUnique(); + + b.ToTable("InsuranceEmployeeInformation", (string)null); + }); + + modelBuilder.Entity("Company.Domain.InsuranceJobAndJobsAgg.InsuranceJobAndJobs", b => + { + b.Property("JobId") + .HasColumnType("bigint"); + + b.Property("InsuranceJobItemId") + .HasColumnType("bigint"); + + b.HasKey("JobId", "InsuranceJobItemId"); + + b.HasIndex("InsuranceJobItemId"); + + b.ToTable("InsuranceJobAndJobs", (string)null); + }); + + modelBuilder.Entity("Company.Domain.InsuranceJobItemAgg.InsuranceJobItem", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("InsuranceJobId") + .HasColumnType("bigint"); + + b.Property("PercentageLessThan") + .HasColumnType("float"); + + b.Property("PercentageMoreThan") + .HasColumnType("float"); + + b.Property("SalaeyLessThan") + .HasColumnType("float"); + + b.Property("SalaryMoreThan") + .HasColumnType("float"); + + b.HasKey("id"); + + b.HasIndex("InsuranceJobId"); + + b.ToTable("InsuranceJobItems", (string)null); + }); + + modelBuilder.Entity("Company.Domain.InsuranceListAgg.InsuranceList", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("ConfirmSentlist") + .HasColumnType("bit"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DifficultJobsInsuranc") + .HasColumnType("float"); + + b.Property("EmployerShare") + .HasColumnType("float"); + + b.Property("EndDate") + .HasColumnType("datetime2"); + + b.Property("Included") + .HasColumnType("float"); + + b.Property("IncludedAndNotIncluded") + .HasColumnType("float"); + + b.Property("InsuredShare") + .HasColumnType("float"); + + b.Property("Month") + .HasMaxLength(2) + .HasColumnType("nvarchar(2)"); + + b.Property("StartDate") + .HasColumnType("datetime2"); + + b.Property("SumOfBaseYears") + .HasColumnType("float"); + + b.Property("SumOfBenefitsIncluded") + .HasColumnType("float"); + + b.Property("SumOfDailyWage") + .HasColumnType("float"); + + b.Property("SumOfDailyWagePlusBaseYears") + .HasColumnType("float"); + + b.Property("SumOfEmployees") + .HasColumnType("int"); + + b.Property("SumOfMarriedAllowance") + .HasColumnType("float"); + + b.Property("SumOfSalaries") + .HasColumnType("float"); + + b.Property("SumOfWorkingDays") + .HasColumnType("int"); + + b.Property("UnEmploymentInsurance") + .HasColumnType("float"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("Year") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)"); + + b.HasKey("id"); + + b.ToTable("InsuranceLists", (string)null); + }); + + modelBuilder.Entity("Company.Domain.InsuranceWorkshopAgg.InsuranceListWorkshop", b => + { + b.Property("InsurancListId") + .HasColumnType("bigint"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("InsurancListId", "WorkshopId"); + + b.HasIndex("WorkshopId"); + + b.ToTable("InsuranceListWorkshops", (string)null); + }); + + modelBuilder.Entity("Company.Domain.InsuranceYearlySalaryAgg.InsuranceYearlySalary", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EndDate") + .HasColumnType("datetime2"); + + b.Property("Group1") + .HasColumnType("float"); + + b.Property("Group10") + .HasColumnType("float"); + + b.Property("Group11") + .HasColumnType("float"); + + b.Property("Group12") + .HasColumnType("float"); + + b.Property("Group13") + .HasColumnType("float"); + + b.Property("Group14") + .HasColumnType("float"); + + b.Property("Group15") + .HasColumnType("float"); + + b.Property("Group16") + .HasColumnType("float"); + + b.Property("Group17") + .HasColumnType("float"); + + b.Property("Group18") + .HasColumnType("float"); + + b.Property("Group19") + .HasColumnType("float"); + + b.Property("Group2") + .HasColumnType("float"); + + b.Property("Group20") + .HasColumnType("float"); + + b.Property("Group21") + .HasColumnType("float"); + + b.Property("Group22") + .HasColumnType("float"); + + b.Property("Group23") + .HasColumnType("float"); + + b.Property("Group24") + .HasColumnType("float"); + + b.Property("Group25") + .HasColumnType("float"); + + b.Property("Group26") + .HasColumnType("float"); + + b.Property("Group27") + .HasColumnType("float"); + + b.Property("Group28") + .HasColumnType("float"); + + b.Property("Group29") + .HasColumnType("float"); + + b.Property("Group3") + .HasColumnType("float"); + + b.Property("Group30") + .HasColumnType("float"); + + b.Property("Group4") + .HasColumnType("float"); + + b.Property("Group5") + .HasColumnType("float"); + + b.Property("Group6") + .HasColumnType("float"); + + b.Property("Group7") + .HasColumnType("float"); + + b.Property("Group8") + .HasColumnType("float"); + + b.Property("Group9") + .HasColumnType("float"); + + b.Property("StartDate") + .HasColumnType("datetime2"); + + b.Property("Year") + .HasColumnType("int"); + + b.HasKey("id"); + + b.ToTable("InsuranceYearlySalaries", (string)null); + }); + + modelBuilder.Entity("Company.Domain.JobAgg.Job", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("JobCode") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("JobName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.HasKey("id"); + + b.ToTable("Jobs", (string)null); + }); + + modelBuilder.Entity("Company.Domain.LeaveAgg.Leave", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Decription") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("EmployeeFullName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("EndLeave") + .HasColumnType("datetime2"); + + b.Property("HasShiftDuration") + .HasColumnType("bit"); + + b.Property("IsAccepted") + .HasColumnType("bit"); + + b.Property("LeaveHourses") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("LeaveType") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("Month") + .HasColumnType("int"); + + b.Property("PaidLeaveType") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("ShiftDuration") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("StartLeave") + .HasColumnType("datetime2"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("WorkshopName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Year") + .HasColumnType("int"); + + b.HasKey("id"); + + b.ToTable("Leave", (string)null); + }); + + modelBuilder.Entity("Company.Domain.LeftWorkAgg.LeftWork", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("AddBonusesPay") + .HasColumnType("bit"); + + b.Property("AddLeavePay") + .HasColumnType("bit"); + + b.Property("AddYearsPay") + .HasColumnType("bit"); + + b.Property("BonusesOptions") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("ComputeOptions") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployeeFullName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("IncludeStatus") + .HasColumnType("bit"); + + b.Property("JobId") + .HasColumnType("bigint"); + + b.Property("LeftWorkDate") + .HasColumnType("datetime2"); + + b.Property("StartWorkDate") + .HasColumnType("datetime2"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("WorkshopName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.HasKey("id"); + + b.HasIndex("EmployeeId"); + + b.HasIndex("WorkshopId"); + + b.ToTable("LeftWork", (string)null); + }); + + modelBuilder.Entity("Company.Domain.LeftWorkInsuranceAgg.LeftWorkInsurance", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployeeFullName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("IncludeStatus") + .HasColumnType("bit"); + + b.Property("JobId") + .HasColumnType("bigint"); + + b.Property("LeftWorkDate") + .HasColumnType("datetime2(7)"); + + b.Property("StartWorkDate") + .HasColumnType("datetime2"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("WorkshopName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.HasKey("id"); + + b.HasIndex("EmployeeId"); + + b.HasIndex("WorkshopId"); + + b.ToTable("LeftWorkInsurances", (string)null); + }); + + modelBuilder.Entity("Company.Domain.LeftWorkTempAgg.LeftWorkTemp", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("JobId") + .HasColumnType("bigint"); + + b.Property("LastDayStanding") + .HasColumnType("datetime2"); + + b.Property("LeftWork") + .HasColumnType("datetime2"); + + b.Property("LeftWorkId") + .HasColumnType("bigint"); + + b.Property("LeftWorkType") + .HasColumnType("int"); + + b.Property("StartWork") + .HasColumnType("datetime2"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.ToTable("LeftWorkTemps"); + }); + + modelBuilder.Entity("Company.Domain.LoanAgg.Entities.Loan", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Amount") + .HasColumnType("float"); + + b.Property("AmountPerMonth") + .HasColumnType("float"); + + b.Property("Count") + .HasMaxLength(3) + .HasColumnType("nvarchar(3)"); + + b.Property("CreatedByAccountId") + .HasColumnType("bigint"); + + b.Property("CreatedByUserType") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("GetRounded") + .HasColumnType("bit"); + + b.Property("LoanGrantDate") + .HasColumnType("datetime2"); + + b.Property("StartInstallmentPayment") + .HasColumnType("datetime2"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.ToTable("Loan", (string)null); + }); + + modelBuilder.Entity("Company.Domain.MandatoryHoursAgg.MandatoryHours", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Aban") + .HasColumnType("float"); + + b.Property("AbanFridays") + .HasColumnType("int"); + + b.Property("AbanHolidays") + .HasColumnType("int"); + + b.Property("AbanMonadatoryDays") + .HasColumnType("int"); + + b.Property("Azar") + .HasColumnType("float"); + + b.Property("AzarFridays") + .HasColumnType("int"); + + b.Property("AzarHolidays") + .HasColumnType("int"); + + b.Property("AzarMonadatoryDays") + .HasColumnType("int"); + + b.Property("Bahman") + .HasColumnType("float"); + + b.Property("BahmanFridays") + .HasColumnType("int"); + + b.Property("BahmanHolidays") + .HasColumnType("int"); + + b.Property("BahmanMonadatoryDays") + .HasColumnType("int"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Dey") + .HasColumnType("float"); + + b.Property("DeyFridays") + .HasColumnType("int"); + + b.Property("DeyHolidays") + .HasColumnType("int"); + + b.Property("DeyMonadatoryDays") + .HasColumnType("int"); + + b.Property("Esfand") + .HasColumnType("float"); + + b.Property("EsfandFridays") + .HasColumnType("int"); + + b.Property("EsfandHolidays") + .HasColumnType("int"); + + b.Property("EsfandMonadatoryDays") + .HasColumnType("int"); + + b.Property("Farvardin") + .HasColumnType("float"); + + b.Property("FarvardinFridays") + .HasColumnType("int"); + + b.Property("FarvardinHolidays") + .HasColumnType("int"); + + b.Property("FarvardinMonadatoryDays") + .HasColumnType("int"); + + b.Property("Khordad") + .HasColumnType("float"); + + b.Property("KhordadFridays") + .HasColumnType("int"); + + b.Property("KhordadHolidays") + .HasColumnType("int"); + + b.Property("KhordadMonadatoryDays") + .HasColumnType("int"); + + b.Property("Mehr") + .HasColumnType("float"); + + b.Property("MehrFridays") + .HasColumnType("int"); + + b.Property("MehrHolidays") + .HasColumnType("int"); + + b.Property("MehrMonadatoryDays") + .HasColumnType("int"); + + b.Property("Mordad") + .HasColumnType("float"); + + b.Property("MordadFridays") + .HasColumnType("int"); + + b.Property("MordadHolidays") + .HasColumnType("int"); + + b.Property("MordadMonadatoryDays") + .HasColumnType("int"); + + b.Property("Ordibehesht") + .HasColumnType("float"); + + b.Property("OrdibeheshtFridays") + .HasColumnType("int"); + + b.Property("OrdibeheshtHolidays") + .HasColumnType("int"); + + b.Property("OrdibeheshtMonadatoryDays") + .HasColumnType("int"); + + b.Property("Shahrivar") + .HasColumnType("float"); + + b.Property("ShahrivarFridays") + .HasColumnType("int"); + + b.Property("ShahrivarHolidays") + .HasColumnType("int"); + + b.Property("ShahrivarMonadatoryDays") + .HasColumnType("int"); + + b.Property("Tir") + .HasColumnType("float"); + + b.Property("TirFridays") + .HasColumnType("int"); + + b.Property("TirHolidays") + .HasColumnType("int"); + + b.Property("TirMonadatoryDays") + .HasColumnType("int"); + + b.Property("Year") + .HasMaxLength(4) + .HasColumnType("int"); + + b.HasKey("id"); + + b.ToTable("MandatoryHours", (string)null); + }); + + modelBuilder.Entity("Company.Domain.MasterPenaltyTitle.MasterPenaltyTitle", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Day") + .HasColumnType("nvarchar(max)"); + + b.Property("FromDate") + .HasColumnType("datetime2"); + + b.Property("MasterPetition_Id") + .HasColumnType("bigint"); + + b.Property("PaidAmount") + .HasColumnType("nvarchar(max)"); + + b.Property("RemainingAmount") + .HasColumnType("nvarchar(max)"); + + b.Property("Title") + .HasColumnType("nvarchar(max)"); + + b.Property("ToDate") + .HasColumnType("datetime2"); + + b.HasKey("id"); + + b.HasIndex("MasterPetition_Id"); + + b.ToTable("Master_PenaltyTitles", (string)null); + }); + + modelBuilder.Entity("Company.Domain.MasterPetition.MasterPetition", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BoardType_Id") + .HasColumnType("int"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Description") + .HasColumnType("nvarchar(max)"); + + b.Property("File_Id") + .HasColumnType("bigint"); + + b.Property("MasterName") + .HasColumnType("nvarchar(max)"); + + b.Property("WorkHistoryDescreption") + .HasColumnType("nvarchar(max)"); + + b.HasKey("id"); + + b.HasIndex("BoardType_Id"); + + b.HasIndex("File_Id"); + + b.ToTable("Master_Petitions", (string)null); + }); + + modelBuilder.Entity("Company.Domain.MasterWorkHistory.MasterWorkHistory", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Description") + .HasColumnType("nvarchar(max)"); + + b.Property("FromDate") + .HasColumnType("datetime2"); + + b.Property("MasterPetition_Id") + .HasColumnType("bigint"); + + b.Property("ToDate") + .HasColumnType("datetime2"); + + b.Property("WorkingHoursPerDay") + .HasColumnType("int"); + + b.Property("WorkingHoursPerWeek") + .HasColumnType("int"); + + b.HasKey("id"); + + b.HasIndex("MasterPetition_Id"); + + b.ToTable("Master_WorkHistories", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ModuleAgg.EntityModule", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("IsActiveString") + .HasColumnType("nvarchar(max)"); + + b.Property("NameSubModule") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("id"); + + b.ToTable("TextManager_Module", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ModuleTextManagerAgg.EntityModuleTextManager", b => + { + b.Property("TextManagerId") + .HasColumnType("bigint"); + + b.Property("ModuleId") + .HasColumnType("bigint"); + + b.HasKey("TextManagerId", "ModuleId"); + + b.HasIndex("ModuleId"); + + b.ToTable("TextManager_ModuleTextManager", (string)null); + }); + + modelBuilder.Entity("Company.Domain.OriginalTitleAgg.EntityOriginalTitle", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("IsActiveString") + .HasColumnType("nvarchar(max)"); + + b.Property("Title") + .IsRequired() + .HasMaxLength(60) + .HasColumnType("nvarchar(60)"); + + b.HasKey("id"); + + b.ToTable("TextManager_OriginalTitle", (string)null); + }); + + modelBuilder.Entity("Company.Domain.PaymentToEmployeeAgg.PaymentToEmployee", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("Month") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("Year") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)"); + + b.HasKey("id"); + + b.ToTable("PaymentToEmployees", (string)null); + }); + + modelBuilder.Entity("Company.Domain.PaymentToEmployeeItemAgg.PaymentToEmployeeItem", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BankCheckNumber") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("CashDescription") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DestinationBankAccountNumber") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("DestinationBankName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("PayDate") + .HasColumnType("datetime2"); + + b.Property("Payment") + .HasColumnType("float"); + + b.Property("PaymentMetod") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("PaymentTitle") + .HasMaxLength(150) + .HasColumnType("nvarchar(150)"); + + b.Property("PaymentToEmployeeId") + .HasColumnType("bigint"); + + b.Property("SourceBankAccountNumber") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("SourceBankName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("TypeDestinationBankNumber") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("TypeSourceBankNumber") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("PaymentToEmployeeId"); + + b.ToTable("PaymentToEmployeeItems", (string)null); + }); + + modelBuilder.Entity("Company.Domain.PenaltyTitle.PenaltyTitle", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Day") + .HasColumnType("nvarchar(max)"); + + b.Property("FromDate") + .HasColumnType("datetime2(7)"); + + b.Property("PaidAmount") + .HasColumnType("nvarchar(max)"); + + b.Property("Petition_Id") + .HasColumnType("bigint"); + + b.Property("RemainingAmount") + .HasColumnType("nvarchar(max)"); + + b.Property("Title") + .HasColumnType("nvarchar(max)"); + + b.Property("ToDate") + .HasColumnType("datetime2(7)"); + + b.HasKey("id"); + + b.HasIndex("Petition_Id"); + + b.ToTable("PenaltyTitles", (string)null); + }); + + modelBuilder.Entity("Company.Domain.PercentageAgg.Percentage", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Percent") + .HasColumnType("float"); + + b.HasKey("id"); + + b.ToTable("Percentages", (string)null); + }); + + modelBuilder.Entity("Company.Domain.PersonnelCodeAgg.PersonnelCodeDomain", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("PersonnelCode") + .HasColumnType("bigint"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("EmployeeId"); + + b.HasIndex("WorkshopId"); + + b.ToTable("PersonnelCodes", (string)null); + }); + + modelBuilder.Entity("Company.Domain.Petition.Petition", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BoardType_Id") + .HasColumnType("int"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Description") + .HasColumnType("nvarchar(max)"); + + b.Property("File_Id") + .HasColumnType("bigint"); + + b.Property("NotificationPetitionDate") + .HasColumnType("datetime2"); + + b.Property("PetitionIssuanceDate") + .HasColumnType("datetime2"); + + b.Property("PetitionNo") + .HasColumnType("nvarchar(max)"); + + b.Property("TotalPenalty") + .HasColumnType("nvarchar(max)"); + + b.Property("TotalPenaltyTitles") + .HasColumnType("nvarchar(max)"); + + b.Property("WorkHistoryDescreption") + .HasColumnType("nvarchar(max)"); + + b.HasKey("id"); + + b.HasIndex("BoardType_Id"); + + b.HasIndex("File_Id"); + + b.ToTable("Petitions", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ProceedingSession.ProceedingSession", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Board_Id") + .HasColumnType("bigint"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Date") + .HasColumnType("datetime2"); + + b.Property("Status") + .HasColumnType("int"); + + b.Property("Time") + .HasColumnType("nvarchar(max)"); + + b.HasKey("id"); + + b.HasIndex("Board_Id"); + + b.ToTable("ProceedingSessions", (string)null); + }); + + modelBuilder.Entity("Company.Domain.RepresentativeAgg.Representative", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Address") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("AgentPhone") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("FName") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("FullName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("IdNumber") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("IsActive") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("IsLegal") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("LName") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("LegalName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("NationalId") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("Nationalcode") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("Phone") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("RegisterId") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.HasKey("id"); + + b.ToTable("Representative", (string)null); + }); + + modelBuilder.Entity("Company.Domain.RewardAgg.Reward", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Amount") + .HasColumnType("float"); + + b.Property("CreatedByAccountId") + .HasColumnType("bigint"); + + b.Property("CreatedByUserType") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Description") + .HasColumnType("ntext"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("GrantDate") + .HasColumnType("datetime2"); + + b.Property("IsActive") + .IsRequired() + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("LastModifiedByAccountId") + .HasColumnType("bigint"); + + b.Property("LastModifiedByUserType") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("RewardType") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("Title") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.ToTable("Rewards", (string)null); + }); + + modelBuilder.Entity("Company.Domain.RollCallAgg.RollCall", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BreakTimeSpan") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EarlyEntryDuration") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("EarlyExitDuration") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("EmployeeFullName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("EndDate") + .HasColumnType("datetime2"); + + b.Property("FridayWorkTimeSpan") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("LateEntryDuration") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("LateExitDuration") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("Month") + .HasColumnType("int"); + + b.Property("NightWorkTimeSpan") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("RollCallModifyType") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("ShiftDate") + .HasColumnType("datetime2"); + + b.Property("ShiftDurationTimeSpan") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("ShiftType") + .IsRequired() + .HasMaxLength(22) + .HasColumnType("nvarchar(22)"); + + b.Property("StartDate") + .HasColumnType("datetime2"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("Year") + .HasColumnType("int"); + + b.HasKey("id"); + + b.ToTable("RollCall", (string)null); + }); + + modelBuilder.Entity("Company.Domain.RollCallEmployeeAgg.RollCallEmployee", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("EmployeeFullName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("FName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("HasChangedName") + .HasColumnType("bit"); + + b.Property("HasUploadedImage") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("IsActiveString") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("LName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.ToTable("RollCallEmployees", (string)null); + }); + + modelBuilder.Entity("Company.Domain.RollCallEmployeeStatusAgg.RollCallEmployeeStatus", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("EndDate") + .HasColumnType("datetime2"); + + b.Property("RollCallEmployeeId") + .HasColumnType("bigint"); + + b.Property("StartDate") + .HasColumnType("datetime2"); + + b.HasKey("id"); + + b.HasIndex("RollCallEmployeeId"); + + b.ToTable("RollCallEmployeesStatus"); + }); + + modelBuilder.Entity("Company.Domain.RollCallPlanAgg.RollCallPlan", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BaseAmont") + .HasColumnType("float"); + + b.Property("FinalAmont") + .HasColumnType("float"); + + b.Property("IncreasePercentage") + .HasColumnType("float"); + + b.Property("MaxPersonValid") + .HasColumnType("int"); + + b.HasKey("id"); + + b.ToTable("RollCallPlans", (string)null); + }); + + modelBuilder.Entity("Company.Domain.RollCallServiceAgg.RollCallService", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("AccountId") + .HasColumnType("bigint"); + + b.Property("Amount") + .HasColumnType("float"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("CustomizeCheckoutAmount") + .HasColumnType("float"); + + b.Property("CustomizeCheckoutServiceEnd") + .HasColumnType("datetime2"); + + b.Property("CustomizeCheckoutServiceStart") + .HasColumnType("datetime2"); + + b.Property("Duration") + .HasMaxLength(2) + .HasColumnType("nvarchar(2)"); + + b.Property("EndService") + .HasColumnType("datetime2"); + + b.Property("HasCustomizeCheckoutService") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("IsActiveString") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("MaxPersonValid") + .HasColumnType("int"); + + b.Property("ServiceType") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("StartService") + .HasColumnType("datetime2"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("AccountId"); + + b.ToTable("RollCallServices", (string)null); + }); + + modelBuilder.Entity("Company.Domain.SalaryAidAgg.SalaryAid", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Amount") + .HasColumnType("float"); + + b.Property("CreatedByAccountId") + .HasColumnType("bigint"); + + b.Property("CreatedByUserType") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("LastModifiedByAccountId") + .HasColumnType("bigint"); + + b.Property("LastModifiedByUserType") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("SalaryAidDateTime") + .HasColumnType("datetime2"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.ToTable("SalaryAids", (string)null); + }); + + modelBuilder.Entity("Company.Domain.SmsResultAgg.SmsResult", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("ContractingPartyName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("ContractingPatyId") + .HasColumnType("bigint"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("InstitutionContractId") + .HasColumnType("bigint"); + + b.Property("MessageId") + .HasColumnType("int"); + + b.Property("Mobile") + .HasMaxLength(12) + .HasColumnType("nvarchar(12)"); + + b.Property("Status") + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("TypeOfSms") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.HasKey("id"); + + b.ToTable("SmsResults", (string)null); + }); + + modelBuilder.Entity("Company.Domain.SubtitleAgg.EntitySubtitle", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EntitySubtitleid") + .HasColumnType("bigint"); + + b.Property("IsActiveString") + .HasColumnType("nvarchar(max)"); + + b.Property("OriginalTitle_Id") + .HasColumnType("bigint"); + + b.Property("Subtitle") + .IsRequired() + .HasMaxLength(60) + .HasColumnType("nvarchar(60)"); + + b.HasKey("id"); + + b.HasIndex("EntitySubtitleid"); + + b.HasIndex("OriginalTitle_Id"); + + b.ToTable("TextManager_Subtitle", (string)null); + }); + + modelBuilder.Entity("Company.Domain.TaxJobCategoryAgg.TaxJobCategory", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("JobCategoryCode") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("JobCategoryName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.HasKey("id"); + + b.ToTable("TaxJobCategory", (string)null); + }); + + modelBuilder.Entity("Company.Domain.TaxLeftWorkCategoryAgg.TaxLeftWorkCategory", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BudgetLawExceptions") + .HasMaxLength(3) + .HasColumnType("nvarchar(3)"); + + b.Property("Country") + .HasMaxLength(3) + .HasColumnType("nvarchar(3)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("CurrencyType") + .HasMaxLength(3) + .HasColumnType("nvarchar(3)"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("EmployeeName") + .HasMaxLength(150) + .HasColumnType("nvarchar(150)"); + + b.Property("EmploymentLocationStatus") + .HasMaxLength(3) + .HasColumnType("nvarchar(3)"); + + b.Property("ExchangeRate") + .HasMaxLength(3) + .HasColumnType("nvarchar(3)"); + + b.Property("InsuranceBranch") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("InsuranceName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("JobCategoryCode") + .HasMaxLength(3) + .HasColumnType("nvarchar(3)"); + + b.Property("JobCategoryId") + .HasColumnType("bigint"); + + b.Property("JobTitle") + .HasMaxLength(150) + .HasColumnType("nvarchar(150)"); + + b.Property("PaymentType") + .HasMaxLength(3) + .HasColumnType("nvarchar(3)"); + + b.Property("RetirementDate") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("TaxExempt") + .HasMaxLength(3) + .HasColumnType("nvarchar(3)"); + + b.Property("TypeOfEmployment") + .HasMaxLength(3) + .HasColumnType("nvarchar(3)"); + + b.Property("TypeOfInsurance") + .HasMaxLength(3) + .HasColumnType("nvarchar(3)"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("WorkshopName") + .HasMaxLength(150) + .HasColumnType("nvarchar(150)"); + + b.HasKey("id"); + + b.HasIndex("WorkshopId"); + + b.ToTable("TaxLeftWorkCategory", (string)null); + }); + + modelBuilder.Entity("Company.Domain.TaxLeftWorkItemAgg.TaxLeftWorkItem", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("LeftWork") + .HasColumnType("datetime2"); + + b.Property("StartWork") + .HasColumnType("datetime2"); + + b.Property("TaxLeftWorkCategoryId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("TaxLeftWorkCategoryId"); + + b.ToTable("TaxLeftWorkItem", (string)null); + }); + + modelBuilder.Entity("Company.Domain.TemporaryClientRegistrationAgg.ContractingPartyTemp", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Address") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("City") + .HasMaxLength(35) + .HasColumnType("nvarchar(35)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DateOfBirth") + .HasColumnType("datetime2"); + + b.Property("FName") + .IsRequired() + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("FatherName") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("Gender") + .IsRequired() + .HasMaxLength(6) + .HasColumnType("nvarchar(6)"); + + b.Property("IdNumber") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("IdNumberSeri") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("IdNumberSerial") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("LName") + .IsRequired() + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("NationalCode") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("Phone") + .HasMaxLength(12) + .HasColumnType("nvarchar(12)"); + + b.Property("State") + .HasMaxLength(35) + .HasColumnType("nvarchar(35)"); + + b.HasKey("id"); + + b.ToTable("ContractingPartyTemp", (string)null); + }); + + modelBuilder.Entity("Company.Domain.TemporaryClientRegistrationAgg.InstitutionContractTemp", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("ContractEndGr") + .HasColumnType("datetime2"); + + b.Property("ContractStartGr") + .HasColumnType("datetime2"); + + b.Property("ContractingPartyTempId") + .HasColumnType("bigint"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("MessageId") + .HasColumnType("int"); + + b.Property("OfficialCompany") + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("PaymentModel") + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("PeriodModel") + .HasMaxLength(3) + .HasColumnType("nvarchar(3)"); + + b.Property("RegistrationStatus") + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("SendVerifyCodeTime") + .HasColumnType("datetime2"); + + b.Property("TotalPayment") + .HasColumnType("float"); + + b.Property("ValueAddedTax") + .HasColumnType("float"); + + b.Property("VerifyCode") + .HasMaxLength(6) + .HasColumnType("nvarchar(6)"); + + b.Property("VerifyCodeEndTime") + .HasColumnType("datetime2"); + + b.HasKey("id"); + + b.ToTable("InstitutionContractTemps", (string)null); + }); + + modelBuilder.Entity("Company.Domain.TemporaryClientRegistrationAgg.WorkshopServicesTemp", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CountPerson") + .HasColumnType("int"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("ServiceName") + .HasMaxLength(40) + .HasColumnType("nvarchar(40)"); + + b.Property("WorkshopTempId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("WorkshopTempId"); + + b.ToTable("WorkshopServicesTemps", (string)null); + }); + + modelBuilder.Entity("Company.Domain.TemporaryClientRegistrationAgg.WorkshopTemp", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("ContractingPartyTempId") + .HasColumnType("bigint"); + + b.Property("CountPerson") + .HasColumnType("int"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("WorkshopName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("WorkshopServicesAmount") + .HasColumnType("float"); + + b.HasKey("id"); + + b.ToTable("WorkshopTemps", (string)null); + }); + + modelBuilder.Entity("Company.Domain.TextManagerAgg.EntityTextManager", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Chapter_Id") + .HasColumnType("bigint"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DateTextManager") + .HasColumnType("nvarchar(max)"); + + b.Property("Description") + .HasColumnType("nvarchar(max)"); + + b.Property("IsActiveString") + .HasColumnType("nvarchar(max)"); + + b.Property("NoteNumber") + .HasColumnType("nvarchar(max)"); + + b.Property("NumberTextManager") + .HasColumnType("nvarchar(max)"); + + b.Property("OriginalTitle_Id") + .HasColumnType("bigint"); + + b.Property("Paragraph") + .HasColumnType("nvarchar(max)"); + + b.Property("SubjectTextManager") + .HasColumnType("nvarchar(max)"); + + b.Property("Subtitle_Id") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.ToTable("TextManager_TextManager", (string)null); + }); + + modelBuilder.Entity("Company.Domain.WorkHistory.WorkHistory", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Description") + .HasColumnType("nvarchar(max)"); + + b.Property("FromDate") + .HasColumnType("datetime2"); + + b.Property("Petition_Id") + .HasColumnType("bigint"); + + b.Property("ToDate") + .HasColumnType("datetime2"); + + b.Property("WorkingHoursPerDay") + .HasColumnType("int"); + + b.Property("WorkingHoursPerWeek") + .HasColumnType("int"); + + b.HasKey("id"); + + b.HasIndex("Petition_Id"); + + b.ToTable("WorkHistories", (string)null); + }); + + modelBuilder.Entity("Company.Domain.WorkingHoursAgg.WorkingHours", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("ContractId") + .HasColumnType("bigint"); + + b.Property("ContractNo") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("NumberOfFriday") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("NumberOfWorkingDays") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("OverNightWorkH") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("OverNightWorkM") + .HasMaxLength(2) + .HasColumnType("nvarchar(2)"); + + b.Property("OverTimeWorkH") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("OverTimeWorkM") + .HasMaxLength(2) + .HasColumnType("nvarchar(2)"); + + b.Property("ShiftWork") + .HasMaxLength(2) + .HasColumnType("nvarchar(2)"); + + b.Property("TotalHoursesH") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("TotalHoursesM") + .HasMaxLength(2) + .HasColumnType("nvarchar(2)"); + + b.Property("WeeklyWorkingTime") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.HasKey("id"); + + b.HasIndex("ContractId"); + + b.ToTable("WorkingHours", (string)null); + }); + + modelBuilder.Entity("Company.Domain.WorkingHoursItemsAgg.WorkingHoursItems", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("ComplexEnd") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("ComplexStart") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DayOfWork") + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b.Property("End1") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("End2") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("End3") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("RestTime") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("Start1") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("Start2") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("Start3") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("WeekNumber") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("WorkingHoursId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("WorkingHoursId"); + + b.ToTable("WorkingHoursItems", (string)null); + }); + + modelBuilder.Entity("Company.Domain.WorkingHoursTempAgg.WorkingHoursTemp", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("ShiftWork") + .HasMaxLength(2) + .HasColumnType("nvarchar(2)"); + + b.Property("WorkShopAddress2") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.ToTable("WorkingHoursTemp", (string)null); + }); + + modelBuilder.Entity("Company.Domain.WorkingHoursTempItemAgg.WorkingHoursTempItem", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("ComplexEnd") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("ComplexStart") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DayOfWork") + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b.Property("End1") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("End2") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("RestTime") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("Start1") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("Start2") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("WeekNumber") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("WorkingHoursTempId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("WorkingHoursTempId"); + + b.ToTable("WorkingHoursTempItem", (string)null); + }); + + modelBuilder.Entity("Company.Domain.WorkshopAccountAgg.WorkshopAccount", b => + { + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("AccountId") + .HasColumnType("bigint"); + + b.Property("ContractAndCheckout") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("Insurance") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("IsActiveSting") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("Tax") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.HasKey("WorkshopId", "AccountId"); + + b.ToTable("WorkshopeAccounts", (string)null); + }); + + modelBuilder.Entity("Company.Domain.WorkshopAgg.Workshop", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("AddBonusesPay") + .HasColumnType("bit"); + + b.Property("AddLeavePay") + .HasColumnType("bit"); + + b.Property("AddYearsPay") + .HasColumnType("bit"); + + b.Property("Address") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("AgentName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("AgentPhone") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("AgreementNumber") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("ArchiveCode") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("BonusesOptions") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("City") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("ComputeOptions") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("ContractTerm") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("FixedSalary") + .HasColumnType("bit"); + + b.Property("HasRollCallFreeVip") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("InsuranceCode") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("InsuranceJobId") + .HasColumnType("bigint"); + + b.Property("IsActive") + .HasColumnType("bit"); + + b.Property("IsActiveString") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("IsClassified") + .HasColumnType("bit"); + + b.Property("IsOldContract") + .HasColumnType("bit"); + + b.Property("Population") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("State") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("TotalPaymentHide") + .HasColumnType("bit"); + + b.Property("TypeOfContract") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("TypeOfInsuranceSend") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("TypeOfOwnership") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("WorkshopFullName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("WorkshopHolidayWorking") + .HasColumnType("bit"); + + b.Property("WorkshopName") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("WorkshopSureName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("YearsOptions") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("ZoneName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.HasKey("id"); + + b.ToTable("Workshops", (string)null); + }); + + modelBuilder.Entity("Company.Domain.WorkshopEmployerAgg.WorkshopEmployer", b => + { + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("EmployerId") + .HasColumnType("bigint"); + + b.HasKey("WorkshopId", "EmployerId"); + + b.HasIndex("EmployerId"); + + b.ToTable("WorkshopeEmployers", (string)null); + }); + + modelBuilder.Entity("Company.Domain.WorkshopPlanAgg.WorkshopPlan", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Designer") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("DesignerPhone") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("ExecutionDateFa") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("ExecutionDateGr") + .HasColumnType("datetime2"); + + b.Property("IncludingDateFa") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("IncludingDateGr") + .HasColumnType("datetime2"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.ToTable("WorkshopPlan", (string)null); + }); + + modelBuilder.Entity("Company.Domain.WorkshopPlanEmployeeAgg.WorkshopPlanEmployee", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployeeFullName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("WorkshopPlanId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("WorkshopPlanId"); + + b.ToTable("WorkshopPlanEmployees", (string)null); + }); + + modelBuilder.Entity("Company.Domain.WorkshopSubAccountAgg.WorkshopSubAccount", b => + { + b.Property("SubAccountId") + .HasColumnType("bigint"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("IsActive") + .HasMaxLength(5) + .HasColumnType("int"); + + b.HasKey("SubAccountId", "WorkshopId"); + + b.HasIndex("WorkshopId"); + + b.ToTable("WorkshopSubAccounts", (string)null); + }); + + modelBuilder.Entity("Company.Domain.YearlySalaryAgg.YearlySalary", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("ConnectionId") + .HasColumnType("int"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EndDate") + .HasColumnType("datetime2"); + + b.Property("StartDate") + .HasColumnType("datetime2"); + + b.Property("Year") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.HasKey("id"); + + b.ToTable("YearlySalariess", (string)null); + }); + + modelBuilder.Entity("Company.Domain.YearlySalaryItemsAgg.YearlySalaryItem", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("ItemName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("ItemValue") + .HasColumnType("float"); + + b.Property("ParentConnectionId") + .HasColumnType("int"); + + b.Property("ValueType") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("YearlySalaryId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("YearlySalaryId"); + + b.ToTable("YearlyItems", (string)null); + }); + + modelBuilder.Entity("Company.Domain.YearlysSalaryTitleAgg.YearlySalaryTitle", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Title1") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Title10") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Title2") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Title3") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Title4") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Title5") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Title6") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Title7") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Title8") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Title9") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.HasKey("id"); + + b.ToTable("YearlySalaryTitles", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ZoneAgg.Zone", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CityId") + .HasColumnType("int"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("ZoneName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.HasKey("id"); + + b.ToTable("Zones", (string)null); + }); + + modelBuilder.Entity("Company.Domain.empolyerAgg.Employer", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Address") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("AgentPhone") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("ContractingPartyId") + .HasColumnType("bigint"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DateOfBirth") + .HasColumnType("datetime2"); + + b.Property("DateOfIssue") + .HasColumnType("datetime2"); + + b.Property("EmployerLName") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("EmployerNo") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("EservicePassword") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("EserviceUserName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("FName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("FatherName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("FullName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Gender") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("IdNumber") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("IsActive") + .HasColumnType("bit"); + + b.Property("IsLegal") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("LName") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("MclsPassword") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("MclsUserName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("NationalId") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("Nationalcode") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("Nationality") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("Phone") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("PlaceOfIssue") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("RegisterId") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("SanaPassword") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("SanaUserName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("TaxOfficeUserName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("TaxOfficepassword") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.HasKey("id"); + + b.HasIndex("ContractingPartyId"); + + b.ToTable("Employers", (string)null); + }); + + modelBuilder.Entity("EmployerWorkshop", b => + { + b.Property("EmployersListid") + .HasColumnType("bigint"); + + b.Property("WorkshopsListid") + .HasColumnType("bigint"); + + b.HasKey("EmployersListid", "WorkshopsListid"); + + b.HasIndex("WorkshopsListid"); + + b.ToTable("EmployerWorkshop"); + }); + + modelBuilder.Entity("Company.Domain.Board.Board", b => + { + b.HasOne("Company.Domain.BoardType.BoardType", "BoardType") + .WithMany("BoardsList") + .HasForeignKey("BoardType_Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.File1.File1", "File1") + .WithMany("BoardsList") + .HasForeignKey("File_Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("BoardType"); + + b.Navigation("File1"); + }); + + modelBuilder.Entity("Company.Domain.ChapterAgg.EntityChapter", b => + { + b.HasOne("Company.Domain.SubtitleAgg.EntitySubtitle", "EntitySubtitle") + .WithMany("Chapters") + .HasForeignKey("Subtitle_Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("EntitySubtitle"); + }); + + modelBuilder.Entity("Company.Domain.CheckoutAgg.Checkout", b => + { + b.HasOne("Company.Domain.WorkshopAgg.Workshop", "Workshop") + .WithMany("Checkouts") + .HasForeignKey("WorkshopId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Workshop"); + }); + + modelBuilder.Entity("Company.Domain.ClientEmployeeWorkshopAgg.ClientEmployeeWorkshop", b => + { + b.HasOne("Company.Domain.EmployeeAgg.Employee", "Employee") + .WithMany("ClientEmployeeWorkshopList") + .HasForeignKey("EmployeeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.WorkshopAgg.Workshop", "Workshop") + .WithMany("ClientEmployeeWorkshopList") + .HasForeignKey("WorkshopId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Employee"); + + b.Navigation("Workshop"); + }); + + modelBuilder.Entity("Company.Domain.ContarctingPartyAgg.PersonalContractingParty", b => + { + b.HasOne("Company.Domain.RepresentativeAgg.Representative", "Representative") + .WithMany("ContractingParties") + .HasForeignKey("RepresentativeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Representative"); + }); + + modelBuilder.Entity("Company.Domain.ContractAgg.Contract", b => + { + b.HasOne("Company.Domain.EmployeeAgg.Employee", "Employee") + .WithMany("Contracts") + .HasForeignKey("EmployeeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.empolyerAgg.Employer", "Employer") + .WithMany("Contracts") + .HasForeignKey("EmployerId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.JobAgg.Job", "Job") + .WithMany("ContractsList") + .HasForeignKey("JobTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.MandatoryHoursAgg.MandatoryHours", null) + .WithMany("Contracts") + .HasForeignKey("MandatoryHoursid"); + + b.HasOne("Company.Domain.WorkshopAgg.Workshop", "Workshop") + .WithMany("Contracts2") + .HasForeignKey("WorkshopIds") + .OnDelete(DeleteBehavior.NoAction) + .IsRequired(); + + b.HasOne("Company.Domain.YearlySalaryAgg.YearlySalary", "YearlySalary") + .WithMany("Contracts") + .HasForeignKey("YearlySalaryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Employee"); + + b.Navigation("Employer"); + + b.Navigation("Job"); + + b.Navigation("Workshop"); + + b.Navigation("YearlySalary"); + }); + + modelBuilder.Entity("Company.Domain.ContractingPartyAccountAgg.ContractingPartyAccount", b => + { + b.HasOne("Company.Domain.ContarctingPartyAgg.PersonalContractingParty", "PersonalContractingParty") + .WithMany() + .HasForeignKey("PersonalContractingPartyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("PersonalContractingParty"); + }); + + modelBuilder.Entity("Company.Domain.CrossJobAgg.CrossJob", b => + { + b.HasOne("Company.Domain.CrossJobGuildAgg.CrossJobGuild", "CrossJobGuild") + .WithMany("CrossJobList") + .HasForeignKey("CrossJobGuildId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CrossJobGuild"); + }); + + modelBuilder.Entity("Company.Domain.CrossJobItemsAgg.CrossJobItems", b => + { + b.HasOne("Company.Domain.CrossJobAgg.CrossJob", "CrossJob") + .WithMany("CrossJobItemsList") + .HasForeignKey("CrossJobId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.JobAgg.Job", "Job") + .WithMany("CrossJobItemsList") + .HasForeignKey("JobId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CrossJob"); + + b.Navigation("Job"); + }); + + modelBuilder.Entity("Company.Domain.CustomizeCheckoutAgg.CustomizeCheckout", b => + { + b.HasOne("Company.Domain.EmployeeAgg.Employee", "Employee") + .WithMany("CustomizeCheckouts") + .HasForeignKey("EmployeeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.WorkshopAgg.Workshop", "Workshop") + .WithMany("CustomizeCheckouts") + .HasForeignKey("WorkshopId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.OwnsMany("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.CustomizeRotatingShift", "CustomizeRotatingShifts", b1 => + { + b1.Property("CustomizeCheckoutid") + .HasColumnType("bigint"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("EndTime") + .HasColumnType("time"); + + b1.Property("StartTime") + .HasColumnType("time"); + + b1.HasKey("CustomizeCheckoutid", "Id"); + + b1.ToTable("CustomizeCheckouts_CustomizeRotatingShifts"); + + b1.WithOwner() + .HasForeignKey("CustomizeCheckoutid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.IrregularShift", "IrregularShift", b1 => + { + b1.Property("CustomizeCheckoutid") + .HasColumnType("bigint"); + + b1.Property("EndTime") + .HasColumnType("time"); + + b1.Property("StartTime") + .HasColumnType("time"); + + b1.Property("WorkshopIrregularShifts") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b1.HasKey("CustomizeCheckoutid"); + + b1.ToTable("CustomizeCheckouts"); + + b1.WithOwner() + .HasForeignKey("CustomizeCheckoutid"); + }); + + b.OwnsMany("Company.Domain.CustomizeCheckoutAgg.ValueObjects.CustomizeCheckoutRegularShift", "RegularShifts", b1 => + { + b1.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("id")); + + b1.Property("CreationDate") + .HasColumnType("datetime2"); + + b1.Property("CustomizeCheckoutid") + .HasColumnType("bigint"); + + b1.Property("EndTime") + .HasColumnType("time"); + + b1.Property("Placement") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b1.Property("StartTime") + .HasColumnType("time"); + + b1.HasKey("id"); + + b1.HasIndex("CustomizeCheckoutid"); + + b1.ToTable("CustomizeCheckouts_RegularShifts"); + + b1.WithOwner() + .HasForeignKey("CustomizeCheckoutid"); + }); + + b.OwnsMany("Company.Domain.CustomizeCheckoutAgg.ValueObjects.CustomizeCheckoutFine", "CheckoutFines", b1 => + { + b1.Property("CustomizeCheckoutid") + .HasColumnType("bigint"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("Amount") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b1.Property("CreationDate") + .HasColumnType("datetime2"); + + b1.Property("FineDateFa") + .HasMaxLength(12) + .HasColumnType("nvarchar(12)"); + + b1.Property("FineDateGr") + .HasColumnType("datetime2"); + + b1.Property("IsActive") + .IsRequired() + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b1.Property("Title") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b1.HasKey("CustomizeCheckoutid", "Id"); + + b1.ToTable("CustomizeCheckoutFine"); + + b1.WithOwner() + .HasForeignKey("CustomizeCheckoutid"); + }); + + b.OwnsMany("Company.Domain.CustomizeCheckoutAgg.ValueObjects.CustomizeCheckoutLoanInstallments", "CustomizeCheckoutLoanInstallments", b1 => + { + b1.Property("CustomizeCheckoutid") + .HasColumnType("bigint"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("AmountForMonth") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b1.Property("IsActive") + .IsRequired() + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b1.Property("LoanAmount") + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b1.Property("LoanRemaining") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b1.Property("Month") + .HasMaxLength(2) + .HasColumnType("nvarchar(2)"); + + b1.Property("Year") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)"); + + b1.HasKey("CustomizeCheckoutid", "Id"); + + b1.ToTable("CustomizeCheckoutLoanInstallments"); + + b1.WithOwner() + .HasForeignKey("CustomizeCheckoutid"); + }); + + b.OwnsMany("Company.Domain.CustomizeCheckoutAgg.ValueObjects.CustomizeCheckoutReward", "CustomizeCheckoutRewards", b1 => + { + b1.Property("CustomizeCheckoutid") + .HasColumnType("bigint"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("Amount") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b1.Property("Description") + .HasColumnType("ntext"); + + b1.Property("GrantDate") + .HasColumnType("datetime2"); + + b1.Property("GrantDateFa") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b1.Property("IsActive") + .IsRequired() + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b1.Property("Title") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b1.HasKey("CustomizeCheckoutid", "Id"); + + b1.ToTable("CustomizeCheckoutReward"); + + b1.WithOwner() + .HasForeignKey("CustomizeCheckoutid"); + }); + + b.OwnsMany("Company.Domain.CustomizeCheckoutAgg.ValueObjects.CustomizeCheckoutSalaryAid", "CustomizeCheckoutSalaryAids", b1 => + { + b1.Property("CustomizeCheckoutid") + .HasColumnType("bigint"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("Amount") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b1.Property("SalaryAidDateTime") + .HasColumnType("datetime2"); + + b1.Property("SalaryAidDateTimeFa") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b1.HasKey("CustomizeCheckoutid", "Id"); + + b1.ToTable("CustomizeCheckoutSalaryAid"); + + b1.WithOwner() + .HasForeignKey("CustomizeCheckoutid"); + }); + + b.Navigation("CheckoutFines"); + + b.Navigation("CustomizeCheckoutLoanInstallments"); + + b.Navigation("CustomizeCheckoutRewards"); + + b.Navigation("CustomizeCheckoutSalaryAids"); + + b.Navigation("CustomizeRotatingShifts"); + + b.Navigation("Employee"); + + b.Navigation("IrregularShift"); + + b.Navigation("RegularShifts"); + + b.Navigation("Workshop"); + }); + + modelBuilder.Entity("Company.Domain.CustomizeCheckoutTempAgg.CustomizeCheckoutTemp", b => + { + b.HasOne("Company.Domain.EmployeeAgg.Employee", "Employee") + .WithMany() + .HasForeignKey("EmployeeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.WorkshopAgg.Workshop", "Workshop") + .WithMany() + .HasForeignKey("WorkshopId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.OwnsMany("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.CustomizeRotatingShift", "CustomizeRotatingShifts", b1 => + { + b1.Property("CustomizeCheckoutTempid") + .HasColumnType("bigint"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("EndTime") + .HasColumnType("time"); + + b1.Property("StartTime") + .HasColumnType("time"); + + b1.HasKey("CustomizeCheckoutTempid", "Id"); + + b1.ToTable("CustomizeCheckoutTemps_CustomizeRotatingShifts"); + + b1.WithOwner() + .HasForeignKey("CustomizeCheckoutTempid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.IrregularShift", "IrregularShift", b1 => + { + b1.Property("CustomizeCheckoutTempid") + .HasColumnType("bigint"); + + b1.Property("EndTime") + .HasColumnType("time"); + + b1.Property("StartTime") + .HasColumnType("time"); + + b1.Property("WorkshopIrregularShifts") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b1.HasKey("CustomizeCheckoutTempid"); + + b1.ToTable("CustomizeCheckoutTemps"); + + b1.WithOwner() + .HasForeignKey("CustomizeCheckoutTempid"); + }); + + b.OwnsMany("Company.Domain.CustomizeCheckoutAgg.ValueObjects.CustomizeCheckoutRegularShift", "RegularShifts", b1 => + { + b1.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("id")); + + b1.Property("CreationDate") + .HasColumnType("datetime2"); + + b1.Property("CustomizeCheckoutTempid") + .HasColumnType("bigint"); + + b1.Property("EndTime") + .HasColumnType("time"); + + b1.Property("Placement") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b1.Property("StartTime") + .HasColumnType("time"); + + b1.HasKey("id"); + + b1.HasIndex("CustomizeCheckoutTempid"); + + b1.ToTable("CustomizeCheckoutTemps_RegularShifts"); + + b1.WithOwner() + .HasForeignKey("CustomizeCheckoutTempid"); + }); + + b.OwnsMany("Company.Domain.CustomizeCheckoutTempAgg.ValueObjects.CustomizeCheckoutTempFine", "CheckoutFines", b1 => + { + b1.Property("CustomizeCheckoutTempid") + .HasColumnType("bigint"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("Amount") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b1.Property("CreationDate") + .HasColumnType("datetime2"); + + b1.Property("FineDateFa") + .HasMaxLength(12) + .HasColumnType("nvarchar(12)"); + + b1.Property("FineDateGr") + .HasColumnType("datetime2"); + + b1.Property("IsActive") + .IsRequired() + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b1.Property("Title") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b1.HasKey("CustomizeCheckoutTempid", "Id"); + + b1.ToTable("CustomizeCheckoutTempFine"); + + b1.WithOwner() + .HasForeignKey("CustomizeCheckoutTempid"); + }); + + b.OwnsMany("Company.Domain.CustomizeCheckoutTempAgg.ValueObjects.CustomizeCheckoutTempLoanInstallments", "CustomizeCheckoutLoanInstallments", b1 => + { + b1.Property("CustomizeCheckoutTempid") + .HasColumnType("bigint"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("AmountForMonth") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b1.Property("IsActive") + .IsRequired() + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b1.Property("LoanAmount") + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b1.Property("LoanRemaining") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b1.Property("Month") + .HasMaxLength(2) + .HasColumnType("nvarchar(2)"); + + b1.Property("Year") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)"); + + b1.HasKey("CustomizeCheckoutTempid", "Id"); + + b1.ToTable("CustomizeCheckoutTempLoanInstallments"); + + b1.WithOwner() + .HasForeignKey("CustomizeCheckoutTempid"); + }); + + b.OwnsMany("Company.Domain.CustomizeCheckoutTempAgg.ValueObjects.CustomizeCheckoutTempReward", "CustomizeCheckoutRewards", b1 => + { + b1.Property("CustomizeCheckoutTempid") + .HasColumnType("bigint"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("Amount") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b1.Property("Description") + .HasColumnType("ntext"); + + b1.Property("GrantDate") + .HasColumnType("datetime2"); + + b1.Property("GrantDateFa") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b1.Property("IsActive") + .IsRequired() + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b1.Property("Title") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b1.HasKey("CustomizeCheckoutTempid", "Id"); + + b1.ToTable("CustomizeCheckoutTempReward"); + + b1.WithOwner() + .HasForeignKey("CustomizeCheckoutTempid"); + }); + + b.OwnsMany("Company.Domain.CustomizeCheckoutTempAgg.ValueObjects.CustomizeCheckoutTempSalaryAid", "CustomizeCheckoutSalaryAids", b1 => + { + b1.Property("CustomizeCheckoutTempid") + .HasColumnType("bigint"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("Amount") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b1.Property("SalaryAidDateTime") + .HasColumnType("datetime2"); + + b1.Property("SalaryAidDateTimeFa") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b1.HasKey("CustomizeCheckoutTempid", "Id"); + + b1.ToTable("CustomizeCheckoutTempSalaryAid"); + + b1.WithOwner() + .HasForeignKey("CustomizeCheckoutTempid"); + }); + + b.Navigation("CheckoutFines"); + + b.Navigation("CustomizeCheckoutLoanInstallments"); + + b.Navigation("CustomizeCheckoutRewards"); + + b.Navigation("CustomizeCheckoutSalaryAids"); + + b.Navigation("CustomizeRotatingShifts"); + + b.Navigation("Employee"); + + b.Navigation("IrregularShift"); + + b.Navigation("RegularShifts"); + + b.Navigation("Workshop"); + }); + + modelBuilder.Entity("Company.Domain.CustomizeWorkshopEmployeeSettingsAgg.Entities.CustomizeWorkshopEmployeeSettings", b => + { + b.HasOne("Company.Domain.CustomizeWorkshopGroupSettingsAgg.Entities.CustomizeWorkshopGroupSettings", "CustomizeWorkshopGroupSettings") + .WithMany("CustomizeWorkshopEmployeeSettingsCollection") + .HasForeignKey("CustomizeWorkshopGroupSettingId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.OwnsMany("Company.Domain.CustomizeWorkshopEmployeeSettingsAgg.Entities.CustomizeWorkshopEmployeeSettingsShift", "CustomizeWorkshopEmployeeSettingsShifts", b1 => + { + b1.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("id")); + + b1.Property("CreationDate") + .HasColumnType("datetime2"); + + b1.Property("CustomizeWorkshopEmployeeSettingsId") + .HasColumnType("bigint"); + + b1.Property("EndTime") + .HasColumnType("time"); + + b1.Property("Placement") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b1.Property("PreviousShiftThreshold") + .HasColumnType("time"); + + b1.Property("StartTime") + .HasColumnType("time"); + + b1.HasKey("id"); + + b1.HasIndex("CustomizeWorkshopEmployeeSettingsId"); + + b1.ToTable("CustomizeWorkshopEmployeeSettingsShifts", (string)null); + + b1.WithOwner("CustomizeWorkshopEmployeeSettings") + .HasForeignKey("CustomizeWorkshopEmployeeSettingsId"); + + b1.Navigation("CustomizeWorkshopEmployeeSettings"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.BaseYearsPay", "BaseYearsPay", b1 => + { + b1.Property("CustomizeWorkshopEmployeeSettingsid") + .HasColumnType("bigint"); + + b1.Property("BaseYearsPayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("BaseYearsPay_BaseYearsPayType"); + + b1.Property("PaymentType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("BaseYearsPay_PaymentType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("BaseYearsPay_Value"); + + b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.ToTable("CustomizeWorkshopEmployeeSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.BonusesPay", "BonusesPay", b1 => + { + b1.Property("CustomizeWorkshopEmployeeSettingsid") + .HasColumnType("bigint"); + + b1.Property("BonusesPayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("BonusesPay_BonusesPayType"); + + b1.Property("PaymentType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("BonusesPay_PaymentType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("BonusesPay_Value"); + + b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.ToTable("CustomizeWorkshopEmployeeSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.BreakTime", "BreakTime", b1 => + { + b1.Property("CustomizeWorkshopEmployeeSettingsid") + .HasColumnType("bigint"); + + b1.Property("BreakTimeType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b1.Property("BreakTimeValue") + .HasColumnType("time"); + + b1.Property("HasBreakTimeValue") + .HasColumnType("bit"); + + b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.ToTable("CustomizeWorkshopEmployeeSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); + }); + + b.OwnsMany("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.CustomizeRotatingShift", "CustomizeRotatingShifts", b1 => + { + b1.Property("CustomizeWorkshopEmployeeSettingsid") + .HasColumnType("bigint"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("EndTime") + .HasColumnType("time"); + + b1.Property("StartTime") + .HasColumnType("time"); + + b1.HasKey("CustomizeWorkshopEmployeeSettingsid", "Id"); + + b1.ToTable("CustomizeWorkshopEmployeeSettings_CustomizeRotatingShifts"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.EarlyExit", "EarlyExit", b1 => + { + b1.Property("CustomizeWorkshopEmployeeSettingsid") + .HasColumnType("bigint"); + + b1.Property("EarlyExitType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("EarlyExit_EarlyExitType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("EarlyExitTimeFines_Value"); + + b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.ToTable("CustomizeWorkshopEmployeeSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.OwnsMany("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.EarlyExitTimeFine", "EarlyExitTimeFines", b2 => + { + b2.Property("CustomizeWorkshopEmployeeSettingsId") + .HasColumnType("bigint"); + + b2.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b2.Property("Id")); + + b2.Property("FineMoney") + .HasColumnType("float") + .HasColumnName("EarlyExitTimeFines_FineMoney"); + + b2.Property("Minute") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)") + .HasColumnName("EarlyExitTimeFines_Minute"); + + b2.HasKey("CustomizeWorkshopEmployeeSettingsId", "Id"); + + b2.ToTable("CustomizeWorkshopEmployeeSettings_EarlyExitTimeFines"); + + b2.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsId"); + }); + + b1.Navigation("EarlyExitTimeFines"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FamilyAllowance", "FamilyAllowance", b1 => + { + b1.Property("CustomizeWorkshopEmployeeSettingsid") + .HasColumnType("bigint"); + + b1.Property("FamilyAllowanceType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("FamilyAllowance_FamilyAllowanceType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("FamilyAllowance_Value"); + + b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.ToTable("CustomizeWorkshopEmployeeSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FineAbsenceDeduction", "FineAbsenceDeduction", b1 => + { + b1.Property("CustomizeWorkshopEmployeeSettingsid") + .HasColumnType("bigint"); + + b1.Property("FineAbsenceDeductionType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("FineAbsenceDeduction_FineAbsenceDeductionType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("FineAbsenceDeduction_Value"); + + b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.ToTable("CustomizeWorkshopEmployeeSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.OwnsMany("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FineAbsenceDayOfWeek", "FineAbsenceDayOfWeekCollection", b2 => + { + b2.Property("CustomizeWorkshopEmployeeSettingsId") + .HasColumnType("bigint"); + + b2.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b2.Property("Id")); + + b2.Property("DayOfWeek") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("FineAbsenceDayOfWeekCollection_DayOfWeek"); + + b2.HasKey("CustomizeWorkshopEmployeeSettingsId", "Id"); + + b2.ToTable("CustomizeWorkshopEmployeeSettings_FineAbsenceDayOfWeekCollection"); + + b2.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsId"); + }); + + b1.Navigation("FineAbsenceDayOfWeekCollection"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FridayPay", "FridayPay", b1 => + { + b1.Property("CustomizeWorkshopEmployeeSettingsid") + .HasColumnType("bigint"); + + b1.Property("FridayPayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("FridayPay_Value"); + + b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.ToTable("CustomizeWorkshopEmployeeSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.InsuranceDeduction", "InsuranceDeduction", b1 => + { + b1.Property("CustomizeWorkshopEmployeeSettingsid") + .HasColumnType("bigint"); + + b1.Property("InsuranceDeductionType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("InsuranceDeduction_InsuranceDeductionType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("InsuranceDeduction_Value"); + + b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.ToTable("CustomizeWorkshopEmployeeSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.IrregularShift", "IrregularShift", b1 => + { + b1.Property("CustomizeWorkshopEmployeeSettingsid") + .HasColumnType("bigint"); + + b1.Property("EndTime") + .HasColumnType("time"); + + b1.Property("StartTime") + .HasColumnType("time"); + + b1.Property("WorkshopIrregularShifts") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.ToTable("CustomizeWorkshopEmployeeSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.LateToWork", "LateToWork", b1 => + { + b1.Property("CustomizeWorkshopEmployeeSettingsid") + .HasColumnType("bigint"); + + b1.Property("LateToWorkType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("LateToWork_LateToWorkType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("LateToWork_Value"); + + b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.ToTable("CustomizeWorkshopEmployeeSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.OwnsMany("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.LateToWorkTimeFine", "LateToWorkTimeFines", b2 => + { + b2.Property("CustomizeWorkshopEmployeeSettingsId") + .HasColumnType("bigint"); + + b2.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b2.Property("Id")); + + b2.Property("FineMoney") + .HasColumnType("float") + .HasColumnName("LateToWorkTimeFines_FineMoney"); + + b2.Property("Minute") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)") + .HasColumnName("LateToWorkTimeFines_Minute"); + + b2.HasKey("CustomizeWorkshopEmployeeSettingsId", "Id"); + + b2.ToTable("CustomizeWorkshopEmployeeSettings_LateToWorkTimeFines"); + + b2.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsId"); + }); + + b1.Navigation("LateToWorkTimeFines"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.LeavePay", "LeavePay", b1 => + { + b1.Property("CustomizeWorkshopEmployeeSettingsid") + .HasColumnType("bigint"); + + b1.Property("LeavePayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("LeavePay_LeavePayType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("LeavePay_Value"); + + b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.ToTable("CustomizeWorkshopEmployeeSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.MarriedAllowance", "MarriedAllowance", b1 => + { + b1.Property("CustomizeWorkshopEmployeeSettingsid") + .HasColumnType("bigint"); + + b1.Property("MarriedAllowanceType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("MarriedAllowance_MarriedAllowanceType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("MarriedAllowance_Value"); + + b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.ToTable("CustomizeWorkshopEmployeeSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.NightWorkPay", "NightWorkPay", b1 => + { + b1.Property("CustomizeWorkshopEmployeeSettingsid") + .HasColumnType("bigint"); + + b1.Property("NightWorkingType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("NightWorkPay_NightWorkingType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("NightWorkPay_Value"); + + b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.ToTable("CustomizeWorkshopEmployeeSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.OverTimePay", "OverTimePay", b1 => + { + b1.Property("CustomizeWorkshopEmployeeSettingsid") + .HasColumnType("bigint"); + + b1.Property("OverTimePayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("OverTimePay_OverTimePayType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("OverTimePay_Value"); + + b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.ToTable("CustomizeWorkshopEmployeeSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.ShiftPay", "ShiftPay", b1 => + { + b1.Property("CustomizeWorkshopEmployeeSettingsid") + .HasColumnType("bigint"); + + b1.Property("ShiftPayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("ShiftPay_ShiftPayType"); + + b1.Property("ShiftType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("ShiftPay_ShiftType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("ShiftPay_Value"); + + b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.ToTable("CustomizeWorkshopEmployeeSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); + }); + + b.Navigation("BaseYearsPay"); + + b.Navigation("BonusesPay"); + + b.Navigation("BreakTime"); + + b.Navigation("CustomizeRotatingShifts"); + + b.Navigation("CustomizeWorkshopEmployeeSettingsShifts"); + + b.Navigation("CustomizeWorkshopGroupSettings"); + + b.Navigation("EarlyExit"); + + b.Navigation("FamilyAllowance"); + + b.Navigation("FineAbsenceDeduction"); + + b.Navigation("FridayPay"); + + b.Navigation("InsuranceDeduction"); + + b.Navigation("IrregularShift"); + + b.Navigation("LateToWork"); + + b.Navigation("LeavePay"); + + b.Navigation("MarriedAllowance"); + + b.Navigation("NightWorkPay"); + + b.Navigation("OverTimePay"); + + b.Navigation("ShiftPay"); + }); + + modelBuilder.Entity("Company.Domain.CustomizeWorkshopGroupSettingsAgg.Entities.CustomizeWorkshopGroupSettings", b => + { + b.HasOne("Company.Domain.CustomizeWorkshopSettingsAgg.Entities.CustomizeWorkshopSettings", "CustomizeWorkshopSettings") + .WithMany("CustomizeWorkshopGroupSettingsCollection") + .HasForeignKey("CustomizeWorkshopSettingId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.OwnsMany("Company.Domain.CustomizeWorkshopGroupSettingsAgg.Entities.CustomizeWorkshopGroupSettingsShift", "CustomizeWorkshopGroupSettingsShifts", b1 => + { + b1.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("id")); + + b1.Property("CreationDate") + .HasColumnType("datetime2"); + + b1.Property("CustomizeWorkshopGroupSettingsId") + .HasColumnType("bigint"); + + b1.Property("EndTime") + .HasColumnType("time"); + + b1.Property("Placement") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b1.Property("StartTime") + .HasColumnType("time"); + + b1.HasKey("id"); + + b1.HasIndex("CustomizeWorkshopGroupSettingsId"); + + b1.ToTable("CustomizeWorkshopGroupSettingsShifts", (string)null); + + b1.WithOwner("CustomizeWorkshopGroupSettings") + .HasForeignKey("CustomizeWorkshopGroupSettingsId"); + + b1.Navigation("CustomizeWorkshopGroupSettings"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.BaseYearsPay", "BaseYearsPay", b1 => + { + b1.Property("CustomizeWorkshopGroupSettingsid") + .HasColumnType("bigint"); + + b1.Property("BaseYearsPayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("BaseYearsPay_BaseYearsPayType"); + + b1.Property("PaymentType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("BaseYearsPay_PaymentType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("BaseYearsPay_Value"); + + b1.HasKey("CustomizeWorkshopGroupSettingsid"); + + b1.ToTable("CustomizeWorkshopGroupSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.BonusesPay", "BonusesPay", b1 => + { + b1.Property("CustomizeWorkshopGroupSettingsid") + .HasColumnType("bigint"); + + b1.Property("BonusesPayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("BonusesPay_BonusesPayType"); + + b1.Property("PaymentType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("BonusesPay_PaymentType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("BonusesPay_Value"); + + b1.HasKey("CustomizeWorkshopGroupSettingsid"); + + b1.ToTable("CustomizeWorkshopGroupSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.BreakTime", "BreakTime", b1 => + { + b1.Property("CustomizeWorkshopGroupSettingsid") + .HasColumnType("bigint"); + + b1.Property("BreakTimeType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b1.Property("BreakTimeValue") + .HasColumnType("time"); + + b1.Property("HasBreakTimeValue") + .HasColumnType("bit"); + + b1.HasKey("CustomizeWorkshopGroupSettingsid"); + + b1.ToTable("CustomizeWorkshopGroupSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsid"); + }); + + b.OwnsMany("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.CustomizeRotatingShift", "CustomizeRotatingShifts", b1 => + { + b1.Property("CustomizeWorkshopGroupSettingsid") + .HasColumnType("bigint"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("EndTime") + .HasColumnType("time"); + + b1.Property("StartTime") + .HasColumnType("time"); + + b1.HasKey("CustomizeWorkshopGroupSettingsid", "Id"); + + b1.ToTable("CustomizeWorkshopGroupSettings_CustomizeRotatingShifts"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.EarlyExit", "EarlyExit", b1 => + { + b1.Property("CustomizeWorkshopGroupSettingsid") + .HasColumnType("bigint"); + + b1.Property("EarlyExitType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("EarlyExit_EarlyExitType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("EarlyExitTimeFines_Value"); + + b1.HasKey("CustomizeWorkshopGroupSettingsid"); + + b1.ToTable("CustomizeWorkshopGroupSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsid"); + + b1.OwnsMany("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.EarlyExitTimeFine", "EarlyExitTimeFines", b2 => + { + b2.Property("CustomizeWorkshopGroupSettingsId") + .HasColumnType("bigint"); + + b2.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b2.Property("Id")); + + b2.Property("FineMoney") + .HasColumnType("float") + .HasColumnName("EarlyExitTimeFines_FineMoney"); + + b2.Property("Minute") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)") + .HasColumnName("EarlyExitTimeFines_Minute"); + + b2.HasKey("CustomizeWorkshopGroupSettingsId", "Id"); + + b2.ToTable("CustomizeWorkshopGroupSettings_EarlyExitTimeFines"); + + b2.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsId"); + }); + + b1.Navigation("EarlyExitTimeFines"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FamilyAllowance", "FamilyAllowance", b1 => + { + b1.Property("CustomizeWorkshopGroupSettingsid") + .HasColumnType("bigint"); + + b1.Property("FamilyAllowanceType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("FamilyAllowance_FamilyAllowanceType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("FamilyAllowance_Value"); + + b1.HasKey("CustomizeWorkshopGroupSettingsid"); + + b1.ToTable("CustomizeWorkshopGroupSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FineAbsenceDeduction", "FineAbsenceDeduction", b1 => + { + b1.Property("CustomizeWorkshopGroupSettingsid") + .HasColumnType("bigint"); + + b1.Property("FineAbsenceDeductionType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("FineAbsenceDeduction_FineAbsenceDeductionType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("FineAbsenceDeduction_Value"); + + b1.HasKey("CustomizeWorkshopGroupSettingsid"); + + b1.ToTable("CustomizeWorkshopGroupSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsid"); + + b1.OwnsMany("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FineAbsenceDayOfWeek", "FineAbsenceDayOfWeekCollection", b2 => + { + b2.Property("CustomizeWorkshopGroupSettingsId") + .HasColumnType("bigint"); + + b2.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b2.Property("Id")); + + b2.Property("DayOfWeek") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("FineAbsenceDayOfWeekCollection_DayOfWeek"); + + b2.HasKey("CustomizeWorkshopGroupSettingsId", "Id"); + + b2.ToTable("CustomizeWorkshopGroupSettings_FineAbsenceDayOfWeekCollection"); + + b2.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsId"); + }); + + b1.Navigation("FineAbsenceDayOfWeekCollection"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FridayPay", "FridayPay", b1 => + { + b1.Property("CustomizeWorkshopGroupSettingsid") + .HasColumnType("bigint"); + + b1.Property("FridayPayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("FridayPay_Value"); + + b1.HasKey("CustomizeWorkshopGroupSettingsid"); + + b1.ToTable("CustomizeWorkshopGroupSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.InsuranceDeduction", "InsuranceDeduction", b1 => + { + b1.Property("CustomizeWorkshopGroupSettingsid") + .HasColumnType("bigint"); + + b1.Property("InsuranceDeductionType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("InsuranceDeduction_InsuranceDeductionType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("InsuranceDeduction_Value"); + + b1.HasKey("CustomizeWorkshopGroupSettingsid"); + + b1.ToTable("CustomizeWorkshopGroupSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.IrregularShift", "IrregularShift", b1 => + { + b1.Property("CustomizeWorkshopGroupSettingsid") + .HasColumnType("bigint"); + + b1.Property("EndTime") + .HasColumnType("time"); + + b1.Property("StartTime") + .HasColumnType("time"); + + b1.Property("WorkshopIrregularShifts") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b1.HasKey("CustomizeWorkshopGroupSettingsid"); + + b1.ToTable("CustomizeWorkshopGroupSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.LateToWork", "LateToWork", b1 => + { + b1.Property("CustomizeWorkshopGroupSettingsid") + .HasColumnType("bigint"); + + b1.Property("LateToWorkType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("LateToWork_LateToWorkType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("LateToWork_Value"); + + b1.HasKey("CustomizeWorkshopGroupSettingsid"); + + b1.ToTable("CustomizeWorkshopGroupSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsid"); + + b1.OwnsMany("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.LateToWorkTimeFine", "LateToWorkTimeFines", b2 => + { + b2.Property("CustomizeWorkshopGroupSettingsId") + .HasColumnType("bigint"); + + b2.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b2.Property("Id")); + + b2.Property("FineMoney") + .HasColumnType("float") + .HasColumnName("LateToWorkTimeFines_FineMoney"); + + b2.Property("Minute") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)") + .HasColumnName("LateToWorkTimeFines_Minute"); + + b2.HasKey("CustomizeWorkshopGroupSettingsId", "Id"); + + b2.ToTable("CustomizeWorkshopGroupSettings_LateToWorkTimeFines"); + + b2.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsId"); + }); + + b1.Navigation("LateToWorkTimeFines"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.LeavePay", "LeavePay", b1 => + { + b1.Property("CustomizeWorkshopGroupSettingsid") + .HasColumnType("bigint"); + + b1.Property("LeavePayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("LeavePay_LeavePayType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("LeavePay_Value"); + + b1.HasKey("CustomizeWorkshopGroupSettingsid"); + + b1.ToTable("CustomizeWorkshopGroupSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.MarriedAllowance", "MarriedAllowance", b1 => + { + b1.Property("CustomizeWorkshopGroupSettingsid") + .HasColumnType("bigint"); + + b1.Property("MarriedAllowanceType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("MarriedAllowance_MarriedAllowanceType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("MarriedAllowance_Value"); + + b1.HasKey("CustomizeWorkshopGroupSettingsid"); + + b1.ToTable("CustomizeWorkshopGroupSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.NightWorkPay", "NightWorkPay", b1 => + { + b1.Property("CustomizeWorkshopGroupSettingsid") + .HasColumnType("bigint"); + + b1.Property("NightWorkingType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("NightWorkPay_NightWorkingType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("NightWorkPay_Value"); + + b1.HasKey("CustomizeWorkshopGroupSettingsid"); + + b1.ToTable("CustomizeWorkshopGroupSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.OverTimePay", "OverTimePay", b1 => + { + b1.Property("CustomizeWorkshopGroupSettingsid") + .HasColumnType("bigint"); + + b1.Property("OverTimePayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("OverTimePay_OverTimePayType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("OverTimePay_Value"); + + b1.HasKey("CustomizeWorkshopGroupSettingsid"); + + b1.ToTable("CustomizeWorkshopGroupSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.ShiftPay", "ShiftPay", b1 => + { + b1.Property("CustomizeWorkshopGroupSettingsid") + .HasColumnType("bigint"); + + b1.Property("ShiftPayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("ShiftPay_ShiftPayType"); + + b1.Property("ShiftType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("ShiftPay_ShiftType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("ShiftPay_Value"); + + b1.HasKey("CustomizeWorkshopGroupSettingsid"); + + b1.ToTable("CustomizeWorkshopGroupSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsid"); + }); + + b.Navigation("BaseYearsPay"); + + b.Navigation("BonusesPay"); + + b.Navigation("BreakTime"); + + b.Navigation("CustomizeRotatingShifts"); + + b.Navigation("CustomizeWorkshopGroupSettingsShifts"); + + b.Navigation("CustomizeWorkshopSettings"); + + b.Navigation("EarlyExit"); + + b.Navigation("FamilyAllowance"); + + b.Navigation("FineAbsenceDeduction"); + + b.Navigation("FridayPay"); + + b.Navigation("InsuranceDeduction"); + + b.Navigation("IrregularShift"); + + b.Navigation("LateToWork"); + + b.Navigation("LeavePay"); + + b.Navigation("MarriedAllowance"); + + b.Navigation("NightWorkPay"); + + b.Navigation("OverTimePay"); + + b.Navigation("ShiftPay"); + }); + + modelBuilder.Entity("Company.Domain.CustomizeWorkshopSettingsAgg.Entities.CustomizeWorkshopSettings", b => + { + b.HasOne("Company.Domain.WorkshopAgg.Workshop", "Workshop") + .WithOne("CustomizeWorkshopSettings") + .HasForeignKey("Company.Domain.CustomizeWorkshopSettingsAgg.Entities.CustomizeWorkshopSettings", "WorkshopId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.OwnsMany("Company.Domain.CustomizeWorkshopSettingsAgg.Entities.CustomizeWorkshopSettingsShift", "CustomizeWorkshopSettingsShifts", b1 => + { + b1.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("id")); + + b1.Property("CreationDate") + .HasColumnType("datetime2"); + + b1.Property("CustomizeWorkshopSettingsId") + .HasColumnType("bigint"); + + b1.Property("EndTime") + .HasColumnType("time"); + + b1.Property("Placement") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b1.Property("StartTime") + .HasColumnType("time"); + + b1.HasKey("id"); + + b1.HasIndex("CustomizeWorkshopSettingsId"); + + b1.ToTable("CustomizeWorkshopSettingsShifts", (string)null); + + b1.WithOwner("CustomizeWorkshopSettings") + .HasForeignKey("CustomizeWorkshopSettingsId"); + + b1.Navigation("CustomizeWorkshopSettings"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.BaseYearsPay", "BaseYearsPay", b1 => + { + b1.Property("CustomizeWorkshopSettingsid") + .HasColumnType("bigint"); + + b1.Property("BaseYearsPayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("BaseYearsPay_BaseYearsPayType"); + + b1.Property("PaymentType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("BaseYearsPay_PaymentType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("BaseYearsPay_Value"); + + b1.HasKey("CustomizeWorkshopSettingsid"); + + b1.ToTable("CustomizeWorkshopSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.BonusesPay", "BonusesPay", b1 => + { + b1.Property("CustomizeWorkshopSettingsid") + .HasColumnType("bigint"); + + b1.Property("BonusesPayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("BonusesPay_BonusesPayType"); + + b1.Property("PaymentType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("BonusesPay_PaymentType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("BonusesPay_Value"); + + b1.HasKey("CustomizeWorkshopSettingsid"); + + b1.ToTable("CustomizeWorkshopSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.EarlyExit", "EarlyExit", b1 => + { + b1.Property("CustomizeWorkshopSettingsid") + .HasColumnType("bigint"); + + b1.Property("EarlyExitType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("EarlyExit_EarlyExitType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("EarlyExitTimeFines_Value"); + + b1.HasKey("CustomizeWorkshopSettingsid"); + + b1.ToTable("CustomizeWorkshopSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopSettingsid"); + + b1.OwnsMany("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.EarlyExitTimeFine", "EarlyExitTimeFines", b2 => + { + b2.Property("CustomizeWorkshopSettingsId") + .HasColumnType("bigint"); + + b2.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b2.Property("Id")); + + b2.Property("FineMoney") + .HasColumnType("float") + .HasColumnName("EarlyExitTimeFines_FineMoney"); + + b2.Property("Minute") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)") + .HasColumnName("EarlyExitTimeFines_Minute"); + + b2.HasKey("CustomizeWorkshopSettingsId", "Id"); + + b2.ToTable("CustomizeWorkshopSettings_EarlyExitTimeFines"); + + b2.WithOwner() + .HasForeignKey("CustomizeWorkshopSettingsId"); + }); + + b1.Navigation("EarlyExitTimeFines"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FamilyAllowance", "FamilyAllowance", b1 => + { + b1.Property("CustomizeWorkshopSettingsid") + .HasColumnType("bigint"); + + b1.Property("FamilyAllowanceType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("FamilyAllowance_FamilyAllowanceType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("FamilyAllowance_Value"); + + b1.HasKey("CustomizeWorkshopSettingsid"); + + b1.ToTable("CustomizeWorkshopSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FineAbsenceDeduction", "FineAbsenceDeduction", b1 => + { + b1.Property("CustomizeWorkshopSettingsid") + .HasColumnType("bigint"); + + b1.Property("FineAbsenceDeductionType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("FineAbsenceDeduction_FineAbsenceDeductionType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("FineAbsenceDeduction_Value"); + + b1.HasKey("CustomizeWorkshopSettingsid"); + + b1.ToTable("CustomizeWorkshopSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopSettingsid"); + + b1.OwnsMany("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FineAbsenceDayOfWeek", "FineAbsenceDayOfWeekCollection", b2 => + { + b2.Property("CustomizeWorkshopSettingsId") + .HasColumnType("bigint"); + + b2.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b2.Property("Id")); + + b2.Property("DayOfWeek") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("FineAbsenceDayOfWeekCollection_DayOfWeek"); + + b2.HasKey("CustomizeWorkshopSettingsId", "Id"); + + b2.ToTable("CustomizeWorkshopSettings_FineAbsenceDayOfWeekCollection"); + + b2.WithOwner() + .HasForeignKey("CustomizeWorkshopSettingsId"); + }); + + b1.Navigation("FineAbsenceDayOfWeekCollection"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FridayPay", "FridayPay", b1 => + { + b1.Property("CustomizeWorkshopSettingsid") + .HasColumnType("bigint"); + + b1.Property("FridayPayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("FridayPay_Value"); + + b1.HasKey("CustomizeWorkshopSettingsid"); + + b1.ToTable("CustomizeWorkshopSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.InsuranceDeduction", "InsuranceDeduction", b1 => + { + b1.Property("CustomizeWorkshopSettingsid") + .HasColumnType("bigint"); + + b1.Property("InsuranceDeductionType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("InsuranceDeduction_InsuranceDeductionType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("InsuranceDeduction_Value"); + + b1.HasKey("CustomizeWorkshopSettingsid"); + + b1.ToTable("CustomizeWorkshopSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.LateToWork", "LateToWork", b1 => + { + b1.Property("CustomizeWorkshopSettingsid") + .HasColumnType("bigint"); + + b1.Property("LateToWorkType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("LateToWork_LateToWorkType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("LateToWork_Value"); + + b1.HasKey("CustomizeWorkshopSettingsid"); + + b1.ToTable("CustomizeWorkshopSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopSettingsid"); + + b1.OwnsMany("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.LateToWorkTimeFine", "LateToWorkTimeFines", b2 => + { + b2.Property("CustomizeWorkshopSettingsId") + .HasColumnType("bigint"); + + b2.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b2.Property("Id")); + + b2.Property("FineMoney") + .HasColumnType("float") + .HasColumnName("LateToWorkTimeFines_FineMoney"); + + b2.Property("Minute") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)") + .HasColumnName("LateToWorkTimeFines_Minute"); + + b2.HasKey("CustomizeWorkshopSettingsId", "Id"); + + b2.ToTable("CustomizeWorkshopSettings_LateToWorkTimeFines"); + + b2.WithOwner() + .HasForeignKey("CustomizeWorkshopSettingsId"); + }); + + b1.Navigation("LateToWorkTimeFines"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.LeavePay", "LeavePay", b1 => + { + b1.Property("CustomizeWorkshopSettingsid") + .HasColumnType("bigint"); + + b1.Property("LeavePayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("LeavePay_LeavePayType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("LeavePay_Value"); + + b1.HasKey("CustomizeWorkshopSettingsid"); + + b1.ToTable("CustomizeWorkshopSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.MarriedAllowance", "MarriedAllowance", b1 => + { + b1.Property("CustomizeWorkshopSettingsid") + .HasColumnType("bigint"); + + b1.Property("MarriedAllowanceType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("MarriedAllowance_MarriedAllowanceType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("MarriedAllowance_Value"); + + b1.HasKey("CustomizeWorkshopSettingsid"); + + b1.ToTable("CustomizeWorkshopSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.NightWorkPay", "NightWorkPay", b1 => + { + b1.Property("CustomizeWorkshopSettingsid") + .HasColumnType("bigint"); + + b1.Property("NightWorkingType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("NightWorkPay_NightWorkingType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("NightWorkPay_Value"); + + b1.HasKey("CustomizeWorkshopSettingsid"); + + b1.ToTable("CustomizeWorkshopSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.OverTimePay", "OverTimePay", b1 => + { + b1.Property("CustomizeWorkshopSettingsid") + .HasColumnType("bigint"); + + b1.Property("OverTimePayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("OverTimePay_OverTimePayType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("OverTimePay_Value"); + + b1.HasKey("CustomizeWorkshopSettingsid"); + + b1.ToTable("CustomizeWorkshopSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.ShiftPay", "ShiftPay", b1 => + { + b1.Property("CustomizeWorkshopSettingsid") + .HasColumnType("bigint"); + + b1.Property("ShiftPayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("ShiftPay_ShiftPayType"); + + b1.Property("ShiftType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("ShiftPay_ShiftType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("ShiftPay_Value"); + + b1.HasKey("CustomizeWorkshopSettingsid"); + + b1.ToTable("CustomizeWorkshopSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopSettingsid"); + }); + + b.Navigation("BaseYearsPay"); + + b.Navigation("BonusesPay"); + + b.Navigation("CustomizeWorkshopSettingsShifts"); + + b.Navigation("EarlyExit"); + + b.Navigation("FamilyAllowance"); + + b.Navigation("FineAbsenceDeduction"); + + b.Navigation("FridayPay"); + + b.Navigation("InsuranceDeduction"); + + b.Navigation("LateToWork"); + + b.Navigation("LeavePay"); + + b.Navigation("MarriedAllowance"); + + b.Navigation("NightWorkPay"); + + b.Navigation("OverTimePay"); + + b.Navigation("ShiftPay"); + + b.Navigation("Workshop"); + }); + + modelBuilder.Entity("Company.Domain.DateSalaryItemAgg.DateSalaryItem", b => + { + b.HasOne("Company.Domain.DateSalaryAgg.DateSalary", "DateSalary") + .WithMany("DateSalaryItemList") + .HasForeignKey("DateSalaryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.PercentageAgg.Percentage", "Percentage") + .WithMany("DateSalaryItemList") + .HasForeignKey("PercentageId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("DateSalary"); + + b.Navigation("Percentage"); + }); + + modelBuilder.Entity("Company.Domain.EmployeeAccountAgg.EmployeeAccount", b => + { + b.HasOne("Company.Domain.EmployeeAgg.Employee", "Employee") + .WithMany() + .HasForeignKey("EmployeeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Employee"); + }); + + modelBuilder.Entity("Company.Domain.EmployeeBankInformationAgg.EmployeeBankInformation", b => + { + b.HasOne("Company.Domain.BankAgg.Bank", "Bank") + .WithMany() + .HasForeignKey("BankId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.EmployeeAgg.Employee", "Employee") + .WithMany("EmployeeBankInformationList") + .HasForeignKey("EmployeeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Bank"); + + b.Navigation("Employee"); + }); + + modelBuilder.Entity("Company.Domain.EmployeeChildrenAgg.EmployeeChildren", b => + { + b.HasOne("Company.Domain.EmployeeAgg.Employee", "Employee") + .WithMany("EmployeeChildrenList") + .HasForeignKey("EmployeeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Employee"); + }); + + modelBuilder.Entity("Company.Domain.EmployeeDocumentItemAgg.EmployeeDocumentItem", b => + { + b.HasOne("Company.Domain.EmployeeDocumentsAgg.EmployeeDocuments", "EmployeeDocuments") + .WithMany("EmployeeDocumentItemCollection") + .HasForeignKey("EmployeeDocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.EmployeeDocumentsAdminSelectionAgg.EmployeeDocumentsAdminSelection", "EmployeeDocumentsAdminSelection") + .WithMany("SelectedEmployeeDocumentItems") + .HasForeignKey("EmployeeDocumentsAdminViewId"); + + b.OwnsMany("Company.Domain.EmployeeDocumentItemAgg.EmployeeDocumentItemLog", "ItemLogs", b1 => + { + b1.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("id")); + + b1.Property("AdminMessage") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b1.Property("CreationDate") + .HasColumnType("datetime2"); + + b1.Property("EmployeeDocumentItemId") + .HasColumnType("bigint"); + + b1.Property("OperationType") + .IsRequired() + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b1.Property("OperatorId") + .HasColumnType("bigint"); + + b1.Property("OperatorType") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b1.HasKey("id"); + + b1.HasIndex("EmployeeDocumentItemId"); + + b1.ToTable("EmployeeDocumentItemLogs", (string)null); + + b1.WithOwner("EmployeeDocumentItem") + .HasForeignKey("EmployeeDocumentItemId"); + + b1.Navigation("EmployeeDocumentItem"); + }); + + b.Navigation("EmployeeDocuments"); + + b.Navigation("EmployeeDocumentsAdminSelection"); + + b.Navigation("ItemLogs"); + }); + + modelBuilder.Entity("Company.Domain.EmployeeDocumentsAdminSelectionAgg.EmployeeDocumentsAdminSelection", b => + { + b.HasOne("Company.Domain.EmployeeAgg.Employee", "Employee") + .WithOne("EmployeeDocumentsAdminSelection") + .HasForeignKey("Company.Domain.EmployeeDocumentsAdminSelectionAgg.EmployeeDocumentsAdminSelection", "EmployeeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Employee"); + }); + + modelBuilder.Entity("Company.Domain.EmployeeDocumentsAgg.EmployeeDocuments", b => + { + b.HasOne("Company.Domain.EmployeeAgg.Employee", "Employee") + .WithMany("EmployeeDocuments") + .HasForeignKey("EmployeeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.WorkshopAgg.Workshop", "Workshop") + .WithMany() + .HasForeignKey("WorkshopId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Employee"); + + b.Navigation("Workshop"); + }); + + modelBuilder.Entity("Company.Domain.EmployeeInsuranceRecordAgg.EmployeeInsuranceRecord", b => + { + b.HasOne("Company.Domain.EmployeeAgg.Employee", "Employee") + .WithMany("EmployeeInsuranceRecords") + .HasForeignKey("EmployeeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.WorkshopAgg.Workshop", "Workshop") + .WithMany("EmployeeInsuranceRecords") + .HasForeignKey("WorkShopId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Employee"); + + b.Navigation("Workshop"); + }); + + modelBuilder.Entity("Company.Domain.EmployerAccountAgg.EmployerAccount", b => + { + b.HasOne("Company.Domain.empolyerAgg.Employer", "Employer") + .WithMany() + .HasForeignKey("EmployerId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Employer"); + }); + + modelBuilder.Entity("Company.Domain.Evidence.Evidence", b => + { + b.HasOne("Company.Domain.BoardType.BoardType", "BoardType") + .WithMany("EvidencesList") + .HasForeignKey("BoardType_Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.File1.File1", "File1") + .WithMany("EvidencesList") + .HasForeignKey("File_Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("BoardType"); + + b.Navigation("File1"); + }); + + modelBuilder.Entity("Company.Domain.EvidenceDetail.EvidenceDetail", b => + { + b.HasOne("Company.Domain.Evidence.Evidence", "Evidence") + .WithMany("EvidenceDetailsList") + .HasForeignKey("Evidence_Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Evidence"); + }); + + modelBuilder.Entity("Company.Domain.FileAlert.FileAlert", b => + { + b.HasOne("Company.Domain.FileState.FileState", "FileState") + .WithMany("FileAlertsList") + .HasForeignKey("FileState_Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.File1.File1", "File") + .WithMany("FileAlertsList") + .HasForeignKey("File_Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("File"); + + b.Navigation("FileState"); + }); + + modelBuilder.Entity("Company.Domain.FileAndFileEmployerAgg.FileAndFileEmployer", b => + { + b.HasOne("Company.Domain.FileEmployerAgg.FileEmployer", "FileEmployer") + .WithMany("FileAndFileEmployers") + .HasForeignKey("FileEmployerId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.File1.File1", "File1") + .WithMany("FileAndFileEmployers") + .HasForeignKey("FileId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("File1"); + + b.Navigation("FileEmployer"); + }); + + modelBuilder.Entity("Company.Domain.FileEmployeeAgg.FileEmployee", b => + { + b.HasOne("Company.Domain.RepresentativeAgg.Representative", "Representative") + .WithMany("FileEmployeeList") + .HasForeignKey("RepresentativeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Representative"); + }); + + modelBuilder.Entity("Company.Domain.FileEmployerAgg.FileEmployer", b => + { + b.HasOne("Company.Domain.RepresentativeAgg.Representative", "Representative") + .WithMany("FileEmployerList") + .HasForeignKey("RepresentativeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Representative"); + }); + + modelBuilder.Entity("Company.Domain.FileState.FileState", b => + { + b.HasOne("Company.Domain.FileTiming.FileTiming", "FileTiming") + .WithMany("FileStates") + .HasForeignKey("FileTiming_Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("FileTiming"); + }); + + modelBuilder.Entity("Company.Domain.FinancialTransactionAgg.FinancialTransaction", b => + { + b.HasOne("Company.Domain.FinancialStatmentAgg.FinancialStatment", "FinancialStatment") + .WithMany("FinancialTransactionList") + .HasForeignKey("FinancialStatementId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("FinancialStatment"); + }); + + modelBuilder.Entity("Company.Domain.GroupPlanAgg.GroupPlan", b => + { + b.HasOne("Company.Domain.WorkshopPlanAgg.WorkshopPlan", "WorkshopPlan") + .WithMany("GroupPlans") + .HasForeignKey("WorkshopPlanId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("WorkshopPlan"); + }); + + modelBuilder.Entity("Company.Domain.GroupPlanJobItemAgg.GroupPlanJobItem", b => + { + b.HasOne("Company.Domain.GroupPlanAgg.GroupPlan", "GroupPlan") + .WithMany("GroupPlanJobItems") + .HasForeignKey("GroupPlanId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("GroupPlan"); + }); + + modelBuilder.Entity("Company.Domain.HolidayItemAgg.HolidayItem", b => + { + b.HasOne("Company.Domain.HolidayAgg.Holiday", "Holidayss") + .WithMany("HolidayItems") + .HasForeignKey("HolidayId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Holidayss"); + }); + + modelBuilder.Entity("Company.Domain.InstitutionContractContactInfoAgg.InstitutionContractContactInfo", b => + { + b.HasOne("Company.Domain.InstitutionContractAgg.InstitutionContract", "InstitutionContracts") + .WithMany("ContactInfoList") + .HasForeignKey("InstitutionContractId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("InstitutionContracts"); + }); + + modelBuilder.Entity("Company.Domain.InsurancWorkshopInfoAgg.InsuranceWorkshopInfo", b => + { + b.HasOne("Company.Domain.WorkshopAgg.Workshop", "Workshop") + .WithOne("InsuranceWorkshopInfo") + .HasForeignKey("Company.Domain.InsurancWorkshopInfoAgg.InsuranceWorkshopInfo", "WorkshopId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Workshop"); + }); + + modelBuilder.Entity("Company.Domain.InsuranceAgg.Insurance", b => + { + b.HasOne("Company.Domain.WorkshopAgg.Workshop", "Workshop") + .WithMany("Insurances") + .HasForeignKey("WorkShopId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Workshop"); + }); + + modelBuilder.Entity("Company.Domain.InsuranceEmployeeInfoAgg.InsuranceEmployeeInfo", b => + { + b.HasOne("Company.Domain.EmployeeAgg.Employee", "Employee") + .WithOne("InsuranceEmployeeInfo") + .HasForeignKey("Company.Domain.InsuranceEmployeeInfoAgg.InsuranceEmployeeInfo", "EmployeeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Employee"); + }); + + modelBuilder.Entity("Company.Domain.InsuranceJobAndJobsAgg.InsuranceJobAndJobs", b => + { + b.HasOne("Company.Domain.InsuranceJobItemAgg.InsuranceJobItem", "InsuranceJobItem") + .WithMany("InsuranceJobAndJobs") + .HasForeignKey("InsuranceJobItemId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.JobAgg.Job", "Jobs") + .WithMany("InsuranceJobAndJobs") + .HasForeignKey("JobId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("InsuranceJobItem"); + + b.Navigation("Jobs"); + }); + + modelBuilder.Entity("Company.Domain.InsuranceJobItemAgg.InsuranceJobItem", b => + { + b.HasOne("Company.Domain.InsurancJobAgg.InsuranceJob", "InsuranceJob") + .WithMany("InsuranceJobItemList") + .HasForeignKey("InsuranceJobId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("InsuranceJob"); + }); + + modelBuilder.Entity("Company.Domain.InsuranceWorkshopAgg.InsuranceListWorkshop", b => + { + b.HasOne("Company.Domain.InsuranceListAgg.InsuranceList", "InsuranceList") + .WithMany("InsuranceListWorkshops") + .HasForeignKey("InsurancListId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.WorkshopAgg.Workshop", "Workshop") + .WithMany("InsuranceListWorkshops") + .HasForeignKey("WorkshopId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("InsuranceList"); + + b.Navigation("Workshop"); + }); + + modelBuilder.Entity("Company.Domain.LeftWorkAgg.LeftWork", b => + { + b.HasOne("Company.Domain.EmployeeAgg.Employee", "Employee") + .WithMany("LeftWorks") + .HasForeignKey("EmployeeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.WorkshopAgg.Workshop", "Workshop") + .WithMany("LeftWorks") + .HasForeignKey("WorkshopId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Employee"); + + b.Navigation("Workshop"); + }); + + modelBuilder.Entity("Company.Domain.LeftWorkInsuranceAgg.LeftWorkInsurance", b => + { + b.HasOne("Company.Domain.EmployeeAgg.Employee", "Employee") + .WithMany("LeftWorkInsurances") + .HasForeignKey("EmployeeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.WorkshopAgg.Workshop", "Workshop") + .WithMany("LeftWorkInsurances") + .HasForeignKey("WorkshopId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Employee"); + + b.Navigation("Workshop"); + }); + + modelBuilder.Entity("Company.Domain.LoanAgg.Entities.Loan", b => + { + b.OwnsMany("Company.Domain.LoanAgg.Entities.LoanInstallment", "LoanInstallments", b1 => + { + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("AmountForMonth") + .HasColumnType("float"); + + b1.Property("InstallmentDate") + .HasColumnType("datetime2"); + + b1.Property("IsActive") + .IsRequired() + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b1.Property("LoanId") + .HasColumnType("bigint"); + + b1.Property("Month") + .HasMaxLength(2) + .HasColumnType("nvarchar(2)"); + + b1.Property("Year") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)"); + + b1.HasKey("Id"); + + b1.HasIndex("LoanId"); + + b1.ToTable("LoanInstallment"); + + b1.WithOwner() + .HasForeignKey("LoanId"); + }); + + b.Navigation("LoanInstallments"); + }); + + modelBuilder.Entity("Company.Domain.MasterPenaltyTitle.MasterPenaltyTitle", b => + { + b.HasOne("Company.Domain.MasterPetition.MasterPetition", "MasterPetition") + .WithMany("MasterPenaltyTitlesList") + .HasForeignKey("MasterPetition_Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("MasterPetition"); + }); + + modelBuilder.Entity("Company.Domain.MasterPetition.MasterPetition", b => + { + b.HasOne("Company.Domain.BoardType.BoardType", "BoardType") + .WithMany("MasterPetitionsList") + .HasForeignKey("BoardType_Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.File1.File1", "File1") + .WithMany("MasterPetitionsList") + .HasForeignKey("File_Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("BoardType"); + + b.Navigation("File1"); + }); + + modelBuilder.Entity("Company.Domain.MasterWorkHistory.MasterWorkHistory", b => + { + b.HasOne("Company.Domain.MasterPetition.MasterPetition", "MasterPetition") + .WithMany("MasterWorkHistoriesList") + .HasForeignKey("MasterPetition_Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("MasterPetition"); + }); + + modelBuilder.Entity("Company.Domain.ModuleTextManagerAgg.EntityModuleTextManager", b => + { + b.HasOne("Company.Domain.ModuleAgg.EntityModule", "Module") + .WithMany("EntityModuleTextManagers") + .HasForeignKey("ModuleId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.TextManagerAgg.EntityTextManager", "TextManager") + .WithMany("EntityModuleTextManagers") + .HasForeignKey("TextManagerId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Module"); + + b.Navigation("TextManager"); + }); + + modelBuilder.Entity("Company.Domain.PaymentToEmployeeItemAgg.PaymentToEmployeeItem", b => + { + b.HasOne("Company.Domain.PaymentToEmployeeAgg.PaymentToEmployee", "PaymentToEmployee") + .WithMany("PaymentToEmployeeItemList") + .HasForeignKey("PaymentToEmployeeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("PaymentToEmployee"); + }); + + modelBuilder.Entity("Company.Domain.PenaltyTitle.PenaltyTitle", b => + { + b.HasOne("Company.Domain.Petition.Petition", "Petition") + .WithMany("PenaltyTitlesList") + .HasForeignKey("Petition_Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Petition"); + }); + + modelBuilder.Entity("Company.Domain.PersonnelCodeAgg.PersonnelCodeDomain", b => + { + b.HasOne("Company.Domain.EmployeeAgg.Employee", "Employee") + .WithMany("PersonnelCodeList") + .HasForeignKey("EmployeeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.WorkshopAgg.Workshop", "Workshop") + .WithMany("PersonnelCodeList") + .HasForeignKey("WorkshopId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Employee"); + + b.Navigation("Workshop"); + }); + + modelBuilder.Entity("Company.Domain.Petition.Petition", b => + { + b.HasOne("Company.Domain.BoardType.BoardType", "BoardType") + .WithMany("PetitionsList") + .HasForeignKey("BoardType_Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.File1.File1", "File1") + .WithMany("PetitionsList") + .HasForeignKey("File_Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("BoardType"); + + b.Navigation("File1"); + }); + + modelBuilder.Entity("Company.Domain.ProceedingSession.ProceedingSession", b => + { + b.HasOne("Company.Domain.Board.Board", "Board") + .WithMany("ProceedingSessionsList") + .HasForeignKey("Board_Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Board"); + }); + + modelBuilder.Entity("Company.Domain.RollCallEmployeeStatusAgg.RollCallEmployeeStatus", b => + { + b.HasOne("Company.Domain.RollCallEmployeeAgg.RollCallEmployee", "RollCallEmployee") + .WithMany("EmployeesStatus") + .HasForeignKey("RollCallEmployeeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("RollCallEmployee"); + }); + + modelBuilder.Entity("Company.Domain.RollCallServiceAgg.RollCallService", b => + { + b.HasOne("Company.Domain.WorkshopAgg.Workshop", "Workshop") + .WithMany("RollCallServicesList") + .HasForeignKey("AccountId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Workshop"); + }); + + modelBuilder.Entity("Company.Domain.SubtitleAgg.EntitySubtitle", b => + { + b.HasOne("Company.Domain.SubtitleAgg.EntitySubtitle", null) + .WithMany("Subtitles") + .HasForeignKey("EntitySubtitleid"); + + b.HasOne("Company.Domain.OriginalTitleAgg.EntityOriginalTitle", "EntityOriginalTitle") + .WithMany("Subtitles") + .HasForeignKey("OriginalTitle_Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("EntityOriginalTitle"); + }); + + modelBuilder.Entity("Company.Domain.TaxLeftWorkCategoryAgg.TaxLeftWorkCategory", b => + { + b.HasOne("Company.Domain.WorkshopAgg.Workshop", "Workshop") + .WithMany("TaxLeftWorkCategoryList") + .HasForeignKey("WorkshopId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Workshop"); + }); + + modelBuilder.Entity("Company.Domain.TaxLeftWorkItemAgg.TaxLeftWorkItem", b => + { + b.HasOne("Company.Domain.TaxLeftWorkCategoryAgg.TaxLeftWorkCategory", "TaxLeftWorkCategory") + .WithMany("TaxLeftWorkItemList") + .HasForeignKey("TaxLeftWorkCategoryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("TaxLeftWorkCategory"); + }); + + modelBuilder.Entity("Company.Domain.TemporaryClientRegistrationAgg.WorkshopServicesTemp", b => + { + b.HasOne("Company.Domain.TemporaryClientRegistrationAgg.WorkshopTemp", "WorkshopTemp") + .WithMany("WorkshopServicesTemps") + .HasForeignKey("WorkshopTempId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("WorkshopTemp"); + }); + + modelBuilder.Entity("Company.Domain.WorkHistory.WorkHistory", b => + { + b.HasOne("Company.Domain.Petition.Petition", "Petition") + .WithMany("WorkHistoriesList") + .HasForeignKey("Petition_Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Petition"); + }); + + modelBuilder.Entity("Company.Domain.WorkingHoursAgg.WorkingHours", b => + { + b.HasOne("Company.Domain.ContractAgg.Contract", "Contracts") + .WithMany("WorkingHoursList") + .HasForeignKey("ContractId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Contracts"); + }); + + modelBuilder.Entity("Company.Domain.WorkingHoursItemsAgg.WorkingHoursItems", b => + { + b.HasOne("Company.Domain.WorkingHoursAgg.WorkingHours", "WorkingHourses") + .WithMany("WorkingHoursItemsList") + .HasForeignKey("WorkingHoursId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("WorkingHourses"); + }); + + modelBuilder.Entity("Company.Domain.WorkingHoursTempItemAgg.WorkingHoursTempItem", b => + { + b.HasOne("Company.Domain.WorkingHoursTempAgg.WorkingHoursTemp", "WorkingHoursTemp") + .WithMany("WorkingHoursTempItemList") + .HasForeignKey("WorkingHoursTempId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("WorkingHoursTemp"); + }); + + modelBuilder.Entity("Company.Domain.WorkshopAccountAgg.WorkshopAccount", b => + { + b.HasOne("Company.Domain.WorkshopAgg.Workshop", "Workshop") + .WithMany() + .HasForeignKey("WorkshopId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Workshop"); + }); + + modelBuilder.Entity("Company.Domain.WorkshopEmployerAgg.WorkshopEmployer", b => + { + b.HasOne("Company.Domain.empolyerAgg.Employer", "Employer") + .WithMany("WorkshopEmployers") + .HasForeignKey("EmployerId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.WorkshopAgg.Workshop", "Workshop") + .WithMany("WorkshopEmployers") + .HasForeignKey("WorkshopId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Employer"); + + b.Navigation("Workshop"); + }); + + modelBuilder.Entity("Company.Domain.WorkshopPlanEmployeeAgg.WorkshopPlanEmployee", b => + { + b.HasOne("Company.Domain.WorkshopPlanAgg.WorkshopPlan", "WorkshopPlan") + .WithMany("WorkshopPlanEmployees") + .HasForeignKey("WorkshopPlanId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("WorkshopPlan"); + }); + + modelBuilder.Entity("Company.Domain.WorkshopSubAccountAgg.WorkshopSubAccount", b => + { + b.HasOne("Company.Domain.WorkshopAgg.Workshop", "Workshop") + .WithMany("WorkshopSubAccounts") + .HasForeignKey("WorkshopId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Workshop"); + }); + + modelBuilder.Entity("Company.Domain.YearlySalaryItemsAgg.YearlySalaryItem", b => + { + b.HasOne("Company.Domain.YearlySalaryAgg.YearlySalary", "YearlySalary") + .WithMany("YearlySalaryItemsList") + .HasForeignKey("YearlySalaryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("YearlySalary"); + }); + + modelBuilder.Entity("Company.Domain.empolyerAgg.Employer", b => + { + b.HasOne("Company.Domain.ContarctingPartyAgg.PersonalContractingParty", "ContractingParty") + .WithMany("Employers") + .HasForeignKey("ContractingPartyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ContractingParty"); + }); + + modelBuilder.Entity("EmployerWorkshop", b => + { + b.HasOne("Company.Domain.empolyerAgg.Employer", null) + .WithMany() + .HasForeignKey("EmployersListid") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.WorkshopAgg.Workshop", null) + .WithMany() + .HasForeignKey("WorkshopsListid") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Company.Domain.Board.Board", b => + { + b.Navigation("ProceedingSessionsList"); + }); + + modelBuilder.Entity("Company.Domain.BoardType.BoardType", b => + { + b.Navigation("BoardsList"); + + b.Navigation("EvidencesList"); + + b.Navigation("MasterPetitionsList"); + + b.Navigation("PetitionsList"); + }); + + modelBuilder.Entity("Company.Domain.ContarctingPartyAgg.PersonalContractingParty", b => + { + b.Navigation("Employers"); + }); + + modelBuilder.Entity("Company.Domain.ContractAgg.Contract", b => + { + b.Navigation("WorkingHoursList"); + }); + + modelBuilder.Entity("Company.Domain.CrossJobAgg.CrossJob", b => + { + b.Navigation("CrossJobItemsList"); + }); + + modelBuilder.Entity("Company.Domain.CrossJobGuildAgg.CrossJobGuild", b => + { + b.Navigation("CrossJobList"); + }); + + modelBuilder.Entity("Company.Domain.CustomizeWorkshopGroupSettingsAgg.Entities.CustomizeWorkshopGroupSettings", b => + { + b.Navigation("CustomizeWorkshopEmployeeSettingsCollection"); + }); + + modelBuilder.Entity("Company.Domain.CustomizeWorkshopSettingsAgg.Entities.CustomizeWorkshopSettings", b => + { + b.Navigation("CustomizeWorkshopGroupSettingsCollection"); + }); + + modelBuilder.Entity("Company.Domain.DateSalaryAgg.DateSalary", b => + { + b.Navigation("DateSalaryItemList"); + }); + + modelBuilder.Entity("Company.Domain.EmployeeAgg.Employee", b => + { + b.Navigation("ClientEmployeeWorkshopList"); + + b.Navigation("Contracts"); + + b.Navigation("CustomizeCheckouts"); + + b.Navigation("EmployeeBankInformationList"); + + b.Navigation("EmployeeChildrenList"); + + b.Navigation("EmployeeDocuments"); + + b.Navigation("EmployeeDocumentsAdminSelection"); + + b.Navigation("EmployeeInsuranceRecords"); + + b.Navigation("InsuranceEmployeeInfo"); + + b.Navigation("LeftWorkInsurances"); + + b.Navigation("LeftWorks"); + + b.Navigation("PersonnelCodeList"); + }); + + modelBuilder.Entity("Company.Domain.EmployeeDocumentsAdminSelectionAgg.EmployeeDocumentsAdminSelection", b => + { + b.Navigation("SelectedEmployeeDocumentItems"); + }); + + modelBuilder.Entity("Company.Domain.EmployeeDocumentsAgg.EmployeeDocuments", b => + { + b.Navigation("EmployeeDocumentItemCollection"); + }); + + modelBuilder.Entity("Company.Domain.Evidence.Evidence", b => + { + b.Navigation("EvidenceDetailsList"); + }); + + modelBuilder.Entity("Company.Domain.File1.File1", b => + { + b.Navigation("BoardsList"); + + b.Navigation("EvidencesList"); + + b.Navigation("FileAlertsList"); + + b.Navigation("FileAndFileEmployers"); + + b.Navigation("MasterPetitionsList"); + + b.Navigation("PetitionsList"); + }); + + modelBuilder.Entity("Company.Domain.FileEmployerAgg.FileEmployer", b => + { + b.Navigation("FileAndFileEmployers"); + }); + + modelBuilder.Entity("Company.Domain.FileState.FileState", b => + { + b.Navigation("FileAlertsList"); + }); + + modelBuilder.Entity("Company.Domain.FileTiming.FileTiming", b => + { + b.Navigation("FileStates"); + }); + + modelBuilder.Entity("Company.Domain.FinancialStatmentAgg.FinancialStatment", b => + { + b.Navigation("FinancialTransactionList"); + }); + + modelBuilder.Entity("Company.Domain.GroupPlanAgg.GroupPlan", b => + { + b.Navigation("GroupPlanJobItems"); + }); + + modelBuilder.Entity("Company.Domain.HolidayAgg.Holiday", b => + { + b.Navigation("HolidayItems"); + }); + + modelBuilder.Entity("Company.Domain.InstitutionContractAgg.InstitutionContract", b => + { + b.Navigation("ContactInfoList"); + }); + + modelBuilder.Entity("Company.Domain.InsurancJobAgg.InsuranceJob", b => + { + b.Navigation("InsuranceJobItemList"); + }); + + modelBuilder.Entity("Company.Domain.InsuranceJobItemAgg.InsuranceJobItem", b => + { + b.Navigation("InsuranceJobAndJobs"); + }); + + modelBuilder.Entity("Company.Domain.InsuranceListAgg.InsuranceList", b => + { + b.Navigation("InsuranceListWorkshops"); + }); + + modelBuilder.Entity("Company.Domain.JobAgg.Job", b => + { + b.Navigation("ContractsList"); + + b.Navigation("CrossJobItemsList"); + + b.Navigation("InsuranceJobAndJobs"); + }); + + modelBuilder.Entity("Company.Domain.MandatoryHoursAgg.MandatoryHours", b => + { + b.Navigation("Contracts"); + }); + + modelBuilder.Entity("Company.Domain.MasterPetition.MasterPetition", b => + { + b.Navigation("MasterPenaltyTitlesList"); + + b.Navigation("MasterWorkHistoriesList"); + }); + + modelBuilder.Entity("Company.Domain.ModuleAgg.EntityModule", b => + { + b.Navigation("EntityModuleTextManagers"); + }); + + modelBuilder.Entity("Company.Domain.OriginalTitleAgg.EntityOriginalTitle", b => + { + b.Navigation("Subtitles"); + }); + + modelBuilder.Entity("Company.Domain.PaymentToEmployeeAgg.PaymentToEmployee", b => + { + b.Navigation("PaymentToEmployeeItemList"); + }); + + modelBuilder.Entity("Company.Domain.PercentageAgg.Percentage", b => + { + b.Navigation("DateSalaryItemList"); + }); + + modelBuilder.Entity("Company.Domain.Petition.Petition", b => + { + b.Navigation("PenaltyTitlesList"); + + b.Navigation("WorkHistoriesList"); + }); + + modelBuilder.Entity("Company.Domain.RepresentativeAgg.Representative", b => + { + b.Navigation("ContractingParties"); + + b.Navigation("FileEmployeeList"); + + b.Navigation("FileEmployerList"); + }); + + modelBuilder.Entity("Company.Domain.RollCallEmployeeAgg.RollCallEmployee", b => + { + b.Navigation("EmployeesStatus"); + }); + + modelBuilder.Entity("Company.Domain.SubtitleAgg.EntitySubtitle", b => + { + b.Navigation("Chapters"); + + b.Navigation("Subtitles"); + }); + + modelBuilder.Entity("Company.Domain.TaxLeftWorkCategoryAgg.TaxLeftWorkCategory", b => + { + b.Navigation("TaxLeftWorkItemList"); + }); + + modelBuilder.Entity("Company.Domain.TemporaryClientRegistrationAgg.WorkshopTemp", b => + { + b.Navigation("WorkshopServicesTemps"); + }); + + modelBuilder.Entity("Company.Domain.TextManagerAgg.EntityTextManager", b => + { + b.Navigation("EntityModuleTextManagers"); + }); + + modelBuilder.Entity("Company.Domain.WorkingHoursAgg.WorkingHours", b => + { + b.Navigation("WorkingHoursItemsList"); + }); + + modelBuilder.Entity("Company.Domain.WorkingHoursTempAgg.WorkingHoursTemp", b => + { + b.Navigation("WorkingHoursTempItemList"); + }); + + modelBuilder.Entity("Company.Domain.WorkshopAgg.Workshop", b => + { + b.Navigation("Checkouts"); + + b.Navigation("ClientEmployeeWorkshopList"); + + b.Navigation("Contracts2"); + + b.Navigation("CustomizeCheckouts"); + + b.Navigation("CustomizeWorkshopSettings"); + + b.Navigation("EmployeeInsuranceRecords"); + + b.Navigation("InsuranceListWorkshops"); + + b.Navigation("InsuranceWorkshopInfo"); + + b.Navigation("Insurances"); + + b.Navigation("LeftWorkInsurances"); + + b.Navigation("LeftWorks"); + + b.Navigation("PersonnelCodeList"); + + b.Navigation("RollCallServicesList"); + + b.Navigation("TaxLeftWorkCategoryList"); + + b.Navigation("WorkshopEmployers"); + + b.Navigation("WorkshopSubAccounts"); + }); + + modelBuilder.Entity("Company.Domain.WorkshopPlanAgg.WorkshopPlan", b => + { + b.Navigation("GroupPlans"); + + b.Navigation("WorkshopPlanEmployees"); + }); + + modelBuilder.Entity("Company.Domain.YearlySalaryAgg.YearlySalary", b => + { + b.Navigation("Contracts"); + + b.Navigation("YearlySalaryItemsList"); + }); + + modelBuilder.Entity("Company.Domain.empolyerAgg.Employer", b => + { + b.Navigation("Contracts"); + + b.Navigation("WorkshopEmployers"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/CompanyManagment.EFCore/Migrations/20250423184716_add contact us .cs b/CompanyManagment.EFCore/Migrations/20250423184716_add contact us .cs new file mode 100644 index 00000000..2b5fab3d --- /dev/null +++ b/CompanyManagment.EFCore/Migrations/20250423184716_add contact us .cs @@ -0,0 +1,42 @@ +using System; +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace CompanyManagment.EFCore.Migrations +{ + /// + public partial class addcontactus : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.CreateTable( + name: "ContactUs", + columns: table => new + { + id = table.Column(type: "bigint", nullable: false) + .Annotation("SqlServer:Identity", "1, 1"), + FirstName = table.Column(type: "nvarchar(100)", maxLength: 100, nullable: true), + LastName = table.Column(type: "nvarchar(100)", maxLength: 100, nullable: true), + Email = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: true), + PhoneNumber = table.Column(type: "nvarchar(20)", maxLength: 20, nullable: true), + Title = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: true), + Message = table.Column(type: "nvarchar(500)", maxLength: 500, nullable: true), + FullName = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: true), + CreationDate = table.Column(type: "datetime2", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_ContactUs", x => x.id); + }); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropTable( + name: "ContactUs"); + } + } +} diff --git a/CompanyManagment.EFCore/Migrations/20250709090803_init payment transaction.Designer.cs b/CompanyManagment.EFCore/Migrations/20250709090803_init payment transaction.Designer.cs new file mode 100644 index 00000000..e42a678d --- /dev/null +++ b/CompanyManagment.EFCore/Migrations/20250709090803_init payment transaction.Designer.cs @@ -0,0 +1,10018 @@ +// +using System; +using System.Collections.Generic; +using CompanyManagment.EFCore; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; + +#nullable disable + +namespace CompanyManagment.EFCore.Migrations +{ + [DbContext(typeof(CompanyContext))] + [Migration("20250709090803_init payment transaction")] + partial class initpaymenttransaction + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "8.0.10") + .HasAnnotation("Relational:MaxIdentifierLength", 128); + + SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); + + modelBuilder.Entity("Company.Domain.AdminMonthlyOverviewAgg.AdminMonthlyOverview", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Month") + .HasColumnType("int"); + + b.Property("Status") + .IsRequired() + .HasMaxLength(155) + .HasColumnType("nvarchar(155)"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("Year") + .HasColumnType("int"); + + b.HasKey("id"); + + b.ToTable("AdminMonthlyOverviews"); + }); + + modelBuilder.Entity("Company.Domain.AndroidApkVersionAgg.AndroidApkVersion", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("IsActive") + .IsRequired() + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("Path") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Title") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("VersionCode") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("VersionName") + .HasMaxLength(35) + .HasColumnType("nvarchar(35)"); + + b.HasKey("id"); + + b.ToTable("AndroidApkVersions", (string)null); + }); + + modelBuilder.Entity("Company.Domain.BankAgg.Bank", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BankLogoMediaId") + .HasColumnType("bigint"); + + b.Property("BankName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.HasKey("id"); + + b.ToTable("Banks", (string)null); + }); + + modelBuilder.Entity("Company.Domain.BillAgg.EntityBill", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Appointed") + .HasColumnType("nvarchar(max)"); + + b.Property("Contact") + .HasColumnType("nvarchar(max)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Description") + .HasColumnType("nvarchar(max)"); + + b.Property("IsActiveString") + .HasColumnType("nvarchar(max)"); + + b.Property("ProcessingStage") + .HasColumnType("nvarchar(max)"); + + b.Property("SubjectBill") + .IsRequired() + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.HasKey("id"); + + b.ToTable("TextManager_Bill", (string)null); + }); + + modelBuilder.Entity("Company.Domain.Board.Board", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BoardChairman") + .HasColumnType("nvarchar(max)"); + + b.Property("BoardType_Id") + .HasColumnType("int"); + + b.Property("Branch") + .HasColumnType("nvarchar(max)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DisputeResolutionPetitionDate") + .HasColumnType("datetime2"); + + b.Property("ExpertReport") + .HasColumnType("nvarchar(max)"); + + b.Property("File_Id") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("BoardType_Id"); + + b.HasIndex("File_Id"); + + b.ToTable("Boards", (string)null); + }); + + modelBuilder.Entity("Company.Domain.BoardType.BoardType", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("Title") + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + b.ToTable("BoardTypes", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ChapterAgg.EntityChapter", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Chapter") + .IsRequired() + .HasMaxLength(60) + .HasColumnType("nvarchar(60)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("IsActiveString") + .HasColumnType("nvarchar(max)"); + + b.Property("Subtitle_Id") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("Subtitle_Id"); + + b.ToTable("TextManager_Chapter", (string)null); + }); + + modelBuilder.Entity("Company.Domain.CheckoutAgg.Checkout", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("AbsenceDeduction") + .HasColumnType("float"); + + b.Property("AbsencePeriod") + .HasColumnType("float"); + + b.Property("AbsenceValue") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("ArchiveCode") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("AverageHoursPerDay") + .HasColumnType("float"); + + b.Property("BaseYearsPay") + .HasColumnType("float"); + + b.Property("BonusesPay") + .HasColumnType("float"); + + b.Property("ConsumableItems") + .HasColumnType("float"); + + b.Property("ContractEnd") + .HasColumnType("datetime2"); + + b.Property("ContractId") + .HasColumnType("bigint"); + + b.Property("ContractNo") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("ContractStart") + .HasColumnType("datetime2"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("CreditLeaves") + .HasColumnType("float"); + + b.Property("DateOfBirth") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("EmployeeFullName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("FamilyAllowance") + .HasColumnType("float"); + + b.Property("FathersName") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("FridayPay") + .HasColumnType("float"); + + b.Property("FridayWorkValue") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("HasRollCall") + .HasColumnType("bit"); + + b.Property("HousingAllowance") + .HasColumnType("float"); + + b.Property("InstallmentDeduction") + .HasColumnType("float"); + + b.Property("InsuranceDeduction") + .HasColumnType("float"); + + b.Property("IsActiveString") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("LeaveCheckout") + .HasColumnType("bit"); + + b.Property("LeavePay") + .HasColumnType("float"); + + b.Property("MarriedAllowance") + .HasColumnType("float"); + + b.Property("MissionPay") + .HasColumnType("float"); + + b.Property("Month") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("MonthlySalary") + .HasColumnType("float"); + + b.Property("NationalCode") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("NightworkPay") + .HasColumnType("float"); + + b.Property("OverNightWorkValue") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("OverTimeWorkValue") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("OvertimePay") + .HasColumnType("float"); + + b.Property("PersonnelCode") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("RewardPay") + .HasColumnType("float"); + + b.Property("RotatingShiftValue") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("SalaryAidDeduction") + .HasColumnType("float"); + + b.Property("ShiftPay") + .HasColumnType("float"); + + b.Property("Signature") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("SumOfWorkingDays") + .HasMaxLength(6) + .HasColumnType("nvarchar(6)"); + + b.Property("TaxDeducation") + .HasColumnType("float"); + + b.Property("TotalClaims") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("TotalDayOfBunosesCompute") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("TotalDayOfLeaveCompute") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("TotalDayOfYearsCompute") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("TotalDeductions") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("TotalPayment") + .HasColumnType("float"); + + b.Property("WorkingHoursId") + .HasColumnType("bigint"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("WorkshopName") + .HasMaxLength(70) + .HasColumnType("nvarchar(70)"); + + b.Property("Year") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)"); + + b.Property("YearsPay") + .HasColumnType("float"); + + b.HasKey("id"); + + b.HasIndex("WorkshopId"); + + b.ToTable("Checkouts", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ClassifiedSalaryAgg.ClassifiedSalary", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EndDate") + .HasColumnType("datetime2"); + + b.Property("Group1") + .HasColumnType("float"); + + b.Property("Group10") + .HasColumnType("float"); + + b.Property("Group11") + .HasColumnType("float"); + + b.Property("Group12") + .HasColumnType("float"); + + b.Property("Group13") + .HasColumnType("float"); + + b.Property("Group14") + .HasColumnType("float"); + + b.Property("Group15") + .HasColumnType("float"); + + b.Property("Group16") + .HasColumnType("float"); + + b.Property("Group17") + .HasColumnType("float"); + + b.Property("Group18") + .HasColumnType("float"); + + b.Property("Group19") + .HasColumnType("float"); + + b.Property("Group2") + .HasColumnType("float"); + + b.Property("Group20") + .HasColumnType("float"); + + b.Property("Group3") + .HasColumnType("float"); + + b.Property("Group4") + .HasColumnType("float"); + + b.Property("Group5") + .HasColumnType("float"); + + b.Property("Group6") + .HasColumnType("float"); + + b.Property("Group7") + .HasColumnType("float"); + + b.Property("Group8") + .HasColumnType("float"); + + b.Property("Group9") + .HasColumnType("float"); + + b.Property("StartDate") + .HasColumnType("datetime2"); + + b.Property("Year") + .HasColumnType("int"); + + b.HasKey("id"); + + b.ToTable("ClassifiedSalaries", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ClientEmployeeWorkshopAgg.ClientEmployeeWorkshop", b => + { + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.HasKey("WorkshopId", "EmployeeId"); + + b.HasIndex("EmployeeId"); + + b.ToTable("ClientWorkshopEmployee", (string)null); + }); + + modelBuilder.Entity("Company.Domain.Contact2Agg.EntityContact", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("IsActiveString") + .HasColumnType("nvarchar(max)"); + + b.Property("NameContact") + .HasColumnType("nvarchar(max)"); + + b.Property("Signature") + .HasColumnType("nvarchar(max)"); + + b.HasKey("id"); + + b.ToTable("TextManager_Contact", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ContarctingPartyAgg.PersonalContractingParty", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Address") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("AgentPhone") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("ArchiveCode") + .HasColumnType("int"); + + b.Property("BlockTimes") + .HasColumnType("int"); + + b.Property("City") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DateOfBirth") + .HasColumnType("datetime2"); + + b.Property("FName") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("FatherName") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("Gender") + .IsRequired() + .HasMaxLength(6) + .HasColumnType("nvarchar(6)"); + + b.Property("IdNumber") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("IdNumberSeri") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("IdNumberSerial") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("IsActiveString") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("IsAuthenticated") + .HasColumnType("bit"); + + b.Property("IsBlock") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("IsLegal") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("LName") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("NationalId") + .IsRequired() + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("Nationalcode") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("Phone") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("RegisterId") + .IsRequired() + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("RepresentativeFullName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("RepresentativeId") + .HasColumnType("bigint"); + + b.Property("State") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("SureName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("Zone") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.HasKey("id"); + + b.HasIndex("RepresentativeId"); + + b.ToTable("PersonalContractingParties", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ContractAgg.Contract", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("AgreementSalary") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("ArchiveCode") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("ConsumableItems") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("ContarctStart") + .HasColumnType("datetime2"); + + b.Property("ContractEnd") + .HasColumnType("datetime2"); + + b.Property("ContractNo") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("ContractPeriod") + .HasMaxLength(2) + .HasColumnType("nvarchar(2)"); + + b.Property("ContractType") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DayliWage") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("EmployerId") + .HasColumnType("bigint"); + + b.Property("FamilyAllowance") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("GetWorkDate") + .HasColumnType("datetime2"); + + b.Property("HousingAllowance") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("IsActiveString") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("JobType") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("JobTypeId") + .HasColumnType("bigint"); + + b.Property("MandatoryHoursid") + .HasColumnType("bigint"); + + b.Property("PersonnelCode") + .HasColumnType("bigint"); + + b.Property("SetContractDate") + .HasColumnType("datetime2"); + + b.Property("Signature") + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b.Property("WorkingHoursWeekly") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("WorkshopAddress1") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("WorkshopAddress2") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("WorkshopIds") + .HasColumnType("bigint"); + + b.Property("YearlySalaryId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("EmployeeId"); + + b.HasIndex("EmployerId"); + + b.HasIndex("JobTypeId"); + + b.HasIndex("MandatoryHoursid"); + + b.HasIndex("WorkshopIds"); + + b.HasIndex("YearlySalaryId"); + + b.ToTable("Contracts", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ContractingPartyAccountAgg.ContractingPartyAccount", b => + { + b.Property("PersonalContractingPartyId") + .HasColumnType("bigint"); + + b.Property("AccountId") + .HasColumnType("bigint"); + + b.HasKey("PersonalContractingPartyId", "AccountId"); + + b.ToTable("ContractingPartyAccount", (string)null); + }); + + modelBuilder.Entity("Company.Domain.CrossJobAgg.CrossJob", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("CrossJobGuildId") + .HasColumnType("bigint"); + + b.Property("EquivalentRialOver") + .HasColumnType("bigint"); + + b.Property("EquivalentRialUnder") + .HasColumnType("bigint"); + + b.Property("SalaryRatioOver") + .HasColumnType("float"); + + b.Property("SalaryRatioUnder") + .HasColumnType("float"); + + b.HasKey("id"); + + b.HasIndex("CrossJobGuildId"); + + b.ToTable("CrossJobs", (string)null); + }); + + modelBuilder.Entity("Company.Domain.CrossJobGuildAgg.CrossJobGuild", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EconomicCode") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Title") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Year") + .HasMaxLength(4) + .HasColumnType("int"); + + b.HasKey("id"); + + b.ToTable("CrossJobGuilds", (string)null); + }); + + modelBuilder.Entity("Company.Domain.CrossJobItemsAgg.CrossJobItems", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("CrossJobId") + .HasColumnType("bigint"); + + b.Property("JobId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("CrossJobId"); + + b.HasIndex("JobId"); + + b.ToTable("CrossJobItems", (string)null); + }); + + modelBuilder.Entity("Company.Domain.CustomizeCheckoutAgg.CustomizeCheckout", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BaseYearsPay") + .HasColumnType("float"); + + b.Property("BonusesPay") + .HasColumnType("float"); + + b.Property("ContractEnd") + .HasColumnType("datetime2"); + + b.Property("ContractId") + .HasColumnType("bigint"); + + b.Property("ContractNo") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("ContractStart") + .HasColumnType("datetime2"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DailyWage") + .HasColumnType("float"); + + b.Property("DateOfBirth") + .HasColumnType("datetime2"); + + b.Property("EarlyExitDeduction") + .HasColumnType("float"); + + b.Property("EmployeeFName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("EmployeeLName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("FamilyAllowance") + .HasColumnType("float"); + + b.Property("FineAbsenceDeduction") + .HasColumnType("float"); + + b.Property("FineDeduction") + .HasColumnType("float"); + + b.Property("FridayPay") + .HasColumnType("float"); + + b.Property("InstallmentDeduction") + .HasColumnType("float"); + + b.Property("InsuranceDeduction") + .HasColumnType("float"); + + b.Property("LateToWorkDeduction") + .HasColumnType("float"); + + b.Property("LateToWorkValue") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("LeavePay") + .HasColumnType("float"); + + b.Property("MarriedAllowance") + .HasColumnType("float"); + + b.Property("MonthInt") + .HasColumnType("int"); + + b.Property("MonthlySalary") + .HasColumnType("float"); + + b.Property("NationalCode") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("NightWorkPay") + .HasColumnType("float"); + + b.Property("OverTimePay") + .HasColumnType("float"); + + b.Property("RewardPay") + .HasColumnType("float"); + + b.Property("SalaryAidDeduction") + .HasColumnType("float"); + + b.Property("SettingSalary") + .HasColumnType("float"); + + b.Property("ShiftPay") + .HasColumnType("float"); + + b.Property("ShiftStatus") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("SumOfWorkingDays") + .HasColumnType("nvarchar(max)"); + + b.Property("TaxDeduction") + .HasColumnType("float"); + + b.Property("TotalClaims") + .HasColumnType("nvarchar(max)"); + + b.Property("TotalDeductions") + .HasColumnType("nvarchar(max)"); + + b.Property("TotalPayment") + .HasColumnType("float"); + + b.Property("WorkshopFullName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("YearInt") + .HasColumnType("int"); + + b.HasKey("id"); + + b.HasIndex("EmployeeId"); + + b.HasIndex("WorkshopId"); + + b.ToTable("CustomizeCheckouts", (string)null); + }); + + modelBuilder.Entity("Company.Domain.CustomizeCheckoutTempAgg.CustomizeCheckoutTemp", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BaseYearsPay") + .HasColumnType("float"); + + b.Property("BonusesPay") + .HasColumnType("float"); + + b.Property("ContractEnd") + .HasColumnType("datetime2"); + + b.Property("ContractId") + .HasColumnType("bigint"); + + b.Property("ContractNo") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("ContractStart") + .HasColumnType("datetime2"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DailyWage") + .HasColumnType("float"); + + b.Property("DateOfBirth") + .HasColumnType("datetime2"); + + b.Property("EarlyExitDeduction") + .HasColumnType("float"); + + b.Property("EmployeeFName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("EmployeeLName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("FamilyAllowance") + .HasColumnType("float"); + + b.Property("FineAbsenceDeduction") + .HasColumnType("float"); + + b.Property("FineDeduction") + .HasColumnType("float"); + + b.Property("FridayPay") + .HasColumnType("float"); + + b.Property("InstallmentDeduction") + .HasColumnType("float"); + + b.Property("InsuranceDeduction") + .HasColumnType("float"); + + b.Property("LateToWorkDeduction") + .HasColumnType("float"); + + b.Property("LateToWorkValue") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("LeavePay") + .HasColumnType("float"); + + b.Property("MarriedAllowance") + .HasColumnType("float"); + + b.Property("MonthInt") + .HasColumnType("int"); + + b.Property("MonthlySalary") + .HasColumnType("float"); + + b.Property("NationalCode") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("NightWorkPay") + .HasColumnType("float"); + + b.Property("OverTimePay") + .HasColumnType("float"); + + b.Property("RewardPay") + .HasColumnType("float"); + + b.Property("SalaryAidDeduction") + .HasColumnType("float"); + + b.Property("SettingSalary") + .HasColumnType("float"); + + b.Property("ShiftPay") + .HasColumnType("float"); + + b.Property("ShiftStatus") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("SumOfWorkingDays") + .HasColumnType("nvarchar(max)"); + + b.Property("TaxDeduction") + .HasColumnType("float"); + + b.Property("TotalClaims") + .HasColumnType("nvarchar(max)"); + + b.Property("TotalDeductions") + .HasColumnType("nvarchar(max)"); + + b.Property("TotalPayment") + .HasColumnType("float"); + + b.Property("WorkshopFullName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("YearInt") + .HasColumnType("int"); + + b.HasKey("id"); + + b.HasIndex("EmployeeId"); + + b.HasIndex("WorkshopId"); + + b.ToTable("CustomizeCheckoutTemps", (string)null); + }); + + modelBuilder.Entity("Company.Domain.CustomizeWorkshopEmployeeSettingsAgg.Entities.CustomizeWorkshopEmployeeSettings", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("CustomizeWorkshopGroupSettingId") + .HasColumnType("bigint"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("FridayWork") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b.Property("HolidayWork") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b.Property("IsSettingChanged") + .HasColumnType("bit"); + + b.Property("IsShiftChanged") + .HasColumnType("bit"); + + b.Property("LeavePermittedDays") + .HasColumnType("int"); + + b.Property("Salary") + .HasColumnType("float"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("WorkshopShiftStatus") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b.HasKey("id"); + + b.HasIndex("CustomizeWorkshopGroupSettingId"); + + b.ToTable("CustomizeWorkshopEmployeeSettings", (string)null); + }); + + modelBuilder.Entity("Company.Domain.CustomizeWorkshopGroupSettingsAgg.Entities.CustomizeWorkshopGroupSettings", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("CustomizeWorkshopSettingId") + .HasColumnType("bigint"); + + b.Property("FridayWork") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b.Property("GroupName") + .HasMaxLength(120) + .HasColumnType("nvarchar(120)"); + + b.Property("HolidayWork") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b.Property("IsSettingChange") + .HasColumnType("bit"); + + b.Property("IsShiftChange") + .HasColumnType("bit"); + + b.Property("LeavePermittedDays") + .HasColumnType("int"); + + b.Property("MainGroup") + .HasColumnType("bit"); + + b.Property("Salary") + .HasColumnType("float"); + + b.Property("WorkshopShiftStatus") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b.HasKey("id"); + + b.HasIndex("CustomizeWorkshopSettingId"); + + b.ToTable("CustomizeWorkshopGroupSettings", (string)null); + }); + + modelBuilder.Entity("Company.Domain.CustomizeWorkshopSettingsAgg.Entities.CustomizeWorkshopSettings", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BaseYearsPayInEndOfYear") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b.Property("BonusesPaysInEndOfMonth") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Currency") + .HasColumnType("int"); + + b.Property("EndTimeOffSet") + .HasColumnType("time"); + + b.Property("FridayWork") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b.Property("HolidayWork") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b.Property("LeavePermittedDays") + .HasColumnType("int"); + + b.Property("MaxMonthDays") + .HasColumnType("int"); + + b.Property("OverTimeThresholdMinute") + .HasColumnType("int"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("WorkshopShiftStatus") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b.HasKey("id"); + + b.HasIndex("WorkshopId") + .IsUnique(); + + b.ToTable("CustomizeWorkshopSettings", (string)null); + }); + + modelBuilder.Entity("Company.Domain.DateSalaryAgg.DateSalary", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EndDateFa") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("EndDateGr") + .HasColumnType("datetime2"); + + b.Property("StartDateFa") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("StartDateGr") + .HasColumnType("datetime2"); + + b.Property("Year") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)"); + + b.HasKey("id"); + + b.ToTable("DateSalaries", (string)null); + }); + + modelBuilder.Entity("Company.Domain.DateSalaryItemAgg.DateSalaryItem", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DateSalaryId") + .HasColumnType("bigint"); + + b.Property("Percent") + .HasColumnType("float"); + + b.Property("PercentageId") + .HasColumnType("bigint"); + + b.Property("Salary") + .HasColumnType("float"); + + b.HasKey("id"); + + b.HasIndex("DateSalaryId"); + + b.HasIndex("PercentageId"); + + b.ToTable("DateSalaryItems", (string)null); + }); + + modelBuilder.Entity("Company.Domain.EmployeeAccountAgg.EmployeeAccount", b => + { + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("AccountId") + .HasColumnType("bigint"); + + b.HasKey("EmployeeId", "AccountId"); + + b.ToTable("EmployeeAccounts", (string)null); + }); + + modelBuilder.Entity("Company.Domain.EmployeeAgg.Employee", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Address") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("BankBranch") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("BankCardNumber") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("City") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DateOfBirth") + .HasColumnType("datetime2"); + + b.Property("DateOfIssue") + .HasColumnType("datetime2"); + + b.Property("EservicePassword") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("EserviceUserName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("FName") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("FatherName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("FieldOfStudy") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Gender") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("IdNumber") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("IdNumberSeri") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("IdNumberSerial") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("InsuranceCode") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("InsuranceHistoryByMonth") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("InsuranceHistoryByYear") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("IsActive") + .HasColumnType("bit"); + + b.Property("IsActiveString") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("IsAuthorized") + .HasColumnType("bit"); + + b.Property("LName") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("LevelOfEducation") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("MaritalStatus") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("MclsPassword") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("MclsUserName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("MilitaryService") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("NationalCode") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("Nationality") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("NumberOfChildren") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("OfficePhone") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("Phone") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("PlaceOfIssue") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("SanaPassword") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("SanaUserName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("State") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("TaxOfficeUserName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("TaxOfficepassword") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.HasKey("id"); + + b.ToTable("Employees", (string)null); + }); + + modelBuilder.Entity("Company.Domain.EmployeeAuthorizeTempAgg.EmployeeAuthorizeTemp", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BirthDate") + .HasColumnType("datetime2"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("FName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("FatherName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("Gender") + .IsRequired() + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("IdNumber") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("IdNumberSeri") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("IdNumberSerial") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("LName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("NationalCode") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.HasKey("id"); + + b.HasIndex("NationalCode") + .IsUnique() + .HasFilter("[NationalCode] IS NOT NULL"); + + b.ToTable("EmployeeAuthorizeTemps", (string)null); + }); + + modelBuilder.Entity("Company.Domain.EmployeeBankInformationAgg.EmployeeBankInformation", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BankAccountNumber") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("BankId") + .HasColumnType("bigint"); + + b.Property("CardNumber") + .HasMaxLength(16) + .HasColumnType("nvarchar(16)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("IsDefault") + .HasColumnType("bit"); + + b.Property("ShebaNumber") + .HasMaxLength(26) + .HasColumnType("nvarchar(26)"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("BankId"); + + b.HasIndex("EmployeeId"); + + b.ToTable("EmployeeBankInformationSet", (string)null); + }); + + modelBuilder.Entity("Company.Domain.EmployeeChildrenAgg.EmployeeChildren", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DateOfBirth") + .HasColumnType("datetime2"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("FName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("ParentNationalCode") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.HasKey("id"); + + b.HasIndex("EmployeeId"); + + b.ToTable("EmployeeChildren", (string)null); + }); + + modelBuilder.Entity("Company.Domain.EmployeeClientTempAgg.EmployeeClientTemp", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployeeFullName") + .HasColumnType("nvarchar(max)"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("MaritalStatus") + .HasColumnType("nvarchar(max)"); + + b.Property("StartWorkDate") + .HasColumnType("datetime2"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.ToTable("EmployeeClientTemps"); + }); + + modelBuilder.Entity("Company.Domain.EmployeeComputeOptionsAgg.EmployeeComputeOptions", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BonusesOptions") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("ComputeOptions") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("ContractTerm") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("CreateCheckout") + .HasColumnType("bit"); + + b.Property("CreateContract") + .HasColumnType("bit"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("CutContractEndOfYear") + .IsRequired() + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("SignCheckout") + .HasColumnType("bit"); + + b.Property("SignContract") + .HasColumnType("bit"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("YearsOptions") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.HasKey("id"); + + b.ToTable("EmployeeComputeOptions", (string)null); + }); + + modelBuilder.Entity("Company.Domain.EmployeeDocumentItemAgg.EmployeeDocumentItem", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("ConfirmationDateTime") + .HasColumnType("datetime2"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DocumentLabel") + .IsRequired() + .HasMaxLength(31) + .HasColumnType("nvarchar(31)"); + + b.Property("DocumentStatus") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("EmployeeDocumentId") + .HasColumnType("bigint"); + + b.Property("EmployeeDocumentsAdminViewId") + .HasColumnType("bigint"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("MediaId") + .HasColumnType("bigint"); + + b.Property("RejectionReason") + .HasMaxLength(150) + .HasColumnType("nvarchar(150)"); + + b.Property("ReviewedById") + .HasMaxLength(120) + .HasColumnType("bigint"); + + b.Property("UploaderId") + .HasColumnType("bigint"); + + b.Property("UploaderRoleId") + .HasColumnType("bigint"); + + b.Property("UploaderType") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("EmployeeDocumentId"); + + b.HasIndex("EmployeeDocumentsAdminViewId"); + + b.ToTable("EmployeeDocumentItems", (string)null); + }); + + modelBuilder.Entity("Company.Domain.EmployeeDocumentsAdminSelectionAgg.EmployeeDocumentsAdminSelection", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("EmployeeId") + .IsUnique(); + + b.ToTable("EmployeeDocumentsAdminSelection", (string)null); + }); + + modelBuilder.Entity("Company.Domain.EmployeeDocumentsAgg.EmployeeDocuments", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("Gender") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("HasRejectedItems") + .HasColumnType("bit"); + + b.Property("IsConfirmed") + .HasColumnType("bit"); + + b.Property("IsSentToChecker") + .HasColumnType("bit"); + + b.Property("RequiredItemsSubmittedByClient") + .HasColumnType("bit"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("EmployeeId"); + + b.HasIndex("WorkshopId"); + + b.ToTable("EmployeeDocuments", (string)null); + }); + + modelBuilder.Entity("Company.Domain.EmployeeInsurancListDataAgg.EmployeeInsurancListData", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BaseYears") + .HasColumnType("float"); + + b.Property("BenefitsIncludedContinuous") + .HasColumnType("float"); + + b.Property("BenefitsIncludedNonContinuous") + .HasColumnType("float"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DailyWage") + .HasColumnType("float"); + + b.Property("DailyWagePlusBaseYears") + .HasColumnType("float"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("FamilyAllowance") + .HasColumnType("float"); + + b.Property("IncludeStatus") + .HasColumnType("bit"); + + b.Property("InsuranceListId") + .HasColumnType("bigint"); + + b.Property("InsuranceShare") + .HasColumnType("float"); + + b.Property("JobId") + .HasColumnType("bigint"); + + b.Property("LeftWorkDate") + .HasColumnType("datetime2(7)"); + + b.Property("MarriedAllowance") + .HasColumnType("float"); + + b.Property("MonthlyBenefits") + .HasColumnType("float"); + + b.Property("MonthlyBenefitsIncluded") + .HasColumnType("float"); + + b.Property("MonthlySalary") + .HasColumnType("float"); + + b.Property("OverTimePay") + .HasColumnType("float"); + + b.Property("StartWorkDate") + .HasColumnType("datetime2"); + + b.Property("WorkingDays") + .HasColumnType("int"); + + b.HasKey("id"); + + b.ToTable("EmployeeInsurancListData", (string)null); + }); + + modelBuilder.Entity("Company.Domain.EmployeeInsuranceRecordAgg.EmployeeInsuranceRecord", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DateOfEnd") + .HasColumnType("datetime2"); + + b.Property("DateOfStart") + .HasColumnType("datetime2"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("WorkShopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("EmployeeId"); + + b.HasIndex("WorkShopId"); + + b.ToTable("EmployeeInsuranceRecord", (string)null); + }); + + modelBuilder.Entity("Company.Domain.EmployerAccountAgg.EmployerAccount", b => + { + b.Property("EmployerId") + .HasColumnType("bigint"); + + b.Property("AccountId") + .HasColumnType("bigint"); + + b.HasKey("EmployerId", "AccountId"); + + b.ToTable("EmployerAccounts", (string)null); + }); + + modelBuilder.Entity("Company.Domain.Evidence.Evidence", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BoardType_Id") + .HasColumnType("int"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Description") + .HasColumnType("nvarchar(max)"); + + b.Property("File_Id") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("BoardType_Id"); + + b.HasIndex("File_Id"); + + b.ToTable("Evidences", (string)null); + }); + + modelBuilder.Entity("Company.Domain.EvidenceDetail.EvidenceDetail", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Day") + .HasColumnType("nvarchar(max)"); + + b.Property("Description") + .HasColumnType("nvarchar(max)"); + + b.Property("Evidence_Id") + .HasColumnType("bigint"); + + b.Property("FromDate") + .HasColumnType("datetime2"); + + b.Property("Title") + .HasColumnType("nvarchar(max)"); + + b.Property("ToDate") + .HasColumnType("datetime2"); + + b.HasKey("id"); + + b.HasIndex("Evidence_Id"); + + b.ToTable("EvidenceDetails", (string)null); + }); + + modelBuilder.Entity("Company.Domain.File1.File1", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("ArchiveNo") + .HasColumnType("bigint"); + + b.Property("Client") + .HasColumnType("int"); + + b.Property("ClientVisitDate") + .HasColumnType("datetime2"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Description") + .HasColumnType("nvarchar(max)"); + + b.Property("FileClass") + .HasColumnType("nvarchar(max)"); + + b.Property("HasMandate") + .HasColumnType("int"); + + b.Property("ProceederReference") + .HasColumnType("nvarchar(max)"); + + b.Property("Reqester") + .HasColumnType("bigint"); + + b.Property("Status") + .HasColumnType("int"); + + b.Property("Summoned") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.ToTable("Files", (string)null); + }); + + modelBuilder.Entity("Company.Domain.FileAlert.FileAlert", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("AdditionalDeadline") + .HasColumnType("int"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("FileState_Id") + .HasColumnType("bigint"); + + b.Property("File_Id") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("FileState_Id"); + + b.HasIndex("File_Id"); + + b.ToTable("File_Alerts", (string)null); + }); + + modelBuilder.Entity("Company.Domain.FileAndFileEmployerAgg.FileAndFileEmployer", b => + { + b.Property("FileId") + .HasColumnType("bigint"); + + b.Property("FileEmployerId") + .HasColumnType("bigint"); + + b.HasKey("FileId", "FileEmployerId"); + + b.HasIndex("FileEmployerId"); + + b.ToTable("FileAndFileEmployers", (string)null); + }); + + modelBuilder.Entity("Company.Domain.FileEmployeeAgg.FileEmployee", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DateOfBirth") + .HasColumnType("datetime2"); + + b.Property("EservicePassword") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("EserviceUserName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("FName") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("FatherName") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("FieldOfStudy") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("Gender") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("IdNumber") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("InsuranceCode") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("IsActive") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("LName") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("LevelOfEducation") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("MaritalStatus") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("MclsPassword") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("MclsUserName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("NationalCode") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("OfficePhone") + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("Phone") + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("RepresentativeFullName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("RepresentativeId") + .HasColumnType("bigint"); + + b.Property("SanaPassword") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("SanaUserName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("TaxOfficeUserName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("TaxOfficepassword") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.HasKey("id"); + + b.HasIndex("RepresentativeId"); + + b.ToTable("FileEmployee", (string)null); + }); + + modelBuilder.Entity("Company.Domain.FileEmployerAgg.FileEmployer", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DateOfBirth") + .HasColumnType("datetime2"); + + b.Property("EservicePassword") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("EserviceUserName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("FName") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("FieldOfStudy") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("FullName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("Gender") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("IdNumber") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("InsuranceWorkshopCode") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("IsActive") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("IsLegal") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("LName") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("LegalName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("LevelOfEducation") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("MaritalStatus") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("MclsPassword") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("MclsUserName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("NationalCode") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("NationalId") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("OfficePhone") + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("Phone") + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("RegisterId") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("RepresentativeFullName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("RepresentativeId") + .HasColumnType("bigint"); + + b.Property("SanaPassword") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("SanaUserName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("TaxOfficeUserName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("TaxOfficepassword") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.HasKey("id"); + + b.HasIndex("RepresentativeId"); + + b.ToTable("FileEmployer", (string)null); + }); + + modelBuilder.Entity("Company.Domain.FileState.FileState", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("FileTiming_Id") + .HasColumnType("bigint"); + + b.Property("State") + .HasColumnType("int"); + + b.Property("Title") + .HasColumnType("nvarchar(max)"); + + b.HasKey("id"); + + b.HasIndex("FileTiming_Id"); + + b.ToTable("File_States", (string)null); + }); + + modelBuilder.Entity("Company.Domain.FileTiming.FileTiming", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Deadline") + .HasColumnType("int"); + + b.Property("Tips") + .HasColumnType("nvarchar(max)"); + + b.Property("Title") + .HasColumnType("nvarchar(max)"); + + b.HasKey("id"); + + b.ToTable("File_Timings", (string)null); + }); + + modelBuilder.Entity("Company.Domain.FileTitle.FileTitle", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Title") + .HasColumnType("nvarchar(max)"); + + b.Property("Type") + .HasColumnType("nvarchar(max)"); + + b.HasKey("id"); + + b.ToTable("File_Titles", (string)null); + }); + + modelBuilder.Entity("Company.Domain.FinancialStatmentAgg.FinancialStatment", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("ContractingPartyId") + .HasColumnType("bigint"); + + b.Property("ContractingPartyName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.HasKey("id"); + + b.ToTable("FinancialStatments", (string)null); + }); + + modelBuilder.Entity("Company.Domain.FinancialTransactionAgg.FinancialTransaction", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Balance") + .HasColumnType("float"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Creditor") + .HasColumnType("float"); + + b.Property("Deptor") + .HasColumnType("float"); + + b.Property("Description") + .HasMaxLength(600) + .HasColumnType("nvarchar(600)"); + + b.Property("DescriptionOption") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("FinancialStatementId") + .HasColumnType("bigint"); + + b.Property("MessageText") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("SentSms") + .HasColumnType("bit"); + + b.Property("SentSmsDateFa") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("TdateFa") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("TdateGr") + .HasColumnType("datetime2"); + + b.Property("TypeOfTransaction") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.HasKey("id"); + + b.HasIndex("FinancialStatementId"); + + b.ToTable("FinancialTransactions", (string)null); + }); + + modelBuilder.Entity("Company.Domain.FineAgg.Fine", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Amount") + .HasColumnType("float"); + + b.Property("CreatedByAccountId") + .HasColumnType("bigint"); + + b.Property("CreatedByUserType") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("FineDate") + .HasColumnType("datetime2"); + + b.Property("IsActive") + .IsRequired() + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("LastModifiedByAccountId") + .HasColumnType("bigint"); + + b.Property("LastModifiedByUserType") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("Title") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.ToTable("Fines", (string)null); + }); + + modelBuilder.Entity("Company.Domain.FineSubjectAgg.FineSubject", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Amount") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Title") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.ToTable("FineSubjects", (string)null); + }); + + modelBuilder.Entity("Company.Domain.GroupPlanAgg.GroupPlan", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("AnnualSalary") + .HasColumnType("float"); + + b.Property("BaseSalary") + .HasColumnType("float"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("GroupNo") + .HasMaxLength(2) + .HasColumnType("nvarchar(2)"); + + b.Property("JobSalary") + .HasColumnType("float"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("WorkshopPlanId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("WorkshopPlanId"); + + b.ToTable("GroupPlans", (string)null); + }); + + modelBuilder.Entity("Company.Domain.GroupPlanJobItemAgg.GroupPlanJobItem", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("GroupNo") + .HasMaxLength(2) + .HasColumnType("nvarchar(2)"); + + b.Property("GroupPlanId") + .HasColumnType("bigint"); + + b.Property("JobId") + .HasColumnType("bigint"); + + b.Property("JobName") + .HasMaxLength(150) + .HasColumnType("nvarchar(150)"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("WorkshopPlanId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("GroupPlanId"); + + b.ToTable("GroupPlanJobItems", (string)null); + }); + + modelBuilder.Entity("Company.Domain.HolidayAgg.Holiday", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Year") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)"); + + b.HasKey("id"); + + b.ToTable("Holidays", (string)null); + }); + + modelBuilder.Entity("Company.Domain.HolidayItemAgg.HolidayItem", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("HolidayId") + .HasColumnType("bigint"); + + b.Property("HolidayYear") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)"); + + b.Property("Holidaydate") + .HasColumnType("datetime2"); + + b.HasKey("id"); + + b.HasIndex("HolidayId"); + + b.ToTable("Holidayitems", (string)null); + }); + + modelBuilder.Entity("Company.Domain.InstitutionContractAgg.InstitutionContract", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Address") + .HasMaxLength(250) + .HasColumnType("nvarchar(250)"); + + b.Property("City") + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("ContractAmount") + .HasColumnType("float"); + + b.Property("ContractDateFa") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("ContractDateGr") + .HasColumnType("datetime2"); + + b.Property("ContractEndFa") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("ContractEndGr") + .HasColumnType("datetime2"); + + b.Property("ContractNo") + .HasMaxLength(40) + .HasColumnType("nvarchar(40)"); + + b.Property("ContractStartFa") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("ContractStartGr") + .HasColumnType("datetime2"); + + b.Property("ContractingPartyId") + .HasColumnType("bigint"); + + b.Property("ContractingPartyName") + .HasMaxLength(80) + .HasColumnType("nvarchar(80)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DailyCompenseation") + .HasColumnType("float"); + + b.Property("Description") + .HasMaxLength(10000) + .HasColumnType("nvarchar(max)"); + + b.Property("EmployeeManualCount") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("ExtensionNo") + .HasColumnType("int"); + + b.Property("HasValueAddedTax") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("IsActiveString") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("Obligation") + .HasColumnType("float"); + + b.Property("OfficialCompany") + .HasMaxLength(12) + .HasColumnType("nvarchar(12)"); + + b.Property("RepresentativeId") + .HasColumnType("bigint"); + + b.Property("RepresentativeName") + .HasMaxLength(80) + .HasColumnType("nvarchar(80)"); + + b.Property("Signature") + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b.Property("State") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("TotalAmount") + .HasColumnType("float"); + + b.Property("TypeOfContract") + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("ValueAddedTax") + .HasColumnType("float"); + + b.Property("WorkshopManualCount") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.HasKey("id"); + + b.ToTable("InstitutionContracts", (string)null); + }); + + modelBuilder.Entity("Company.Domain.InstitutionContractContactInfoAgg.InstitutionContractContactInfo", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("FnameLname") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("InstitutionContractId") + .HasColumnType("bigint"); + + b.Property("PhoneNumber") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("PhoneType") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("Position") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("SendSms") + .HasColumnType("bit"); + + b.HasKey("id"); + + b.HasIndex("InstitutionContractId"); + + b.ToTable("InstitutinContractContactInfo", (string)null); + }); + + modelBuilder.Entity("Company.Domain.InstitutionPlanAgg.InstitutionPlan", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BaseContractAmont") + .HasColumnType("float"); + + b.Property("CountPerson") + .HasColumnType("int"); + + b.Property("FinalContractAmont") + .HasColumnType("float"); + + b.Property("IncreasePercentage") + .HasColumnType("float"); + + b.HasKey("id"); + + b.ToTable("InstitutionPlan", (string)null); + }); + + modelBuilder.Entity("Company.Domain.InstitutionPlanAgg.PlanPercentage", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("ContractAndCheckoutInPersonPercent") + .HasColumnType("int"); + + b.Property("ContractAndCheckoutPercent") + .HasColumnType("int"); + + b.Property("CustomizeCheckoutPercent") + .HasColumnType("int"); + + b.Property("InsuranceInPersonPercent") + .HasColumnType("int"); + + b.Property("InsurancePercent") + .HasColumnType("int"); + + b.Property("RollCallPercent") + .HasColumnType("int"); + + b.HasKey("id"); + + b.ToTable("PlanPercentage", (string)null); + }); + + modelBuilder.Entity("Company.Domain.InsurancJobAgg.InsuranceJob", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EconomicCode") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("InsuranceJobTitle") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("Year") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)"); + + b.Property("YearlySalaryId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.ToTable("InsuranceJobs", (string)null); + }); + + modelBuilder.Entity("Company.Domain.InsurancWorkshopInfoAgg.InsuranceWorkshopInfo", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Address") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("AgreementNumber") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployerName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("InsuranceCode") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("ListNumber") + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("WorkshopName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.HasKey("id"); + + b.HasIndex("WorkshopId") + .IsUnique(); + + b.ToTable("InsuranceWorkshopInformation", (string)null); + }); + + modelBuilder.Entity("Company.Domain.InsuranceAgg.Insurance", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Address") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployerStr") + .HasColumnType("nvarchar(max)"); + + b.Property("ListNumber") + .HasColumnType("nvarchar(max)"); + + b.Property("Month") + .HasMaxLength(2) + .HasColumnType("int"); + + b.Property("WorkShopId") + .HasColumnType("bigint"); + + b.Property("WorkShopStr") + .HasColumnType("nvarchar(max)"); + + b.Property("Year") + .HasMaxLength(4) + .HasColumnType("int"); + + b.HasKey("id"); + + b.HasIndex("WorkShopId"); + + b.ToTable("Insurances", (string)null); + }); + + modelBuilder.Entity("Company.Domain.InsuranceEmployeeInfoAgg.InsuranceEmployeeInfo", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DateOfBirth") + .HasColumnType("datetime2"); + + b.Property("DateOfIssue") + .HasColumnType("datetime2"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("FName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("FatherName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("Gender") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("IdNumber") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("InsuranceCode") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("LName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("NationalCode") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("PlaceOfIssue") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.HasKey("id"); + + b.HasIndex("EmployeeId") + .IsUnique(); + + b.ToTable("InsuranceEmployeeInformation", (string)null); + }); + + modelBuilder.Entity("Company.Domain.InsuranceJobAndJobsAgg.InsuranceJobAndJobs", b => + { + b.Property("JobId") + .HasColumnType("bigint"); + + b.Property("InsuranceJobItemId") + .HasColumnType("bigint"); + + b.HasKey("JobId", "InsuranceJobItemId"); + + b.HasIndex("InsuranceJobItemId"); + + b.ToTable("InsuranceJobAndJobs", (string)null); + }); + + modelBuilder.Entity("Company.Domain.InsuranceJobItemAgg.InsuranceJobItem", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EndDate") + .HasColumnType("datetime2"); + + b.Property("InsuranceJobId") + .HasColumnType("bigint"); + + b.Property("PercentageLessThan") + .HasColumnType("float"); + + b.Property("PercentageMoreThan") + .HasColumnType("float"); + + b.Property("SalaeyLessThan") + .HasColumnType("float"); + + b.Property("SalaryMoreThan") + .HasColumnType("float"); + + b.Property("StartDate") + .HasColumnType("datetime2"); + + b.HasKey("id"); + + b.HasIndex("InsuranceJobId"); + + b.ToTable("InsuranceJobItems", (string)null); + }); + + modelBuilder.Entity("Company.Domain.InsuranceListAgg.InsuranceList", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("ConfirmSentlist") + .HasColumnType("bit"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DifficultJobsInsuranc") + .HasColumnType("float"); + + b.Property("EmployerShare") + .HasColumnType("float"); + + b.Property("EndDate") + .HasColumnType("datetime2"); + + b.Property("Included") + .HasColumnType("float"); + + b.Property("IncludedAndNotIncluded") + .HasColumnType("float"); + + b.Property("InsuredShare") + .HasColumnType("float"); + + b.Property("Month") + .HasMaxLength(2) + .HasColumnType("nvarchar(2)"); + + b.Property("StartDate") + .HasColumnType("datetime2"); + + b.Property("SumOfBaseYears") + .HasColumnType("float"); + + b.Property("SumOfBenefitsIncluded") + .HasColumnType("float"); + + b.Property("SumOfDailyWage") + .HasColumnType("float"); + + b.Property("SumOfDailyWagePlusBaseYears") + .HasColumnType("float"); + + b.Property("SumOfEmployees") + .HasColumnType("int"); + + b.Property("SumOfMarriedAllowance") + .HasColumnType("float"); + + b.Property("SumOfSalaries") + .HasColumnType("float"); + + b.Property("SumOfWorkingDays") + .HasColumnType("int"); + + b.Property("UnEmploymentInsurance") + .HasColumnType("float"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("Year") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)"); + + b.ComplexProperty>("Debt", "Company.Domain.InsuranceListAgg.InsuranceList.Debt#InsuranceListDebt", b1 => + { + b1.IsRequired(); + + b1.Property("Amount") + .HasColumnType("float"); + + b1.Property("DebtDate") + .HasColumnType("datetime2"); + + b1.Property("IsDone") + .HasColumnType("bit"); + + b1.Property("MediaId") + .HasColumnType("bigint"); + + b1.Property("Type") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + }); + + b.ComplexProperty>("EmployerApproval", "Company.Domain.InsuranceListAgg.InsuranceList.EmployerApproval#InsuranceListEmployerApproval", b1 => + { + b1.IsRequired(); + + b1.Property("Description") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b1.Property("IsDone") + .HasColumnType("bit"); + + b1.Property("Status") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + }); + + b.ComplexProperty>("Inspection", "Company.Domain.InsuranceListAgg.InsuranceList.Inspection#InsuranceListInspection", b1 => + { + b1.IsRequired(); + + b1.Property("IsDone") + .HasColumnType("bit"); + + b1.Property("LastInspectionDateTime") + .HasColumnType("datetime2"); + + b1.Property("MediaId") + .HasColumnType("bigint"); + + b1.Property("Type") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + }); + + b.HasKey("id"); + + b.ToTable("InsuranceLists", (string)null); + }); + + modelBuilder.Entity("Company.Domain.InsuranceWorkshopAgg.InsuranceListWorkshop", b => + { + b.Property("InsurancListId") + .HasColumnType("bigint"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("InsurancListId", "WorkshopId"); + + b.HasIndex("WorkshopId"); + + b.ToTable("InsuranceListWorkshops", (string)null); + }); + + modelBuilder.Entity("Company.Domain.InsuranceYearlySalaryAgg.InsuranceYearlySalary", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EndDate") + .HasColumnType("datetime2"); + + b.Property("Group1") + .HasColumnType("float"); + + b.Property("Group10") + .HasColumnType("float"); + + b.Property("Group11") + .HasColumnType("float"); + + b.Property("Group12") + .HasColumnType("float"); + + b.Property("Group13") + .HasColumnType("float"); + + b.Property("Group14") + .HasColumnType("float"); + + b.Property("Group15") + .HasColumnType("float"); + + b.Property("Group16") + .HasColumnType("float"); + + b.Property("Group17") + .HasColumnType("float"); + + b.Property("Group18") + .HasColumnType("float"); + + b.Property("Group19") + .HasColumnType("float"); + + b.Property("Group2") + .HasColumnType("float"); + + b.Property("Group20") + .HasColumnType("float"); + + b.Property("Group21") + .HasColumnType("float"); + + b.Property("Group22") + .HasColumnType("float"); + + b.Property("Group23") + .HasColumnType("float"); + + b.Property("Group24") + .HasColumnType("float"); + + b.Property("Group25") + .HasColumnType("float"); + + b.Property("Group26") + .HasColumnType("float"); + + b.Property("Group27") + .HasColumnType("float"); + + b.Property("Group28") + .HasColumnType("float"); + + b.Property("Group29") + .HasColumnType("float"); + + b.Property("Group3") + .HasColumnType("float"); + + b.Property("Group30") + .HasColumnType("float"); + + b.Property("Group4") + .HasColumnType("float"); + + b.Property("Group5") + .HasColumnType("float"); + + b.Property("Group6") + .HasColumnType("float"); + + b.Property("Group7") + .HasColumnType("float"); + + b.Property("Group8") + .HasColumnType("float"); + + b.Property("Group9") + .HasColumnType("float"); + + b.Property("StartDate") + .HasColumnType("datetime2"); + + b.Property("Year") + .HasColumnType("int"); + + b.HasKey("id"); + + b.ToTable("InsuranceYearlySalaries", (string)null); + }); + + modelBuilder.Entity("Company.Domain.JobAgg.Job", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("JobCode") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("JobName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.HasKey("id"); + + b.ToTable("Jobs", (string)null); + }); + + modelBuilder.Entity("Company.Domain.LeaveAgg.Leave", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Decription") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("EmployeeFullName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("EndLeave") + .HasColumnType("datetime2"); + + b.Property("HasShiftDuration") + .HasColumnType("bit"); + + b.Property("IsAccepted") + .HasColumnType("bit"); + + b.Property("LeaveHourses") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("LeaveType") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("Month") + .HasColumnType("int"); + + b.Property("PaidLeaveType") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("ShiftDuration") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("StartLeave") + .HasColumnType("datetime2"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("WorkshopName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Year") + .HasColumnType("int"); + + b.HasKey("id"); + + b.ToTable("Leave", (string)null); + }); + + modelBuilder.Entity("Company.Domain.LeftWorkAgg.LeftWork", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("AddBonusesPay") + .HasColumnType("bit"); + + b.Property("AddLeavePay") + .HasColumnType("bit"); + + b.Property("AddYearsPay") + .HasColumnType("bit"); + + b.Property("BonusesOptions") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("ComputeOptions") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployeeFullName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("IncludeStatus") + .HasColumnType("bit"); + + b.Property("JobId") + .HasColumnType("bigint"); + + b.Property("LeftWorkDate") + .HasColumnType("datetime2"); + + b.Property("StartWorkDate") + .HasColumnType("datetime2"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("WorkshopName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.HasKey("id"); + + b.HasIndex("EmployeeId"); + + b.HasIndex("WorkshopId"); + + b.ToTable("LeftWork", (string)null); + }); + + modelBuilder.Entity("Company.Domain.LeftWorkInsuranceAgg.LeftWorkInsurance", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployeeFullName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("IncludeStatus") + .HasColumnType("bit"); + + b.Property("JobId") + .HasColumnType("bigint"); + + b.Property("LeftWorkDate") + .HasColumnType("datetime2(7)"); + + b.Property("StartWorkDate") + .HasColumnType("datetime2"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("WorkshopName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.HasKey("id"); + + b.HasIndex("EmployeeId"); + + b.HasIndex("WorkshopId"); + + b.ToTable("LeftWorkInsurances", (string)null); + }); + + modelBuilder.Entity("Company.Domain.LeftWorkTempAgg.LeftWorkTemp", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("JobId") + .HasColumnType("bigint"); + + b.Property("LastDayStanding") + .HasColumnType("datetime2"); + + b.Property("LeftWork") + .HasColumnType("datetime2"); + + b.Property("LeftWorkId") + .HasColumnType("bigint"); + + b.Property("LeftWorkType") + .HasColumnType("int"); + + b.Property("StartWork") + .HasColumnType("datetime2"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.ToTable("LeftWorkTemps"); + }); + + modelBuilder.Entity("Company.Domain.LoanAgg.Entities.Loan", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Amount") + .HasColumnType("float"); + + b.Property("AmountPerMonth") + .HasColumnType("float"); + + b.Property("Count") + .HasMaxLength(3) + .HasColumnType("nvarchar(3)"); + + b.Property("CreatedByAccountId") + .HasColumnType("bigint"); + + b.Property("CreatedByUserType") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("GetRounded") + .HasColumnType("bit"); + + b.Property("LoanGrantDate") + .HasColumnType("datetime2"); + + b.Property("StartInstallmentPayment") + .HasColumnType("datetime2"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.ToTable("Loan", (string)null); + }); + + modelBuilder.Entity("Company.Domain.MandatoryHoursAgg.MandatoryHours", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Aban") + .HasColumnType("float"); + + b.Property("AbanFridays") + .HasColumnType("int"); + + b.Property("AbanHolidays") + .HasColumnType("int"); + + b.Property("AbanMonadatoryDays") + .HasColumnType("int"); + + b.Property("Azar") + .HasColumnType("float"); + + b.Property("AzarFridays") + .HasColumnType("int"); + + b.Property("AzarHolidays") + .HasColumnType("int"); + + b.Property("AzarMonadatoryDays") + .HasColumnType("int"); + + b.Property("Bahman") + .HasColumnType("float"); + + b.Property("BahmanFridays") + .HasColumnType("int"); + + b.Property("BahmanHolidays") + .HasColumnType("int"); + + b.Property("BahmanMonadatoryDays") + .HasColumnType("int"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Dey") + .HasColumnType("float"); + + b.Property("DeyFridays") + .HasColumnType("int"); + + b.Property("DeyHolidays") + .HasColumnType("int"); + + b.Property("DeyMonadatoryDays") + .HasColumnType("int"); + + b.Property("Esfand") + .HasColumnType("float"); + + b.Property("EsfandFridays") + .HasColumnType("int"); + + b.Property("EsfandHolidays") + .HasColumnType("int"); + + b.Property("EsfandMonadatoryDays") + .HasColumnType("int"); + + b.Property("Farvardin") + .HasColumnType("float"); + + b.Property("FarvardinFridays") + .HasColumnType("int"); + + b.Property("FarvardinHolidays") + .HasColumnType("int"); + + b.Property("FarvardinMonadatoryDays") + .HasColumnType("int"); + + b.Property("Khordad") + .HasColumnType("float"); + + b.Property("KhordadFridays") + .HasColumnType("int"); + + b.Property("KhordadHolidays") + .HasColumnType("int"); + + b.Property("KhordadMonadatoryDays") + .HasColumnType("int"); + + b.Property("Mehr") + .HasColumnType("float"); + + b.Property("MehrFridays") + .HasColumnType("int"); + + b.Property("MehrHolidays") + .HasColumnType("int"); + + b.Property("MehrMonadatoryDays") + .HasColumnType("int"); + + b.Property("Mordad") + .HasColumnType("float"); + + b.Property("MordadFridays") + .HasColumnType("int"); + + b.Property("MordadHolidays") + .HasColumnType("int"); + + b.Property("MordadMonadatoryDays") + .HasColumnType("int"); + + b.Property("Ordibehesht") + .HasColumnType("float"); + + b.Property("OrdibeheshtFridays") + .HasColumnType("int"); + + b.Property("OrdibeheshtHolidays") + .HasColumnType("int"); + + b.Property("OrdibeheshtMonadatoryDays") + .HasColumnType("int"); + + b.Property("Shahrivar") + .HasColumnType("float"); + + b.Property("ShahrivarFridays") + .HasColumnType("int"); + + b.Property("ShahrivarHolidays") + .HasColumnType("int"); + + b.Property("ShahrivarMonadatoryDays") + .HasColumnType("int"); + + b.Property("Tir") + .HasColumnType("float"); + + b.Property("TirFridays") + .HasColumnType("int"); + + b.Property("TirHolidays") + .HasColumnType("int"); + + b.Property("TirMonadatoryDays") + .HasColumnType("int"); + + b.Property("Year") + .HasMaxLength(4) + .HasColumnType("int"); + + b.HasKey("id"); + + b.ToTable("MandatoryHours", (string)null); + }); + + modelBuilder.Entity("Company.Domain.MasterPenaltyTitle.MasterPenaltyTitle", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Day") + .HasColumnType("nvarchar(max)"); + + b.Property("FromDate") + .HasColumnType("datetime2"); + + b.Property("MasterPetition_Id") + .HasColumnType("bigint"); + + b.Property("PaidAmount") + .HasColumnType("nvarchar(max)"); + + b.Property("RemainingAmount") + .HasColumnType("nvarchar(max)"); + + b.Property("Title") + .HasColumnType("nvarchar(max)"); + + b.Property("ToDate") + .HasColumnType("datetime2"); + + b.HasKey("id"); + + b.HasIndex("MasterPetition_Id"); + + b.ToTable("Master_PenaltyTitles", (string)null); + }); + + modelBuilder.Entity("Company.Domain.MasterPetition.MasterPetition", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BoardType_Id") + .HasColumnType("int"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Description") + .HasColumnType("nvarchar(max)"); + + b.Property("File_Id") + .HasColumnType("bigint"); + + b.Property("MasterName") + .HasColumnType("nvarchar(max)"); + + b.Property("WorkHistoryDescreption") + .HasColumnType("nvarchar(max)"); + + b.HasKey("id"); + + b.HasIndex("BoardType_Id"); + + b.HasIndex("File_Id"); + + b.ToTable("Master_Petitions", (string)null); + }); + + modelBuilder.Entity("Company.Domain.MasterWorkHistory.MasterWorkHistory", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Description") + .HasColumnType("nvarchar(max)"); + + b.Property("FromDate") + .HasColumnType("datetime2"); + + b.Property("MasterPetition_Id") + .HasColumnType("bigint"); + + b.Property("ToDate") + .HasColumnType("datetime2"); + + b.Property("WorkingHoursPerDay") + .HasColumnType("int"); + + b.Property("WorkingHoursPerWeek") + .HasColumnType("int"); + + b.HasKey("id"); + + b.HasIndex("MasterPetition_Id"); + + b.ToTable("Master_WorkHistories", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ModuleAgg.EntityModule", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("IsActiveString") + .HasColumnType("nvarchar(max)"); + + b.Property("NameSubModule") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("id"); + + b.ToTable("TextManager_Module", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ModuleTextManagerAgg.EntityModuleTextManager", b => + { + b.Property("TextManagerId") + .HasColumnType("bigint"); + + b.Property("ModuleId") + .HasColumnType("bigint"); + + b.HasKey("TextManagerId", "ModuleId"); + + b.HasIndex("ModuleId"); + + b.ToTable("TextManager_ModuleTextManager", (string)null); + }); + + modelBuilder.Entity("Company.Domain.OriginalTitleAgg.EntityOriginalTitle", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("IsActiveString") + .HasColumnType("nvarchar(max)"); + + b.Property("Title") + .IsRequired() + .HasMaxLength(60) + .HasColumnType("nvarchar(60)"); + + b.HasKey("id"); + + b.ToTable("TextManager_OriginalTitle", (string)null); + }); + + modelBuilder.Entity("Company.Domain.PaymentToEmployeeAgg.PaymentToEmployee", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("Month") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("Year") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)"); + + b.HasKey("id"); + + b.ToTable("PaymentToEmployees", (string)null); + }); + + modelBuilder.Entity("Company.Domain.PaymentToEmployeeItemAgg.PaymentToEmployeeItem", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BankCheckNumber") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("CashDescription") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DestinationBankAccountNumber") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("DestinationBankName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("PayDate") + .HasColumnType("datetime2"); + + b.Property("Payment") + .HasColumnType("float"); + + b.Property("PaymentMetod") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("PaymentTitle") + .HasMaxLength(150) + .HasColumnType("nvarchar(150)"); + + b.Property("PaymentToEmployeeId") + .HasColumnType("bigint"); + + b.Property("SourceBankAccountNumber") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("SourceBankName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("TypeDestinationBankNumber") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("TypeSourceBankNumber") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("PaymentToEmployeeId"); + + b.ToTable("PaymentToEmployeeItems", (string)null); + }); + + modelBuilder.Entity("Company.Domain.PaymentTransactionAgg.PaymentTransaction", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("AccountNumber") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("Amount") + .HasColumnType("float"); + + b.Property("BankAccountHolderName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("BankName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("CardNumber") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("ContractingPartyId") + .HasColumnType("bigint"); + + b.Property("ContractingPartyName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("ShebaNumber") + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("Status") + .IsRequired() + .HasMaxLength(35) + .HasColumnType("nvarchar(35)"); + + b.Property("TransactionDate") + .HasColumnType("datetime2"); + + b.Property("TransactionId") + .HasMaxLength(60) + .HasColumnType("nvarchar(60)"); + + b.HasKey("id"); + + b.ToTable("PaymentTransactions", (string)null); + }); + + modelBuilder.Entity("Company.Domain.PenaltyTitle.PenaltyTitle", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Day") + .HasColumnType("nvarchar(max)"); + + b.Property("FromDate") + .HasColumnType("datetime2(7)"); + + b.Property("PaidAmount") + .HasColumnType("nvarchar(max)"); + + b.Property("Petition_Id") + .HasColumnType("bigint"); + + b.Property("RemainingAmount") + .HasColumnType("nvarchar(max)"); + + b.Property("Title") + .HasColumnType("nvarchar(max)"); + + b.Property("ToDate") + .HasColumnType("datetime2(7)"); + + b.HasKey("id"); + + b.HasIndex("Petition_Id"); + + b.ToTable("PenaltyTitles", (string)null); + }); + + modelBuilder.Entity("Company.Domain.PercentageAgg.Percentage", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Percent") + .HasColumnType("float"); + + b.HasKey("id"); + + b.ToTable("Percentages", (string)null); + }); + + modelBuilder.Entity("Company.Domain.PersonnelCodeAgg.PersonnelCodeDomain", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("PersonnelCode") + .HasColumnType("bigint"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("EmployeeId"); + + b.HasIndex("WorkshopId"); + + b.ToTable("PersonnelCodes", (string)null); + }); + + modelBuilder.Entity("Company.Domain.Petition.Petition", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BoardType_Id") + .HasColumnType("int"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Description") + .HasColumnType("nvarchar(max)"); + + b.Property("File_Id") + .HasColumnType("bigint"); + + b.Property("NotificationPetitionDate") + .HasColumnType("datetime2"); + + b.Property("PetitionIssuanceDate") + .HasColumnType("datetime2"); + + b.Property("PetitionNo") + .HasColumnType("nvarchar(max)"); + + b.Property("TotalPenalty") + .HasColumnType("nvarchar(max)"); + + b.Property("TotalPenaltyTitles") + .HasColumnType("nvarchar(max)"); + + b.Property("WorkHistoryDescreption") + .HasColumnType("nvarchar(max)"); + + b.HasKey("id"); + + b.HasIndex("BoardType_Id"); + + b.HasIndex("File_Id"); + + b.ToTable("Petitions", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ProceedingSession.ProceedingSession", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Board_Id") + .HasColumnType("bigint"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Date") + .HasColumnType("datetime2"); + + b.Property("Status") + .HasColumnType("int"); + + b.Property("Time") + .HasColumnType("nvarchar(max)"); + + b.HasKey("id"); + + b.HasIndex("Board_Id"); + + b.ToTable("ProceedingSessions", (string)null); + }); + + modelBuilder.Entity("Company.Domain.RepresentativeAgg.Representative", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Address") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("AgentPhone") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("FName") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("FullName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("IdNumber") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("IsActive") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("IsLegal") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("LName") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("LegalName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("NationalId") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("Nationalcode") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("Phone") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("RegisterId") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.HasKey("id"); + + b.ToTable("Representative", (string)null); + }); + + modelBuilder.Entity("Company.Domain.RewardAgg.Reward", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Amount") + .HasColumnType("float"); + + b.Property("CreatedByAccountId") + .HasColumnType("bigint"); + + b.Property("CreatedByUserType") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Description") + .HasColumnType("ntext"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("GrantDate") + .HasColumnType("datetime2"); + + b.Property("IsActive") + .IsRequired() + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("LastModifiedByAccountId") + .HasColumnType("bigint"); + + b.Property("LastModifiedByUserType") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("RewardType") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("Title") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.ToTable("Rewards", (string)null); + }); + + modelBuilder.Entity("Company.Domain.RollCallAgg.RollCall", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BreakTimeSpan") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EarlyEntryDuration") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("EarlyExitDuration") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("EmployeeFullName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("EndDate") + .HasColumnType("datetime2"); + + b.Property("FridayWorkTimeSpan") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("LateEntryDuration") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("LateExitDuration") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("Month") + .HasColumnType("int"); + + b.Property("NightWorkTimeSpan") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("RollCallModifyType") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("ShiftDate") + .HasColumnType("datetime2"); + + b.Property("ShiftDurationTimeSpan") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("ShiftType") + .IsRequired() + .HasMaxLength(22) + .HasColumnType("nvarchar(22)"); + + b.Property("StartDate") + .HasColumnType("datetime2"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("Year") + .HasColumnType("int"); + + b.HasKey("id"); + + b.ToTable("RollCall", (string)null); + }); + + modelBuilder.Entity("Company.Domain.RollCallEmployeeAgg.RollCallEmployee", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("EmployeeFullName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("FName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("HasChangedName") + .HasColumnType("bit"); + + b.Property("HasUploadedImage") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("IsActiveString") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("LName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.ToTable("RollCallEmployees", (string)null); + }); + + modelBuilder.Entity("Company.Domain.RollCallEmployeeStatusAgg.RollCallEmployeeStatus", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("EndDate") + .HasColumnType("datetime2"); + + b.Property("RollCallEmployeeId") + .HasColumnType("bigint"); + + b.Property("StartDate") + .HasColumnType("datetime2"); + + b.HasKey("id"); + + b.HasIndex("RollCallEmployeeId"); + + b.ToTable("RollCallEmployeesStatus"); + }); + + modelBuilder.Entity("Company.Domain.RollCallPlanAgg.RollCallPlan", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BaseAmont") + .HasColumnType("float"); + + b.Property("FinalAmont") + .HasColumnType("float"); + + b.Property("IncreasePercentage") + .HasColumnType("float"); + + b.Property("MaxPersonValid") + .HasColumnType("int"); + + b.HasKey("id"); + + b.ToTable("RollCallPlans", (string)null); + }); + + modelBuilder.Entity("Company.Domain.RollCallServiceAgg.RollCallService", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("AccountId") + .HasColumnType("bigint"); + + b.Property("Amount") + .HasColumnType("float"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("CustomizeCheckoutAmount") + .HasColumnType("float"); + + b.Property("CustomizeCheckoutServiceEnd") + .HasColumnType("datetime2"); + + b.Property("CustomizeCheckoutServiceStart") + .HasColumnType("datetime2"); + + b.Property("Duration") + .HasMaxLength(2) + .HasColumnType("nvarchar(2)"); + + b.Property("EndService") + .HasColumnType("datetime2"); + + b.Property("HasCustomizeCheckoutService") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("IsActiveString") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("MaxPersonValid") + .HasColumnType("int"); + + b.Property("ServiceType") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("StartService") + .HasColumnType("datetime2"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("WorkshopId"); + + b.ToTable("RollCallServices", (string)null); + }); + + modelBuilder.Entity("Company.Domain.SalaryAidAgg.SalaryAid", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Amount") + .HasColumnType("float"); + + b.Property("CalculationDate") + .HasColumnType("datetime2"); + + b.Property("CalculationMonth") + .HasColumnType("int"); + + b.Property("CalculationYear") + .HasColumnType("int"); + + b.Property("CreatedByAccountId") + .HasColumnType("bigint"); + + b.Property("CreatedByUserType") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("LastModifiedByAccountId") + .HasColumnType("bigint"); + + b.Property("LastModifiedByUserType") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("SalaryAidDateTime") + .HasColumnType("datetime2"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.ToTable("SalaryAids", (string)null); + }); + + modelBuilder.Entity("Company.Domain.SmsResultAgg.SmsResult", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("ContractingPartyName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("ContractingPatyId") + .HasColumnType("bigint"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("InstitutionContractId") + .HasColumnType("bigint"); + + b.Property("MessageId") + .HasColumnType("int"); + + b.Property("Mobile") + .HasMaxLength(12) + .HasColumnType("nvarchar(12)"); + + b.Property("Status") + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("TypeOfSms") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.HasKey("id"); + + b.ToTable("SmsResults", (string)null); + }); + + modelBuilder.Entity("Company.Domain.SubtitleAgg.EntitySubtitle", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EntitySubtitleid") + .HasColumnType("bigint"); + + b.Property("IsActiveString") + .HasColumnType("nvarchar(max)"); + + b.Property("OriginalTitle_Id") + .HasColumnType("bigint"); + + b.Property("Subtitle") + .IsRequired() + .HasMaxLength(60) + .HasColumnType("nvarchar(60)"); + + b.HasKey("id"); + + b.HasIndex("EntitySubtitleid"); + + b.HasIndex("OriginalTitle_Id"); + + b.ToTable("TextManager_Subtitle", (string)null); + }); + + modelBuilder.Entity("Company.Domain.TaxJobCategoryAgg.TaxJobCategory", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("JobCategoryCode") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("JobCategoryName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.HasKey("id"); + + b.ToTable("TaxJobCategory", (string)null); + }); + + modelBuilder.Entity("Company.Domain.TaxLeftWorkCategoryAgg.TaxLeftWorkCategory", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BudgetLawExceptions") + .HasMaxLength(3) + .HasColumnType("nvarchar(3)"); + + b.Property("Country") + .HasMaxLength(3) + .HasColumnType("nvarchar(3)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("CurrencyType") + .HasMaxLength(3) + .HasColumnType("nvarchar(3)"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("EmployeeName") + .HasMaxLength(150) + .HasColumnType("nvarchar(150)"); + + b.Property("EmploymentLocationStatus") + .HasMaxLength(3) + .HasColumnType("nvarchar(3)"); + + b.Property("ExchangeRate") + .HasMaxLength(3) + .HasColumnType("nvarchar(3)"); + + b.Property("InsuranceBranch") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("InsuranceName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("JobCategoryCode") + .HasMaxLength(3) + .HasColumnType("nvarchar(3)"); + + b.Property("JobCategoryId") + .HasColumnType("bigint"); + + b.Property("JobTitle") + .HasMaxLength(150) + .HasColumnType("nvarchar(150)"); + + b.Property("PaymentType") + .HasMaxLength(3) + .HasColumnType("nvarchar(3)"); + + b.Property("RetirementDate") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("TaxExempt") + .HasMaxLength(3) + .HasColumnType("nvarchar(3)"); + + b.Property("TypeOfEmployment") + .HasMaxLength(3) + .HasColumnType("nvarchar(3)"); + + b.Property("TypeOfInsurance") + .HasMaxLength(3) + .HasColumnType("nvarchar(3)"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("WorkshopName") + .HasMaxLength(150) + .HasColumnType("nvarchar(150)"); + + b.HasKey("id"); + + b.HasIndex("WorkshopId"); + + b.ToTable("TaxLeftWorkCategory", (string)null); + }); + + modelBuilder.Entity("Company.Domain.TaxLeftWorkItemAgg.TaxLeftWorkItem", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("LeftWork") + .HasColumnType("datetime2"); + + b.Property("StartWork") + .HasColumnType("datetime2"); + + b.Property("TaxLeftWorkCategoryId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("TaxLeftWorkCategoryId"); + + b.ToTable("TaxLeftWorkItem", (string)null); + }); + + modelBuilder.Entity("Company.Domain.TemporaryClientRegistrationAgg.ContractingPartyTemp", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Address") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("City") + .HasMaxLength(35) + .HasColumnType("nvarchar(35)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DateOfBirth") + .HasColumnType("datetime2"); + + b.Property("FName") + .IsRequired() + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("FatherName") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("Gender") + .IsRequired() + .HasMaxLength(6) + .HasColumnType("nvarchar(6)"); + + b.Property("IdNumber") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("IdNumberSeri") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("IdNumberSerial") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("LName") + .IsRequired() + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("NationalCode") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("Phone") + .HasMaxLength(12) + .HasColumnType("nvarchar(12)"); + + b.Property("State") + .HasMaxLength(35) + .HasColumnType("nvarchar(35)"); + + b.HasKey("id"); + + b.ToTable("ContractingPartyTemp", (string)null); + }); + + modelBuilder.Entity("Company.Domain.TemporaryClientRegistrationAgg.InstitutionContractTemp", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("ContractEndGr") + .HasColumnType("datetime2"); + + b.Property("ContractStartGr") + .HasColumnType("datetime2"); + + b.Property("ContractingPartyTempId") + .HasColumnType("bigint"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("MessageId") + .HasColumnType("int"); + + b.Property("OfficialCompany") + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("PaymentModel") + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("PeriodModel") + .HasMaxLength(3) + .HasColumnType("nvarchar(3)"); + + b.Property("RegistrationStatus") + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("SendVerifyCodeTime") + .HasColumnType("datetime2"); + + b.Property("TotalPayment") + .HasColumnType("float"); + + b.Property("ValueAddedTax") + .HasColumnType("float"); + + b.Property("VerifyCode") + .HasMaxLength(6) + .HasColumnType("nvarchar(6)"); + + b.Property("VerifyCodeEndTime") + .HasColumnType("datetime2"); + + b.HasKey("id"); + + b.ToTable("InstitutionContractTemps", (string)null); + }); + + modelBuilder.Entity("Company.Domain.TemporaryClientRegistrationAgg.WorkshopServicesTemp", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CountPerson") + .HasColumnType("int"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("ServiceName") + .HasMaxLength(40) + .HasColumnType("nvarchar(40)"); + + b.Property("WorkshopTempId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("WorkshopTempId"); + + b.ToTable("WorkshopServicesTemps", (string)null); + }); + + modelBuilder.Entity("Company.Domain.TemporaryClientRegistrationAgg.WorkshopTemp", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("ContractingPartyTempId") + .HasColumnType("bigint"); + + b.Property("CountPerson") + .HasColumnType("int"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("WorkshopName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("WorkshopServicesAmount") + .HasColumnType("float"); + + b.HasKey("id"); + + b.ToTable("WorkshopTemps", (string)null); + }); + + modelBuilder.Entity("Company.Domain.TextManagerAgg.EntityTextManager", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Chapter_Id") + .HasColumnType("bigint"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DateTextManager") + .HasColumnType("nvarchar(max)"); + + b.Property("Description") + .HasColumnType("nvarchar(max)"); + + b.Property("IsActiveString") + .HasColumnType("nvarchar(max)"); + + b.Property("NoteNumber") + .HasColumnType("nvarchar(max)"); + + b.Property("NumberTextManager") + .HasColumnType("nvarchar(max)"); + + b.Property("OriginalTitle_Id") + .HasColumnType("bigint"); + + b.Property("Paragraph") + .HasColumnType("nvarchar(max)"); + + b.Property("SubjectTextManager") + .HasColumnType("nvarchar(max)"); + + b.Property("Subtitle_Id") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.ToTable("TextManager_TextManager", (string)null); + }); + + modelBuilder.Entity("Company.Domain.WorkHistory.WorkHistory", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Description") + .HasColumnType("nvarchar(max)"); + + b.Property("FromDate") + .HasColumnType("datetime2"); + + b.Property("Petition_Id") + .HasColumnType("bigint"); + + b.Property("ToDate") + .HasColumnType("datetime2"); + + b.Property("WorkingHoursPerDay") + .HasColumnType("int"); + + b.Property("WorkingHoursPerWeek") + .HasColumnType("int"); + + b.HasKey("id"); + + b.HasIndex("Petition_Id"); + + b.ToTable("WorkHistories", (string)null); + }); + + modelBuilder.Entity("Company.Domain.WorkingHoursAgg.WorkingHours", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("ContractId") + .HasColumnType("bigint"); + + b.Property("ContractNo") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("NumberOfFriday") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("NumberOfWorkingDays") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("OverNightWorkH") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("OverNightWorkM") + .HasMaxLength(2) + .HasColumnType("nvarchar(2)"); + + b.Property("OverTimeWorkH") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("OverTimeWorkM") + .HasMaxLength(2) + .HasColumnType("nvarchar(2)"); + + b.Property("ShiftWork") + .HasMaxLength(2) + .HasColumnType("nvarchar(2)"); + + b.Property("TotalHoursesH") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("TotalHoursesM") + .HasMaxLength(2) + .HasColumnType("nvarchar(2)"); + + b.Property("WeeklyWorkingTime") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.HasKey("id"); + + b.HasIndex("ContractId"); + + b.ToTable("WorkingHours", (string)null); + }); + + modelBuilder.Entity("Company.Domain.WorkingHoursItemsAgg.WorkingHoursItems", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("ComplexEnd") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("ComplexStart") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DayOfWork") + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b.Property("End1") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("End2") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("End3") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("RestTime") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("Start1") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("Start2") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("Start3") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("WeekNumber") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("WorkingHoursId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("WorkingHoursId"); + + b.ToTable("WorkingHoursItems", (string)null); + }); + + modelBuilder.Entity("Company.Domain.WorkingHoursTempAgg.WorkingHoursTemp", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("ShiftWork") + .HasMaxLength(2) + .HasColumnType("nvarchar(2)"); + + b.Property("WorkShopAddress2") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.ToTable("WorkingHoursTemp", (string)null); + }); + + modelBuilder.Entity("Company.Domain.WorkingHoursTempItemAgg.WorkingHoursTempItem", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("ComplexEnd") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("ComplexStart") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DayOfWork") + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b.Property("End1") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("End2") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("RestTime") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("Start1") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("Start2") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("WeekNumber") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("WorkingHoursTempId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("WorkingHoursTempId"); + + b.ToTable("WorkingHoursTempItem", (string)null); + }); + + modelBuilder.Entity("Company.Domain.WorkshopAccountAgg.WorkshopAccount", b => + { + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("AccountId") + .HasColumnType("bigint"); + + b.Property("ContractAndCheckout") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("Insurance") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("IsActiveSting") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("Tax") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.HasKey("WorkshopId", "AccountId"); + + b.ToTable("WorkshopeAccounts", (string)null); + }); + + modelBuilder.Entity("Company.Domain.WorkshopAgg.Workshop", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("AddBonusesPay") + .HasColumnType("bit"); + + b.Property("AddLeavePay") + .HasColumnType("bit"); + + b.Property("AddYearsPay") + .HasColumnType("bit"); + + b.Property("Address") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("AgentName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("AgentPhone") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("AgreementNumber") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("ArchiveCode") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("BonusesOptions") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("City") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("ComputeOptions") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("ContractTerm") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("CreateCheckout") + .HasColumnType("bit"); + + b.Property("CreateContract") + .HasColumnType("bit"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("CutContractEndOfYear") + .IsRequired() + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("FixedSalary") + .HasColumnType("bit"); + + b.Property("HasRollCallFreeVip") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("InsuranceCheckoutFamilyAllowance") + .HasColumnType("bit"); + + b.Property("InsuranceCheckoutOvertime") + .HasColumnType("bit"); + + b.Property("InsuranceCode") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("InsuranceJobId") + .HasColumnType("bigint"); + + b.Property("IsActive") + .HasColumnType("bit"); + + b.Property("IsActiveString") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("IsClassified") + .HasColumnType("bit"); + + b.Property("IsOldContract") + .HasColumnType("bit"); + + b.Property("IsStaticCheckout") + .HasColumnType("bit"); + + b.Property("Population") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("RotatingShiftCompute") + .HasColumnType("bit"); + + b.Property("SignCheckout") + .HasColumnType("bit"); + + b.Property("SignContract") + .HasColumnType("bit"); + + b.Property("State") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("TotalPaymentHide") + .HasColumnType("bit"); + + b.Property("TypeOfContract") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("TypeOfInsuranceSend") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("TypeOfOwnership") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("WorkshopFullName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("WorkshopHolidayWorking") + .HasColumnType("bit"); + + b.Property("WorkshopName") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("WorkshopSureName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("YearsOptions") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("ZoneName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.HasKey("id"); + + b.ToTable("Workshops", (string)null); + }); + + modelBuilder.Entity("Company.Domain.WorkshopEmployerAgg.WorkshopEmployer", b => + { + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("EmployerId") + .HasColumnType("bigint"); + + b.HasKey("WorkshopId", "EmployerId"); + + b.HasIndex("EmployerId"); + + b.ToTable("WorkshopeEmployers", (string)null); + }); + + modelBuilder.Entity("Company.Domain.WorkshopPlanAgg.WorkshopPlan", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Designer") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("DesignerPhone") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("ExecutionDateFa") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("ExecutionDateGr") + .HasColumnType("datetime2"); + + b.Property("IncludingDateFa") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("IncludingDateGr") + .HasColumnType("datetime2"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.ToTable("WorkshopPlan", (string)null); + }); + + modelBuilder.Entity("Company.Domain.WorkshopPlanEmployeeAgg.WorkshopPlanEmployee", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployeeFullName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("WorkshopPlanId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("WorkshopPlanId"); + + b.ToTable("WorkshopPlanEmployees", (string)null); + }); + + modelBuilder.Entity("Company.Domain.WorkshopSubAccountAgg.WorkshopSubAccount", b => + { + b.Property("SubAccountId") + .HasColumnType("bigint"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("IsActive") + .HasMaxLength(5) + .HasColumnType("int"); + + b.HasKey("SubAccountId", "WorkshopId"); + + b.HasIndex("WorkshopId"); + + b.ToTable("WorkshopSubAccounts", (string)null); + }); + + modelBuilder.Entity("Company.Domain.YearlySalaryAgg.YearlySalary", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("ConnectionId") + .HasColumnType("int"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EndDate") + .HasColumnType("datetime2"); + + b.Property("StartDate") + .HasColumnType("datetime2"); + + b.Property("Year") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.HasKey("id"); + + b.ToTable("YearlySalariess", (string)null); + }); + + modelBuilder.Entity("Company.Domain.YearlySalaryItemsAgg.YearlySalaryItem", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("ItemName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("ItemValue") + .HasColumnType("float"); + + b.Property("ParentConnectionId") + .HasColumnType("int"); + + b.Property("ValueType") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("YearlySalaryId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("YearlySalaryId"); + + b.ToTable("YearlyItems", (string)null); + }); + + modelBuilder.Entity("Company.Domain.YearlysSalaryTitleAgg.YearlySalaryTitle", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Title1") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Title10") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Title2") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Title3") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Title4") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Title5") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Title6") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Title7") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Title8") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Title9") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.HasKey("id"); + + b.ToTable("YearlySalaryTitles", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ZoneAgg.Zone", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CityId") + .HasColumnType("int"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("ZoneName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.HasKey("id"); + + b.ToTable("Zones", (string)null); + }); + + modelBuilder.Entity("Company.Domain.empolyerAgg.Employer", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Address") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("AgentPhone") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("ContractingPartyId") + .HasColumnType("bigint"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DateOfBirth") + .HasColumnType("datetime2"); + + b.Property("DateOfIssue") + .HasColumnType("datetime2"); + + b.Property("EmployerLName") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("EmployerNo") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("EservicePassword") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("EserviceUserName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("FName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("FatherName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("FullName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Gender") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("IdNumber") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("IsActive") + .HasColumnType("bit"); + + b.Property("IsLegal") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("LName") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("MclsPassword") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("MclsUserName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("NationalId") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("Nationalcode") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("Nationality") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("Phone") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("PlaceOfIssue") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("RegisterId") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("SanaPassword") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("SanaUserName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("TaxOfficeUserName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("TaxOfficepassword") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.HasKey("id"); + + b.HasIndex("ContractingPartyId"); + + b.ToTable("Employers", (string)null); + }); + + modelBuilder.Entity("EmployerWorkshop", b => + { + b.Property("EmployersListid") + .HasColumnType("bigint"); + + b.Property("WorkshopsListid") + .HasColumnType("bigint"); + + b.HasKey("EmployersListid", "WorkshopsListid"); + + b.HasIndex("WorkshopsListid"); + + b.ToTable("EmployerWorkshop"); + }); + + modelBuilder.Entity("Company.Domain.Board.Board", b => + { + b.HasOne("Company.Domain.BoardType.BoardType", "BoardType") + .WithMany("BoardsList") + .HasForeignKey("BoardType_Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.File1.File1", "File1") + .WithMany("BoardsList") + .HasForeignKey("File_Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("BoardType"); + + b.Navigation("File1"); + }); + + modelBuilder.Entity("Company.Domain.ChapterAgg.EntityChapter", b => + { + b.HasOne("Company.Domain.SubtitleAgg.EntitySubtitle", "EntitySubtitle") + .WithMany("Chapters") + .HasForeignKey("Subtitle_Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("EntitySubtitle"); + }); + + modelBuilder.Entity("Company.Domain.CheckoutAgg.Checkout", b => + { + b.HasOne("Company.Domain.WorkshopAgg.Workshop", "Workshop") + .WithMany("Checkouts") + .HasForeignKey("WorkshopId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.OwnsOne("Company.Domain.CheckoutAgg.CheckoutRollCall", "CheckoutRollCall", b1 => + { + b1.Property("Checkoutid") + .HasColumnType("bigint"); + + b1.Property("TotalBreakTimeSpan") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b1.Property("TotalMandatoryTimeSpan") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b1.Property("TotalPaidLeaveTmeSpan") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b1.Property("TotalPresentTimeSpan") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b1.Property("TotalSickLeaveTimeSpan") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b1.Property("TotalWorkingTimeSpan") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b1.HasKey("Checkoutid"); + + b1.ToTable("Checkouts"); + + b1.WithOwner() + .HasForeignKey("Checkoutid"); + + b1.OwnsMany("Company.Domain.CheckoutAgg.CheckoutRollCallDay", "RollCallDaysCollection", b2 => + { + b2.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b2.Property("Id")); + + b2.Property("BreakTimeSpan") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b2.Property("CheckoutId") + .HasColumnType("bigint"); + + b2.Property("Date") + .HasColumnType("datetime2"); + + b2.Property("FirstEndDate") + .HasMaxLength(18) + .HasColumnType("nvarchar(18)"); + + b2.Property("FirstStartDate") + .HasMaxLength(18) + .HasColumnType("nvarchar(18)"); + + b2.Property("IsAbsent") + .HasColumnType("bit"); + + b2.Property("IsFriday") + .HasColumnType("bit"); + + b2.Property("IsHoliday") + .HasColumnType("bit"); + + b2.Property("IsSliced") + .HasColumnType("bit"); + + b2.Property("LeaveType") + .HasMaxLength(18) + .HasColumnType("nvarchar(18)"); + + b2.Property("SecondEndDate") + .HasMaxLength(18) + .HasColumnType("nvarchar(18)"); + + b2.Property("SecondStartDate") + .HasMaxLength(18) + .HasColumnType("nvarchar(18)"); + + b2.Property("WorkingTimeSpan") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b2.HasKey("Id"); + + b2.HasIndex("CheckoutId"); + + b2.ToTable("CheckoutRollCallDay"); + + b2.WithOwner() + .HasForeignKey("CheckoutId"); + }); + + b1.Navigation("RollCallDaysCollection"); + }); + + b.OwnsMany("Company.Domain.CheckoutAgg.ValueObjects.CheckoutLoanInstallment", "LoanInstallments", b1 => + { + b1.Property("Checkoutid") + .HasColumnType("bigint"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("AmountForMonth") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b1.Property("EntityId") + .HasColumnType("bigint"); + + b1.Property("IsActive") + .IsRequired() + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b1.Property("LoanAmount") + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b1.Property("LoanRemaining") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b1.Property("Month") + .HasMaxLength(2) + .HasColumnType("nvarchar(2)"); + + b1.Property("Year") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)"); + + b1.HasKey("Checkoutid", "Id"); + + b1.ToTable("CheckoutLoanInstallment"); + + b1.WithOwner() + .HasForeignKey("Checkoutid"); + }); + + b.OwnsMany("Company.Domain.CheckoutAgg.ValueObjects.CheckoutSalaryAid", "SalaryAids", b1 => + { + b1.Property("Checkoutid") + .HasColumnType("bigint"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("Amount") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b1.Property("CalculationDateTime") + .HasColumnType("datetime2"); + + b1.Property("CalculationDateTimeFa") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b1.Property("EntityId") + .HasColumnType("bigint"); + + b1.Property("SalaryAidDateTime") + .HasColumnType("datetime2"); + + b1.Property("SalaryAidDateTimeFa") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b1.HasKey("Checkoutid", "Id"); + + b1.ToTable("CheckoutSalaryAid"); + + b1.WithOwner() + .HasForeignKey("Checkoutid"); + }); + + b.Navigation("CheckoutRollCall"); + + b.Navigation("LoanInstallments"); + + b.Navigation("SalaryAids"); + + b.Navigation("Workshop"); + }); + + modelBuilder.Entity("Company.Domain.ClientEmployeeWorkshopAgg.ClientEmployeeWorkshop", b => + { + b.HasOne("Company.Domain.EmployeeAgg.Employee", "Employee") + .WithMany("ClientEmployeeWorkshopList") + .HasForeignKey("EmployeeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.WorkshopAgg.Workshop", "Workshop") + .WithMany("ClientEmployeeWorkshopList") + .HasForeignKey("WorkshopId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Employee"); + + b.Navigation("Workshop"); + }); + + modelBuilder.Entity("Company.Domain.ContarctingPartyAgg.PersonalContractingParty", b => + { + b.HasOne("Company.Domain.RepresentativeAgg.Representative", "Representative") + .WithMany("ContractingParties") + .HasForeignKey("RepresentativeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Representative"); + }); + + modelBuilder.Entity("Company.Domain.ContractAgg.Contract", b => + { + b.HasOne("Company.Domain.EmployeeAgg.Employee", "Employee") + .WithMany("Contracts") + .HasForeignKey("EmployeeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.empolyerAgg.Employer", "Employer") + .WithMany("Contracts") + .HasForeignKey("EmployerId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.JobAgg.Job", "Job") + .WithMany("ContractsList") + .HasForeignKey("JobTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.MandatoryHoursAgg.MandatoryHours", null) + .WithMany("Contracts") + .HasForeignKey("MandatoryHoursid"); + + b.HasOne("Company.Domain.WorkshopAgg.Workshop", "Workshop") + .WithMany("Contracts2") + .HasForeignKey("WorkshopIds") + .OnDelete(DeleteBehavior.NoAction) + .IsRequired(); + + b.HasOne("Company.Domain.YearlySalaryAgg.YearlySalary", "YearlySalary") + .WithMany("Contracts") + .HasForeignKey("YearlySalaryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Employee"); + + b.Navigation("Employer"); + + b.Navigation("Job"); + + b.Navigation("Workshop"); + + b.Navigation("YearlySalary"); + }); + + modelBuilder.Entity("Company.Domain.ContractingPartyAccountAgg.ContractingPartyAccount", b => + { + b.HasOne("Company.Domain.ContarctingPartyAgg.PersonalContractingParty", "PersonalContractingParty") + .WithMany() + .HasForeignKey("PersonalContractingPartyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("PersonalContractingParty"); + }); + + modelBuilder.Entity("Company.Domain.CrossJobAgg.CrossJob", b => + { + b.HasOne("Company.Domain.CrossJobGuildAgg.CrossJobGuild", "CrossJobGuild") + .WithMany("CrossJobList") + .HasForeignKey("CrossJobGuildId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CrossJobGuild"); + }); + + modelBuilder.Entity("Company.Domain.CrossJobItemsAgg.CrossJobItems", b => + { + b.HasOne("Company.Domain.CrossJobAgg.CrossJob", "CrossJob") + .WithMany("CrossJobItemsList") + .HasForeignKey("CrossJobId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.JobAgg.Job", "Job") + .WithMany("CrossJobItemsList") + .HasForeignKey("JobId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CrossJob"); + + b.Navigation("Job"); + }); + + modelBuilder.Entity("Company.Domain.CustomizeCheckoutAgg.CustomizeCheckout", b => + { + b.HasOne("Company.Domain.EmployeeAgg.Employee", "Employee") + .WithMany("CustomizeCheckouts") + .HasForeignKey("EmployeeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.WorkshopAgg.Workshop", "Workshop") + .WithMany("CustomizeCheckouts") + .HasForeignKey("WorkshopId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.OwnsMany("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.CustomizeRotatingShift", "CustomizeRotatingShifts", b1 => + { + b1.Property("CustomizeCheckoutid") + .HasColumnType("bigint"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("EndTime") + .HasColumnType("time"); + + b1.Property("StartTime") + .HasColumnType("time"); + + b1.HasKey("CustomizeCheckoutid", "Id"); + + b1.ToTable("CustomizeCheckouts_CustomizeRotatingShifts"); + + b1.WithOwner() + .HasForeignKey("CustomizeCheckoutid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.IrregularShift", "IrregularShift", b1 => + { + b1.Property("CustomizeCheckoutid") + .HasColumnType("bigint"); + + b1.Property("EndTime") + .HasColumnType("time"); + + b1.Property("StartTime") + .HasColumnType("time"); + + b1.Property("WorkshopIrregularShifts") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b1.HasKey("CustomizeCheckoutid"); + + b1.ToTable("CustomizeCheckouts"); + + b1.WithOwner() + .HasForeignKey("CustomizeCheckoutid"); + }); + + b.OwnsMany("Company.Domain.CustomizeCheckoutAgg.ValueObjects.CustomizeCheckoutRegularShift", "RegularShifts", b1 => + { + b1.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("id")); + + b1.Property("CreationDate") + .HasColumnType("datetime2"); + + b1.Property("CustomizeCheckoutid") + .HasColumnType("bigint"); + + b1.Property("EndTime") + .HasColumnType("time"); + + b1.Property("Placement") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b1.Property("StartTime") + .HasColumnType("time"); + + b1.HasKey("id"); + + b1.HasIndex("CustomizeCheckoutid"); + + b1.ToTable("CustomizeCheckouts_RegularShifts"); + + b1.WithOwner() + .HasForeignKey("CustomizeCheckoutid"); + }); + + b.OwnsMany("Company.Domain.CustomizeCheckoutAgg.ValueObjects.CustomizeCheckoutFine", "CheckoutFines", b1 => + { + b1.Property("CustomizeCheckoutid") + .HasColumnType("bigint"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("Amount") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b1.Property("CreationDate") + .HasColumnType("datetime2"); + + b1.Property("EntityId") + .HasColumnType("bigint"); + + b1.Property("FineDateFa") + .HasMaxLength(12) + .HasColumnType("nvarchar(12)"); + + b1.Property("FineDateGr") + .HasColumnType("datetime2"); + + b1.Property("IsActive") + .IsRequired() + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b1.Property("Title") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b1.HasKey("CustomizeCheckoutid", "Id"); + + b1.ToTable("CustomizeCheckoutFine"); + + b1.WithOwner() + .HasForeignKey("CustomizeCheckoutid"); + }); + + b.OwnsMany("Company.Domain.CustomizeCheckoutAgg.ValueObjects.CustomizeCheckoutLoanInstallments", "CustomizeCheckoutLoanInstallments", b1 => + { + b1.Property("CustomizeCheckoutid") + .HasColumnType("bigint"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("AmountForMonth") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b1.Property("EntityId") + .HasColumnType("bigint"); + + b1.Property("IsActive") + .IsRequired() + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b1.Property("LoanAmount") + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b1.Property("LoanRemaining") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b1.Property("Month") + .HasMaxLength(2) + .HasColumnType("nvarchar(2)"); + + b1.Property("Year") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)"); + + b1.HasKey("CustomizeCheckoutid", "Id"); + + b1.ToTable("CustomizeCheckoutLoanInstallments"); + + b1.WithOwner() + .HasForeignKey("CustomizeCheckoutid"); + }); + + b.OwnsMany("Company.Domain.CustomizeCheckoutAgg.ValueObjects.CustomizeCheckoutReward", "CustomizeCheckoutRewards", b1 => + { + b1.Property("CustomizeCheckoutid") + .HasColumnType("bigint"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("Amount") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b1.Property("Description") + .HasColumnType("ntext"); + + b1.Property("EntityId") + .HasColumnType("bigint"); + + b1.Property("GrantDate") + .HasColumnType("datetime2"); + + b1.Property("GrantDateFa") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b1.Property("IsActive") + .IsRequired() + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b1.Property("Title") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b1.HasKey("CustomizeCheckoutid", "Id"); + + b1.ToTable("CustomizeCheckoutReward"); + + b1.WithOwner() + .HasForeignKey("CustomizeCheckoutid"); + }); + + b.OwnsMany("Company.Domain.CustomizeCheckoutAgg.ValueObjects.CustomizeCheckoutSalaryAid", "CustomizeCheckoutSalaryAids", b1 => + { + b1.Property("CustomizeCheckoutid") + .HasColumnType("bigint"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("Amount") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b1.Property("CalculationDateTime") + .HasColumnType("datetime2"); + + b1.Property("CalculationDateTimeFa") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b1.Property("EntityId") + .HasColumnType("bigint"); + + b1.Property("SalaryAidDateTime") + .HasColumnType("datetime2"); + + b1.Property("SalaryAidDateTimeFa") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b1.HasKey("CustomizeCheckoutid", "Id"); + + b1.ToTable("CustomizeCheckoutSalaryAid"); + + b1.WithOwner() + .HasForeignKey("CustomizeCheckoutid"); + }); + + b.Navigation("CheckoutFines"); + + b.Navigation("CustomizeCheckoutLoanInstallments"); + + b.Navigation("CustomizeCheckoutRewards"); + + b.Navigation("CustomizeCheckoutSalaryAids"); + + b.Navigation("CustomizeRotatingShifts"); + + b.Navigation("Employee"); + + b.Navigation("IrregularShift"); + + b.Navigation("RegularShifts"); + + b.Navigation("Workshop"); + }); + + modelBuilder.Entity("Company.Domain.CustomizeCheckoutTempAgg.CustomizeCheckoutTemp", b => + { + b.HasOne("Company.Domain.EmployeeAgg.Employee", "Employee") + .WithMany() + .HasForeignKey("EmployeeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.WorkshopAgg.Workshop", "Workshop") + .WithMany() + .HasForeignKey("WorkshopId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.OwnsMany("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.CustomizeRotatingShift", "CustomizeRotatingShifts", b1 => + { + b1.Property("CustomizeCheckoutTempid") + .HasColumnType("bigint"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("EndTime") + .HasColumnType("time"); + + b1.Property("StartTime") + .HasColumnType("time"); + + b1.HasKey("CustomizeCheckoutTempid", "Id"); + + b1.ToTable("CustomizeCheckoutTemps_CustomizeRotatingShifts"); + + b1.WithOwner() + .HasForeignKey("CustomizeCheckoutTempid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.IrregularShift", "IrregularShift", b1 => + { + b1.Property("CustomizeCheckoutTempid") + .HasColumnType("bigint"); + + b1.Property("EndTime") + .HasColumnType("time"); + + b1.Property("StartTime") + .HasColumnType("time"); + + b1.Property("WorkshopIrregularShifts") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b1.HasKey("CustomizeCheckoutTempid"); + + b1.ToTable("CustomizeCheckoutTemps"); + + b1.WithOwner() + .HasForeignKey("CustomizeCheckoutTempid"); + }); + + b.OwnsMany("Company.Domain.CustomizeCheckoutAgg.ValueObjects.CustomizeCheckoutRegularShift", "RegularShifts", b1 => + { + b1.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("id")); + + b1.Property("CreationDate") + .HasColumnType("datetime2"); + + b1.Property("CustomizeCheckoutTempid") + .HasColumnType("bigint"); + + b1.Property("EndTime") + .HasColumnType("time"); + + b1.Property("Placement") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b1.Property("StartTime") + .HasColumnType("time"); + + b1.HasKey("id"); + + b1.HasIndex("CustomizeCheckoutTempid"); + + b1.ToTable("CustomizeCheckoutTemps_RegularShifts"); + + b1.WithOwner() + .HasForeignKey("CustomizeCheckoutTempid"); + }); + + b.OwnsMany("Company.Domain.CustomizeCheckoutTempAgg.ValueObjects.CustomizeCheckoutTempFine", "CheckoutFines", b1 => + { + b1.Property("CustomizeCheckoutTempid") + .HasColumnType("bigint"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("Amount") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b1.Property("CreationDate") + .HasColumnType("datetime2"); + + b1.Property("EntityId") + .HasColumnType("bigint"); + + b1.Property("FineDateFa") + .HasMaxLength(12) + .HasColumnType("nvarchar(12)"); + + b1.Property("FineDateGr") + .HasColumnType("datetime2"); + + b1.Property("IsActive") + .IsRequired() + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b1.Property("Title") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b1.HasKey("CustomizeCheckoutTempid", "Id"); + + b1.ToTable("CustomizeCheckoutTempFine"); + + b1.WithOwner() + .HasForeignKey("CustomizeCheckoutTempid"); + }); + + b.OwnsMany("Company.Domain.CustomizeCheckoutTempAgg.ValueObjects.CustomizeCheckoutTempLoanInstallments", "CustomizeCheckoutLoanInstallments", b1 => + { + b1.Property("CustomizeCheckoutTempid") + .HasColumnType("bigint"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("AmountForMonth") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b1.Property("EntityId") + .HasColumnType("bigint"); + + b1.Property("IsActive") + .IsRequired() + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b1.Property("LoanAmount") + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b1.Property("LoanRemaining") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b1.Property("Month") + .HasMaxLength(2) + .HasColumnType("nvarchar(2)"); + + b1.Property("Year") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)"); + + b1.HasKey("CustomizeCheckoutTempid", "Id"); + + b1.ToTable("CustomizeCheckoutTempLoanInstallments"); + + b1.WithOwner() + .HasForeignKey("CustomizeCheckoutTempid"); + }); + + b.OwnsMany("Company.Domain.CustomizeCheckoutTempAgg.ValueObjects.CustomizeCheckoutTempReward", "CustomizeCheckoutRewards", b1 => + { + b1.Property("CustomizeCheckoutTempid") + .HasColumnType("bigint"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("Amount") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b1.Property("Description") + .HasColumnType("ntext"); + + b1.Property("EntityId") + .HasColumnType("bigint"); + + b1.Property("GrantDate") + .HasColumnType("datetime2"); + + b1.Property("GrantDateFa") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b1.Property("IsActive") + .IsRequired() + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b1.Property("Title") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b1.HasKey("CustomizeCheckoutTempid", "Id"); + + b1.ToTable("CustomizeCheckoutTempReward"); + + b1.WithOwner() + .HasForeignKey("CustomizeCheckoutTempid"); + }); + + b.OwnsMany("Company.Domain.CustomizeCheckoutTempAgg.ValueObjects.CustomizeCheckoutTempSalaryAid", "CustomizeCheckoutSalaryAids", b1 => + { + b1.Property("CustomizeCheckoutTempid") + .HasColumnType("bigint"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("Amount") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b1.Property("CalculationDateTime") + .HasColumnType("datetime2"); + + b1.Property("CalculationDateTimeFa") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b1.Property("EntityId") + .HasColumnType("bigint"); + + b1.Property("SalaryAidDateTime") + .HasColumnType("datetime2"); + + b1.Property("SalaryAidDateTimeFa") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b1.HasKey("CustomizeCheckoutTempid", "Id"); + + b1.ToTable("CustomizeCheckoutTempSalaryAid"); + + b1.WithOwner() + .HasForeignKey("CustomizeCheckoutTempid"); + }); + + b.Navigation("CheckoutFines"); + + b.Navigation("CustomizeCheckoutLoanInstallments"); + + b.Navigation("CustomizeCheckoutRewards"); + + b.Navigation("CustomizeCheckoutSalaryAids"); + + b.Navigation("CustomizeRotatingShifts"); + + b.Navigation("Employee"); + + b.Navigation("IrregularShift"); + + b.Navigation("RegularShifts"); + + b.Navigation("Workshop"); + }); + + modelBuilder.Entity("Company.Domain.CustomizeWorkshopEmployeeSettingsAgg.Entities.CustomizeWorkshopEmployeeSettings", b => + { + b.HasOne("Company.Domain.CustomizeWorkshopGroupSettingsAgg.Entities.CustomizeWorkshopGroupSettings", "CustomizeWorkshopGroupSettings") + .WithMany("CustomizeWorkshopEmployeeSettingsCollection") + .HasForeignKey("CustomizeWorkshopGroupSettingId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.OwnsMany("Company.Domain.CustomizeWorkshopEmployeeSettingsAgg.Entities.CustomizeWorkshopEmployeeSettingsShift", "CustomizeWorkshopEmployeeSettingsShifts", b1 => + { + b1.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("id")); + + b1.Property("CreationDate") + .HasColumnType("datetime2"); + + b1.Property("CustomizeWorkshopEmployeeSettingsId") + .HasColumnType("bigint"); + + b1.Property("EndTime") + .HasColumnType("time"); + + b1.Property("Placement") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b1.Property("PreviousShiftThreshold") + .HasColumnType("time"); + + b1.Property("StartTime") + .HasColumnType("time"); + + b1.HasKey("id"); + + b1.HasIndex("CustomizeWorkshopEmployeeSettingsId"); + + b1.ToTable("CustomizeWorkshopEmployeeSettingsShifts", (string)null); + + b1.WithOwner("CustomizeWorkshopEmployeeSettings") + .HasForeignKey("CustomizeWorkshopEmployeeSettingsId"); + + b1.Navigation("CustomizeWorkshopEmployeeSettings"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.BaseYearsPay", "BaseYearsPay", b1 => + { + b1.Property("CustomizeWorkshopEmployeeSettingsid") + .HasColumnType("bigint"); + + b1.Property("BaseYearsPayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("BaseYearsPay_BaseYearsPayType"); + + b1.Property("PaymentType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("BaseYearsPay_PaymentType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("BaseYearsPay_Value"); + + b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.ToTable("CustomizeWorkshopEmployeeSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.BonusesPay", "BonusesPay", b1 => + { + b1.Property("CustomizeWorkshopEmployeeSettingsid") + .HasColumnType("bigint"); + + b1.Property("BonusesPayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("BonusesPay_BonusesPayType"); + + b1.Property("PaymentType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("BonusesPay_PaymentType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("BonusesPay_Value"); + + b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.ToTable("CustomizeWorkshopEmployeeSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.BreakTime", "BreakTime", b1 => + { + b1.Property("CustomizeWorkshopEmployeeSettingsid") + .HasColumnType("bigint"); + + b1.Property("BreakTimeType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b1.Property("BreakTimeValue") + .HasColumnType("time"); + + b1.Property("HasBreakTimeValue") + .HasColumnType("bit"); + + b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.ToTable("CustomizeWorkshopEmployeeSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); + }); + + b.OwnsMany("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.CustomizeRotatingShift", "CustomizeRotatingShifts", b1 => + { + b1.Property("CustomizeWorkshopEmployeeSettingsid") + .HasColumnType("bigint"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("EndTime") + .HasColumnType("time"); + + b1.Property("StartTime") + .HasColumnType("time"); + + b1.HasKey("CustomizeWorkshopEmployeeSettingsid", "Id"); + + b1.ToTable("CustomizeWorkshopEmployeeSettings_CustomizeRotatingShifts"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.EarlyExit", "EarlyExit", b1 => + { + b1.Property("CustomizeWorkshopEmployeeSettingsid") + .HasColumnType("bigint"); + + b1.Property("EarlyExitType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("EarlyExit_EarlyExitType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("EarlyExitTimeFines_Value"); + + b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.ToTable("CustomizeWorkshopEmployeeSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.OwnsMany("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.EarlyExitTimeFine", "EarlyExitTimeFines", b2 => + { + b2.Property("CustomizeWorkshopEmployeeSettingsId") + .HasColumnType("bigint"); + + b2.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b2.Property("Id")); + + b2.Property("FineMoney") + .HasColumnType("float") + .HasColumnName("EarlyExitTimeFines_FineMoney"); + + b2.Property("Minute") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)") + .HasColumnName("EarlyExitTimeFines_Minute"); + + b2.HasKey("CustomizeWorkshopEmployeeSettingsId", "Id"); + + b2.ToTable("CustomizeWorkshopEmployeeSettings_EarlyExitTimeFines"); + + b2.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsId"); + }); + + b1.Navigation("EarlyExitTimeFines"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FamilyAllowance", "FamilyAllowance", b1 => + { + b1.Property("CustomizeWorkshopEmployeeSettingsid") + .HasColumnType("bigint"); + + b1.Property("FamilyAllowanceType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("FamilyAllowance_FamilyAllowanceType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("FamilyAllowance_Value"); + + b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.ToTable("CustomizeWorkshopEmployeeSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FineAbsenceDeduction", "FineAbsenceDeduction", b1 => + { + b1.Property("CustomizeWorkshopEmployeeSettingsid") + .HasColumnType("bigint"); + + b1.Property("FineAbsenceDeductionType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("FineAbsenceDeduction_FineAbsenceDeductionType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("FineAbsenceDeduction_Value"); + + b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.ToTable("CustomizeWorkshopEmployeeSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.OwnsMany("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FineAbsenceDayOfWeek", "FineAbsenceDayOfWeekCollection", b2 => + { + b2.Property("CustomizeWorkshopEmployeeSettingsId") + .HasColumnType("bigint"); + + b2.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b2.Property("Id")); + + b2.Property("DayOfWeek") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("FineAbsenceDayOfWeekCollection_DayOfWeek"); + + b2.HasKey("CustomizeWorkshopEmployeeSettingsId", "Id"); + + b2.ToTable("CustomizeWorkshopEmployeeSettings_FineAbsenceDayOfWeekCollection"); + + b2.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsId"); + }); + + b1.Navigation("FineAbsenceDayOfWeekCollection"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FridayPay", "FridayPay", b1 => + { + b1.Property("CustomizeWorkshopEmployeeSettingsid") + .HasColumnType("bigint"); + + b1.Property("FridayPayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("FridayPay_Value"); + + b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.ToTable("CustomizeWorkshopEmployeeSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.InsuranceDeduction", "InsuranceDeduction", b1 => + { + b1.Property("CustomizeWorkshopEmployeeSettingsid") + .HasColumnType("bigint"); + + b1.Property("InsuranceDeductionType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("InsuranceDeduction_InsuranceDeductionType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("InsuranceDeduction_Value"); + + b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.ToTable("CustomizeWorkshopEmployeeSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.IrregularShift", "IrregularShift", b1 => + { + b1.Property("CustomizeWorkshopEmployeeSettingsid") + .HasColumnType("bigint"); + + b1.Property("EndTime") + .HasColumnType("time"); + + b1.Property("StartTime") + .HasColumnType("time"); + + b1.Property("WorkshopIrregularShifts") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.ToTable("CustomizeWorkshopEmployeeSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.LateToWork", "LateToWork", b1 => + { + b1.Property("CustomizeWorkshopEmployeeSettingsid") + .HasColumnType("bigint"); + + b1.Property("LateToWorkType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("LateToWork_LateToWorkType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("LateToWork_Value"); + + b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.ToTable("CustomizeWorkshopEmployeeSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.OwnsMany("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.LateToWorkTimeFine", "LateToWorkTimeFines", b2 => + { + b2.Property("CustomizeWorkshopEmployeeSettingsId") + .HasColumnType("bigint"); + + b2.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b2.Property("Id")); + + b2.Property("FineMoney") + .HasColumnType("float") + .HasColumnName("LateToWorkTimeFines_FineMoney"); + + b2.Property("Minute") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)") + .HasColumnName("LateToWorkTimeFines_Minute"); + + b2.HasKey("CustomizeWorkshopEmployeeSettingsId", "Id"); + + b2.ToTable("CustomizeWorkshopEmployeeSettings_LateToWorkTimeFines"); + + b2.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsId"); + }); + + b1.Navigation("LateToWorkTimeFines"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.LeavePay", "LeavePay", b1 => + { + b1.Property("CustomizeWorkshopEmployeeSettingsid") + .HasColumnType("bigint"); + + b1.Property("LeavePayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("LeavePay_LeavePayType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("LeavePay_Value"); + + b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.ToTable("CustomizeWorkshopEmployeeSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.MarriedAllowance", "MarriedAllowance", b1 => + { + b1.Property("CustomizeWorkshopEmployeeSettingsid") + .HasColumnType("bigint"); + + b1.Property("MarriedAllowanceType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("MarriedAllowance_MarriedAllowanceType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("MarriedAllowance_Value"); + + b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.ToTable("CustomizeWorkshopEmployeeSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.NightWorkPay", "NightWorkPay", b1 => + { + b1.Property("CustomizeWorkshopEmployeeSettingsid") + .HasColumnType("bigint"); + + b1.Property("NightWorkingType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("NightWorkPay_NightWorkingType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("NightWorkPay_Value"); + + b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.ToTable("CustomizeWorkshopEmployeeSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.OverTimePay", "OverTimePay", b1 => + { + b1.Property("CustomizeWorkshopEmployeeSettingsid") + .HasColumnType("bigint"); + + b1.Property("OverTimePayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("OverTimePay_OverTimePayType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("OverTimePay_Value"); + + b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.ToTable("CustomizeWorkshopEmployeeSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.ShiftPay", "ShiftPay", b1 => + { + b1.Property("CustomizeWorkshopEmployeeSettingsid") + .HasColumnType("bigint"); + + b1.Property("ShiftPayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("ShiftPay_ShiftPayType"); + + b1.Property("ShiftType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("ShiftPay_ShiftType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("ShiftPay_Value"); + + b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.ToTable("CustomizeWorkshopEmployeeSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); + }); + + b.OwnsMany("_0_Framework.Domain.CustomizeCheckoutShared.Base.WeeklyOffDay", "WeeklyOffDays", b1 => + { + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("DayOfWeek") + .IsRequired() + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b1.Property("ParentId") + .HasColumnType("bigint"); + + b1.HasKey("Id"); + + b1.HasIndex("ParentId"); + + b1.ToTable("CustomizeWorkshopEmployeeSettings_WeeklyOffDays"); + + b1.WithOwner() + .HasForeignKey("ParentId"); + }); + + b.Navigation("BaseYearsPay"); + + b.Navigation("BonusesPay"); + + b.Navigation("BreakTime"); + + b.Navigation("CustomizeRotatingShifts"); + + b.Navigation("CustomizeWorkshopEmployeeSettingsShifts"); + + b.Navigation("CustomizeWorkshopGroupSettings"); + + b.Navigation("EarlyExit"); + + b.Navigation("FamilyAllowance"); + + b.Navigation("FineAbsenceDeduction"); + + b.Navigation("FridayPay"); + + b.Navigation("InsuranceDeduction"); + + b.Navigation("IrregularShift"); + + b.Navigation("LateToWork"); + + b.Navigation("LeavePay"); + + b.Navigation("MarriedAllowance"); + + b.Navigation("NightWorkPay"); + + b.Navigation("OverTimePay"); + + b.Navigation("ShiftPay"); + + b.Navigation("WeeklyOffDays"); + }); + + modelBuilder.Entity("Company.Domain.CustomizeWorkshopGroupSettingsAgg.Entities.CustomizeWorkshopGroupSettings", b => + { + b.HasOne("Company.Domain.CustomizeWorkshopSettingsAgg.Entities.CustomizeWorkshopSettings", "CustomizeWorkshopSettings") + .WithMany("CustomizeWorkshopGroupSettingsCollection") + .HasForeignKey("CustomizeWorkshopSettingId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.OwnsMany("Company.Domain.CustomizeWorkshopGroupSettingsAgg.Entities.CustomizeWorkshopGroupSettingsShift", "CustomizeWorkshopGroupSettingsShifts", b1 => + { + b1.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("id")); + + b1.Property("CreationDate") + .HasColumnType("datetime2"); + + b1.Property("CustomizeWorkshopGroupSettingsId") + .HasColumnType("bigint"); + + b1.Property("EndTime") + .HasColumnType("time"); + + b1.Property("Placement") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b1.Property("StartTime") + .HasColumnType("time"); + + b1.HasKey("id"); + + b1.HasIndex("CustomizeWorkshopGroupSettingsId"); + + b1.ToTable("CustomizeWorkshopGroupSettingsShifts", (string)null); + + b1.WithOwner("CustomizeWorkshopGroupSettings") + .HasForeignKey("CustomizeWorkshopGroupSettingsId"); + + b1.Navigation("CustomizeWorkshopGroupSettings"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.BaseYearsPay", "BaseYearsPay", b1 => + { + b1.Property("CustomizeWorkshopGroupSettingsid") + .HasColumnType("bigint"); + + b1.Property("BaseYearsPayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("BaseYearsPay_BaseYearsPayType"); + + b1.Property("PaymentType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("BaseYearsPay_PaymentType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("BaseYearsPay_Value"); + + b1.HasKey("CustomizeWorkshopGroupSettingsid"); + + b1.ToTable("CustomizeWorkshopGroupSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.BonusesPay", "BonusesPay", b1 => + { + b1.Property("CustomizeWorkshopGroupSettingsid") + .HasColumnType("bigint"); + + b1.Property("BonusesPayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("BonusesPay_BonusesPayType"); + + b1.Property("PaymentType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("BonusesPay_PaymentType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("BonusesPay_Value"); + + b1.HasKey("CustomizeWorkshopGroupSettingsid"); + + b1.ToTable("CustomizeWorkshopGroupSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.BreakTime", "BreakTime", b1 => + { + b1.Property("CustomizeWorkshopGroupSettingsid") + .HasColumnType("bigint"); + + b1.Property("BreakTimeType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b1.Property("BreakTimeValue") + .HasColumnType("time"); + + b1.Property("HasBreakTimeValue") + .HasColumnType("bit"); + + b1.HasKey("CustomizeWorkshopGroupSettingsid"); + + b1.ToTable("CustomizeWorkshopGroupSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsid"); + }); + + b.OwnsMany("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.CustomizeRotatingShift", "CustomizeRotatingShifts", b1 => + { + b1.Property("CustomizeWorkshopGroupSettingsid") + .HasColumnType("bigint"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("EndTime") + .HasColumnType("time"); + + b1.Property("StartTime") + .HasColumnType("time"); + + b1.HasKey("CustomizeWorkshopGroupSettingsid", "Id"); + + b1.ToTable("CustomizeWorkshopGroupSettings_CustomizeRotatingShifts"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.EarlyExit", "EarlyExit", b1 => + { + b1.Property("CustomizeWorkshopGroupSettingsid") + .HasColumnType("bigint"); + + b1.Property("EarlyExitType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("EarlyExit_EarlyExitType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("EarlyExitTimeFines_Value"); + + b1.HasKey("CustomizeWorkshopGroupSettingsid"); + + b1.ToTable("CustomizeWorkshopGroupSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsid"); + + b1.OwnsMany("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.EarlyExitTimeFine", "EarlyExitTimeFines", b2 => + { + b2.Property("CustomizeWorkshopGroupSettingsId") + .HasColumnType("bigint"); + + b2.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b2.Property("Id")); + + b2.Property("FineMoney") + .HasColumnType("float") + .HasColumnName("EarlyExitTimeFines_FineMoney"); + + b2.Property("Minute") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)") + .HasColumnName("EarlyExitTimeFines_Minute"); + + b2.HasKey("CustomizeWorkshopGroupSettingsId", "Id"); + + b2.ToTable("CustomizeWorkshopGroupSettings_EarlyExitTimeFines"); + + b2.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsId"); + }); + + b1.Navigation("EarlyExitTimeFines"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FamilyAllowance", "FamilyAllowance", b1 => + { + b1.Property("CustomizeWorkshopGroupSettingsid") + .HasColumnType("bigint"); + + b1.Property("FamilyAllowanceType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("FamilyAllowance_FamilyAllowanceType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("FamilyAllowance_Value"); + + b1.HasKey("CustomizeWorkshopGroupSettingsid"); + + b1.ToTable("CustomizeWorkshopGroupSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FineAbsenceDeduction", "FineAbsenceDeduction", b1 => + { + b1.Property("CustomizeWorkshopGroupSettingsid") + .HasColumnType("bigint"); + + b1.Property("FineAbsenceDeductionType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("FineAbsenceDeduction_FineAbsenceDeductionType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("FineAbsenceDeduction_Value"); + + b1.HasKey("CustomizeWorkshopGroupSettingsid"); + + b1.ToTable("CustomizeWorkshopGroupSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsid"); + + b1.OwnsMany("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FineAbsenceDayOfWeek", "FineAbsenceDayOfWeekCollection", b2 => + { + b2.Property("CustomizeWorkshopGroupSettingsId") + .HasColumnType("bigint"); + + b2.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b2.Property("Id")); + + b2.Property("DayOfWeek") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("FineAbsenceDayOfWeekCollection_DayOfWeek"); + + b2.HasKey("CustomizeWorkshopGroupSettingsId", "Id"); + + b2.ToTable("CustomizeWorkshopGroupSettings_FineAbsenceDayOfWeekCollection"); + + b2.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsId"); + }); + + b1.Navigation("FineAbsenceDayOfWeekCollection"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FridayPay", "FridayPay", b1 => + { + b1.Property("CustomizeWorkshopGroupSettingsid") + .HasColumnType("bigint"); + + b1.Property("FridayPayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("FridayPay_Value"); + + b1.HasKey("CustomizeWorkshopGroupSettingsid"); + + b1.ToTable("CustomizeWorkshopGroupSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.InsuranceDeduction", "InsuranceDeduction", b1 => + { + b1.Property("CustomizeWorkshopGroupSettingsid") + .HasColumnType("bigint"); + + b1.Property("InsuranceDeductionType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("InsuranceDeduction_InsuranceDeductionType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("InsuranceDeduction_Value"); + + b1.HasKey("CustomizeWorkshopGroupSettingsid"); + + b1.ToTable("CustomizeWorkshopGroupSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.IrregularShift", "IrregularShift", b1 => + { + b1.Property("CustomizeWorkshopGroupSettingsid") + .HasColumnType("bigint"); + + b1.Property("EndTime") + .HasColumnType("time"); + + b1.Property("StartTime") + .HasColumnType("time"); + + b1.Property("WorkshopIrregularShifts") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b1.HasKey("CustomizeWorkshopGroupSettingsid"); + + b1.ToTable("CustomizeWorkshopGroupSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.LateToWork", "LateToWork", b1 => + { + b1.Property("CustomizeWorkshopGroupSettingsid") + .HasColumnType("bigint"); + + b1.Property("LateToWorkType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("LateToWork_LateToWorkType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("LateToWork_Value"); + + b1.HasKey("CustomizeWorkshopGroupSettingsid"); + + b1.ToTable("CustomizeWorkshopGroupSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsid"); + + b1.OwnsMany("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.LateToWorkTimeFine", "LateToWorkTimeFines", b2 => + { + b2.Property("CustomizeWorkshopGroupSettingsId") + .HasColumnType("bigint"); + + b2.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b2.Property("Id")); + + b2.Property("FineMoney") + .HasColumnType("float") + .HasColumnName("LateToWorkTimeFines_FineMoney"); + + b2.Property("Minute") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)") + .HasColumnName("LateToWorkTimeFines_Minute"); + + b2.HasKey("CustomizeWorkshopGroupSettingsId", "Id"); + + b2.ToTable("CustomizeWorkshopGroupSettings_LateToWorkTimeFines"); + + b2.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsId"); + }); + + b1.Navigation("LateToWorkTimeFines"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.LeavePay", "LeavePay", b1 => + { + b1.Property("CustomizeWorkshopGroupSettingsid") + .HasColumnType("bigint"); + + b1.Property("LeavePayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("LeavePay_LeavePayType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("LeavePay_Value"); + + b1.HasKey("CustomizeWorkshopGroupSettingsid"); + + b1.ToTable("CustomizeWorkshopGroupSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.MarriedAllowance", "MarriedAllowance", b1 => + { + b1.Property("CustomizeWorkshopGroupSettingsid") + .HasColumnType("bigint"); + + b1.Property("MarriedAllowanceType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("MarriedAllowance_MarriedAllowanceType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("MarriedAllowance_Value"); + + b1.HasKey("CustomizeWorkshopGroupSettingsid"); + + b1.ToTable("CustomizeWorkshopGroupSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.NightWorkPay", "NightWorkPay", b1 => + { + b1.Property("CustomizeWorkshopGroupSettingsid") + .HasColumnType("bigint"); + + b1.Property("NightWorkingType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("NightWorkPay_NightWorkingType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("NightWorkPay_Value"); + + b1.HasKey("CustomizeWorkshopGroupSettingsid"); + + b1.ToTable("CustomizeWorkshopGroupSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.OverTimePay", "OverTimePay", b1 => + { + b1.Property("CustomizeWorkshopGroupSettingsid") + .HasColumnType("bigint"); + + b1.Property("OverTimePayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("OverTimePay_OverTimePayType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("OverTimePay_Value"); + + b1.HasKey("CustomizeWorkshopGroupSettingsid"); + + b1.ToTable("CustomizeWorkshopGroupSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.ShiftPay", "ShiftPay", b1 => + { + b1.Property("CustomizeWorkshopGroupSettingsid") + .HasColumnType("bigint"); + + b1.Property("ShiftPayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("ShiftPay_ShiftPayType"); + + b1.Property("ShiftType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("ShiftPay_ShiftType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("ShiftPay_Value"); + + b1.HasKey("CustomizeWorkshopGroupSettingsid"); + + b1.ToTable("CustomizeWorkshopGroupSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsid"); + }); + + b.OwnsMany("_0_Framework.Domain.CustomizeCheckoutShared.Base.WeeklyOffDay", "WeeklyOffDays", b1 => + { + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("DayOfWeek") + .IsRequired() + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b1.Property("ParentId") + .HasColumnType("bigint"); + + b1.HasKey("Id"); + + b1.HasIndex("ParentId"); + + b1.ToTable("CustomizeWorkshopGroupSettings_WeeklyOffDays"); + + b1.WithOwner() + .HasForeignKey("ParentId"); + }); + + b.Navigation("BaseYearsPay"); + + b.Navigation("BonusesPay"); + + b.Navigation("BreakTime"); + + b.Navigation("CustomizeRotatingShifts"); + + b.Navigation("CustomizeWorkshopGroupSettingsShifts"); + + b.Navigation("CustomizeWorkshopSettings"); + + b.Navigation("EarlyExit"); + + b.Navigation("FamilyAllowance"); + + b.Navigation("FineAbsenceDeduction"); + + b.Navigation("FridayPay"); + + b.Navigation("InsuranceDeduction"); + + b.Navigation("IrregularShift"); + + b.Navigation("LateToWork"); + + b.Navigation("LeavePay"); + + b.Navigation("MarriedAllowance"); + + b.Navigation("NightWorkPay"); + + b.Navigation("OverTimePay"); + + b.Navigation("ShiftPay"); + + b.Navigation("WeeklyOffDays"); + }); + + modelBuilder.Entity("Company.Domain.CustomizeWorkshopSettingsAgg.Entities.CustomizeWorkshopSettings", b => + { + b.HasOne("Company.Domain.WorkshopAgg.Workshop", "Workshop") + .WithOne("CustomizeWorkshopSettings") + .HasForeignKey("Company.Domain.CustomizeWorkshopSettingsAgg.Entities.CustomizeWorkshopSettings", "WorkshopId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.OwnsMany("Company.Domain.CustomizeWorkshopSettingsAgg.Entities.CustomizeWorkshopSettingsShift", "CustomizeWorkshopSettingsShifts", b1 => + { + b1.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("id")); + + b1.Property("CreationDate") + .HasColumnType("datetime2"); + + b1.Property("CustomizeWorkshopSettingsId") + .HasColumnType("bigint"); + + b1.Property("EndTime") + .HasColumnType("time"); + + b1.Property("Placement") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b1.Property("StartTime") + .HasColumnType("time"); + + b1.HasKey("id"); + + b1.HasIndex("CustomizeWorkshopSettingsId"); + + b1.ToTable("CustomizeWorkshopSettingsShifts", (string)null); + + b1.WithOwner("CustomizeWorkshopSettings") + .HasForeignKey("CustomizeWorkshopSettingsId"); + + b1.Navigation("CustomizeWorkshopSettings"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.BaseYearsPay", "BaseYearsPay", b1 => + { + b1.Property("CustomizeWorkshopSettingsid") + .HasColumnType("bigint"); + + b1.Property("BaseYearsPayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("BaseYearsPay_BaseYearsPayType"); + + b1.Property("PaymentType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("BaseYearsPay_PaymentType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("BaseYearsPay_Value"); + + b1.HasKey("CustomizeWorkshopSettingsid"); + + b1.ToTable("CustomizeWorkshopSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.BonusesPay", "BonusesPay", b1 => + { + b1.Property("CustomizeWorkshopSettingsid") + .HasColumnType("bigint"); + + b1.Property("BonusesPayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("BonusesPay_BonusesPayType"); + + b1.Property("PaymentType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("BonusesPay_PaymentType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("BonusesPay_Value"); + + b1.HasKey("CustomizeWorkshopSettingsid"); + + b1.ToTable("CustomizeWorkshopSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.EarlyExit", "EarlyExit", b1 => + { + b1.Property("CustomizeWorkshopSettingsid") + .HasColumnType("bigint"); + + b1.Property("EarlyExitType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("EarlyExit_EarlyExitType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("EarlyExitTimeFines_Value"); + + b1.HasKey("CustomizeWorkshopSettingsid"); + + b1.ToTable("CustomizeWorkshopSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopSettingsid"); + + b1.OwnsMany("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.EarlyExitTimeFine", "EarlyExitTimeFines", b2 => + { + b2.Property("CustomizeWorkshopSettingsId") + .HasColumnType("bigint"); + + b2.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b2.Property("Id")); + + b2.Property("FineMoney") + .HasColumnType("float") + .HasColumnName("EarlyExitTimeFines_FineMoney"); + + b2.Property("Minute") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)") + .HasColumnName("EarlyExitTimeFines_Minute"); + + b2.HasKey("CustomizeWorkshopSettingsId", "Id"); + + b2.ToTable("CustomizeWorkshopSettings_EarlyExitTimeFines"); + + b2.WithOwner() + .HasForeignKey("CustomizeWorkshopSettingsId"); + }); + + b1.Navigation("EarlyExitTimeFines"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FamilyAllowance", "FamilyAllowance", b1 => + { + b1.Property("CustomizeWorkshopSettingsid") + .HasColumnType("bigint"); + + b1.Property("FamilyAllowanceType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("FamilyAllowance_FamilyAllowanceType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("FamilyAllowance_Value"); + + b1.HasKey("CustomizeWorkshopSettingsid"); + + b1.ToTable("CustomizeWorkshopSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FineAbsenceDeduction", "FineAbsenceDeduction", b1 => + { + b1.Property("CustomizeWorkshopSettingsid") + .HasColumnType("bigint"); + + b1.Property("FineAbsenceDeductionType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("FineAbsenceDeduction_FineAbsenceDeductionType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("FineAbsenceDeduction_Value"); + + b1.HasKey("CustomizeWorkshopSettingsid"); + + b1.ToTable("CustomizeWorkshopSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopSettingsid"); + + b1.OwnsMany("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FineAbsenceDayOfWeek", "FineAbsenceDayOfWeekCollection", b2 => + { + b2.Property("CustomizeWorkshopSettingsId") + .HasColumnType("bigint"); + + b2.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b2.Property("Id")); + + b2.Property("DayOfWeek") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("FineAbsenceDayOfWeekCollection_DayOfWeek"); + + b2.HasKey("CustomizeWorkshopSettingsId", "Id"); + + b2.ToTable("CustomizeWorkshopSettings_FineAbsenceDayOfWeekCollection"); + + b2.WithOwner() + .HasForeignKey("CustomizeWorkshopSettingsId"); + }); + + b1.Navigation("FineAbsenceDayOfWeekCollection"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FridayPay", "FridayPay", b1 => + { + b1.Property("CustomizeWorkshopSettingsid") + .HasColumnType("bigint"); + + b1.Property("FridayPayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("FridayPay_Value"); + + b1.HasKey("CustomizeWorkshopSettingsid"); + + b1.ToTable("CustomizeWorkshopSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.InsuranceDeduction", "InsuranceDeduction", b1 => + { + b1.Property("CustomizeWorkshopSettingsid") + .HasColumnType("bigint"); + + b1.Property("InsuranceDeductionType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("InsuranceDeduction_InsuranceDeductionType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("InsuranceDeduction_Value"); + + b1.HasKey("CustomizeWorkshopSettingsid"); + + b1.ToTable("CustomizeWorkshopSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.LateToWork", "LateToWork", b1 => + { + b1.Property("CustomizeWorkshopSettingsid") + .HasColumnType("bigint"); + + b1.Property("LateToWorkType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("LateToWork_LateToWorkType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("LateToWork_Value"); + + b1.HasKey("CustomizeWorkshopSettingsid"); + + b1.ToTable("CustomizeWorkshopSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopSettingsid"); + + b1.OwnsMany("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.LateToWorkTimeFine", "LateToWorkTimeFines", b2 => + { + b2.Property("CustomizeWorkshopSettingsId") + .HasColumnType("bigint"); + + b2.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b2.Property("Id")); + + b2.Property("FineMoney") + .HasColumnType("float") + .HasColumnName("LateToWorkTimeFines_FineMoney"); + + b2.Property("Minute") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)") + .HasColumnName("LateToWorkTimeFines_Minute"); + + b2.HasKey("CustomizeWorkshopSettingsId", "Id"); + + b2.ToTable("CustomizeWorkshopSettings_LateToWorkTimeFines"); + + b2.WithOwner() + .HasForeignKey("CustomizeWorkshopSettingsId"); + }); + + b1.Navigation("LateToWorkTimeFines"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.LeavePay", "LeavePay", b1 => + { + b1.Property("CustomizeWorkshopSettingsid") + .HasColumnType("bigint"); + + b1.Property("LeavePayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("LeavePay_LeavePayType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("LeavePay_Value"); + + b1.HasKey("CustomizeWorkshopSettingsid"); + + b1.ToTable("CustomizeWorkshopSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.MarriedAllowance", "MarriedAllowance", b1 => + { + b1.Property("CustomizeWorkshopSettingsid") + .HasColumnType("bigint"); + + b1.Property("MarriedAllowanceType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("MarriedAllowance_MarriedAllowanceType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("MarriedAllowance_Value"); + + b1.HasKey("CustomizeWorkshopSettingsid"); + + b1.ToTable("CustomizeWorkshopSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.NightWorkPay", "NightWorkPay", b1 => + { + b1.Property("CustomizeWorkshopSettingsid") + .HasColumnType("bigint"); + + b1.Property("NightWorkingType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("NightWorkPay_NightWorkingType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("NightWorkPay_Value"); + + b1.HasKey("CustomizeWorkshopSettingsid"); + + b1.ToTable("CustomizeWorkshopSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.OverTimePay", "OverTimePay", b1 => + { + b1.Property("CustomizeWorkshopSettingsid") + .HasColumnType("bigint"); + + b1.Property("OverTimePayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("OverTimePay_OverTimePayType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("OverTimePay_Value"); + + b1.HasKey("CustomizeWorkshopSettingsid"); + + b1.ToTable("CustomizeWorkshopSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.ShiftPay", "ShiftPay", b1 => + { + b1.Property("CustomizeWorkshopSettingsid") + .HasColumnType("bigint"); + + b1.Property("ShiftPayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("ShiftPay_ShiftPayType"); + + b1.Property("ShiftType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("ShiftPay_ShiftType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("ShiftPay_Value"); + + b1.HasKey("CustomizeWorkshopSettingsid"); + + b1.ToTable("CustomizeWorkshopSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopSettingsid"); + }); + + b.OwnsMany("_0_Framework.Domain.CustomizeCheckoutShared.Base.WeeklyOffDay", "WeeklyOffDays", b1 => + { + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("DayOfWeek") + .IsRequired() + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b1.Property("ParentId") + .HasColumnType("bigint"); + + b1.HasKey("Id"); + + b1.HasIndex("ParentId"); + + b1.ToTable("CustomizeWorkshopSettings_WeeklyOffDays"); + + b1.WithOwner() + .HasForeignKey("ParentId"); + }); + + b.Navigation("BaseYearsPay"); + + b.Navigation("BonusesPay"); + + b.Navigation("CustomizeWorkshopSettingsShifts"); + + b.Navigation("EarlyExit"); + + b.Navigation("FamilyAllowance"); + + b.Navigation("FineAbsenceDeduction"); + + b.Navigation("FridayPay"); + + b.Navigation("InsuranceDeduction"); + + b.Navigation("LateToWork"); + + b.Navigation("LeavePay"); + + b.Navigation("MarriedAllowance"); + + b.Navigation("NightWorkPay"); + + b.Navigation("OverTimePay"); + + b.Navigation("ShiftPay"); + + b.Navigation("WeeklyOffDays"); + + b.Navigation("Workshop"); + }); + + modelBuilder.Entity("Company.Domain.DateSalaryItemAgg.DateSalaryItem", b => + { + b.HasOne("Company.Domain.DateSalaryAgg.DateSalary", "DateSalary") + .WithMany("DateSalaryItemList") + .HasForeignKey("DateSalaryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.PercentageAgg.Percentage", "Percentage") + .WithMany("DateSalaryItemList") + .HasForeignKey("PercentageId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("DateSalary"); + + b.Navigation("Percentage"); + }); + + modelBuilder.Entity("Company.Domain.EmployeeAccountAgg.EmployeeAccount", b => + { + b.HasOne("Company.Domain.EmployeeAgg.Employee", "Employee") + .WithMany() + .HasForeignKey("EmployeeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Employee"); + }); + + modelBuilder.Entity("Company.Domain.EmployeeBankInformationAgg.EmployeeBankInformation", b => + { + b.HasOne("Company.Domain.BankAgg.Bank", "Bank") + .WithMany() + .HasForeignKey("BankId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.EmployeeAgg.Employee", "Employee") + .WithMany("EmployeeBankInformationList") + .HasForeignKey("EmployeeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Bank"); + + b.Navigation("Employee"); + }); + + modelBuilder.Entity("Company.Domain.EmployeeChildrenAgg.EmployeeChildren", b => + { + b.HasOne("Company.Domain.EmployeeAgg.Employee", "Employee") + .WithMany("EmployeeChildrenList") + .HasForeignKey("EmployeeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Employee"); + }); + + modelBuilder.Entity("Company.Domain.EmployeeDocumentItemAgg.EmployeeDocumentItem", b => + { + b.HasOne("Company.Domain.EmployeeDocumentsAgg.EmployeeDocuments", "EmployeeDocuments") + .WithMany("EmployeeDocumentItemCollection") + .HasForeignKey("EmployeeDocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.EmployeeDocumentsAdminSelectionAgg.EmployeeDocumentsAdminSelection", "EmployeeDocumentsAdminSelection") + .WithMany("SelectedEmployeeDocumentItems") + .HasForeignKey("EmployeeDocumentsAdminViewId"); + + b.OwnsMany("Company.Domain.EmployeeDocumentItemAgg.EmployeeDocumentItemLog", "ItemLogs", b1 => + { + b1.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("id")); + + b1.Property("AdminMessage") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b1.Property("CreationDate") + .HasColumnType("datetime2"); + + b1.Property("EmployeeDocumentItemId") + .HasColumnType("bigint"); + + b1.Property("OperationType") + .IsRequired() + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b1.Property("OperatorId") + .HasColumnType("bigint"); + + b1.Property("OperatorType") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b1.HasKey("id"); + + b1.HasIndex("EmployeeDocumentItemId"); + + b1.ToTable("EmployeeDocumentItemLogs", (string)null); + + b1.WithOwner("EmployeeDocumentItem") + .HasForeignKey("EmployeeDocumentItemId"); + + b1.Navigation("EmployeeDocumentItem"); + }); + + b.Navigation("EmployeeDocuments"); + + b.Navigation("EmployeeDocumentsAdminSelection"); + + b.Navigation("ItemLogs"); + }); + + modelBuilder.Entity("Company.Domain.EmployeeDocumentsAdminSelectionAgg.EmployeeDocumentsAdminSelection", b => + { + b.HasOne("Company.Domain.EmployeeAgg.Employee", "Employee") + .WithOne("EmployeeDocumentsAdminSelection") + .HasForeignKey("Company.Domain.EmployeeDocumentsAdminSelectionAgg.EmployeeDocumentsAdminSelection", "EmployeeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Employee"); + }); + + modelBuilder.Entity("Company.Domain.EmployeeDocumentsAgg.EmployeeDocuments", b => + { + b.HasOne("Company.Domain.EmployeeAgg.Employee", "Employee") + .WithMany("EmployeeDocuments") + .HasForeignKey("EmployeeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.WorkshopAgg.Workshop", "Workshop") + .WithMany() + .HasForeignKey("WorkshopId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Employee"); + + b.Navigation("Workshop"); + }); + + modelBuilder.Entity("Company.Domain.EmployeeInsuranceRecordAgg.EmployeeInsuranceRecord", b => + { + b.HasOne("Company.Domain.EmployeeAgg.Employee", "Employee") + .WithMany("EmployeeInsuranceRecords") + .HasForeignKey("EmployeeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.WorkshopAgg.Workshop", "Workshop") + .WithMany("EmployeeInsuranceRecords") + .HasForeignKey("WorkShopId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Employee"); + + b.Navigation("Workshop"); + }); + + modelBuilder.Entity("Company.Domain.EmployerAccountAgg.EmployerAccount", b => + { + b.HasOne("Company.Domain.empolyerAgg.Employer", "Employer") + .WithMany() + .HasForeignKey("EmployerId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Employer"); + }); + + modelBuilder.Entity("Company.Domain.Evidence.Evidence", b => + { + b.HasOne("Company.Domain.BoardType.BoardType", "BoardType") + .WithMany("EvidencesList") + .HasForeignKey("BoardType_Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.File1.File1", "File1") + .WithMany("EvidencesList") + .HasForeignKey("File_Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("BoardType"); + + b.Navigation("File1"); + }); + + modelBuilder.Entity("Company.Domain.EvidenceDetail.EvidenceDetail", b => + { + b.HasOne("Company.Domain.Evidence.Evidence", "Evidence") + .WithMany("EvidenceDetailsList") + .HasForeignKey("Evidence_Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Evidence"); + }); + + modelBuilder.Entity("Company.Domain.FileAlert.FileAlert", b => + { + b.HasOne("Company.Domain.FileState.FileState", "FileState") + .WithMany("FileAlertsList") + .HasForeignKey("FileState_Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.File1.File1", "File") + .WithMany("FileAlertsList") + .HasForeignKey("File_Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("File"); + + b.Navigation("FileState"); + }); + + modelBuilder.Entity("Company.Domain.FileAndFileEmployerAgg.FileAndFileEmployer", b => + { + b.HasOne("Company.Domain.FileEmployerAgg.FileEmployer", "FileEmployer") + .WithMany("FileAndFileEmployers") + .HasForeignKey("FileEmployerId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.File1.File1", "File1") + .WithMany("FileAndFileEmployers") + .HasForeignKey("FileId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("File1"); + + b.Navigation("FileEmployer"); + }); + + modelBuilder.Entity("Company.Domain.FileEmployeeAgg.FileEmployee", b => + { + b.HasOne("Company.Domain.RepresentativeAgg.Representative", "Representative") + .WithMany("FileEmployeeList") + .HasForeignKey("RepresentativeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Representative"); + }); + + modelBuilder.Entity("Company.Domain.FileEmployerAgg.FileEmployer", b => + { + b.HasOne("Company.Domain.RepresentativeAgg.Representative", "Representative") + .WithMany("FileEmployerList") + .HasForeignKey("RepresentativeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Representative"); + }); + + modelBuilder.Entity("Company.Domain.FileState.FileState", b => + { + b.HasOne("Company.Domain.FileTiming.FileTiming", "FileTiming") + .WithMany("FileStates") + .HasForeignKey("FileTiming_Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("FileTiming"); + }); + + modelBuilder.Entity("Company.Domain.FinancialTransactionAgg.FinancialTransaction", b => + { + b.HasOne("Company.Domain.FinancialStatmentAgg.FinancialStatment", "FinancialStatment") + .WithMany("FinancialTransactionList") + .HasForeignKey("FinancialStatementId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("FinancialStatment"); + }); + + modelBuilder.Entity("Company.Domain.GroupPlanAgg.GroupPlan", b => + { + b.HasOne("Company.Domain.WorkshopPlanAgg.WorkshopPlan", "WorkshopPlan") + .WithMany("GroupPlans") + .HasForeignKey("WorkshopPlanId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("WorkshopPlan"); + }); + + modelBuilder.Entity("Company.Domain.GroupPlanJobItemAgg.GroupPlanJobItem", b => + { + b.HasOne("Company.Domain.GroupPlanAgg.GroupPlan", "GroupPlan") + .WithMany("GroupPlanJobItems") + .HasForeignKey("GroupPlanId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("GroupPlan"); + }); + + modelBuilder.Entity("Company.Domain.HolidayItemAgg.HolidayItem", b => + { + b.HasOne("Company.Domain.HolidayAgg.Holiday", "Holidayss") + .WithMany("HolidayItems") + .HasForeignKey("HolidayId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Holidayss"); + }); + + modelBuilder.Entity("Company.Domain.InstitutionContractContactInfoAgg.InstitutionContractContactInfo", b => + { + b.HasOne("Company.Domain.InstitutionContractAgg.InstitutionContract", "InstitutionContracts") + .WithMany("ContactInfoList") + .HasForeignKey("InstitutionContractId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("InstitutionContracts"); + }); + + modelBuilder.Entity("Company.Domain.InsurancWorkshopInfoAgg.InsuranceWorkshopInfo", b => + { + b.HasOne("Company.Domain.WorkshopAgg.Workshop", "Workshop") + .WithOne("InsuranceWorkshopInfo") + .HasForeignKey("Company.Domain.InsurancWorkshopInfoAgg.InsuranceWorkshopInfo", "WorkshopId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Workshop"); + }); + + modelBuilder.Entity("Company.Domain.InsuranceAgg.Insurance", b => + { + b.HasOne("Company.Domain.WorkshopAgg.Workshop", "Workshop") + .WithMany("Insurances") + .HasForeignKey("WorkShopId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Workshop"); + }); + + modelBuilder.Entity("Company.Domain.InsuranceEmployeeInfoAgg.InsuranceEmployeeInfo", b => + { + b.HasOne("Company.Domain.EmployeeAgg.Employee", "Employee") + .WithOne("InsuranceEmployeeInfo") + .HasForeignKey("Company.Domain.InsuranceEmployeeInfoAgg.InsuranceEmployeeInfo", "EmployeeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Employee"); + }); + + modelBuilder.Entity("Company.Domain.InsuranceJobAndJobsAgg.InsuranceJobAndJobs", b => + { + b.HasOne("Company.Domain.InsuranceJobItemAgg.InsuranceJobItem", "InsuranceJobItem") + .WithMany("InsuranceJobAndJobs") + .HasForeignKey("InsuranceJobItemId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.JobAgg.Job", "Jobs") + .WithMany("InsuranceJobAndJobs") + .HasForeignKey("JobId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("InsuranceJobItem"); + + b.Navigation("Jobs"); + }); + + modelBuilder.Entity("Company.Domain.InsuranceJobItemAgg.InsuranceJobItem", b => + { + b.HasOne("Company.Domain.InsurancJobAgg.InsuranceJob", "InsuranceJob") + .WithMany("InsuranceJobItemList") + .HasForeignKey("InsuranceJobId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("InsuranceJob"); + }); + + modelBuilder.Entity("Company.Domain.InsuranceWorkshopAgg.InsuranceListWorkshop", b => + { + b.HasOne("Company.Domain.InsuranceListAgg.InsuranceList", "InsuranceList") + .WithMany("InsuranceListWorkshops") + .HasForeignKey("InsurancListId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.WorkshopAgg.Workshop", "Workshop") + .WithMany("InsuranceListWorkshops") + .HasForeignKey("WorkshopId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("InsuranceList"); + + b.Navigation("Workshop"); + }); + + modelBuilder.Entity("Company.Domain.LeftWorkAgg.LeftWork", b => + { + b.HasOne("Company.Domain.EmployeeAgg.Employee", "Employee") + .WithMany("LeftWorks") + .HasForeignKey("EmployeeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.WorkshopAgg.Workshop", "Workshop") + .WithMany("LeftWorks") + .HasForeignKey("WorkshopId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Employee"); + + b.Navigation("Workshop"); + }); + + modelBuilder.Entity("Company.Domain.LeftWorkInsuranceAgg.LeftWorkInsurance", b => + { + b.HasOne("Company.Domain.EmployeeAgg.Employee", "Employee") + .WithMany("LeftWorkInsurances") + .HasForeignKey("EmployeeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.WorkshopAgg.Workshop", "Workshop") + .WithMany("LeftWorkInsurances") + .HasForeignKey("WorkshopId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Employee"); + + b.Navigation("Workshop"); + }); + + modelBuilder.Entity("Company.Domain.LoanAgg.Entities.Loan", b => + { + b.OwnsMany("Company.Domain.LoanAgg.Entities.LoanInstallment", "LoanInstallments", b1 => + { + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("AmountForMonth") + .HasColumnType("float"); + + b1.Property("InstallmentDate") + .HasColumnType("datetime2"); + + b1.Property("IsActive") + .IsRequired() + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b1.Property("LoanId") + .HasColumnType("bigint"); + + b1.Property("Month") + .HasMaxLength(2) + .HasColumnType("nvarchar(2)"); + + b1.Property("Year") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)"); + + b1.HasKey("Id"); + + b1.HasIndex("LoanId"); + + b1.ToTable("LoanInstallment"); + + b1.WithOwner() + .HasForeignKey("LoanId"); + }); + + b.Navigation("LoanInstallments"); + }); + + modelBuilder.Entity("Company.Domain.MasterPenaltyTitle.MasterPenaltyTitle", b => + { + b.HasOne("Company.Domain.MasterPetition.MasterPetition", "MasterPetition") + .WithMany("MasterPenaltyTitlesList") + .HasForeignKey("MasterPetition_Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("MasterPetition"); + }); + + modelBuilder.Entity("Company.Domain.MasterPetition.MasterPetition", b => + { + b.HasOne("Company.Domain.BoardType.BoardType", "BoardType") + .WithMany("MasterPetitionsList") + .HasForeignKey("BoardType_Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.File1.File1", "File1") + .WithMany("MasterPetitionsList") + .HasForeignKey("File_Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("BoardType"); + + b.Navigation("File1"); + }); + + modelBuilder.Entity("Company.Domain.MasterWorkHistory.MasterWorkHistory", b => + { + b.HasOne("Company.Domain.MasterPetition.MasterPetition", "MasterPetition") + .WithMany("MasterWorkHistoriesList") + .HasForeignKey("MasterPetition_Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("MasterPetition"); + }); + + modelBuilder.Entity("Company.Domain.ModuleTextManagerAgg.EntityModuleTextManager", b => + { + b.HasOne("Company.Domain.ModuleAgg.EntityModule", "Module") + .WithMany("EntityModuleTextManagers") + .HasForeignKey("ModuleId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.TextManagerAgg.EntityTextManager", "TextManager") + .WithMany("EntityModuleTextManagers") + .HasForeignKey("TextManagerId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Module"); + + b.Navigation("TextManager"); + }); + + modelBuilder.Entity("Company.Domain.PaymentToEmployeeItemAgg.PaymentToEmployeeItem", b => + { + b.HasOne("Company.Domain.PaymentToEmployeeAgg.PaymentToEmployee", "PaymentToEmployee") + .WithMany("PaymentToEmployeeItemList") + .HasForeignKey("PaymentToEmployeeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("PaymentToEmployee"); + }); + + modelBuilder.Entity("Company.Domain.PenaltyTitle.PenaltyTitle", b => + { + b.HasOne("Company.Domain.Petition.Petition", "Petition") + .WithMany("PenaltyTitlesList") + .HasForeignKey("Petition_Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Petition"); + }); + + modelBuilder.Entity("Company.Domain.PersonnelCodeAgg.PersonnelCodeDomain", b => + { + b.HasOne("Company.Domain.EmployeeAgg.Employee", "Employee") + .WithMany("PersonnelCodeList") + .HasForeignKey("EmployeeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.WorkshopAgg.Workshop", "Workshop") + .WithMany("PersonnelCodeList") + .HasForeignKey("WorkshopId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Employee"); + + b.Navigation("Workshop"); + }); + + modelBuilder.Entity("Company.Domain.Petition.Petition", b => + { + b.HasOne("Company.Domain.BoardType.BoardType", "BoardType") + .WithMany("PetitionsList") + .HasForeignKey("BoardType_Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.File1.File1", "File1") + .WithMany("PetitionsList") + .HasForeignKey("File_Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("BoardType"); + + b.Navigation("File1"); + }); + + modelBuilder.Entity("Company.Domain.ProceedingSession.ProceedingSession", b => + { + b.HasOne("Company.Domain.Board.Board", "Board") + .WithMany("ProceedingSessionsList") + .HasForeignKey("Board_Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Board"); + }); + + modelBuilder.Entity("Company.Domain.RollCallEmployeeStatusAgg.RollCallEmployeeStatus", b => + { + b.HasOne("Company.Domain.RollCallEmployeeAgg.RollCallEmployee", "RollCallEmployee") + .WithMany("EmployeesStatus") + .HasForeignKey("RollCallEmployeeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("RollCallEmployee"); + }); + + modelBuilder.Entity("Company.Domain.RollCallServiceAgg.RollCallService", b => + { + b.HasOne("Company.Domain.WorkshopAgg.Workshop", "Workshop") + .WithMany("RollCallServicesList") + .HasForeignKey("WorkshopId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Workshop"); + }); + + modelBuilder.Entity("Company.Domain.SubtitleAgg.EntitySubtitle", b => + { + b.HasOne("Company.Domain.SubtitleAgg.EntitySubtitle", null) + .WithMany("Subtitles") + .HasForeignKey("EntitySubtitleid"); + + b.HasOne("Company.Domain.OriginalTitleAgg.EntityOriginalTitle", "EntityOriginalTitle") + .WithMany("Subtitles") + .HasForeignKey("OriginalTitle_Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("EntityOriginalTitle"); + }); + + modelBuilder.Entity("Company.Domain.TaxLeftWorkCategoryAgg.TaxLeftWorkCategory", b => + { + b.HasOne("Company.Domain.WorkshopAgg.Workshop", "Workshop") + .WithMany("TaxLeftWorkCategoryList") + .HasForeignKey("WorkshopId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Workshop"); + }); + + modelBuilder.Entity("Company.Domain.TaxLeftWorkItemAgg.TaxLeftWorkItem", b => + { + b.HasOne("Company.Domain.TaxLeftWorkCategoryAgg.TaxLeftWorkCategory", "TaxLeftWorkCategory") + .WithMany("TaxLeftWorkItemList") + .HasForeignKey("TaxLeftWorkCategoryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("TaxLeftWorkCategory"); + }); + + modelBuilder.Entity("Company.Domain.TemporaryClientRegistrationAgg.WorkshopServicesTemp", b => + { + b.HasOne("Company.Domain.TemporaryClientRegistrationAgg.WorkshopTemp", "WorkshopTemp") + .WithMany("WorkshopServicesTemps") + .HasForeignKey("WorkshopTempId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("WorkshopTemp"); + }); + + modelBuilder.Entity("Company.Domain.WorkHistory.WorkHistory", b => + { + b.HasOne("Company.Domain.Petition.Petition", "Petition") + .WithMany("WorkHistoriesList") + .HasForeignKey("Petition_Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Petition"); + }); + + modelBuilder.Entity("Company.Domain.WorkingHoursAgg.WorkingHours", b => + { + b.HasOne("Company.Domain.ContractAgg.Contract", "Contracts") + .WithMany("WorkingHoursList") + .HasForeignKey("ContractId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Contracts"); + }); + + modelBuilder.Entity("Company.Domain.WorkingHoursItemsAgg.WorkingHoursItems", b => + { + b.HasOne("Company.Domain.WorkingHoursAgg.WorkingHours", "WorkingHourses") + .WithMany("WorkingHoursItemsList") + .HasForeignKey("WorkingHoursId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("WorkingHourses"); + }); + + modelBuilder.Entity("Company.Domain.WorkingHoursTempItemAgg.WorkingHoursTempItem", b => + { + b.HasOne("Company.Domain.WorkingHoursTempAgg.WorkingHoursTemp", "WorkingHoursTemp") + .WithMany("WorkingHoursTempItemList") + .HasForeignKey("WorkingHoursTempId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("WorkingHoursTemp"); + }); + + modelBuilder.Entity("Company.Domain.WorkshopAccountAgg.WorkshopAccount", b => + { + b.HasOne("Company.Domain.WorkshopAgg.Workshop", "Workshop") + .WithMany() + .HasForeignKey("WorkshopId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Workshop"); + }); + + modelBuilder.Entity("Company.Domain.WorkshopEmployerAgg.WorkshopEmployer", b => + { + b.HasOne("Company.Domain.empolyerAgg.Employer", "Employer") + .WithMany("WorkshopEmployers") + .HasForeignKey("EmployerId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.WorkshopAgg.Workshop", "Workshop") + .WithMany("WorkshopEmployers") + .HasForeignKey("WorkshopId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Employer"); + + b.Navigation("Workshop"); + }); + + modelBuilder.Entity("Company.Domain.WorkshopPlanEmployeeAgg.WorkshopPlanEmployee", b => + { + b.HasOne("Company.Domain.WorkshopPlanAgg.WorkshopPlan", "WorkshopPlan") + .WithMany("WorkshopPlanEmployees") + .HasForeignKey("WorkshopPlanId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("WorkshopPlan"); + }); + + modelBuilder.Entity("Company.Domain.WorkshopSubAccountAgg.WorkshopSubAccount", b => + { + b.HasOne("Company.Domain.WorkshopAgg.Workshop", "Workshop") + .WithMany("WorkshopSubAccounts") + .HasForeignKey("WorkshopId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Workshop"); + }); + + modelBuilder.Entity("Company.Domain.YearlySalaryItemsAgg.YearlySalaryItem", b => + { + b.HasOne("Company.Domain.YearlySalaryAgg.YearlySalary", "YearlySalary") + .WithMany("YearlySalaryItemsList") + .HasForeignKey("YearlySalaryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("YearlySalary"); + }); + + modelBuilder.Entity("Company.Domain.empolyerAgg.Employer", b => + { + b.HasOne("Company.Domain.ContarctingPartyAgg.PersonalContractingParty", "ContractingParty") + .WithMany("Employers") + .HasForeignKey("ContractingPartyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ContractingParty"); + }); + + modelBuilder.Entity("EmployerWorkshop", b => + { + b.HasOne("Company.Domain.empolyerAgg.Employer", null) + .WithMany() + .HasForeignKey("EmployersListid") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.WorkshopAgg.Workshop", null) + .WithMany() + .HasForeignKey("WorkshopsListid") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Company.Domain.Board.Board", b => + { + b.Navigation("ProceedingSessionsList"); + }); + + modelBuilder.Entity("Company.Domain.BoardType.BoardType", b => + { + b.Navigation("BoardsList"); + + b.Navigation("EvidencesList"); + + b.Navigation("MasterPetitionsList"); + + b.Navigation("PetitionsList"); + }); + + modelBuilder.Entity("Company.Domain.ContarctingPartyAgg.PersonalContractingParty", b => + { + b.Navigation("Employers"); + }); + + modelBuilder.Entity("Company.Domain.ContractAgg.Contract", b => + { + b.Navigation("WorkingHoursList"); + }); + + modelBuilder.Entity("Company.Domain.CrossJobAgg.CrossJob", b => + { + b.Navigation("CrossJobItemsList"); + }); + + modelBuilder.Entity("Company.Domain.CrossJobGuildAgg.CrossJobGuild", b => + { + b.Navigation("CrossJobList"); + }); + + modelBuilder.Entity("Company.Domain.CustomizeWorkshopGroupSettingsAgg.Entities.CustomizeWorkshopGroupSettings", b => + { + b.Navigation("CustomizeWorkshopEmployeeSettingsCollection"); + }); + + modelBuilder.Entity("Company.Domain.CustomizeWorkshopSettingsAgg.Entities.CustomizeWorkshopSettings", b => + { + b.Navigation("CustomizeWorkshopGroupSettingsCollection"); + }); + + modelBuilder.Entity("Company.Domain.DateSalaryAgg.DateSalary", b => + { + b.Navigation("DateSalaryItemList"); + }); + + modelBuilder.Entity("Company.Domain.EmployeeAgg.Employee", b => + { + b.Navigation("ClientEmployeeWorkshopList"); + + b.Navigation("Contracts"); + + b.Navigation("CustomizeCheckouts"); + + b.Navigation("EmployeeBankInformationList"); + + b.Navigation("EmployeeChildrenList"); + + b.Navigation("EmployeeDocuments"); + + b.Navigation("EmployeeDocumentsAdminSelection"); + + b.Navigation("EmployeeInsuranceRecords"); + + b.Navigation("InsuranceEmployeeInfo"); + + b.Navigation("LeftWorkInsurances"); + + b.Navigation("LeftWorks"); + + b.Navigation("PersonnelCodeList"); + }); + + modelBuilder.Entity("Company.Domain.EmployeeDocumentsAdminSelectionAgg.EmployeeDocumentsAdminSelection", b => + { + b.Navigation("SelectedEmployeeDocumentItems"); + }); + + modelBuilder.Entity("Company.Domain.EmployeeDocumentsAgg.EmployeeDocuments", b => + { + b.Navigation("EmployeeDocumentItemCollection"); + }); + + modelBuilder.Entity("Company.Domain.Evidence.Evidence", b => + { + b.Navigation("EvidenceDetailsList"); + }); + + modelBuilder.Entity("Company.Domain.File1.File1", b => + { + b.Navigation("BoardsList"); + + b.Navigation("EvidencesList"); + + b.Navigation("FileAlertsList"); + + b.Navigation("FileAndFileEmployers"); + + b.Navigation("MasterPetitionsList"); + + b.Navigation("PetitionsList"); + }); + + modelBuilder.Entity("Company.Domain.FileEmployerAgg.FileEmployer", b => + { + b.Navigation("FileAndFileEmployers"); + }); + + modelBuilder.Entity("Company.Domain.FileState.FileState", b => + { + b.Navigation("FileAlertsList"); + }); + + modelBuilder.Entity("Company.Domain.FileTiming.FileTiming", b => + { + b.Navigation("FileStates"); + }); + + modelBuilder.Entity("Company.Domain.FinancialStatmentAgg.FinancialStatment", b => + { + b.Navigation("FinancialTransactionList"); + }); + + modelBuilder.Entity("Company.Domain.GroupPlanAgg.GroupPlan", b => + { + b.Navigation("GroupPlanJobItems"); + }); + + modelBuilder.Entity("Company.Domain.HolidayAgg.Holiday", b => + { + b.Navigation("HolidayItems"); + }); + + modelBuilder.Entity("Company.Domain.InstitutionContractAgg.InstitutionContract", b => + { + b.Navigation("ContactInfoList"); + }); + + modelBuilder.Entity("Company.Domain.InsurancJobAgg.InsuranceJob", b => + { + b.Navigation("InsuranceJobItemList"); + }); + + modelBuilder.Entity("Company.Domain.InsuranceJobItemAgg.InsuranceJobItem", b => + { + b.Navigation("InsuranceJobAndJobs"); + }); + + modelBuilder.Entity("Company.Domain.InsuranceListAgg.InsuranceList", b => + { + b.Navigation("InsuranceListWorkshops"); + }); + + modelBuilder.Entity("Company.Domain.JobAgg.Job", b => + { + b.Navigation("ContractsList"); + + b.Navigation("CrossJobItemsList"); + + b.Navigation("InsuranceJobAndJobs"); + }); + + modelBuilder.Entity("Company.Domain.MandatoryHoursAgg.MandatoryHours", b => + { + b.Navigation("Contracts"); + }); + + modelBuilder.Entity("Company.Domain.MasterPetition.MasterPetition", b => + { + b.Navigation("MasterPenaltyTitlesList"); + + b.Navigation("MasterWorkHistoriesList"); + }); + + modelBuilder.Entity("Company.Domain.ModuleAgg.EntityModule", b => + { + b.Navigation("EntityModuleTextManagers"); + }); + + modelBuilder.Entity("Company.Domain.OriginalTitleAgg.EntityOriginalTitle", b => + { + b.Navigation("Subtitles"); + }); + + modelBuilder.Entity("Company.Domain.PaymentToEmployeeAgg.PaymentToEmployee", b => + { + b.Navigation("PaymentToEmployeeItemList"); + }); + + modelBuilder.Entity("Company.Domain.PercentageAgg.Percentage", b => + { + b.Navigation("DateSalaryItemList"); + }); + + modelBuilder.Entity("Company.Domain.Petition.Petition", b => + { + b.Navigation("PenaltyTitlesList"); + + b.Navigation("WorkHistoriesList"); + }); + + modelBuilder.Entity("Company.Domain.RepresentativeAgg.Representative", b => + { + b.Navigation("ContractingParties"); + + b.Navigation("FileEmployeeList"); + + b.Navigation("FileEmployerList"); + }); + + modelBuilder.Entity("Company.Domain.RollCallEmployeeAgg.RollCallEmployee", b => + { + b.Navigation("EmployeesStatus"); + }); + + modelBuilder.Entity("Company.Domain.SubtitleAgg.EntitySubtitle", b => + { + b.Navigation("Chapters"); + + b.Navigation("Subtitles"); + }); + + modelBuilder.Entity("Company.Domain.TaxLeftWorkCategoryAgg.TaxLeftWorkCategory", b => + { + b.Navigation("TaxLeftWorkItemList"); + }); + + modelBuilder.Entity("Company.Domain.TemporaryClientRegistrationAgg.WorkshopTemp", b => + { + b.Navigation("WorkshopServicesTemps"); + }); + + modelBuilder.Entity("Company.Domain.TextManagerAgg.EntityTextManager", b => + { + b.Navigation("EntityModuleTextManagers"); + }); + + modelBuilder.Entity("Company.Domain.WorkingHoursAgg.WorkingHours", b => + { + b.Navigation("WorkingHoursItemsList"); + }); + + modelBuilder.Entity("Company.Domain.WorkingHoursTempAgg.WorkingHoursTemp", b => + { + b.Navigation("WorkingHoursTempItemList"); + }); + + modelBuilder.Entity("Company.Domain.WorkshopAgg.Workshop", b => + { + b.Navigation("Checkouts"); + + b.Navigation("ClientEmployeeWorkshopList"); + + b.Navigation("Contracts2"); + + b.Navigation("CustomizeCheckouts"); + + b.Navigation("CustomizeWorkshopSettings"); + + b.Navigation("EmployeeInsuranceRecords"); + + b.Navigation("InsuranceListWorkshops"); + + b.Navigation("InsuranceWorkshopInfo"); + + b.Navigation("Insurances"); + + b.Navigation("LeftWorkInsurances"); + + b.Navigation("LeftWorks"); + + b.Navigation("PersonnelCodeList"); + + b.Navigation("RollCallServicesList"); + + b.Navigation("TaxLeftWorkCategoryList"); + + b.Navigation("WorkshopEmployers"); + + b.Navigation("WorkshopSubAccounts"); + }); + + modelBuilder.Entity("Company.Domain.WorkshopPlanAgg.WorkshopPlan", b => + { + b.Navigation("GroupPlans"); + + b.Navigation("WorkshopPlanEmployees"); + }); + + modelBuilder.Entity("Company.Domain.YearlySalaryAgg.YearlySalary", b => + { + b.Navigation("Contracts"); + + b.Navigation("YearlySalaryItemsList"); + }); + + modelBuilder.Entity("Company.Domain.empolyerAgg.Employer", b => + { + b.Navigation("Contracts"); + + b.Navigation("WorkshopEmployers"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/CompanyManagment.EFCore/Migrations/20250709090803_init payment transaction.cs b/CompanyManagment.EFCore/Migrations/20250709090803_init payment transaction.cs new file mode 100644 index 00000000..41699e25 --- /dev/null +++ b/CompanyManagment.EFCore/Migrations/20250709090803_init payment transaction.cs @@ -0,0 +1,46 @@ +using System; +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace CompanyManagment.EFCore.Migrations +{ + /// + public partial class initpaymenttransaction : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.CreateTable( + name: "PaymentTransactions", + columns: table => new + { + id = table.Column(type: "bigint", nullable: false) + .Annotation("SqlServer:Identity", "1, 1"), + TransactionDate = table.Column(type: "datetime2", nullable: false), + ContractingPartyId = table.Column(type: "bigint", nullable: false), + ContractingPartyName = table.Column(type: "nvarchar(255)", maxLength: 255, nullable: true), + BankAccountHolderName = table.Column(type: "nvarchar(255)", maxLength: 255, nullable: true), + BankName = table.Column(type: "nvarchar(50)", maxLength: 50, nullable: true), + CardNumber = table.Column(type: "nvarchar(25)", maxLength: 25, nullable: true), + ShebaNumber = table.Column(type: "nvarchar(30)", maxLength: 30, nullable: true), + AccountNumber = table.Column(type: "nvarchar(25)", maxLength: 25, nullable: true), + Status = table.Column(type: "nvarchar(35)", maxLength: 35, nullable: false), + Amount = table.Column(type: "float", nullable: false), + TransactionId = table.Column(type: "nvarchar(60)", maxLength: 60, nullable: true), + CreationDate = table.Column(type: "datetime2", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_PaymentTransactions", x => x.id); + }); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropTable( + name: "PaymentTransactions"); + } + } +} diff --git a/CompanyManagment.EFCore/Migrations/CompanyContextModelSnapshot.cs b/CompanyManagment.EFCore/Migrations/CompanyContextModelSnapshot.cs index c0a96a1e..850f6f9c 100644 --- a/CompanyManagment.EFCore/Migrations/CompanyContextModelSnapshot.cs +++ b/CompanyManagment.EFCore/Migrations/CompanyContextModelSnapshot.cs @@ -560,6 +560,50 @@ namespace CompanyManagment.EFCore.Migrations b.ToTable("TextManager_Contact", (string)null); }); + modelBuilder.Entity("Company.Domain.ContactUsAgg.ContactUs", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Email") + .HasMaxLength(200) + .HasColumnType("nvarchar(200)"); + + b.Property("FirstName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("FullName") + .HasMaxLength(200) + .HasColumnType("nvarchar(200)"); + + b.Property("LastName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("Message") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("PhoneNumber") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("Title") + .HasMaxLength(200) + .HasColumnType("nvarchar(200)"); + + b.HasKey("id"); + + b.ToTable("ContactUs"); + }); + modelBuilder.Entity("Company.Domain.ContarctingPartyAgg.PersonalContractingParty", b => { b.Property("id") @@ -4295,6 +4339,64 @@ namespace CompanyManagment.EFCore.Migrations b.ToTable("PaymentToEmployeeItems", (string)null); }); + modelBuilder.Entity("Company.Domain.PaymentTransactionAgg.PaymentTransaction", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("AccountNumber") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("Amount") + .HasColumnType("float"); + + b.Property("BankAccountHolderName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("BankName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("CardNumber") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("ContractingPartyId") + .HasColumnType("bigint"); + + b.Property("ContractingPartyName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("ShebaNumber") + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("Status") + .IsRequired() + .HasMaxLength(35) + .HasColumnType("nvarchar(35)"); + + b.Property("TransactionDate") + .HasColumnType("datetime2"); + + b.Property("TransactionId") + .HasMaxLength(60) + .HasColumnType("nvarchar(60)"); + + b.HasKey("id"); + + b.ToTable("PaymentTransactions", (string)null); + }); + modelBuilder.Entity("Company.Domain.PenaltyTitle.PenaltyTitle", b => { b.Property("id") diff --git a/CompanyManagment.EFCore/Repository/ContactUsRepository.cs b/CompanyManagment.EFCore/Repository/ContactUsRepository.cs new file mode 100644 index 00000000..b49cf1ae --- /dev/null +++ b/CompanyManagment.EFCore/Repository/ContactUsRepository.cs @@ -0,0 +1,14 @@ +using _0_Framework.InfraStructure; +using Company.Domain.ContactUsAgg; +using Microsoft.EntityFrameworkCore; + +namespace CompanyManagment.EFCore.Repository; + +public class ContactUsRepository:RepositoryBase,IContactUsRepository +{ + private readonly CompanyContext _companyContext; + public ContactUsRepository(CompanyContext companyContext) : base(companyContext) + { + _companyContext = companyContext; + } +} \ No newline at end of file diff --git a/CompanyManagment.EFCore/Repository/EmployeeRepository .cs b/CompanyManagment.EFCore/Repository/EmployeeRepository .cs index 57a2c25c..91b75ed3 100644 --- a/CompanyManagment.EFCore/Repository/EmployeeRepository .cs +++ b/CompanyManagment.EFCore/Repository/EmployeeRepository .cs @@ -16,6 +16,8 @@ using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Configuration; using CompanyManagment.App.Contracts.Employee.DTO; using CompanyManagment.App.Contracts.LeftWorkTemp; +using _0_Framework.Application.Enums; +using _0_Framework.Exceptions; namespace CompanyManagment.EFCore.Repository; @@ -944,5 +946,108 @@ public class EmployeeRepository : RepositoryBase, IEmployeeRepos }).ToList(); } - #endregion + #endregion + + #region Api + + public async Task> GetSelectList(string searchText) + { + var query = _context.Employees.AsQueryable(); + + if (!string.IsNullOrWhiteSpace(searchText)) + { + query = query.Where(x => (x.FName + " " + x.LName).Contains(searchText)); + } + + return await query.Take(100).Select(x => new EmployeeSelectListViewModel() + { + Id = x.id, + EmployeeFullName = x.FName + " " + x.LName + }).ToListAsync(); + + } + + public async Task> GetList(GetEmployeeListSearchModel searchModel) + { + var query = _context.Employees.Include(x => x.LeftWorks).Include(x => x.LeftWorkInsurances).AsQueryable(); + + if (!string.IsNullOrWhiteSpace(searchModel.NationalCode)) + { + query = query.Where(x => x.NationalCode.Contains(searchModel.NationalCode)); + } + + if (searchModel.EmployeeId > 0) + { + query = query.Where(x => x.id == searchModel.EmployeeId); + } + + if (searchModel.WorkshopId > 0) + { + query = query.Where(x => x.LeftWorks.Any(l => l.WorkshopId == searchModel.WorkshopId) || x.LeftWorkInsurances.Any(l => l.WorkshopId == searchModel.WorkshopId)); + } + + + #region employer + + if (searchModel.EmployerId > 0) + { + + var workshopIdsByEmployer = _context.WorkshopEmployers.Where(x => x.EmployerId == searchModel.EmployerId) + .Include(x => x.Workshop).Select(x => x.Workshop.id).AsQueryable(); + + query = query.Where(x => + x.LeftWorks.Any(l => workshopIdsByEmployer.Contains(l.WorkshopId)) || + x.LeftWorkInsurances.Any(l => workshopIdsByEmployer.Contains(l.WorkshopId))); + + } + #endregion + + if (!string.IsNullOrEmpty(searchModel.InsuranceCode)) + { + query = query.Where(x => x.InsuranceCode.Contains(searchModel.InsuranceCode)); + } + + if (searchModel.EmployeeStatus != ActivationStatus.None) + { + var status = searchModel.EmployeeStatus switch + { + ActivationStatus.Active => true, + ActivationStatus.DeActive => false, + _ => throw new BadRequestException("پارامتر جستجو نامعتبر است") + }; + query = query.Where(x => x.IsActiveString == status.ToString() || x.IsActive == status); + } + + var list = await query.Skip(searchModel.PageIndex).Take(30).ToListAsync(); + + var employeeIds = list.Select(x => x.id); + + var children = await _context.EmployeeChildrenSet.Where(x => employeeIds.Contains(x.EmployeeId)).ToListAsync(); + + var result = list.Select(x => new GetEmployeeListViewModel() + { + BirthDate = x.DateOfBirth.ToFarsi(), + ChildrenCount = children.Count(c => c.EmployeeId == x.id).ToString(), + EmployeeFullName = x.FullName, + EmployeeStatus = x.IsActive switch + { + true => ActivationStatus.Active, + false => ActivationStatus.DeActive + }, + Gender = x.Gender switch + { + "مرد" => Gender.Male, + "زن" => Gender.Female, + _ => Gender.None + }, + Id = x.id, + InsuranceCode = x.InsuranceCode, + NationalCode = x.NationalCode + }).ToList(); + + return result; + + } + + #endregion } \ No newline at end of file diff --git a/CompanyManagment.EFCore/Repository/EmployerRepository.cs b/CompanyManagment.EFCore/Repository/EmployerRepository.cs index 1344248d..934c6e00 100644 --- a/CompanyManagment.EFCore/Repository/EmployerRepository.cs +++ b/CompanyManagment.EFCore/Repository/EmployerRepository.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using _0_Framework.Application; +using _0_Framework.Application.Enums; using _0_Framework.InfraStructure; using Company.Domain.EmployerAccountAgg; using Company.Domain.empolyerAgg; @@ -786,4 +787,213 @@ public class EmployerRepository : RepositoryBase, IEmployerRepos } #endregion + + #region Api + public async Task> GetEmployerList(GetEmployerSearchModel searchModel) + { + var query = _context.Employers.Include(x => x.ContractingParty).Include(x => x.WorkshopEmployers).ThenInclude(x => x.Workshop).AsQueryable(); + + if (!string.IsNullOrWhiteSpace(searchModel.FullNameOrCompanyName)) + query = query.Where(x => x.FullName.Contains(searchModel.FullNameOrCompanyName)); + + + if (!string.IsNullOrWhiteSpace(searchModel.NationalCodeOrNationalId)) + query = query.Where(x => x.Nationalcode.Contains(searchModel.NationalCodeOrNationalId) || x.NationalId.Contains(searchModel.NationalCodeOrNationalId)); + + if (!string.IsNullOrWhiteSpace(searchModel.IdNumberOrRegisterId)) + query = query.Where(x => x.IdNumber.Contains(searchModel.IdNumberOrRegisterId) || x.RegisterId.Contains(searchModel.IdNumberOrRegisterId)); + + + if (searchModel.EmployerType != LegalType.None) + { + var type = searchModel.EmployerType switch + { + LegalType.Legal => "true", + LegalType.Real => "false", + _ => "", + }; + + query = query.Where(x => x.IsLegal == type); + } + + if (searchModel.EmployerStatus != ActivationStatus.None) + { + var status = searchModel.EmployerStatus switch + { + ActivationStatus.Active => true, + ActivationStatus.DeActive => false, + _ => false + }; + query = query.Where(x => x.IsActive == status); + } + + if (!string.IsNullOrEmpty(searchModel.ContractingPartyName)) + { + query = query.Where(x => + x.ContractingParty.IsLegal == "true" + ? (x.ContractingParty.LName).Contains(searchModel.ContractingPartyName) + : (x.ContractingParty.FName + " " + x.ContractingParty.LName).Contains(searchModel + .ContractingPartyName)); + } + + var employerList = await query.Select(x => new GetEmployerListViewModel() + { + Id = x.id, + FullName = x.FullName, + HasContractingParty = x.ContractingPartyId == 30428 && x.WorkshopEmployers.Any(), + HasBlockContractingParty = x.ContractingParty.IsBlock == "true", + NationalCodeOrNationalId = x.IsLegal == "true" ? x.NationalId : x.Nationalcode, + WorkshopNames = x.WorkshopEmployers.Select(w => w.Workshop.WorkshopFullName).ToList(), + LegalType = x.IsLegal == "حقیقی" ? LegalType.Real : LegalType.Legal, + EmployerStatus = x.IsActive ? ActivationStatus.Active : ActivationStatus.DeActive, + + }).Skip(searchModel.PageIndex).Take(30).ToListAsync(); + return employerList; + } + + public async Task GetLegalEmployerDetail(long id) + { + var employer = await _context.Employers.Where(x => x.IsLegal == "حقوقی").Include(x => x.ContractingParty).Select(x => + new GetLegalEmployerDetailViewModel() + { + Id = x.id, + CompanyName = x.LName, + ContractingPartyName = x.ContractingParty.FName + " " + x.ContractingParty.LName, + DateOfBirth = x.DateOfBirth.ToFarsi(), + DateOfIssue = x.DateOfIssue.ToFarsi(), + CeoFullName = x.FName + " " + x.EmployerLName, + EmployerNo = x.EmployerNo, + FatherName = x.FatherName, + GenderStr = x.Gender, + Gender = string.IsNullOrWhiteSpace(x.Gender) ? Gender.None : + x.Gender == "مرد" ? + Gender.Male : + Gender.Female, + NationalCode = x.Nationalcode, + IdNumber = x.IdNumber, + NationalId = x.NationalId, + Nationality = x.Nationality, + PhoneNumber = x.Phone, + PlaceOfIssue = x.PlaceOfIssue, + RegisterId = x.RegisterId, + TelephoneNumber = x.AgentPhone, + CeoFName = x.FName, + CeoLName = x.EmployerLName, + GovernmentSystemInfo = new GovernmentSystemInfo + { + EServicePassword = x.EservicePassword, + EServiceUsername = x.EservicePassword, + MclPassword = x.MclsPassword, + MclUsername = x.MclsUserName, + SanaUsername = x.SanaUserName, + SanaPassword = x.SanaPassword, + TaxUsername = x.TaxOfficeUserName, + TaxPassword = x.TaxOfficepassword + }, + ContractingPartyId = x.ContractingPartyId + }).FirstOrDefaultAsync(x => x.Id == id); + + return employer; + } + + public async Task GetRealEmployerDetail(long id) + { + var employer = await _context.Employers.Where(x => x.IsLegal == "حقیقی").Include(x => x.ContractingParty).Select(x => + new GetRealEmployerDetailViewModel() + { + Id = x.id, + ContractingPartyName = x.ContractingParty.FName + " " + x.ContractingParty.LName, + DateOfBirth = x.DateOfBirth.ToFarsi(), + DateOfIssue = x.DateOfIssue.ToFarsi(), + EmployerNo = x.EmployerNo, + FatherName = x.FatherName, + GenderStr = x.Gender, + Gender = string.IsNullOrWhiteSpace(x.Gender) ? Gender.None : + x.Gender == "مرد" ? + Gender.Male : + Gender.Female, + NationalCode = x.Nationalcode, + IdNumber = x.IdNumber, + Nationality = x.Nationality, + PhoneNumber = x.Phone, + PlaceOfIssue = x.PlaceOfIssue, + TelephoneNumber = x.AgentPhone, + FullName = x.FullName, + FName = x.FName, + LName = x.LName, + GovernmentSystemInfo = new GovernmentSystemInfo + { + EServicePassword = x.EservicePassword, + EServiceUsername = x.EservicePassword, + MclPassword = x.MclsPassword, + MclUsername = x.MclsUserName, + SanaUsername = x.SanaUserName, + SanaPassword = x.SanaPassword, + TaxUsername = x.TaxOfficeUserName, + TaxPassword = x.TaxOfficepassword + }, + ContractingPartyId = x.ContractingPartyId + }).FirstOrDefaultAsync(x => x.Id == id); + + return employer; + } + + + public async Task> DeactivateWithSubordinates(long id) + { + var op = new OperationResult(); + ; + using (var transaction = await _context.Database.BeginTransactionAsync()) + { + try + { + var employer = await _context.Employers + .Include(x => x.Contracts) + .Include(x => x.WorkshopEmployers) + .ThenInclude(x => x.Workshop) + .ThenInclude(x => x.Checkouts).FirstOrDefaultAsync(x => x.id == id); + if (employer == null) + { + return op.Failed("چنین آیتمی وجود ندارد"); + } + + + var workshops = employer.WorkshopEmployers.Select(x => x.Workshop).ToList(); + + var contracts = employer.Contracts.ToList(); + + var checkouts = workshops.SelectMany(x => x.Checkouts).ToList(); + + + employer.DeActive(); + + foreach (var workshop in workshops) + { + workshop.DeActive(workshop.ArchiveCode); + } + + foreach (var contract in contracts) + { + contract.DeActive(); + } + + foreach (var checkout in checkouts) + { + checkout.DeActive(); + } + + await _context.SaveChangesAsync(); + + await transaction.CommitAsync(); + return op.Succcedded("DeActivate"); + } + catch (Exception) + { + await transaction.RollbackAsync(); + return op.Failed("غیرفعال کردن کارفرما با خطا مواجه شد"); + } + } + } + + #endregion } \ No newline at end of file diff --git a/CompanyManagment.EFCore/Repository/FinancialStatmentRepository.cs b/CompanyManagment.EFCore/Repository/FinancialStatmentRepository.cs index 2d61fe9f..daca3a74 100644 --- a/CompanyManagment.EFCore/Repository/FinancialStatmentRepository.cs +++ b/CompanyManagment.EFCore/Repository/FinancialStatmentRepository.cs @@ -1,12 +1,16 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using _0_Framework.Application; +using _0_Framework.Application; +using _0_Framework.Exceptions; using _0_Framework.InfraStructure; using Company.Domain.FinancialStatmentAgg; using CompanyManagment.App.Contracts.FinancialStatment; using CompanyManagment.App.Contracts.FinancilTransaction; using Microsoft.EntityFrameworkCore; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using AccountManagement.Application.Contracts.SubAccount; +using static Microsoft.EntityFrameworkCore.DbLoggerCategory; namespace CompanyManagment.EFCore.Repository; @@ -31,7 +35,7 @@ public class FinancialStatmentRepository : RepositoryBaset.TdateGr).ToList(), + }).OrderBy(t => t.TdateGr).ToList(), }; } @@ -63,4 +67,83 @@ public class FinancialStatmentRepository : RepositoryBase GetClientFinancialStatement(long accountId, + ClientFinancialStatementSearchModel searchModel) + { + var contractingPartyId = _context.ContractingPartyAccounts.Any(x => x.AccountId == accountId) ? + _context.ContractingPartyAccounts.FirstOrDefault(x => x.AccountId == accountId)!.PersonalContractingPartyId : 0; + + if (contractingPartyId == 0) + throw new BadRequestException("طرف حساب مورد نظر یافت نشد"); + + var resStatement = await _context.FinancialStatments.Include(x=>x.FinancialTransactionList) + .FirstOrDefaultAsync(x => x.ContractingPartyId == contractingPartyId); + + if (resStatement == null) + throw new BadRequestException("صورت حساب مالی شخص یافت نشد"); + + var resTransaction = resStatement.FinancialTransactionList.ToList(); + + #region Search + + //if (searchModel.FromAmount > 0 || searchModel.ToAmount > 0) + //{ + // if (searchModel.FromAmount > 0 && searchModel.ToAmount > 0) + // { + // resTransaction = resTransaction.Where(x => x.>= searchModel.FromAmount && x.Amount <= searchModel); + // } + // else if (searchModel.FromAmount > 0) + // { + // query = query.Where(x => x.Amount >= searchModel.FromAmount); + // } + // else if (searchModel.ToAmount > 0) + // { + // query = query.Where(x => x.Amount <= searchModel.ToAmount); + // } + //} + if (!string.IsNullOrWhiteSpace(searchModel.FromDate) && !string.IsNullOrWhiteSpace(searchModel.ToDate)) + { + if (searchModel.FromDate.TryToGeorgianDateTime(out var fromDate) == false) + throw new BadRequestException("تاریخ وارد شده نامعتبر است"); + + if (searchModel.ToDate.TryToGeorgianDateTime(out var toDate) == false) + throw new BadRequestException("تاریخ وارد شده نامعتبر است"); + + resTransaction = resTransaction.Where(x => x.TdateGr >= fromDate && x.TdateGr <= toDate).ToList(); + } + + if (searchModel.Type != null) + { + var type = searchModel.Type switch + { + FinancialTransactionType.Credit => "credit", + FinancialTransactionType.Debt => "debt" + }; + + resTransaction = resTransaction.Where(x => x.TypeOfTransaction == type).ToList(); + } + #endregion + + return new ClientFinancialStatementViewModel() + { + Id = resStatement.id, + TotalAmountPayable = resStatement.FinancialTransactionList.Sum(x=>x.Deptor) - resStatement.FinancialTransactionList.Sum(x=>x.Creditor), + TotalCredit = resTransaction.Sum(x=>x.Creditor), + TotalDebt = resTransaction.Sum(x=>x.Deptor), + Transactions = resTransaction.Select(t => new ClientFinancialTransactionViewModel() + { + DateTimeGr = t.TdateGr, + DateFa = t.TdateGr.ToFarsi(), + TimeFa = $"{t.TdateGr:HH:mm}", + Description = t.DescriptionOption + " " + t.Description, + Debtor = t.Deptor, + Creditor = t.Creditor, + Balance = t.Balance, + Type = t.TypeOfTransaction =="debt"? FinancialTransactionType.Debt :FinancialTransactionType.Credit, + TypeStr = t.TypeOfTransaction =="debt"? "ایجاد درآمد" : "دریافت درآمد" + }).OrderByDescending(t => t.DateTimeGr).ToList(), + }; + + } } \ No newline at end of file diff --git a/CompanyManagment.EFCore/Repository/InstitutionContractTempRepository.cs b/CompanyManagment.EFCore/Repository/InstitutionContractTempRepository.cs index 20cd267f..29cb8c30 100644 --- a/CompanyManagment.EFCore/Repository/InstitutionContractTempRepository.cs +++ b/CompanyManagment.EFCore/Repository/InstitutionContractTempRepository.cs @@ -1,4 +1,5 @@ -using System.Linq; +using System.Collections.Generic; +using System.Linq; using System.Threading.Tasks; using _0_Framework.InfraStructure; using Company.Domain.TemporaryClientRegistrationAgg; @@ -46,4 +47,20 @@ public class InstitutionContractTempRepository : RepositoryBase> GetAllCompletedRegistration() + { + return await _context.InstitutionContractTemps.Where(x => x.RegistrationStatus == "Completed") + .Join(_context.ContractingPartyTemps, + institutionContract => institutionContract.ContractingPartyTempId, + contractingParty => contractingParty.id, + (institutionContract, contractingParty) => new { institutionContract, contractingParty }).Select(x => + new RegistrationWorkflowMainList + { + ContractingPartyTempId = x.contractingParty.id, + ContractingPartyFullName = $"{x.contractingParty.FName} {x.contractingParty.LName}", + Phone = x.contractingParty.Phone + + }).ToListAsync(); + } } \ No newline at end of file diff --git a/CompanyManagment.EFCore/Repository/PaymentTransactionRepository.cs b/CompanyManagment.EFCore/Repository/PaymentTransactionRepository.cs new file mode 100644 index 00000000..2f8d2405 --- /dev/null +++ b/CompanyManagment.EFCore/Repository/PaymentTransactionRepository.cs @@ -0,0 +1,92 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using _0_Framework.Application; +using _0_Framework.InfraStructure; +using Company.Domain.PaymentTransactionAgg; +using CompanyManagment.App.Contracts.PaymentTransaction; +using Microsoft.EntityFrameworkCore; + +namespace CompanyManagment.EFCore.Repository; + +public class PaymentTransactionRepository:RepositoryBase,IPaymentTransactionRepository +{ + private readonly CompanyContext _companyContext; + public PaymentTransactionRepository(CompanyContext companyContext) : base(companyContext) + { + _companyContext = companyContext; + } + + public async Task> GetPaymentTransactionList(GetPaymentTransactionListSearchModel searchModel) + { + var query = _companyContext.PaymentTransactions.AsQueryable(); + + if (!string.IsNullOrWhiteSpace(searchModel.ContractingPartyOrAccountHolderName)) + { + query = query.Where(x=>searchModel.ContractingPartyOrAccountHolderName.Contains(x.ContractingPartyName)|| + searchModel.ContractingPartyOrAccountHolderName.Contains(x.BankAccountHolderName)); + } + + if (!string.IsNullOrWhiteSpace(searchModel.FromDate) && !string.IsNullOrWhiteSpace(searchModel.ToDate)) + { + searchModel.FromDate.TryToGeorgianDateTime(out var fromDateGr); + searchModel.ToDate.TryToGeorgianDateTime(out var toDateGr); + query = query.Where(x => x.TransactionDate >= fromDateGr && x.TransactionDate <= toDateGr); + } + + if (searchModel.FromAmount > 0 || searchModel.ToAmount > 0) + { + if (searchModel.FromAmount > 0 && searchModel.ToAmount > 0) + { + query = query.Where(x => x.Amount >= searchModel.FromAmount && x.Amount <= searchModel.ToAmount); + } + else if (searchModel.FromAmount > 0) + { + query = query.Where(x => x.Amount >= searchModel.FromAmount); + } + else if (searchModel.ToAmount > 0) + { + query = query.Where(x => x.Amount <= searchModel.ToAmount); + } + } + + if (searchModel.StatusEnum != null) + { + query = query.Where(x => x.Status == searchModel.StatusEnum); + } + + var paymentTransactionsData = await query + .AsNoTracking() + .Skip(searchModel.PageIndex) + .Take(30) + .ToListAsync(); + + var result = paymentTransactionsData + .Select(x => new GetPaymentTransactionListViewModel + { + Id = x.id, + ContractingPartyName = x.ContractingPartyName, + BankAccountHolderName = x.BankAccountHolderName, + BankName = x.BankName, + CardNumber = x.CardNumber, + ShebaNumber = x.ShebaNumber, + AccountNumber = x.AccountNumber, + Status = x.Status switch + { + PaymentTransactionStatus.Failed => "ناموفق", + PaymentTransactionStatus.Success => "موفق", + _ => "نامشخص" + }, + StatusEnum = x.Status, + Amount = x.Amount, + TransactionId = x.TransactionId, + PaymentDate = x.TransactionDate.ToFarsi(), + PaymentTime = $"{x.TransactionDate:HH:mm}" + }) + .ToList(); + + return result; + + } +} \ No newline at end of file diff --git a/CompanyManagment.EFCore/Repository/PersonalContractingPartyRepository.cs b/CompanyManagment.EFCore/Repository/PersonalContractingPartyRepository.cs index 8dac98a2..abf99bab 100644 --- a/CompanyManagment.EFCore/Repository/PersonalContractingPartyRepository.cs +++ b/CompanyManagment.EFCore/Repository/PersonalContractingPartyRepository.cs @@ -1,7 +1,10 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Threading.Tasks; using _0_Framework.Application; +using _0_Framework.Application.Enums; +using _0_Framework.Exceptions; using _0_Framework.InfraStructure; using AccountManagement.Application.Contracts.Account; using AccountMangement.Infrastructure.EFCore; @@ -230,8 +233,10 @@ public class PersonalContractingPartyRepository : RepositoryBase SearchByName(string name) + + + #region Mahan + public List SearchByName(string name) { var contractingParties = _context.PersonalContractingParties.Select(x => new PersonalContractingPartyViewModel() { @@ -478,6 +483,248 @@ public class PersonalContractingPartyRepository : RepositoryBase> GetList(ContractingPartyGetListSearchModel searchModel) + { + var personalContractingPartiesQuery = _context.PersonalContractingParties + .Include(x => x.Representative) + .Include(x => x.Employers).AsQueryable(); + + + + if (!string.IsNullOrWhiteSpace(searchModel.NationalIdOrNationalCode)) + personalContractingPartiesQuery = personalContractingPartiesQuery + .Where(x => x.Nationalcode.Contains(searchModel.NationalIdOrNationalCode) || + x.NationalId.Contains(searchModel.NationalIdOrNationalCode)); + + + if (searchModel.ContractingPartyType != LegalType.None) + + { + string type = searchModel.ContractingPartyType switch + { + LegalType.Legal => "حقوقی", + LegalType.Real => "حقیقی", + _ => "" + }; + + personalContractingPartiesQuery = personalContractingPartiesQuery + .Where(x => x.IsLegal == type); + + } + + + if (searchModel.ContractingPartyStatus != ActivationStatus.None) + { + string status = searchModel.ContractingPartyStatus switch + { + ActivationStatus.Active => "true", + ActivationStatus.DeActive => "false", + _ => "" + }; + personalContractingPartiesQuery = personalContractingPartiesQuery + .Where(x => x.IsActiveString == status); + } + + + if (!string.IsNullOrWhiteSpace(searchModel.RepresentativeName)) + { + personalContractingPartiesQuery = personalContractingPartiesQuery + .Where(x => x.Representative.FullName.Contains(searchModel.RepresentativeName)); + } + + if (!string.IsNullOrWhiteSpace(searchModel.FullNameOrCompanyName)) + { + personalContractingPartiesQuery = personalContractingPartiesQuery.Where(x => + (x.FName + " " + x.LName).Contains(searchModel.FullNameOrCompanyName)); + } + var joinedQuery = personalContractingPartiesQuery + .GroupJoin(_context.InstitutionContractSet.Where(x => personalContractingPartiesQuery.Any(p => p.id == x.ContractingPartyId)), + contractingParty => contractingParty.id, + institution => institution.ContractingPartyId, + (contractingParty, institution) => new + { + contractingParty, + institution + }); + + var result = await joinedQuery.Skip(searchModel.PageIndex) + .Take(30).Select(x => new ContractingPartyGetListViewModel() + { + ArchiveCode = x.contractingParty.ArchiveCode, + BlockTimes = x.contractingParty.BlockTimes, + + ContractingPartyName = x.contractingParty.IsLegal == "حقیقی" ? + x.contractingParty.SureName == null ? $"{x.contractingParty.FName} {x.contractingParty.LName}" + : $"{x.contractingParty.FName} {x.contractingParty.LName} {x.contractingParty.SureName}" + : x.contractingParty.SureName == null ? $"{x.contractingParty.LName}" + : $"{x.contractingParty.LName} {x.contractingParty.SureName}", + + ContractingPartyType = x.contractingParty.IsLegal == "حقیقی" ? LegalType.Real : LegalType.Legal, + Employers = x.contractingParty.Employers.Take(11).Select(e => new ContractingPartyGetListEmployerViewModel(e.id, e.FullName)).ToList(), + Id = x.contractingParty.id, + IsBlock = x.contractingParty.IsBlock == "true", + HasInstitutionContract = x.institution.Any(i => i.IsActiveString == "true"), + NationalIdOrNationalCode = x.contractingParty.IsLegal == "حقیقی" ? x.contractingParty.Nationalcode : x.contractingParty.NationalId, + Status = x.contractingParty.IsActiveString == "true" ? ActivationStatus.Active : ActivationStatus.DeActive + }).ToListAsync(); + return result; + } + + public async Task> GetSelectList() + { + return await _context.PersonalContractingParties.Select(x => new ContractingPartySelectListViewModel + { + Id = x.id, + Text = x.IsLegal == "حقیقی" ? x.SureName == null + ? $"{x.FName} {x.LName}" + : $"{x.FName} {x.LName} {x.SureName}" + : x.SureName == null ? $"{x.LName}" + : $"{x.LName} {x.SureName}", + + }).ToListAsync(); + } + + public async Task> GetNationalCodeOrNationalId() + { + return await _context.PersonalContractingParties.Select(x => new GetContractingPartyNationalCodeOrNationalIdViewModel + { + NationalCodeOrNationalId = x.IsLegal == "true" ? x.NationalId : x.Nationalcode + }).ToListAsync(); + } + + public async Task> DeactivateWithSubordinates(long id) + { + var op = new OperationResult(); + ; + using (var transaction = await _context.Database.BeginTransactionAsync()) + { + try + { + var contractingParty = await _context.PersonalContractingParties + .Include(x => x.Employers) + .ThenInclude(x => x.Contracts) + .Include(x => x.Employers) + .ThenInclude(x => x.WorkshopEmployers) + .ThenInclude(x => x.Workshop) + .ThenInclude(x => x.Checkouts).FirstOrDefaultAsync(x => x.id == id); + if (contractingParty == null) + { + return op.Failed("چنین آیتمی وجود ندارد"); + } + + var employers = contractingParty.Employers; + + var workshops = employers.SelectMany(x => x.WorkshopEmployers).Select(x => x.Workshop).ToList(); + + var contracts = employers.SelectMany(x => x.Contracts).ToList(); + + var checkouts = workshops.SelectMany(x => x.Checkouts).ToList(); + + + contractingParty.DeActive(); + + foreach (var employer in employers) + { + employer.DeActive(); + } + + foreach (var workshop in workshops) + { + workshop.DeActive(workshop.ArchiveCode); + } + + foreach (var contract in contracts) + { + contract.DeActive(); + } + + foreach (var checkout in checkouts) + { + checkout.DeActive(); + } + + await _context.SaveChangesAsync(); + + await transaction.CommitAsync(); + return op.Succcedded("DeActivate"); + } + catch (Exception) + { + await transaction.RollbackAsync(); + return op.Failed("غیرفعال کردن طرف حساب با خطا مواجه شد"); + } + } + } + + public async Task GetRealDetails(long id) + { + var res = await _context.PersonalContractingParties.Where(x => x.IsLegal == "حقیقی").Select(x => + new GetRealContractingPartyDetailsViewModel() + { + Id = x.id, + IdNumber = x.IdNumber, + PhoneNumber = x.Phone, + AgentPhone = x.AgentPhone, + Address = x.Address, + FullName = x.SureName == null + ? $"{x.FName} {x.LName}" + : $"{x.FName} {x.LName} {x.SureName}", + NationalCode = x.Nationalcode, + RepresentativeName = x.RepresentativeFullName, + ArchiveCode = x.ArchiveCode, + City = x.City, + FName = x.FName, + LName = x.LName, + SureName = x.SureName, + RepresentativeId = x.RepresentativeId, + State = x.State, + Zone = x.Zone + }).FirstOrDefaultAsync(x => x.Id == id); + + if (res == null) + { + throw new BadRequestException("چنین طرف حسابی وجود ندارد"); + } + + return res; + } + + public async Task GetLegalDetails(long id) + { + var res = await _context.PersonalContractingParties.Where(x => x.IsLegal == "حقوقی").Select(x => + new GetLegalContractingPartyDetailsViewModel() + { + Id = x.id, + PhoneNumber = x.Phone, + AgentPhone = x.AgentPhone, + Address = x.Address, + CompanyFullName = x.SureName == null + ? $"{x.LName}" + : $"{x.LName} {x.SureName}", + NationalId = x.NationalId, + RegisterId = x.RegisterId, + RepresentativeName = x.RepresentativeFullName, + RepresentativeId = x.RepresentativeId, + State = x.State, + SureName = x.SureName, + Zone = x.Zone, + ArchiveCode = x.ArchiveCode, + City = x.City, + CompanyName = x.LName + }).FirstOrDefaultAsync(x => x.Id == id); + + if (res == null) + { + throw new BadRequestException("چنین طرف حسابی وجود ندارد"); + } + + return res; + } + + #endregion + } #endregion diff --git a/CompanyManagment.EFCore/Repository/PlanPercentageRepository.cs b/CompanyManagment.EFCore/Repository/PlanPercentageRepository.cs index d5168f44..ce605927 100644 --- a/CompanyManagment.EFCore/Repository/PlanPercentageRepository.cs +++ b/CompanyManagment.EFCore/Repository/PlanPercentageRepository.cs @@ -1,7 +1,6 @@ using System; using System.Collections.Generic; using System.Linq; -using System.Numerics; using _0_Framework.Application; using _0_Framework.InfraStructure; using Company.Domain.InstitutionPlanAgg; @@ -170,7 +169,6 @@ public class PlanPercentageRepository : RepositoryBase, IP } - public InstitutionPlanViewModel GetInstitutionPlanForWorkshop(WorkshopTempViewModel command) { var planPercentage = _context.PlanPercentages.FirstOrDefault(); @@ -184,7 +182,10 @@ public class PlanPercentageRepository : RepositoryBase, IP var dailyWage = dailyWageYearlySalery.YearlySalaryItemsList.Where(x => x.ItemName == "مزد روزانه") .Select(x => x.ItemValue).FirstOrDefault(); - + if (command.ContractAndCheckout) + command.ContractAndCheckoutInPerson = true; + if(command.Insurance) + command.InsuranceInPerson = true; if (command.CountPerson > 0) { @@ -193,28 +194,28 @@ public class PlanPercentageRepository : RepositoryBase, IP .Select(plan => new InstitutionPlanViewModel { CountPerson = plan.CountPerson, - + ContractAndCheckoutDouble = command.ContractAndCheckout ? ((dailyWage * planPercentage.ContractAndCheckoutPercent / 100) * plan.CountPerson * plan.IncreasePercentage) : 0, - + InsuranceDouble = command.Insurance ? (((dailyWage * planPercentage.InsurancePercent) / 100) * plan.CountPerson * plan.IncreasePercentage) : 0, - + RollCallDouble = command.RollCall ? (((dailyWage * planPercentage.RollCallPercent) / 100) * plan.CountPerson * plan.IncreasePercentage) : 0, - - CustomizeCheckoutDouble = (((dailyWage * planPercentage.CustomizeCheckoutPercent) / 100) * plan.CountPerson * - plan.IncreasePercentage), - - ContractAndCheckoutInPersonDouble = command.ContractAndCheckoutInPerson ? (((dailyWage * planPercentage.ContractAndCheckoutInPersonPercent) / 100) * plan.CountPerson * + + CustomizeCheckoutDouble =command.CustomizeCheckout ? (((dailyWage * planPercentage.CustomizeCheckoutPercent) / 100) * plan.CountPerson * + plan.IncreasePercentage) : 0, + + ContractAndCheckoutInPersonDouble = command.ContractAndCheckoutInPerson ? (((dailyWage * planPercentage.ContractAndCheckoutInPersonPercent) / 100) * plan.CountPerson * plan.IncreasePercentage) : 0, - + InsuranceInPersonDouble = command.InsuranceInPerson ? (((dailyWage * planPercentage.InsuranceInPersonPercent) / 100) * plan.CountPerson * plan.IncreasePercentage) : 0, - + }).FirstOrDefault(); - if(planByCountPerson == null) + if (planByCountPerson == null) return new InstitutionPlanViewModel(); //مبلغ کل خدمات حضوری var inPersonSumAmount = planByCountPerson.ContractAndCheckoutDouble + planByCountPerson.InsuranceDouble + @@ -236,7 +237,7 @@ public class PlanPercentageRepository : RepositoryBase, IP { CountPerson = planByCountPerson.CountPerson, - ContractAndCheckout = planByCountPerson.ContractAndCheckoutDouble > 0 ? planByCountPerson.ContractAndCheckoutDouble.ToMoney() : "0", + ContractAndCheckout = planByCountPerson.ContractAndCheckoutDouble > 0 ? planByCountPerson.ContractAndCheckoutDouble.ToMoney() : "0", Insurance = planByCountPerson.InsuranceDouble > 0 ? planByCountPerson.InsuranceDouble.ToMoney() : "0", @@ -259,7 +260,7 @@ public class PlanPercentageRepository : RepositoryBase, IP }; - + } return new InstitutionPlanViewModel(); } diff --git a/CompanyManagment.EFCore/Repository/RepresentativeRepository.cs b/CompanyManagment.EFCore/Repository/RepresentativeRepository.cs index f7c23ed1..8179f39d 100644 --- a/CompanyManagment.EFCore/Repository/RepresentativeRepository.cs +++ b/CompanyManagment.EFCore/Repository/RepresentativeRepository.cs @@ -1,10 +1,13 @@ using System; using System.Collections.Generic; using System.Linq; +using _0_Framework.Application.Enums; +using System.Threading.Tasks; using _0_Framework.InfraStructure; using Company.Domain.RepresentativeAgg; using CompanyManagment.App.Contracts.PersonalContractingParty; using CompanyManagment.App.Contracts.Representative; +using Microsoft.EntityFrameworkCore; namespace CompanyManagment.EFCore.Repository; @@ -213,5 +216,82 @@ public class RepresentativeRepository : RepositoryBase, IR } - #endregion + #endregion + + #region Api + public async Task> GetList(RepresentativeGetListSearchModel searchModel) + { + var query = _context.RepresentativeSet.Include(x => x.ContractingParties) + .Where(x => x.FullName != "-"); + + if (!string.IsNullOrWhiteSpace(searchModel.CompanyNameOrFullName)) + query = query.Where(x => x.FullName.Contains(searchModel.CompanyNameOrFullName)); + + if (!string.IsNullOrWhiteSpace(searchModel.NationalCodeOrNationalId)) + query = query.Where(x => x.Nationalcode.Contains(searchModel.NationalCodeOrNationalId) + || x.NationalId.Contains(searchModel.NationalCodeOrNationalId)); + + if (!string.IsNullOrWhiteSpace(searchModel.IdNumber)) + query = query.Where(x => x.IdNumber.Contains(searchModel.IdNumber)); + + + if (searchModel.ContractingPartyId > 0) + { + query = query.Where(x => x.ContractingParties.Any(c => c.id == searchModel.ContractingPartyId)); + } + + if (searchModel.RepresentativeType != LegalType.None) + { + string isLegal = searchModel.RepresentativeType switch + { + LegalType.Real => "false", + LegalType.Legal => "true", + _ => "" + }; + + query = query.Where(x => x.IsLegal == isLegal); + } + + if (searchModel.RepresentativeStatus != ActivationStatus.None) + { + string status = searchModel.RepresentativeStatus switch + { + ActivationStatus.Active => "true", + ActivationStatus.DeActive => "false", + _ => "" + }; + query = query.Where(x => x.IsActive == status); + } + + var result = await query.Skip(searchModel.PageIndex).Take(30) + .Select(x => new RepresentativeGetListViewModel() + { + Id = x.id, + NationalIdOrNationalCode = x.IsLegal == "true" ? x.NationalId : x.Nationalcode, + RealNameOrLegalName = x.FullName, + HasAnyContractingParty = x.ContractingParties.Any(), + RepresentativeStatus = x.IsActive == "false" ? ActivationStatus.DeActive : ActivationStatus.Active, + RepresentativeType = x.IsLegal == "true" ? LegalType.Legal : LegalType.Real, + }).ToListAsync(); + + return result; + + } + + public bool HasAnyContractingParty(long id) + { + return _context.RepresentativeSet.Where(x => x.id == id).Include(x => x.ContractingParties) + .Any(x => x.ContractingParties.Any()); + } + + public async Task> GetSelectList() + { + return await _context.RepresentativeSet.Select(x => new GetSelectListRepresentativeViewModel() + { + Id = x.id, + Name = x.FullName + }).ToListAsync(); + } + + #endregion } \ No newline at end of file diff --git a/CompanyManagment.EFCore/Repository/WorkshopTempRepository.cs b/CompanyManagment.EFCore/Repository/WorkshopTempRepository.cs index ddbc5ac1..eaf47e06 100644 --- a/CompanyManagment.EFCore/Repository/WorkshopTempRepository.cs +++ b/CompanyManagment.EFCore/Repository/WorkshopTempRepository.cs @@ -40,5 +40,11 @@ public class WorkshopTempRepository : RepositoryBase, IWorks return result; } + public async Task RemoveWorkshopTemps(List workshopTempIds) + { + var result = _context.WorkshopTemps.Where(x => workshopTempIds.Contains(x.id)); + _context.RemoveRange(result); + await _context.SaveChangesAsync(); + } } \ No newline at end of file diff --git a/DadmehrGostar.sln.DotSettings b/DadmehrGostar.sln.DotSettings index 2d803009..cd0dd14f 100644 --- a/DadmehrGostar.sln.DotSettings +++ b/DadmehrGostar.sln.DotSettings @@ -1,4 +1,6 @@  False + True True - True \ No newline at end of file + True + True \ No newline at end of file diff --git a/PersonalContractingParty.Config/PersonalBootstrapper.cs b/PersonalContractingParty.Config/PersonalBootstrapper.cs index 5f5e08b8..f74a4151 100644 --- a/PersonalContractingParty.Config/PersonalBootstrapper.cs +++ b/PersonalContractingParty.Config/PersonalBootstrapper.cs @@ -205,9 +205,13 @@ using CompanyManagment.App.Contracts.EmployeeClientTemp; using CompanyManagment.App.Contracts.InstitutionPlan; using CompanyManagment.App.Contracts.LeftWorkTemp; using CompanyManagment.App.Contracts.TemporaryClientRegistration; +using Company.Domain.ContactUsAgg; +using CompanyManagment.App.Contracts.ContactUs; using Company.Domain.EmployeeAuthorizeTempAgg; using Company.Domain.AdminMonthlyOverviewAgg; +using Company.Domain.PaymentTransactionAgg; using CompanyManagment.App.Contracts.AdminMonthlyOverview; +using CompanyManagment.App.Contracts.PaymentTransaction; namespace PersonalContractingParty.Config; @@ -427,10 +431,16 @@ public class PersonalBootstrapper services.AddTransient(); services.AddTransient(); + services.AddTransient(); + services.AddTransient(); + services.AddTransient(); services.AddTransient(); services.AddTransient(); + + services.AddTransient(); + services.AddTransient(); #endregion #region Pooya diff --git a/ServiceHost/AppSettingConfiguration.cs b/ServiceHost/AppSettingConfiguration.cs new file mode 100644 index 00000000..3abad3fb --- /dev/null +++ b/ServiceHost/AppSettingConfiguration.cs @@ -0,0 +1,6 @@ +namespace ServiceHost; + +public class AppSettingConfiguration +{ + public string Domain { get; set; } +} \ No newline at end of file diff --git a/ServiceHost/Areas/Admin/Controllers/AccountController.cs b/ServiceHost/Areas/Admin/Controllers/AccountController.cs new file mode 100644 index 00000000..314b8de5 --- /dev/null +++ b/ServiceHost/Areas/Admin/Controllers/AccountController.cs @@ -0,0 +1,25 @@ +using AccountManagement.Application.Contracts.Account; +using Microsoft.AspNetCore.Mvc; +using ServiceHost.BaseControllers; + +namespace ServiceHost.Areas.Admin.Controllers; + +public class AccountController:AdminBaseController +{ + private readonly IAccountApplication _accountApplication; + + public AccountController(IAccountApplication accountApplication) + { + _accountApplication = accountApplication; + } + /// + /// سلکت لیست اکانت های ادمین برای جستجو + /// + /// + [HttpGet("select_list")] + public async Task>> GetAdminAccountsSelectList() + { + var res = await _accountApplication.GetAdminSelectList(); + return res; + } +} \ No newline at end of file diff --git a/ServiceHost/Areas/Admin/Controllers/AdminMonthlyOverviewController.cs b/ServiceHost/Areas/Admin/Controllers/AdminMonthlyOverviewController.cs new file mode 100644 index 00000000..b4e4b800 --- /dev/null +++ b/ServiceHost/Areas/Admin/Controllers/AdminMonthlyOverviewController.cs @@ -0,0 +1,67 @@ +using _0_Framework.Application; +using CompanyManagment.App.Contracts.AdminMonthlyOverview; +using Microsoft.AspNetCore.Mvc; +using ServiceHost.BaseControllers; + +namespace ServiceHost.Areas.Admin.Controllers; + +public class AdminMonthlyOverviewController:AdminBaseController +{ + + private readonly IAdminMonthlyOverviewApplication _adminMonthlyOverviewApplication; + + public AdminMonthlyOverviewController(IAdminMonthlyOverviewApplication adminMonthlyOverviewApplication) + { + _adminMonthlyOverviewApplication = adminMonthlyOverviewApplication; + } + + /// + /// لیست امور ماهیانه پرسنل + /// + /// + /// + [HttpGet("")] + public async Task>> GetList([FromQuery]AdminMonthlyOverviewSearchModel searchModel) + { + var result= await _adminMonthlyOverviewApplication.GetWorkshopListByStatus(searchModel); + return result; + } + + /// + /// مرحله بهدی + /// + /// + /// + [HttpPost("Next/{id}")] + public async Task> Next(long id) + { + var result = await _adminMonthlyOverviewApplication.Next(id); + return result; + } + + /// + /// مرحله قبلی + /// + /// + /// + [HttpPost("Back/{id}")] + public async Task> Back(long id) + { + var result = await _adminMonthlyOverviewApplication.Back(id); + return result; + } + + /// + /// تعداد امور ماهاینه + /// + /// + /// + /// + /// + [HttpGet("Counter")] + public async Task> Counter(int year,int month,int accountId) + { + var result = await _adminMonthlyOverviewApplication.GetCounter(year,month,accountId); + return result; + } +} \ No newline at end of file diff --git a/ServiceHost/Areas/Admin/Controllers/ContractingPartyController.cs b/ServiceHost/Areas/Admin/Controllers/ContractingPartyController.cs new file mode 100644 index 00000000..3ddae363 --- /dev/null +++ b/ServiceHost/Areas/Admin/Controllers/ContractingPartyController.cs @@ -0,0 +1,173 @@ +using System.Diagnostics; +using _0_Framework.Application; +using CompanyManagment.App.Contracts.PersonalContractingParty; +using Microsoft.AspNetCore.Mvc; +using ServiceHost.BaseControllers; + +namespace ServiceHost.Areas.Admin.Controllers; + +public class ContractingPartyController : AdminBaseController +{ + private readonly IPersonalContractingPartyApp _contractingPartyApplication; + + public ContractingPartyController(IPersonalContractingPartyApp contractingPartyApplication) + { + _contractingPartyApplication = contractingPartyApplication; + } + + /// + /// لیست طرف حساب + /// + /// + /// + [HttpGet] + public async Task>> Get([FromQuery] ContractingPartyGetListSearchModel searchModel) + { + var watch = new Stopwatch(); + watch.Start(); + var result = await _contractingPartyApplication.GetList(searchModel); + Console.WriteLine(watch.Elapsed); + return result.ToList(); + } + [HttpGet("t/{name}")] + public async Task> TestApi(string name) + { + var res = _contractingPartyApplication.SearchByName(name).Where(x=>x.Contains(name)).ToList(); + return res; + } + + /// + /// جزئیات طرف حساب حقیقی + /// + /// + /// + [HttpGet("real/{id}")] + public async Task> GetDetailsReal(long id) + { + var result = await _contractingPartyApplication.GetRealDetails(id); + return result; + } + + /// + /// جزئیات طرف حساب حقوقی + /// + /// + /// + [HttpGet("legal/{id}")] + public async Task> GetDetailsLegal(long id) + { + var result = await _contractingPartyApplication.GetLegalDetails(id); + return result; + + } + + + + + /// + /// ایجاد طرف حساب حقیقی + /// + /// + /// + [HttpPost("real")] + public async Task> CreateReal([FromBody] CreateRealContractingParty command) + { + var result = await _contractingPartyApplication.CreateReal(command); + return result; + } + + /// + /// ایجاد طرف حساب حقوقی + /// + /// + /// + [HttpPost("legal")] + public async Task> CreateLegal([FromBody] CreateLegalContractingParty command) + { + var result = await _contractingPartyApplication.CreateLegal(command); + return result; + } + + /// + /// ویرایش طرف حساب حقیقی + /// + /// + /// + [HttpPut("real")] + public ActionResult EditReal([FromBody] EditRealContractingParty command) + { + var result = _contractingPartyApplication.EditRealApi(command); + return result; + } + + /// + /// ویرایش طرف حساب حقوقی + /// + /// + /// + [HttpPut("legal")] + public ActionResult EditLegal([FromBody] EditLegalContractingParty command) + { + var result = _contractingPartyApplication.EditLegal(command); + return result; + } + + /// + /// چک کردن بلاک بودن طرف حساب با آیدی کارفرما + /// + /// آیدی کارفرما + /// true - false - NotFound + [HttpGet("is_block/{employerId}")] + public ActionResult IsBlockByEmployerId(long employerId) + { + var result = _contractingPartyApplication.IsBlockByEmployerId(employerId); + return result; + } + + /// + /// گرفتن آخرین کد بایگانی کارگاه + /// + /// + [HttpGet("last_archive_code")] + public ActionResult GetLastArchiveCodeByContractingPartyId() + { + var data = _contractingPartyApplication.GetLastArchiveCode(); + return data; + } + + /// + /// سلکت لیست طرف حساب برای جستجو + /// + /// + [HttpGet("selectList")] + public async Task>> GetSelectList() + { + return await _contractingPartyApplication.GetSelectList(); + } + + /// + /// لیست شناسه ملی یا شماره ملی برای جستجوی + /// + /// + [HttpGet("national_Code_Select_list")] + public async Task>> GetNationalCodeOrNationalId() + { + return await _contractingPartyApplication.GetNationalCodeOrNationalId(); + } + + /// + /// حذف طرف حساب. درصورت داشتن قرارداد مالی یا داشتن کارفرما، طرف حساب غیرفعال میشود + /// + /// + /// + [HttpDelete] + public async Task> DeleteContractingParty(long id) + { + var operationResult = await _contractingPartyApplication.Delete(id); + + return operationResult; + } + + + +} \ No newline at end of file diff --git a/ServiceHost/Areas/Admin/Controllers/EmployeesController.cs b/ServiceHost/Areas/Admin/Controllers/EmployeesController.cs new file mode 100644 index 00000000..abf525f9 --- /dev/null +++ b/ServiceHost/Areas/Admin/Controllers/EmployeesController.cs @@ -0,0 +1,40 @@ +using _0_Framework.Application; +using CompanyManagment.App.Contracts.Employee; +using Microsoft.AspNetCore.Mvc; +using ServiceHost.BaseControllers; + +namespace ServiceHost.Areas.Admin.Controllers; + +public class EmployeesController:AdminBaseController +{ + private readonly IEmployeeApplication _employeeApplication; + private readonly IAuthHelper _authHelper; + public EmployeesController(IEmployeeApplication employeeApplication, IAuthHelper authHelper) + { + _employeeApplication = employeeApplication; + _authHelper = authHelper; + } + + + + /// + /// لیست پرسنل برای جستجو + /// + /// + /// + [HttpGet("select_list")] + public async Task>> GetSelectList(string search) + { + var data = await _employeeApplication.GetSelectList(search); + + return data; + } + + [HttpGet] + public async Task>> GetList(GetEmployeeListSearchModel searchModel) + { + var result = await _employeeApplication.GetList(searchModel); + + return result; + } +} \ No newline at end of file diff --git a/ServiceHost/Areas/Admin/Controllers/EmployerController.cs b/ServiceHost/Areas/Admin/Controllers/EmployerController.cs new file mode 100644 index 00000000..0cefade3 --- /dev/null +++ b/ServiceHost/Areas/Admin/Controllers/EmployerController.cs @@ -0,0 +1,123 @@ +using _0_Framework.Application; +using CompanyManagment.App.Contracts.Employer; +using Microsoft.AspNetCore.Mvc; +using ServiceHost.BaseControllers; + +namespace ServiceHost.Areas.Admin.Controllers; + +public class EmployerController : AdminBaseController +{ + private readonly IEmployerApplication _employerApplication; + + public EmployerController(IEmployerApplication employerApplication) + { + _employerApplication = employerApplication; + } + + + /// + /// لیست کارفرما + /// + /// + /// + [HttpGet] + public async Task>> GetList(GetEmployerSearchModel searchModel) + { + return await _employerApplication.GetEmployerList(searchModel); + } + + /// + /// جزئیات کارفرمای حقوقی + /// + /// + /// + [HttpGet("legal/{id}")] + public async Task> GetLegalEmployer(long id) + { + var employerDetail = await _employerApplication.GetLegalEmployerDetail(id); + return employerDetail; + } + + /// + /// جزئیات کارفرمای حقیقی + /// + /// + /// + [HttpGet("real/{id}")] + public async Task> GetRealEmployer(long id) + { + var employerDetail = await _employerApplication.GetRealEmployerDetail(id); + return employerDetail; + } + + /// + /// ایجاد کارفرمای حقیقی + /// + /// + /// + [HttpPost("real")] + public async Task> CreateRealEmployer([FromBody] CreateRealEmployer command) + { + var result = await _employerApplication.CreateReal(command); + return result; + } + + /// + /// ایجاد کارفرما حقوقی + /// + /// + /// + [HttpPost("legal")] + public async Task> CreateLegalEmployer([FromBody] CreateLegalEmployer command) + { + var result = await _employerApplication.CreateLegal(command); + + return result; + } + + /// + /// ویرایش کارفرما حقیقی + /// + /// + /// + [HttpPut("real")] + public async Task> EditRealEmployer([FromBody] EditRealEmployer command) + { + var result = await _employerApplication.EditReal(command); + return result; + } + /// + /// ویرایش کارفرما حقوقی + /// + /// + /// + [HttpPut("legal")] + public async Task> EditLegalEmployer([FromBody] EditLegalEmployer command) + { + var result = await _employerApplication.EditLegal(command); + return result; + } + + /// + /// حذف کارفرما - درصورت داشتن کارگاه، کارفرما غیرفعال میشود + /// + /// + /// + [HttpDelete("{id}")] + public async Task>> Remove(long id) + { + var result = await _employerApplication.Remove(id); + return result; + } + + /// + /// سلکت لیست کارفرما برای جستجو + /// + /// + [HttpGet("select_list")] + public async Task> GetSelectList(string search) + { + return await _employerApplication.GetSelectList(search); + } + +} \ No newline at end of file diff --git a/ServiceHost/Areas/Admin/Controllers/PaymentTransactionController.cs b/ServiceHost/Areas/Admin/Controllers/PaymentTransactionController.cs new file mode 100644 index 00000000..37b13dba --- /dev/null +++ b/ServiceHost/Areas/Admin/Controllers/PaymentTransactionController.cs @@ -0,0 +1,33 @@ +using CompanyManagment.App.Contracts.PaymentTransaction; +using Microsoft.AspNetCore.Mvc; +using ServiceHost.BaseControllers; + +namespace ServiceHost.Areas.Admin.Controllers; + +public class PaymentTransactionController : AdminBaseController +{ + private readonly IPaymentTransactionApplication _paymentTransactionApplication; + + public PaymentTransactionController(IPaymentTransactionApplication paymentTransactionApplication) + { + _paymentTransactionApplication = paymentTransactionApplication; + } + + [HttpGet] + public async Task>> GetList( + GetPaymentTransactionListSearchModel searchModel) + { + var res = await _paymentTransactionApplication.GetPaymentTransactionList(searchModel); + return res; + } + [HttpGet("wallet-Amount")] + public async Task GetWalletAmount(CancellationToken cancellationToken) + { + var res = await _paymentTransactionApplication.GetWalletAmount(cancellationToken); + if (res.Code!=0) + { + return BadRequest(res); + } + return Ok(res); + } +} \ No newline at end of file diff --git a/ServiceHost/Areas/Admin/Controllers/RegistrationWorkflowController.cs b/ServiceHost/Areas/Admin/Controllers/RegistrationWorkflowController.cs new file mode 100644 index 00000000..5e0c5f61 --- /dev/null +++ b/ServiceHost/Areas/Admin/Controllers/RegistrationWorkflowController.cs @@ -0,0 +1,28 @@ +using CompanyManagment.App.Contracts.AdminMonthlyOverview; +using CompanyManagment.App.Contracts.TemporaryClientRegistration; +using Microsoft.AspNetCore.Mvc; +using ServiceHost.BaseControllers; + +namespace ServiceHost.Areas.Admin.Controllers +{ + public class RegistrationWorkflowController : AdminBaseController + { + private readonly ITemporaryClientRegistrationApplication _temporaryClientRegistrationApplication; + + public RegistrationWorkflowController(ITemporaryClientRegistrationApplication temporaryClientRegistrationApplication) + { + _temporaryClientRegistrationApplication = temporaryClientRegistrationApplication; + } + + /// + /// لیست کارپوشه ثبت نام + /// + /// + [HttpGet("")] + public async Task>> GetList() + { + var result = await _temporaryClientRegistrationApplication.RegistrationWorkflowMainList(); + return result; + } + } +} diff --git a/ServiceHost/Areas/Admin/Controllers/RepresentativeController.cs b/ServiceHost/Areas/Admin/Controllers/RepresentativeController.cs new file mode 100644 index 00000000..adc785b6 --- /dev/null +++ b/ServiceHost/Areas/Admin/Controllers/RepresentativeController.cs @@ -0,0 +1,151 @@ +using _0_Framework.Application; +using CompanyManagment.App.Contracts.PersonalContractingParty; +using CompanyManagment.App.Contracts.Representative; +using Microsoft.AspNetCore.Mvc; +using ServiceHost.BaseControllers; + +namespace ServiceHost.Areas.Admin.Controllers; + +public class RepresentativeController : AdminBaseController +{ + private readonly IRepresentativeApplication _representativeApplication; + + public RepresentativeController(IRepresentativeApplication representativeApplication) + { + _representativeApplication = representativeApplication; + } + + /// + /// گرفتن لیست معرف ها + /// + /// + /// + [HttpGet] + public async Task>> Get(RepresentativeGetListSearchModel searchModel) + { + return await _representativeApplication.GetList(searchModel); + } + + /// + /// ایجاد معرف حقوقی + /// + /// + /// + [HttpPost("legal")] + public ActionResult CreateLegal([FromBody] CreateLegalRepresentative command) + { + return _representativeApplication.CreateLegal(command); + } + + /// + /// ایجاد معرف حقیقی + /// + /// + /// + [HttpPost("real")] + public ActionResult CreateReal([FromBody] CreateRealRepresentative command) + { + return _representativeApplication.CreateReal(command); + } + + /// + /// گرفتن جزئیات معرف + /// + /// + /// + [HttpGet("{id}")] + public ActionResult GetDetails(long id) + { + return _representativeApplication.GetDetails(id); + } + + /// + /// ویرایش معرف حقوقی + /// + /// + /// + [HttpPut("Legal")] + public ActionResult EditLegal([FromBody] EditLegalRepresentative command) + { + return _representativeApplication.EditLegal(command); + } + + /// + /// ویرایش معرف حقیقی + /// + /// + /// + [HttpPut("Real")] + public ActionResult EditReal([FromBody] EditRealRepresentative command) + { + return _representativeApplication.EditReal(command); + } + + + /// + /// گرفتن لیست طرف حساب ها با آیدی معرف + /// + /// + /// + [HttpGet("contracting_parties/{id}")] + public ActionResult> GetContractingParties(long id) + { + return _representativeApplication.GetContractingParties(id); + } + + /// + /// حذف معرف + /// + /// + /// + [HttpDelete] + public ActionResult Delete(long id) + { + return _representativeApplication.DeleteRepresentative(id); + } + + /// + /// فعال کردن معرف + /// + /// + /// + [HttpPost("active/{id}")] + public ActionResult Active(long id) + { + return _representativeApplication.Active(id); + } + + /// + /// غیرفعال کردن معرف + /// + /// + /// + [HttpPost("deactivate/{id}")] + public ActionResult DeActive(long id) + { + return _representativeApplication.DeActive(id); + } + + /// + /// طرف حسابی دارد یا ندارد + /// + /// + /// + [HttpGet("has_any_contracting_party")] + public ActionResult HasAnyContractingParty(long id) + { + return _representativeApplication.HasAnyContractingParty(id); + } + + + /// + /// سلکت لیست معرف برای سرچ + /// + /// + [HttpGet("select_list")] + public async Task> GetSelectList() + { + return await _representativeApplication.GetSelectList(); + } + +} \ No newline at end of file diff --git a/ServiceHost/Areas/Admin/Controllers/WorkshopController.cs b/ServiceHost/Areas/Admin/Controllers/WorkshopController.cs new file mode 100644 index 00000000..3aee5741 --- /dev/null +++ b/ServiceHost/Areas/Admin/Controllers/WorkshopController.cs @@ -0,0 +1,28 @@ +using CompanyManagment.App.Contracts.Workshop; +using Microsoft.AspNetCore.Mvc; +using ServiceHost.BaseControllers; + +namespace ServiceHost.Areas.Admin.Controllers; + +public class WorkshopController: AdminBaseController +{ + private readonly IWorkshopApplication _workshopApplication; + + public WorkshopController(IWorkshopApplication workshopApplication) + { + _workshopApplication = workshopApplication; + } + + /// + /// لیست کارگاه برای جستجو + /// + /// + /// + [HttpGet("select_list")] + public async Task>> GetSelectList(string search) + { + var data = await _workshopApplication.GetSelectList(search); + + return data; + } +} \ No newline at end of file diff --git a/ServiceHost/Areas/Admin/Pages/Shared/_Menu.cshtml b/ServiceHost/Areas/Admin/Pages/Shared/_Menu.cshtml index 4b695957..c045b6e3 100644 --- a/ServiceHost/Areas/Admin/Pages/Shared/_Menu.cshtml +++ b/ServiceHost/Areas/Admin/Pages/Shared/_Menu.cshtml @@ -1,7 +1,9 @@ @using AccountManagement.Domain.TicketAccessAccountAgg @using Microsoft.AspNetCore.Mvc.TagHelpers +@using Microsoft.Extensions.Options @inject _0_Framework.Application.IAuthHelper AuthHelper; @inject ITicketAccessAccountRepository TicketAccessAccount; +@inject IOptions AppSetting; @{ + + + + + + + + + + + + +
+
+ کد ملی + +
+
+ تاریخ تولد + +
+
+ شماره موبایل + +
+
+ +
+ +
+ + + +@* *@ + \ No newline at end of file diff --git a/ServiceHost/Pages/Register/_Partials/_Step2.cshtml b/ServiceHost/Pages/Register/_Partials/_Step2.cshtml new file mode 100644 index 00000000..3c30183b --- /dev/null +++ b/ServiceHost/Pages/Register/_Partials/_Step2.cshtml @@ -0,0 +1,121 @@ +@{ + string clientVersion = _0_Framework.Application.Version.StyleVersion; +} + +
+ + +
+
+ نام + +
+
+ +
+
+ نام خانوادگی + +
+
+ + +
+
+ تاریخ تولد + +
+
+ + + +
+
+ نام پدر + +
+
+ + + +
+
+ شماره شناسنامه + +
+
+ + + +
+
+ استان + @* *@ + @* *@ +
+ +
+
+
+ +
+
+ شهر + @* *@ + @* *@ +
+ +
+
+
+ +
+
+ نشانی + +
+
+ +
+ + + + + \ No newline at end of file diff --git a/ServiceHost/Pages/Register/_Partials/_Step3.cshtml b/ServiceHost/Pages/Register/_Partials/_Step3.cshtml new file mode 100644 index 00000000..8fe48035 --- /dev/null +++ b/ServiceHost/Pages/Register/_Partials/_Step3.cshtml @@ -0,0 +1,34 @@ +@{ + string clientVersion = _0_Framework.Application.Version.StyleVersion; +} + + + +
+
+
+
+ +
+
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/ServiceHost/Pages/Register/_Partials/_Step4.cshtml b/ServiceHost/Pages/Register/_Partials/_Step4.cshtml new file mode 100644 index 00000000..8ba18d9f --- /dev/null +++ b/ServiceHost/Pages/Register/_Partials/_Step4.cshtml @@ -0,0 +1,141 @@ +@{ + string clientVersion = _0_Framework.Application.Version.StyleVersion; +} + + + +
+
+
+
+ +
+
+
+
شروع قرارداد:
+ +
+ + + + + +
+
+ +
+
+
شروع قرارداد
+ +
+
+
پایان قرارداد
+ +
+ +
+
+
+ +
+ +
+
+ + +
+ +
+
+
مدت قرارداد
+
+
+ + + + + + + + + + + +
+
+ + +
+ + +
+
+
+
+
+
مجموع مبالغ:
+
-
+
+
+
ارزش افزوده:
+
-
+ +
+
+
مبلغ قابل پرداخت:
+
-
+ +
+
+
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/ServiceHost/Pages/Register/_Partials/_Step5.cshtml b/ServiceHost/Pages/Register/_Partials/_Step5.cshtml new file mode 100644 index 00000000..53bd617a --- /dev/null +++ b/ServiceHost/Pages/Register/_Partials/_Step5.cshtml @@ -0,0 +1,158 @@ +@{ + string clientVersion = _0_Framework.Application.Version.StyleVersion; +} + + + +
+
+
+
قوانین و مقررات استفاده از سامانه گزارشگیر
+

+ توجه: ورود، ثبت‌نام و استفاده از خدمات سامانه گزارشگیر به منزله پذیرش کامل این توافق‌نامه و تعهد به رعایت مفاد آن توسط کاربر می‌باشد. لطفاً پیش از استفاده، با دقت مطالعه فرمایید. +

+ +
۱. مالکیت معنوی و حقوق نرم‌افزار
+

+ کلیه حقوق مادی و معنوی سامانه، شامل کدهای برنامه‌نویسی، طراحی گرافیکی، نام تجاری، محتوا، داده‌های ساختاریافته و سایر اجزای نرم‌افزار، متعلق به شرکت/مالک سامانه گزارشگیر است. هرگونه کپی‌برداری، استخراج داده، فروش یا ارائه خدمات مشابه بدون کسب مجوز کتبی، موجب پیگرد قانونی خواهد بود. +

+ +
۲. شرایط استفاده از حساب کاربری
+

+ هر کاربر موظف است اطلاعات صحیح، کامل و مستند وارد نماید. مسئولیت حفظ نام کاربری و رمز عبور بر عهده کاربر است و در صورت سوءاستفاده توسط اشخاص دیگر، سامانه هیچ‌گونه مسئولیتی نخواهد داشت. کاربران موظف به استفاده‌ی مشروع از سامانه در چارچوب قوانین جمهوری اسلامی ایران می‌باشند. +

+ +
۳. حفظ حریم خصوصی
+

+ کلیه اطلاعات واردشده توسط کاربران، محرمانه تلقی شده و فقط در راستای ارائه خدمات و توسعه سامانه استفاده خواهد شد. سامانه متعهد به عدم فروش یا افشای اطلاعات کاربران به اشخاص ثالث است، مگر با حکم قضایی یا درخواست مراجع ذی‌صلاح قانونی. دسترسی به اطلاعات کاربران توسط کارشناسان فقط با هدف پشتیبانی و رفع مشکل انجام می‌پذیرد و تحت نظارت داخلی قرار دارد. +

+ +
۴. شرایط پرداخت، لغو خرید و بازگشت وجه
+

+ پرداخت هزینه‌های اشتراک، امکانات ویژه یا نسخه‌های حرفه‌ای سامانه از طریق درگاه‌های امن بانکی انجام می‌پذیرد. +

+

+ پس از واریز وجه و فعال‌سازی خدمات یا پنل‌های مرتبط، به دلیل ماهیت دیجیتالی و غیرقابل استرداد بودن خدمات، امکان بازگشت وجه تحت هیچ شرایطی وجود ندارد. کاربران با پرداخت هزینه، صراحتاً اعلام می‌دارند که از خدمات و شرایط استفاده آگاه بوده و حق هرگونه ادعا یا مطالبه در خصوص بازپرداخت وجه را از خود سلب می‌کنند. در صورت پرداخت اشتباه یا دو بار پرداخت، صرفاً پس از بررسی فنی و ثبت درخواست، امکان استرداد وجه با کسر کارمزد بانکی وجود دارد. +

+ +
۵. پشتیبانی و رسیدگی به درخواست‌ها
+

+ سامانه دارای سیستم پشتیبانی داخلی است و کاربران می‌توانند در هر بخش از نرم‌افزار، مشکل یا سوال خود را از طریق پنل پشتیبانی ثبت نمایند. کارشناسان موظف به پاسخ‌گویی در ساعات اداری و طی مدت زمان معقول هستند. کاربران متعهد هستند هنگام ثبت درخواست، از الفاظ محترمانه و متعارف استفاده نمایند. در غیر این‌صورت، پشتیبانی محدود خواهد شد. +

+ +
۶. مسئولیت صحت داده‌ها
+

+ کلیه اطلاعات اعم از حضور و غیاب، فیش‌های حقوقی، اطلاعات پرسنل و گزارشات، بر اساس داده‌های واردشده توسط کاربران و کارفرمایان تولید می‌شود. مسئولیت صحت، دقت و درستی اطلاعات بر عهده کاربر واردکننده اطلاعات است. سامانه هیچ‌گونه مسئولیتی در قبال خسارات ناشی از اطلاعات نادرست نخواهد داشت. +

+ +
۷. محدودیت‌های استفاده
+

+ کاربران مجاز به دستکاری، نفوذ، مهندسی معکوس، بارگذاری بدافزار یا انجام هرگونه اقدام مخرب علیه سامانه نمی‌باشند. در صورت بروز تخلف، دسترسی کاربر به سامانه بدون اخطار قبلی محدود یا مسدود خواهد شد و مراتب از طریق مراجع قانونی پیگیری می‌گردد. +

+ +
۸. قطع خدمات و مسائل فنی
+

+ سامانه گزارشگیر تلاش می‌کند خدمات را به‌صورت مداوم و بدون وقفه ارائه دهد. با این حال، در صورت بروز اختلال فنی، قطعی اینترنت، بروزرسانی‌ها یا عوامل خارج از کنترل، مسئولیتی در قبال بروز وقفه یا آسیب‌های احتمالی متوجه سامانه نخواهد بود. +

+ +
۹. حل اختلاف و صلاحیت قضایی
+

+ در صورت بروز هرگونه اختلاف میان کاربران و مدیریت سامانه: ابتدا تلاش خواهد شد موضوع از طریق گفتگو و مصالحه حل‌وفصل شود. در صورت عدم توافق، مرجع رسمی رسیدگی، مراجع صالح قضایی جمهوری اسلامی ایران خواهد بود و کاربران با پذیرش این متن، صلاحیت این مراجع را می‌پذیرند. +

+ +
۱۰. به‌روزرسانی مقررات
+

+ این قوانین ممکن است در بازه‌های زمانی مختلف به‌روزرسانی شود. مسئولیت پیگیری تغییرات بر عهده کاربران بوده و نسخه‌ی جدید از طریق سایت و پنل کاربری اعلام خواهد شد. +

+ +

+ توجه مهم: +

+

+ با ثبت‌نام، ورود و پرداخت هرگونه وجه در سامانه گزارشگیر، شما به‌صورت کامل و بدون شرط با کلیه مفاد این توافق‌نامه موافقت کرده‌اید و امکان طرح دعوی در خصوص بازگشت وجه، عدم رضایت از خدمات یا ادعای خسارت وجود نخواهد داشت. +

+ +
+ +
+
+ @*
+
مبلغ قابل پرداخت:
+
۲۵,۰۰۰,۰۰۰ ریال
+
*@ + +
+
+
+
مجموع مبالغ:
+
-
+
+
+
ارزش افزوده:
+
-
+
+
+
مبلغ قابل پرداخت:
+
-
+
+
+
+ +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/ServiceHost/Pages/Shared/_Footer.cshtml b/ServiceHost/Pages/Shared/_Footer.cshtml new file mode 100644 index 00000000..93abe088 --- /dev/null +++ b/ServiceHost/Pages/Shared/_Footer.cshtml @@ -0,0 +1,71 @@ + + +
+
+ + +
+ @*
شرایط استفاده از خدمات
*@ + +
+
+ + + + +
+ + +
کلیه حقوق مادی و معنوی این وب سایت برای شرکت داده پردازان گزارشگیر منطقه آزاد انزلی محفوظ می باشد.
+ +
+
+ + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+ diff --git a/ServiceHost/Pages/Shared/_Header.cshtml b/ServiceHost/Pages/Shared/_Header.cshtml new file mode 100644 index 00000000..5e49177c --- /dev/null +++ b/ServiceHost/Pages/Shared/_Header.cshtml @@ -0,0 +1,385 @@ +@using System.Security.Claims +@using Microsoft.AspNetCore.Mvc.TagHelpers +@inject _0_Framework.Application.IAuthHelper AuthHelper; + +@{ + var currentAccount = AuthHelper.CurrentAccountInfo(); + var redirectDashboard = ""; + if (User.Identity is { IsAuthenticated: true }) + { + if (User.FindFirstValue("IsCamera") == "true") + { + redirectDashboard = "/Camera"; + } + else if ((User.FindFirstValue("ClientAriaPermission") == "true") && (User.FindFirstValue("AdminAreaPermission") == "false")) + { + redirectDashboard = "/Client"; + } + else + { + redirectDashboard = "/Admin"; + } + } + + +} + +
+
+ +
+ + + +
+ +
+
گزارشگیر
+
سامانه هوشمند منابع انسانی
+
+
+
+ + + +
+ + + @if (User.Identity.IsAuthenticated) + { +
+ + + + + + + + + + + @* *@ +
+ } + + +
+
+ + +
+ + +
+ + +
+ + \ No newline at end of file diff --git a/ServiceHost/Pages/Shared/_Layout.cshtml b/ServiceHost/Pages/Shared/_Layout.cshtml index 3ca1a04e..dbe3f10f 100644 --- a/ServiceHost/Pages/Shared/_Layout.cshtml +++ b/ServiceHost/Pages/Shared/_Layout.cshtml @@ -1,10 +1,5 @@ @using Microsoft.AspNetCore.Razor.Language.Intermediate - -@{ - string styleVersion = _0_Framework.Application.Version.StyleVersion; - - -} +@using Version = _0_Framework.Application.Version @@ -18,10 +13,11 @@ @RenderSection("head", false) - - - - + + + + + @@ -42,7 +38,6 @@ @RenderBody() - @@ -50,17 +45,59 @@ - + + + + diff --git a/ServiceHost/Pages/Shared/_LayoutHome.cshtml b/ServiceHost/Pages/Shared/_LayoutHome.cshtml new file mode 100644 index 00000000..bd2a441e --- /dev/null +++ b/ServiceHost/Pages/Shared/_LayoutHome.cshtml @@ -0,0 +1,54 @@ +@{ + string version = _0_Framework.Application.Version.StyleVersion; +} + + + + + + + + + + @ViewData["Title"] گزارشگیر + + + + + + @RenderSection("Head", false) + + + + + + + + @RenderBody() + + + + + + + + + + + + @RenderSection("Script", false) + + + + \ No newline at end of file diff --git a/ServiceHost/Pages/Shared/_validationAlert.cshtml b/ServiceHost/Pages/Shared/_validationAlert.cshtml new file mode 100644 index 00000000..0cc68806 --- /dev/null +++ b/ServiceHost/Pages/Shared/_validationAlert.cshtml @@ -0,0 +1,45 @@ + + + + + + + \ No newline at end of file diff --git a/ServiceHost/Pages/about-us/Index.cshtml b/ServiceHost/Pages/about-us/Index.cshtml new file mode 100644 index 00000000..9dd2775e --- /dev/null +++ b/ServiceHost/Pages/about-us/Index.cshtml @@ -0,0 +1,44 @@ +@page +@model ServiceHost.Pages.about_us.IndexModel +@{ + Layout = "Shared/_LayoutHome"; +} + + +
+
+
+ درباره با ما +
+
+ داستان گزارشگیر +
+

+ نرم‌افزار گزارشگیر، یک سامانه جامع و هوشمند در حوزه مدیریت منابع انسانی است که با هدف تسهیل و دقت‌بخشی به فرآیندهای کلیدی از جمله تنظیم قراردادهای کاری، صدور فیش حقوقی، ثبت تردد پرسنل، و انجام تصفیه‌حساب‌ها طراحی و پیاده‌سازی شده است. این سامانه با بهره‌گیری از فناوری تشخیص چهره و امکان استفاده از تلفن همراه به‌عنوان ابزار ثبت حضور و غیاب، توانسته است جایگزینی کارآمد و دقیق برای روش‌های سنتی و پرهزینه ارائه دهد؛ بدون نیاز به تجهیزات فیزیکی یا تخصص فنی از سوی کاربران. +

+
+
+ + +
+
+
+ +

+ یکی از مزایای منحصر‌به‌فرد گزارشگیر، محاسبه دقیق و پویا‌ی پایه سنواتی در قراردادها و فیش‌های حقوقی است. این موضوع، که در محاسبات حقوق و مزایا تأثیر مستقیم دارد، متأسفانه در بسیاری از نرم‌افزارهای مشابه داخلی نادیده گرفته شده یا به‌صورت ایستا و نادرست لحاظ می‌گردد. +
+
+ مخاطبان هدف این سامانه، کلیه مجموعه‌ها، کارگاه‌ها و شرکت‌هایی هستند که دارای نیروی کار بوده و نیازمند سیستمی دقیق، سریع و قابل اتکا برای مدیریت حضور و غیاب، تنظیم قراردادهای قانونی و صدور فیش حقوقی می‌باشند. +

+
+
+ +
+
+

+ سامانه گزارشگیر حاصل سال‌ها تجربه میدانی و تلاش مستمر تیمی متخصص و متعهد در حوزه‌های برنامه‌نویسی، منابع انسانی و مشاوره حقوقی است. این نرم‌افزار با تکیه بر نیازهای واقعی کارفرمایان و قوانین جاری کار و تأمین اجتماعی طراحی شده تا پاسخی عملی، دقیق و منعطف به دغدغه‌های روزمره مدیران و صاحبان کسب‌وکار باشد. +

+ +
+
+
diff --git a/ServiceHost/Pages/about-us/Index.cshtml.cs b/ServiceHost/Pages/about-us/Index.cshtml.cs new file mode 100644 index 00000000..3e3a22ac --- /dev/null +++ b/ServiceHost/Pages/about-us/Index.cshtml.cs @@ -0,0 +1,12 @@ +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc.RazorPages; + +namespace ServiceHost.Pages.about_us +{ + public class IndexModel : PageModel + { + public void OnGet() + { + } + } +} diff --git a/ServiceHost/Pages/complaints/Index.cshtml b/ServiceHost/Pages/complaints/Index.cshtml new file mode 100644 index 00000000..ea077d58 --- /dev/null +++ b/ServiceHost/Pages/complaints/Index.cshtml @@ -0,0 +1,105 @@ +@page +@model ServiceHost.Pages.complaints.IndexModel +@{ + Layout = "Shared/_LayoutHome"; + string version = _0_Framework.Application.Version.StyleVersion; + + +} + +
+
+
+ ارتباط مستقیم با پشتیبانی گزارشگیر +
+
+ ارسال سوالات، درخواست‌ها، گزارش‌های فنی و شکایات از طریق فرم +
+
+
+ + +
+
+
+ + + + + + +
+
ثبت شکایات
+

+ در صورتی که نسبت به عملکرد سامانه، خدمات ارائه‌شده یا نحوه پاسخ‌گویی کارشناسان شکایتی دارید، می‌توانید از طریق این بخش موضوع را ثبت و پیگیری نمایید. شکایات ثبت‌شده توسط تیم نظارت و پشتیبانی بررسی شده و نتیجه از طریق ایمیل یا پنل کاربری به اطلاع شما خواهد رسید. +

+
+
+ +
+
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+
+ + + +
+
+ + 500 کاراکتر +
+ + +
+
+ +
+
+ * پر کردن قسمت‌های ستاره‌دار ضروری است. +
+ +
+
+
+
+ +@section Script { + + +} \ No newline at end of file diff --git a/ServiceHost/Pages/complaints/Index.cshtml.cs b/ServiceHost/Pages/complaints/Index.cshtml.cs new file mode 100644 index 00000000..de121b7e --- /dev/null +++ b/ServiceHost/Pages/complaints/Index.cshtml.cs @@ -0,0 +1,30 @@ +using CompanyManagment.App.Contracts.ContactUs; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc.RazorPages; + +namespace ServiceHost.Pages.complaints +{ + public class IndexModel : PageModel + { + private readonly IContactUsApplication _contactUsApplication; + + public IndexModel(IContactUsApplication contactUsApplication) + { + _contactUsApplication = contactUsApplication; + } + + public void OnGet() + { + } + + public IActionResult OnPostCreateAjax(CreateContactUs command) + { + var operationResult = _contactUsApplication.Create(command); + return new JsonResult(new + { + success = operationResult.IsSuccedded, + message = operationResult.Message + }); + } + } +} diff --git a/ServiceHost/Pages/contact-us/Index.cshtml b/ServiceHost/Pages/contact-us/Index.cshtml new file mode 100644 index 00000000..e3469289 --- /dev/null +++ b/ServiceHost/Pages/contact-us/Index.cshtml @@ -0,0 +1,222 @@ +@page +@model ServiceHost.Pages.contact_us.IndexModel +@{ + Layout = "Shared/_LayoutHome"; + string version = _0_Framework.Application.Version.StyleVersion; + + +} + +
+ +
+
+ ارتباط مستقیم +
+
+ ارسال پیام‌ها، درخواست‌ها و گزارش‌های مرتبط با گزارشگیر +
+
+ + + +
+ + +
+@*
+
+ + + + + + +
+
مرکز تماس
+

مرکز تماس گزارشگیر در ساعات کاری پاسخ‌گوی پرسش‌های مشتریان در زمینه‌های فنی و مالی است. همچنین برای ارتباط با این بخش، می‌توانید از طریق پنل کاربری خود تیکت ثبت کنید.

+
+
+ +
+
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+
+ + + +
+
+ + 500 کاراکتر +
+ + +
+
+ +
+
+ * پر کردن قسمت‌های ستاره‌دار ضروری است. +
+ +
+
+
*@ + + +
+ +
+
+ + +
+
نشانی گزارشگیر
+
+
منطقه آزاد انزلی، مجتمع ونوس طبقه اول، قرفه ۵۵۰
+
+
شماره تماس
+
۰۱۳۳۲۳۲۸۸۸۶
+
۰۱۳۳۲۳۲۸۸۸۷
+
۰۱۳۳۳۲۴۴۹۲۶
+
۰۱۳۳۳۲۳۸۷۷۷
+
+
+
+ +
+ +
+ + +@section Script { + + +} \ No newline at end of file diff --git a/ServiceHost/Pages/contact-us/Index.cshtml.cs b/ServiceHost/Pages/contact-us/Index.cshtml.cs new file mode 100644 index 00000000..02e79847 --- /dev/null +++ b/ServiceHost/Pages/contact-us/Index.cshtml.cs @@ -0,0 +1,30 @@ +using CompanyManagment.App.Contracts.ContactUs; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc.RazorPages; + +namespace ServiceHost.Pages.contact_us +{ + public class IndexModel : PageModel + { + private readonly IContactUsApplication _contactUsApplication; + + public IndexModel(IContactUsApplication contactUsApplication) + { + _contactUsApplication = contactUsApplication; + } + + public void OnGet() + { + } + + public IActionResult OnPostCreateAjax(CreateContactUs command) + { + var operationResult = _contactUsApplication.Create(command); + return new JsonResult(new + { + success = operationResult.IsSuccedded, + message = operationResult.Message + }); + } + } +} diff --git a/ServiceHost/Pages/login/Index.cshtml b/ServiceHost/Pages/login/Index.cshtml new file mode 100644 index 00000000..444c0aa7 --- /dev/null +++ b/ServiceHost/Pages/login/Index.cshtml @@ -0,0 +1,695 @@ +@page +@model ServiceHost.Pages.login.IndexModel + +@Html.AntiForgeryToken() +@{ + ViewData["Title"] = "ورود"; +} +@section head +{ + @* *@ + + + + + + + + + + + +} + +
+
+ + + + + @if (@Model.Mess == null) + { + + } + else + { + + } +
+
+ + + +@if (@Model.Mess != null) +{ +
+
+
+

خطا

+

@Model.Mess

+
+ +
+
+
+} + +
+
+
+

خطا

+

+
+ +
+
+
+ + + + + + + + + + + +@section Script{ + @* *@ + @* *@ + + +} + + diff --git a/ServiceHost/Pages/login/Index.cshtml.cs b/ServiceHost/Pages/login/Index.cshtml.cs new file mode 100644 index 00000000..bb550364 --- /dev/null +++ b/ServiceHost/Pages/login/Index.cshtml.cs @@ -0,0 +1,391 @@ +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc.RazorPages; +using Microsoft.Extensions.Logging; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net.Http; +using System.Threading; +using System.Threading.Tasks; +using _0_Framework.Application; +using _0_Framework.Application.Sms; +using AccountManagement.Application.Contracts.Account; +using AccountManagement.Domain.AccountAgg; +using Microsoft.AspNetCore.Http; +using Newtonsoft.Json; +using static Microsoft.EntityFrameworkCore.DbLoggerCategory.Database; +using System.Security.Claims; +using AccountManagement.Application.Contracts.CameraAccount; +using AccountMangement.Infrastructure.EFCore.Repository; +using Company.Domain.RollCallAgg.DomainService; +using Microsoft.AspNetCore.Antiforgery; +using Microsoft.AspNetCore.Hosting; +using Microsoft.AspNetCore.Authentication.Cookies; +using CompanyManagment.App.Contracts.AndroidApkVersion; +using CompanyManagment.EFCore; +using Microsoft.EntityFrameworkCore; + +namespace ServiceHost.Pages.login; + +public class IndexModel : PageModel +{ + private readonly IAccountApplication _accountApplication; + private readonly IGoogleRecaptcha _googleRecaptcha; + private readonly IAuthHelper _authHelper; + private readonly IAndroidApkVersionApplication _androidApkVersionApplication; + private readonly CompanyContext _context; + private readonly IRollCallDomainService _rollCallDomainService; + + public string Mess { get; set; } + [BindProperty] public string Username { get; set; } + [BindProperty] public string Password { get; set; } + [BindProperty] public string CaptchaResponse { get; set; } + public bool HasApkToDownload { get; set; } + private static Timer aTimer; + public Login login; + public AccountViewModel Search; + + public IndexModel(IAccountApplication accountApplication, IGoogleRecaptcha googleRecaptcha, + IAuthHelper authHelper, IAndroidApkVersionApplication androidApkVersionApplication, CompanyContext context, + IRollCallDomainService rollCallDomainService) + { + _accountApplication = accountApplication; + _googleRecaptcha = googleRecaptcha; + _authHelper = authHelper; + _androidApkVersionApplication = androidApkVersionApplication; + _context = context; + _rollCallDomainService = rollCallDomainService; + } + + public IActionResult OnGet() + { + //var customizeWorkshopSettings = _context.CustomizeWorkshopSettings.AsSplitQuery(); + + + //var rollCalls = + // _context.RollCalls.Where(x => customizeWorkshopSettings.Any(a => a.WorkshopId == x.WorkshopId)) + // .ToList(); + + //foreach (var rollCall in rollCalls) + //{ + // rollCall.SetShiftDate(_rollCallDomainService); + //} + + //_context.SaveChanges(); + + HasApkToDownload = _androidApkVersionApplication.HasAndroidApkToDownload(); + if (User.Identity is { IsAuthenticated: true }) + { + if (User.FindFirstValue("IsCamera") == "true") + { + return Redirect("/Camera"); + } + else if ((User.FindFirstValue("ClientAriaPermission") == "true") && + (User.FindFirstValue("AdminAreaPermission") == "false")) + { + return Redirect("/Client"); + } + else + { + return Redirect("/Admin"); + } + } + + _authHelper.SignOut(); + return Page(); + } + + #region Vafa + + //public IActionResult OnGetGenerateAntiForgeryToken() + //{ + // var tokens = _antiforgery.GetAndStoreTokens(HttpContext); + // return new JsonResult(new { token = tokens.RequestToken }); + //} + + //public IActionResult OnPostLoginAjax(Login command) + //{ + // var result = _accountApplication.Login(command); + // if (result.IsSuccedded) + // { + // string redirectUrl = string.Empty; + + // switch (result.SendId) + // { + // case 1: + // redirectUrl = "/Admin"; + // break; + // case 2: + // redirectUrl = "/Client"; + // break; + // case 3: + // redirectUrl = "/Camera"; + // break; + // case 0: + // result.Message = "امکان ورود با این حساب کاربری وجود ندارد"; + // return new JsonResult(new { success = false, message = result.Message }); + // } + + // return new JsonResult(new { success = true, redirectUrl }); + // } + + // Mess = result.Message; + // return new JsonResult(new { success = false, message = result.Message }); + //} + + #endregion + + + public IActionResult OnPostLogin(Login command) + { + + var result = _accountApplication.Login(command); + if (result.IsSuccedded) + return RedirectToPage("/Admin"); + + + ModelState.AddModelError("Username", "اطلاعات وارد شده اشتباه است"); + TempData["h"] = "n"; + Mess = result.Message; + return null; + + } + + public IActionResult OnPostEnter(Login command) + { + + //bool captchaResult = true; + //if (!_webHostEnvironment.IsDevelopment()) + // captchaResult = _googleRecaptcha.IsSatisfy(CaptchaResponse).Result; + + + //if (captchaResult) + //{ + var result = _accountApplication.Login(command); + if (result.IsSuccedded) + { + switch (result.SendId) + { + case 1: + return Redirect("/Admin"); + break; + case 2: + + return Redirect("/Client"); + break; + case 3: + return Redirect("/Camera"); + break; + case 0: + result.Message = "امکان ورود با این حساب کاربری وجود ندارد"; + break; + } + } + + Mess = result.Message; + //} + //else + //{ + // Mess = "دستگاه شما ربات تشخیص داده شد"; + //} + + + + //ModelState.AddModelError("Username", "اطلاعات وارد شده اشتباه است"); + + return Page(); + } + + public async Task OnPostCheckCaptcha(string response) + { + var result = await _googleRecaptcha.IsSatisfy(response); + + return new JsonResult(new + { + isNotRobot = result, + + }); + } + + public IActionResult OnPostRegisterClient(string name, string user, string pass, string phone, + string nationalcode) + { + var command = new RegisterAccount() + { + Fullname = name, + Username = user, + Password = pass, + Mobile = phone, + NationalCode = nationalcode, + }; + var result = _accountApplication.RegisterClient(command); + return new JsonResult(new + { + isSucceded = result.IsSuccedded, + message = result.Message + }); + } + + public IActionResult OnGetLogout() + { + _accountApplication.Logout(); + return RedirectToPage("/Index"); + } + + + public async Task OnPostCheckPhoneValid(string phone) + { + + + var result = _accountApplication.Search(new AccountSearchModel() { Mobile = phone }).FirstOrDefault(); + if (result == null) + { + return new JsonResult(new + { + exist = false, + }); + } + else + { + SendSms(phone); + return new JsonResult(new + { + exist = true, + }); + + } + + + } + + public void SendSms(string phone) + { + var result = _accountApplication.Search(new AccountSearchModel() { Mobile = phone }).FirstOrDefault(); + if (result != null) + { + _accountApplication.SetVerifyCode(phone, result.Id); + + } + } + + public IActionResult OnPostWithMobile(string code, string phone) + { + //bool captchaResult = true; + //if (!_webHostEnvironment.IsDevelopment()) + // captchaResult = _googleRecaptcha.IsSatisfy(CaptchaResponse).Result; + //if (captchaResult) + //{ + var verfiyResult = _accountApplication.GetByVerifyCode(code, phone); + if (verfiyResult != null) + { + + var result = _accountApplication.LoginWithMobile(verfiyResult.Id); + if (result.IsSuccedded && result.SendId == 1) + { + return new JsonResult(new + { + exist = true, + url = "/Admin", + }); + } + + + if (result.IsSuccedded && result.SendId == 2) + { + return new JsonResult(new + { + exist = true, + url = "/Client", + }); + } + + } + //} + //else + //{ + // Mess = "دستگاه شما ربات تشخیص داده شد"; + //} + + + + return new JsonResult(new + { + exist = false, + }); + + } + + public IActionResult OnPostVerify(string code, string phone) + { + var result = _accountApplication.GetByVerifyCode(code, phone); + if (result != null) + { + return new JsonResult(new + { + exist = true, + user = result.Username, + verfyId = result.Id + + }); + } + else + { + return new JsonResult(new + { + exist = false, + }); + } + } + + public IActionResult OnPostChangePass(long id, string username, string newpass) + { + var result = _accountApplication.GetByUserNameAndId(id, username); + if (result != null) + { + var command = new ChangePassword() + { + Id = id, + Password = newpass, + RePassword = newpass + }; + var finalResult = _accountApplication.ChangePassword(command); + if (finalResult.IsSuccedded) + { + return new JsonResult(new + { + exist = true, + changed = true + + }); + } + else + { + return new JsonResult(new + { + exist = true, + changed = false + + }); + } + + } + else + { + return new JsonResult(new + { + exist = false, + changed = false + }); + } + } +} + + +public class RecaptchaResponse +{ + [JsonProperty("success")] public bool Success { get; set; } + + [JsonProperty("challenge_ts")] public DateTimeOffset ChallengeTs { get; set; } + + [JsonProperty("hostname")] public string HostName { get; set; } +} \ No newline at end of file diff --git a/ServiceHost/Pages/rule/Index.cshtml b/ServiceHost/Pages/rule/Index.cshtml new file mode 100644 index 00000000..615c6313 --- /dev/null +++ b/ServiceHost/Pages/rule/Index.cshtml @@ -0,0 +1,493 @@ +@page +@model ServiceHost.Pages.rule.IndexModel +@{ + Layout = "Shared/_LayoutHome"; + + +} + + + + + + +
+
+
+ قوانین و مقررات سامانه گزارش‌گیر +
+
+
+ + +
+ + + +@* w-full space-y-12 md:w-8/12 lg:w-9/12 *@ +
+

+ این سند به‌منظور تبیین حقوق، تعهدات و مسئولیت‌های متقابل میان کاربران و شرکت «داده‌پردازان گزارش‌گیر منطقه آزاد انزلی» تدوین شده و استفاده از سامانه gozareshgir.ir به معنای پذیرش کامل مفاد آن است. هدف از نگارش این متن، شفاف‌سازی نحوه استفاده از خدمات، محدودیت‌ها و الزامات قانونی سامانه می‌باشد. +

+ + @*

+ لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ، و با استفاده از طراحان گرافیک است، چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است، و برای شرایط فعلی تکنولوژی مورد نیاز، و کاربردهای متنوع با هدف بهبود ابزارهای کاربردی می باشد، کتابهای زیادی در شصت و سه درصد گذشته حال و آینده، شناخت فراوان جامعه و متخصصان را می طلبد، تا با نرم افزارها شناخت بیشتری را برای طراحان رایانه ای علی الخصوص طراحان خلاقی، و فرهنگ پیشرو در زبان فارسی ایجاد کرد، در این صورت می توان امید داشت که تمام و دشواری موجود در ارائه راهکارها، و شرایط سخت تایپ به پایان رسد و زمان مورد نیاز شامل حروفچینی دستاوردهای اصلی، و جوابگوی سوالات پیوسته اهل دنیای موجود طراحی اساسا مورد استفاده قرار گیرد. +

+

+ لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ، و با استفاده از طراحان گرافیک است، چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است، و برای شرایط فعلی تکنولوژی مورد نیاز، و کاربردهای متنوع با هدف بهبود ابزارهای کاربردی می باشد، کتابهای زیادی در شصت و سه درصد گذشته حال و آینده، شناخت فراوان جامعه و متخصصان را می طلبد، تا با نرم افزارها شناخت بیشتری را برای طراحان رایانه ای علی الخصوص طراحان خلاقی، و فرهنگ پیشرو در زبان فارسی ایجاد کرد، در این صورت می توان امید داشت که تمام و دشواری موجود در ارائه راهکارها، و شرایط سخت تایپ به پایان رسد و زمان مورد نیاز شامل حروفچینی دستاوردهای اصلی، و جوابگوی سوالات پیوسته اهل دنیای موجود طراحی اساسا مورد استفاده قرار گیرد. +

*@ + +
+

۱. تعاریف و اصطلاحات

+ +
    +
  • + سامانه: پلتفرم نرم‌افزاری به نشانی اینترنتی gozareshgir.ir که جهت مدیریت امور مرتبط با منابع انسانی طراحی شده و خدماتی همچون ثبت تردد، صدور قرارداد، محاسبه حقوق و ارائه گزارشات را به سازمان‌ها ارائه می‌دهد. +
  • +
  • + شرکت: شرکت «داده‌پردازان گزارش‌گیر منطقه آزاد انزلی» به عنوان توسعه ‌دهنده، صاحب امتیاز، پشتیبان و بهره‌بردار رسمی این سامانه شناخته می‌شود. +
  • +
  • + کاربر: هر شخص حقیقی یا حقوقی که با هدف استفاده از خدمات سامانه در آن ثبت‌نام کرده یا از آن بهره‌برداری می‌نماید. +
  • +
  • + مشتری سازمانی: کارفرمایان، شرکت‌ها یا مؤسساتی که دارای پرسنل بوده و برای مدیریت منابع انسانی از سامانه استفاده می‌کنند. +
  • +
  • + خدمات سامانه: مجموعه‌ای از قابلیت‌های الکترونیکی شامل ثبت ورود و خروج، صدور قرارداد، فیش حقوقی، محاسبه مزایا، ارسال لیست بیمه، گزارش‌گیری مدیریتی، ثبت مساعده و وام و سایر خدمات مرتبط با حوزه منابع انسانی. +
  • +
+
+ +
+

۲. شرایط عضویت و استفاده

+ +
    +
  • + عضویت در سامانه تنها برای افراد بالای ۱۸ سال و دارای اهلیت قانونی مجاز است. +
  • +
  • + ثبت‌نام فقط از طریق شماره تلفن همراهی که به نام کاربر (کارفرما) ثبت شده باشد امکان‌پذیر است و در غیر این صورت، ثبت‌نام مسدود می‌شود. +
  • +
  • + کلیه اطلاعات ثبت‌شده در سامانه باید دقیق، صحیح و به‌روز باشد. مسئولیت هرگونه مغایرت، خطا یا عواقب ناشی از اطلاعات نادرست با کاربر است. +
  • +
  • + در صورت نقض قوانین سامانه، درج اطلاعات جعلی یا استفاده غیرمجاز، شرکت مجاز است حساب کاربری را مسدود کرده و هیچ‌گونه وجهی مسترد نخواهد شد. +
  • +
+
+ +
+

۳. شرح خدمات سامانه

+

+ سامانه گزارش‌گیر با هدف تسهیل امور اداری و منابع انسانی طراحی شده و خدمات زیر را به صورت یکپارچه در اختیار کاربران قرار می‌دهد: +

+ +
    +
  • + دقیق ساعات ورود و خروج پرسنل از طریق اپلیکیشن موبایل با استفاده از فناوری تشخیص چهره؛ +
  • +
  • + صدور قراردادهای کاری و فرم‌های تسویه حساب بر اساس اطلاعات پایه واردشده توسط کاربر به‌صورت کاملاً خودکار؛ +
  • +
  • + محاسبه حقوق و دستمزد بر اساس قوانین جاری کار، با در نظر گرفتن همه اجزای پرداختی و کسور قانونی از جمله حقوق پایه، اضافه‌کار، مرخصی، وام، مساعده، سنوات و غیره؛ +
  • +
  • + صدور فیش حقوقی به صورت PDF قابل چاپ به همراه گزارش‌های تجمیعی و دوره‌ای مدیریتی؛ +
  • +
  • + تولید فایل‌های استاندارد جهت ارسال به سامانه‌های تأمین اجتماعی برای پرداخت حق بیمه پرسنل؛ +
  • +
  • + ثبت و مدیریت مساعده‌ها و وام‌های کارکنان و انعکاس خودکار آن‌ها در فیش حقوقی مربوطه. +
  • +
+
+ +
+

۴. حقوق و مسئولیت‌های کاربران

+ +
    +
  • + کاربران مسئول صحت کلیه اطلاعات واردشده به سامانه می‌باشند و شرکت هیچ مسئولیتی در قبال اطلاعات اشتباه یا ناقص ندارد. +
  • +
  • + استفاده اشتراکی از حساب، دسترسی غیرمجاز، جعل هویت یا انتقال حساب به دیگران ممنوع است. +
  • +
  • + کاربران موظف‌اند اطلاعات محرمانه ورود مانند رمز عبور را به‌صورت ایمن نگهداری کنند. +
  • +
  • + کاربران حق استفاده از ساختارها، محتوای حقوقی و الگوریتم‌های سامانه در نرم‌افزارهای دیگر یا انتشار آن‌ها را ندارند. +
  • +
+
+ +
+

۵. حقوق و مسئولیت‌های سامانه

+ +
    +
  • + شرکت موظف است خدمات را با بالاترین کیفیت فنی ممکن و مطابق استانداردهای امنیتی ارائه دهد، اما مسئولیتی در خصوص نگهداری نسخه پشتیبان از اطلاعات کاربران ندارد. +
  • +
  • + در صورت عدم تمدید اشتراک توسط کاربر، دسترسی وی به سامانه بدون هشدار قبلی مسدود خواهد شد. +
  • +
  • + بروز اختلالات ناشی از قطع اینترنت، مشکلات سرور، یا حملات سایبری از شمول تعهدات شرکت خارج است. +
  • +
  • + کاربران می‌توانند از طریق دکمه پشتیبانی آنلاین مشکلات خود را اعلام کنند و شرکت موظف است در اسرع وقت پاسخ دهد. +
  • +
  • + در صورت تغییر قوانین کار یا بیمه، سامانه در سریع‌ترین زمان ممکن به‌روزرسانی‌های لازم را اعمال خواهد کرد. +
  • +
+
+ +
+

۶. محرمانگی و حفظ حریم خصوصی

+ +
    +
  • + کلیه اطلاعات کاربران به‌صورت محرمانه نزد سامانه باقی خواهد ماند و بدون حکم قانونی یا دستور مقام قضایی، در اختیار هیچ نهاد یا فرد ثالثی قرار نخواهد گرفت. +
  • +
  • + برای بهبود تجربه کاربری، ممکن است از کوکی یا سایر فناوری‌های ذخیره‌سازی مرورگر استفاده شود. +
  • +
  • + در صورت حذف حساب، اطلاعات کاربر در پایگاه داده باقی می‌ماند ولی دسترسی به آن مسدود خواهد شد. +
  • +
  • + استفاده از اطلاعات توسط سامانه صرفاً در همان حساب کاربری و برای ارائه خدمات مربوط به همان مشتری مجاز است. +
  • +
+
+ +
+

۷. امنیت و سوءاستفاده

+ +
    +
  • + هرگونه تلاش برای نفوذ، دستکاری اطلاعات، جعل هویت، یا انجام عملیات خرابکارانه از سوی کاربر منجر به مسدودسازی حساب و پیگیری قضایی خواهد شد. +
  • +
  • + کاربر متخلف موظف به جبران کامل خسارات واردشده به شرکت یا سایر کاربران است. +
  • +
  • + در صورت وقوع تهدید امنیتی یا نشت داده، به کاربر مربوطه اطلاع داده خواهد شد. +
  • +
  • + استفاده از نرم‌افزارهای جانبی، ربات‌ها، اسکریپت‌های خودکار یا دستکاری API ممنوع بوده و موجب انسداد فوری حساب می‌گردد. +
  • +
+
+ +
+

۸. مالکیت حقوقی و معنوی

+ +
    +
  • + کلیه حقوق نرم‌افزاری، طراحی گرافیکی، الگوریتم‌ها، مستندات و داده‌های سامانه متعلق به شرکت است. +
  • +
  • + کاربران صرفاً مجاز به استفاده از خروجی‌های گزارش برای مصارف داخلی سازمان خود هستند. +
  • +
  • + تهیه و انتشار اسکرین‌شات، ویدئو یا اسناد از محیط سامانه فقط برای آموزش درون‌سازمانی مجاز است. +
  • +
  • + هرگونه کپی‌برداری، بازتولید، انتقال یا توسعه نرم‌افزار مشابه بر اساس سامانه، نقض مالکیت فکری بوده و مشمول پیگیری قانونی خواهد بود. +
  • +
+
+ +
+

۹. تغییرات در قوانین و مقررات

+ +
    +
  • + شرکت این حق را دارد که هر زمان بدون اطلاع قبلی نسبت به اصلاح یا تکمیل این سند اقدام نماید. +
  • +
  • + اطلاع‌رسانی تغییرات از طریق اعلان داخل سامانه و پیامک به کاربر اصلی صورت خواهد گرفت. +
  • +
  • + ادامه استفاده از سامانه پس از اعمال تغییرات به‌منزله پذیرش شرایط جدید تلقی می‌گردد. +
  • +
  • + تغییر قوانین حقی برای درخواست بازگشت وجه یا فسخ قرارداد ایجاد نمی‌کند. +
  • +
+
+ +
+

۱۰. قانون حاکم و مرجع رسیدگی

+ +
    +
  • + کلیه مفاد این سند تحت شمول قوانین جمهوری اسلامی ایران خواهد بود. +
  • +
  • + در صورت بروز اختلاف، ابتدا موضوع از طریق پشتیبانی سامانه و مذاکره مستقیم پیگیری می‌شود. +
  • +
  • + در صورت عدم حصول توافق، رسیدگی از طریق مراجع صالح قضایی در ایران صورت خواهد گرفت. +
  • +
+
+
+ + +
+ + + +@section Script { + +} \ No newline at end of file diff --git a/ServiceHost/Pages/rule/Index.cshtml.cs b/ServiceHost/Pages/rule/Index.cshtml.cs new file mode 100644 index 00000000..a4159f58 --- /dev/null +++ b/ServiceHost/Pages/rule/Index.cshtml.cs @@ -0,0 +1,12 @@ +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc.RazorPages; + +namespace ServiceHost.Pages.rule +{ + public class IndexModel : PageModel + { + public void OnGet() + { + } + } +} diff --git a/ServiceHost/Pages/services/account-management.cshtml b/ServiceHost/Pages/services/account-management.cshtml new file mode 100644 index 00000000..de38ee3e --- /dev/null +++ b/ServiceHost/Pages/services/account-management.cshtml @@ -0,0 +1,103 @@ +@page +@model ServiceHost.Pages.services.account_managementModel +@{ + Layout = "Shared/_LayoutHome"; +} + + +
+ +
+
+

مدیریت کاربران

+

+ بخش "مدیریت کاربران" به کارفرما یا مدیر اصلی سیستم این امکان را می‌دهد که برای افراد مختلف (مثل مدیران، نماینده‌ها یا اعضای تیم منابع انسانی) حساب کاربری مجزا ایجاد کند و سطح دسترسی هر کدام را به‌صورت دقیق تنظیم نماید. +

+
+ + + ثبت نام + +
+
+ +
+
+ + + +
+
+
+
امکانات کلیدی این بخش
+ +
+
+ +
+ +
ایجاد حساب کاربری جدید
+

+ کارفرما می‌تواند با چند کلیک، برای یک فرد جدید یک حساب کاربری تعریف کند. +

+
+ +
+ +
تعیین نقش و سطح دسترسی
+

+ با استفاده از قابلیت «افزودن نقش جدید»، می‌توان برای هر کاربر مشخص کرد که به چه بخش‌هایی از نرم‌افزار دسترسی داشته باشد. +

+
+ +
+ +
مدیریت وضعیت کاربران
+

+ می‌توان حساب کاربران را هر زمان فعال یا غیرفعال کرد؛ بدون اینکه اطلاعاتشان حذف شود. این گزینه برای مواقعی که همکاری با یک شخص موقتاً متوقف می‌شود یا تغییر مسئولیت دارد، بسیار کاربردی است. +

+
+ +
+ +
ویرایش یا حذف کاربران
+

+ امکان ویرایش اطلاعات کاربران یا حذف کامل آنها از سیستم با یک کلیک در دسترس است. +

+
+ +
+
+ +
+
+
+ + + + +
+
+ +
+ +
+
+ +
+ +
+
مدیریت یکپارچه منابع انسانی و هوشمند
+

+ با استفاده از خدمات سامانه کارگاه، به اطلاعات پرسنلی، صورت‌حساب‌های مالی، گزارشات، حضور و غیاب، کارپوشه، مدیریت کاربران و پشتیبانی دسترسی داشته باشید و فرآیندهای سازمانی خود را بهینه کنید. +

+
+ +
+
diff --git a/ServiceHost/Pages/services/account-management.cshtml.cs b/ServiceHost/Pages/services/account-management.cshtml.cs new file mode 100644 index 00000000..ce7fc5c0 --- /dev/null +++ b/ServiceHost/Pages/services/account-management.cshtml.cs @@ -0,0 +1,12 @@ +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc.RazorPages; + +namespace ServiceHost.Pages.services +{ + public class account_managementModel : PageModel + { + public void OnGet() + { + } + } +} diff --git a/ServiceHost/Pages/services/employee.cshtml b/ServiceHost/Pages/services/employee.cshtml new file mode 100644 index 00000000..b263b2b9 --- /dev/null +++ b/ServiceHost/Pages/services/employee.cshtml @@ -0,0 +1,288 @@ +@page +@model ServiceHost.Pages.services.employeeModel +@{ + Layout = "Shared/_LayoutHome"; +} + + +
+ +
+
+

عملیات پرسنل

+

+ بخش "عملیات پرسنل" یکی از هسته‌های اصلی مدیریت منابع انسانی در نرم‌افزار شماست. این ماژول به شما امکان می‌دهد تا تمامی اطلاعات فردی، مالی و عملکردی پرسنل را به‌صورت متمرکز و ساختاریافته مدیریت کنید. در این بخش، ابزارهایی برای بررسی، ثبت، و گزارش‌گیری از فعالیت‌ها و سوابق کارکنان طراحی شده‌اند. +

+
+ + + ثبت نام + +
+
+ +
+
+ + + + + + + + +
+
+ +
+
+
+
+

لیست کل پرسنل

+

+ در این قسمت می‌توانید فهرست کاملی از تمامی کارکنان مجموعه را به‌صورت جدولی مشاهده کنید. این جدول شامل اطلاعات پایه هر فرد مانند نام، کد پرسنلی، کد ملی، سمت شغلی، نوع قرارداد، وضعیت فعال یا غیرفعال بودن و ... می‌باشد. همچنین قابلیت جستجو، فیلتر و مرتب‌سازی نیز برای تسریع در دسترسی فراهم شده است. +

+
+ +
+
+ +
+
+ +
+

لیست کل مرخصی

+

+ این بخش مخصوص ثبت و پیگیری درخواست‌ها و وضعیت مرخصی پرسنل است. شما می‌توانید مرخصی‌های استعلاجی، استحقاقی، بدون حقوق، ساعتی و ... را مشاهده و بررسی کنید. همچنین می‌توان سوابق تایید یا رد درخواست‌ها را در طول سال مشاهده نمود. این قابلیت به کنترل دقیق مانده مرخصی و مدیریت غیبت‌ها کمک زیادی می‌کند. +

+
+
+
+ +
+
+
+

حساب بانکی پرسنل

+

+ در این قسمت، اطلاعات مربوط به حساب بانکی هر کارمند ذخیره می‌شود. اطلاعاتی مانند شماره حساب، شماره شبا، نام بانک، نوع حساب و وضعیت فعال بودن آن. این اطلاعات نقش کلیدی در تهیه فایل‌های پرداخت حقوق و هماهنگی با سیستم بانکی دارند. +

+
+ +
+
+ +
+
+ +
+

مدارک پرسنل

+

+ بایگانی دیجیتال مدارک هر کارمند در این بخش انجام می‌شود. می‌توانید مدارکی مثل شناسنامه، کارت ملی، کارت پایان خدمت، گواهی تحصیلی، مدارک تخصصی، بیمه نامه، قرارداد امضا شده و ... را بارگذاری و طبقه‌بندی کنید. هر مدرک با تاریخ ثبت، نوع و امکان مشاهده سریع در دسترس است. +

+
+
+
+ +
+
+
+

وام

+

+ در این بخش، اطلاعات مربوط به وام‌هایی که به پرسنل اعطا شده مدیریت می‌شود. شامل مبلغ وام، تعداد اقساط، مبلغ هر قسط، تاریخ شروع و پایان پرداخت و وضعیت پرداخت‌ها. همچنین گزارش اقساط معوق یا تسویه‌شده نیز قابل مشاهده است. +

+
+ +
+
+ +
+
+ +
+

پاداش

+

+ تمامی پرداخت‌های تشویقی و پاداش‌ها از جمله پاداش بهره‌وری، عملکرد، سنوات و ... در این بخش ثبت و طبقه‌بندی می‌شوند. شما می‌توانید تاریخ پرداخت، مبلغ، دلیل و نوع پاداش را برای هر کارمند مشاهده و گزارش‌گیری کنید. +

+
+
+
+ +
+
+
+

مساعده

+

+ در صورتی که کارمندی درخواست مساعده داشته باشد، اطلاعات مربوط به درخواست، مبلغ تأیید شده، تاریخ پرداخت و نحوه بازپرداخت در این بخش ثبت می‌شود. این بخش به شفاف‌سازی ارتباط مالی بین سازمان و کارمند کمک می‌کند. +

+
+ +
+
+ +
+
+ +
+

جرایم

+

+ در صورت وجود تخلفات انضباطی یا دیرکرد در ورود و خروج، تأخیر، ترک محل کار یا سایر موارد، می‌توان جرایم مربوطه را ثبت کرد. اطلاعات شامل نوع تخلف، مبلغ جریمه، تاریخ، و توضیحات تکمیلی است. این بخش به حفظ نظم و قانون‌مداری در مجموعه کمک می‌کند. +

+
+
+
+ +
+
+
+ + +
+
+ +
+ +
+
+ +
+ +
+
مدیریت یکپارچه منابع انسانی و هوشمند
+

+ با استفاده از خدمات سامانه کارگاه، به اطلاعات پرسنلی، صورت‌حساب‌های مالی، گزارشات، حضور و غیاب، کارپوشه، مدیریت کاربران و پشتیبانی دسترسی داشته باشید و فرآیندهای سازمانی خود را بهینه کنید. +

+
+ +
+
+ +@section Script { + +} \ No newline at end of file diff --git a/ServiceHost/Pages/services/employee.cshtml.cs b/ServiceHost/Pages/services/employee.cshtml.cs new file mode 100644 index 00000000..22c30207 --- /dev/null +++ b/ServiceHost/Pages/services/employee.cshtml.cs @@ -0,0 +1,12 @@ +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc.RazorPages; + +namespace ServiceHost.Pages.services +{ + public class employeeModel : PageModel + { + public void OnGet() + { + } + } +} diff --git a/ServiceHost/Pages/services/rollcall.cshtml b/ServiceHost/Pages/services/rollcall.cshtml new file mode 100644 index 00000000..88db7d79 --- /dev/null +++ b/ServiceHost/Pages/services/rollcall.cshtml @@ -0,0 +1,365 @@ +@page +@model ServiceHost.Pages.services.rollcallModel +@{ + Layout = "Shared/_LayoutHome"; +} + + +
+ +
+
+

حضور و غیاب

+

+ ماژول "حضور و غیاب" یکی از مهم‌ترین اجزای سامانه منابع انسانی است که به‌صورت دقیق، هوشمند و بدون نیاز به روش‌های دستی، ورود و خروج پرسنل را ثبت و تحلیل می‌کند. با استفاده از این بخش، مدیران می‌توانند به‌صورت لحظه‌ای وضعیت کاری افراد را بررسی کرده و گزارش‌های دقیق از حضور، غیبت، مرخصی و مأموریت دریافت کنند. +

+
+ + + ثبت نام + +
+
+ +
+
+ + + + + + +
+
+ +
+
+
+
+

آپلود عکس پرسنل

+

+ این بخش مخصوص بارگذاری تصویر پرسنلی افراد برای استفاده در سامانه تشخیص چهره است. با ثبت عکس‌ها، نرم‌افزار می‌تواند به‌صورت اتوماتیک هویت کاربر را هنگام ورود و خروج از محل کار شناسایی کرده و حضور او را ثبت نماید. +

+ +
+ + + + + +
کاربرد
+
+ +

+ برای سیستم حضور و غیاب با تشخیص چهره، داشتن تصویر پرسنل الزامی است. این بخش تضمین می‌کند که هر تصویر به صورت استاندارد، واضح و مرتبط با هر کارمند ثبت شود. +

+
+ +
+
+ +
+
+ +
+

حضور و غیاب جاری

+

+ در این بخش، وضعیت زنده (Real-time) حضور و غیاب پرسنل نمایش داده می‌شود. +

+ +
    +
  • چه کسانی امروز وارد شده‌اند؟
  • +
  • چه کسانی هنوز ورود نزده‌اند؟
  • +
  • چه کسانی مرخصی یا مأموریت هستند؟
  • +
+
+ + + + + +
کاربرد
+
+

+ مدیر می‌تواند در لحظه بفهمد چند نفر در محل کار حضور دارند یا چه کسی تأخیر دارد. +

+
+
+
+ +
+
+
+

سوابق حضور و غیاب

+

+ تمامی ورود و خروج‌های ثبت‌شده، همراه با تاریخ، ساعت، نوع ثبت (ورود/خروج/مرخصی/مأموریت) و روش ثبت (تشخیص چهره، دستی، کارت) در این بخش ذخیره می‌شود. + +

+

+ همچنین گزارشات ماهانه و هفتگی قابل استخراج هستند. +

+ +
+ + + + + +
کاربرد
+
+

+ برای محاسبه حقوق، پاداش یا جریمه، این اطلاعات ضروری است. همچنین در صورت اعتراض کارمند، سوابق قابل بررسی و اثبات هستند. +

+
+ +
+
+ +
+
+ +
+

گروه‌بندی

+

+ با استفاده از این گزینه می‌توانید پرسنل را در گروه‌های مختلف دسته‌بندی کنید (مثلاً بخش مالی، پشتیبانی، فروش، تولید و ...). سپس برای هر گروه قوانین خاص حضور و غیاب تعریف شود. +

+ +
+ + + + + +
کاربرد
+
+

+ ممکن است بخش تولید از ۶ صبح تا ۳ بعدازظهر فعالیت داشته باشد ولی بخش اداری از ۸ تا ۵. با گروه‌بندی، نرم‌افزار حضور هر بخش را با شرایط خاص خودش بررسی می‌کند. +

+
+
+
+ +
+
+
+

تنظیم ساعت فعالیت مجموعه

+

+ در این قسمت می‌توان بازه‌های زمانی کاری سازمان یا هر گروه شغلی را تعریف کرد. +

+ +
    +
  • روزهای کاری
  • +
  • ساعات شروع و پایان
  • +
  • روزهای تعطیل رسمی یا اختصاصی
  • +
  • شیفت‌های چرخشی یا ثابت
  • +
+
+ + + + + +
کاربرد
+
+

+ برای بررسی تأخیر، اضافه‌کاری و محاسبه ساعات کاری، مرجع اصلی همین تنظیمات هستند. +

+
+ +
+
+ +
+
+ +
+

تنظیمات حساب کاربری دوربین

+

+ در صورتی که از دوربین یا دستگاه حضور و غیاب خاصی استفاده می‌کنید، این بخش امکان تنظیم و اتصال آن به سیستم را فراهم می‌کند. +

+ +
    +
  • تعیین آدرس دوربین
  • +
  • فعال‌سازی تشخیص چهره
  • +
  • تنظیمات امنیتی یا محدودیت‌ها
  • +
+
+ + + + + +
کاربرد
+
+

+ در شرکت‌هایی که چندین دوربین یا ورودی دارند، هر دستگاه به راحتی به سامانه متصل می‌شود و اطلاعات به‌صورت یکپارچه ثبت می‌گردد. +

+
+
+
+ +
+
+
+

مساعده

+

+ در صورتی که کارمندی درخواست مساعده داشته باشد، اطلاعات مربوط به درخواست، مبلغ تأیید شده، تاریخ پرداخت و نحوه بازپرداخت در این بخش ثبت می‌شود. این بخش به شفاف‌سازی ارتباط مالی بین سازمان و کارمند کمک می‌کند. +

+
+ +
+
+ +
+
+ +
+

جرایم

+

+ در صورت وجود تخلفات انضباطی یا دیرکرد در ورود و خروج، تأخیر، ترک محل کار یا سایر موارد، می‌توان جرایم مربوطه را ثبت کرد. اطلاعات شامل نوع تخلف، مبلغ جریمه، تاریخ، و توضیحات تکمیلی است. این بخش به حفظ نظم و قانون‌مداری در مجموعه کمک می‌کند. +

+
+
+
+ +
+
+
+ + +
+
+ +
+ +
+
+ +
+ +
+
مدیریت یکپارچه منابع انسانی و هوشمند
+

+ با استفاده از خدمات سامانه کارگاه، به اطلاعات پرسنلی، صورت‌حساب‌های مالی، گزارشات، حضور و غیاب، کارپوشه، مدیریت کاربران و پشتیبانی دسترسی داشته باشید و فرآیندهای سازمانی خود را بهینه کنید. +

+
+ +
+
+ +@section Script { + + +} \ No newline at end of file diff --git a/ServiceHost/Pages/services/rollcall.cshtml.cs b/ServiceHost/Pages/services/rollcall.cshtml.cs new file mode 100644 index 00000000..953a67a5 --- /dev/null +++ b/ServiceHost/Pages/services/rollcall.cshtml.cs @@ -0,0 +1,12 @@ +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc.RazorPages; + +namespace ServiceHost.Pages.services +{ + public class rollcallModel : PageModel + { + public void OnGet() + { + } + } +} diff --git a/ServiceHost/Pages/services/ticket.cshtml b/ServiceHost/Pages/services/ticket.cshtml new file mode 100644 index 00000000..53efc6fb --- /dev/null +++ b/ServiceHost/Pages/services/ticket.cshtml @@ -0,0 +1,105 @@ +@page +@model ServiceHost.Pages.services.ticketModel +@{ + Layout = "Shared/_LayoutHome"; +} + + +
+ +
+
+

پشتیبانی

+

+ بخش پشتیبانی در نرم‌افزار شما به شکلی طراحی شده که کاربران در هر صفحه‌ای که باشند، بتوانند سریع و دقیق مشکل یا درخواست خود را ثبت و پیگیری کنند. این بخش یکی از مهم‌ترین ابزارهای تعامل بین کاربران و تیم پشتیبانی است. +

+
+ + + ثبت نام + +
+
+ +
+
+ + + +
+
+
+
+
+ +
+ +
دکمه شناور پشتیبانی
+

+ در پایین تمام صفحات نرم‌افزار، یک دکمه پشتیبانی به‌صورت شناور قرار گرفته که همیشه در دسترس کاربران است.. +

+
+ + +
+ +
دکمه شناور پشتیبانی
+

+ در پایین تمام صفحات نرم‌افزار، یک دکمه پشتیبانی به‌صورت شناور قرار گرفته که همیشه در دسترس کاربران است.. +

+
+ + +
+ +
دکمه شناور پشتیبانی
+

+ در پایین تمام صفحات نرم‌افزار، یک دکمه پشتیبانی به‌صورت شناور قرار گرفته که همیشه در دسترس کاربران است.. +

+
+ + +
+ +
دکمه شناور پشتیبانی
+

+ در پایین تمام صفحات نرم‌افزار، یک دکمه پشتیبانی به‌صورت شناور قرار گرفته که همیشه در دسترس کاربران است.. +

+
+ +
+
+ + +
+
+
+ + + + +
+
+ +
+ +
+
+ +
+ +
+
مدیریت یکپارچه منابع انسانی و هوشمند
+

+ با استفاده از خدمات سامانه کارگاه، به اطلاعات پرسنلی، صورت‌حساب‌های مالی، گزارشات، حضور و غیاب، کارپوشه، مدیریت کاربران و پشتیبانی دسترسی داشته باشید و فرآیندهای سازمانی خود را بهینه کنید. +

+
+ +
+
diff --git a/ServiceHost/Pages/services/ticket.cshtml.cs b/ServiceHost/Pages/services/ticket.cshtml.cs new file mode 100644 index 00000000..2a7bf2ac --- /dev/null +++ b/ServiceHost/Pages/services/ticket.cshtml.cs @@ -0,0 +1,12 @@ +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc.RazorPages; + +namespace ServiceHost.Pages.services +{ + public class ticketModel : PageModel + { + public void OnGet() + { + } + } +} diff --git a/ServiceHost/Pages/services/workflow.cshtml b/ServiceHost/Pages/services/workflow.cshtml new file mode 100644 index 00000000..e4a217b2 --- /dev/null +++ b/ServiceHost/Pages/services/workflow.cshtml @@ -0,0 +1,104 @@ +@page +@model ServiceHost.Pages.services.workflowModel +@{ + Layout = "Shared/_LayoutHome"; +} + + +
+ +
+
+

کارپوشه، حضور و غیاب

+

+ این بخش، مرکز مدیریت و تعیین تکلیف وضعیت‌های ناقص یا مشکوک حضور و غیاب پرسنل است. اطلاعاتی که در این قسمت نمایش داده می‌شود، معمولاً شامل مواردی است که نیاز به بررسی و تأیید کارفرما یا مدیر مجموعه دارند. +

+
+ + + ثبت نام + +
+
+ +
+
+ + + +
+
+
+
+
کاربرد اصلی این بخش
+
غیبت‌های بدون ثبت درخواست
+

+ اگر پرسنلی در یک روز مشخص اصلاً حضور نداشته و هیچ مرخصی‌ای هم برای آن روز ثبت نکرده، سیستم به‌صورت خودکار این مورد را در کارپوشه مدیر ثبت می‌کند.مدیر باید تعیین کند که این مورد: +

+ +
    +
  • غیبت تلقی شود
  • +
  • یا برگه مرخصی برای آن صادر گردد
  • +
  • یا به هر دلیلی (مثلاً مأموریت یا اشتباه سیستمی) اصلاح شود
  • +
+ +
+ + +
+
ورود ثبت شده، اما خروج ثبت نشده
+

+ اگر پرسنلی هنگام ورود ثبت انجام دهد ولی فراموش کند خروج را بزند، سیستم در پایان ساعات کاری به‌طور خودکار خروج ثبت می‌کند. +

+

+ فردای آن روز، این مورد به مدیر اطلاع داده می‌شود و منتظر تایید یا اصلاح است. مدیر می‌تواند: +

+ +
    +
  • خروج ثبت ‌شده توسط سیستم را تأیید کند
  • +
  • یا آن را حذف کرده و زمان دقیق دیگری ثبت کند
  • +
+ + + +
مزایای این بخش
+
    +
  • جلوگیری از خطای انسانی در ثبت حضور و غیاب
  • +
  • کاهش اختلافات بین کارفرما و کارمند در مورد ساعت کاری
  • +
  • مستندسازی کامل تمامی اصلاحات و تأییدیه‌ها
  • +
  • کمک به محاسبه دقیق حقوق، پاداش، اضافه‌کاری و کسورات
  • +
+ + +
+
+
+
+ + + +
+
+ +
+ +
+
+ +
+ +
+
مدیریت یکپارچه منابع انسانی و هوشمند
+

+ با استفاده از خدمات سامانه کارگاه، به اطلاعات پرسنلی، صورت‌حساب‌های مالی، گزارشات، حضور و غیاب، کارپوشه، مدیریت کاربران و پشتیبانی دسترسی داشته باشید و فرآیندهای سازمانی خود را بهینه کنید. +

+
+ +
+
diff --git a/ServiceHost/Pages/services/workflow.cshtml.cs b/ServiceHost/Pages/services/workflow.cshtml.cs new file mode 100644 index 00000000..4dd9810b --- /dev/null +++ b/ServiceHost/Pages/services/workflow.cshtml.cs @@ -0,0 +1,12 @@ +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc.RazorPages; + +namespace ServiceHost.Pages.services +{ + public class workflowModel : PageModel + { + public void OnGet() + { + } + } +} diff --git a/ServiceHost/Pages/services/workshop.cshtml b/ServiceHost/Pages/services/workshop.cshtml new file mode 100644 index 00000000..13335369 --- /dev/null +++ b/ServiceHost/Pages/services/workshop.cshtml @@ -0,0 +1,220 @@ +@page +@model ServiceHost.Pages.services.workshopModel +@{ + Layout = "Shared/_LayoutHome"; +} + + +
+ +
+
+

عملیات کارگاه

+

+ بخش عملیات کارگاه به عنوان یکی از کلیدی‌ترین ماژول‌های نرم‌افزار منابع انسانی، امکانات جامعی برای مدیریت اطلاعات پایه‌ای کارکنان در اختیار مدیران منابع انسانی، کارفرمایان و کارشناسان اداری قرار می‌دهد. این بخش به شما کمک می‌کند تا با دسترسی یکپارچه و سریع، کنترل دقیقی بر روی وضعیت کاری، مالی و بیمه‌ای کارکنان خود داشته باشید. +

+
+ + + ثبت نام + +
+
+ +
+
+ + + + + + + +
+
+ +
+
+
+
+

لیست قرارداد

+

+ در این قسمت، تمامی قراردادهای ثبت‌شده برای کارکنان قابل مشاهده و مدیریت است. شما می‌توانید اطلاعاتی مانند نوع قرارداد (موقت، دائمی، پروژه‌ای و ...)، تاریخ شروع و پایان، سمت شغلی، مبلغ قرارداد، شرایط فسخ، و سایر بندهای قانونی را مشاهده، ویرایش یا تمدید نمایید. +

+

+ این قابلیت به شما امکان می‌دهد که سوابق قراردادی افراد را در طول زمان ردیابی کرده و از تطابق آن با قوانین کار اطمینان حاصل کنید. +

+
+ +
+
+ +
+
+ +
+

لیست فیش حقوقی

+

+ تمامی فیش‌های حقوقی صادرشده برای هر کارمند در این بخش ذخیره و دسته‌بندی شده‌اند. شما می‌توانید جزئیات دقیق فیش‌ها را شامل حقوق پایه، اضافه‌کاری، حق بیمه، مزایا (بن کارگری، حق مسکن، خواربار و...) و کسورات (مالیات، غیبت، دیرکرد، وام و...) مشاهده و بررسی کنید. +

+

+ این بخش برای حسابداری حقوق و شفاف‌سازی پرداخت‌ها بسیار حیاتی است. +

+
+
+
+ +
+
+
+

لیست بیمه

+

+ در این بخش، اطلاعات مربوط به وضعیت بیمه تأمین اجتماعی هر کارمند ثبت می‌شود. مدیران می‌توانند بررسی کنند که چه کسانی بیمه شده‌اند، چه حق بیمه‌ای پرداخت شده، و وضعیت ارسال لیست بیمه در هر ماه چگونه است. همچنین این بخش امکان تهیه گزارش برای ارسال به سازمان تأمین اجتماعی را نیز فراهم می‌کند. +

+
+ +
+
+ +
+
+
+

گزارش وضعیت انفرادی پرسنل

+

+ با استفاده از این گزینه می‌توانید برای هر کارمند به صورت جداگانه، گزارشی جامع تهیه کنید که شامل اطلاعات قرارداد، سوابق حضور و غیاب، مرخصی‌ها، ماموریت‌ها، فیش‌های حقوقی، و وضعیت بیمه باشد. این گزارش برای جلسات انضباطی، ارزیابی عملکرد یا تمدید قرارداد بسیار مفید است. +

+
+
+

گزارش وضعیت گروهی پرسنل

+

+ این قسمت به شما اجازه می‌دهد تا به صورت دسته‌جمعی، گزارش‌هایی از وضعیت کلی کارکنان دریافت کنید. به عنوان مثال، می‌توانید گزارشی از تمام افراد یک دپارتمان خاص بگیرید که شامل اطلاعاتی مانند نوع قرارداد، تعداد روزهای کاری، مجموع مرخصی‌ها، مجموع اضافه‌کاری‌ها و وضعیت حقوقی و بیمه‌ای آنها باشد. این نوع گزارش‌گیری به تصمیم‌گیری مدیریتی و تحلیل منابع انسانی کمک بزرگی می‌کند. +

+
+
+ +
+ + +
+
+
+ +
+
+ +
+ +
+
+ +
+ +
+
مدیریت یکپارچه منابع انسانی و هوشمند
+

+ با استفاده از خدمات سامانه کارگاه، به اطلاعات پرسنلی، صورت‌حساب‌های مالی، گزارشات، حضور و غیاب، کارپوشه، مدیریت کاربران و پشتیبانی دسترسی داشته باشید و فرآیندهای سازمانی خود را بهینه کنید. +

+
+ +
+
+ +@section Script { + + +} \ No newline at end of file diff --git a/ServiceHost/Pages/services/workshop.cshtml.cs b/ServiceHost/Pages/services/workshop.cshtml.cs new file mode 100644 index 00000000..4c7741dc --- /dev/null +++ b/ServiceHost/Pages/services/workshop.cshtml.cs @@ -0,0 +1,12 @@ +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc.RazorPages; + +namespace ServiceHost.Pages.services +{ + public class workshopModel : PageModel + { + public void OnGet() + { + } + } +} diff --git a/ServiceHost/Program.cs b/ServiceHost/Program.cs index d2dada1e..0f5f7853 100644 --- a/ServiceHost/Program.cs +++ b/ServiceHost/Program.cs @@ -1,5 +1,6 @@ -using System; +using System; using System.Collections.Generic; +using System.Reflection; using _0_Framework.Application.Sms; using _0_Framework.Application; using AccountManagement.Configuration; @@ -17,7 +18,17 @@ using ServiceHost.Hubs; using ServiceHost.MiddleWare; using WorkFlow.Infrastructure.Config; using _0_Framework.Application.UID; +using _0_Framework.Exceptions.Handler; +using Microsoft.OpenApi.Models; using ServiceHost.Test; +using System.Text.Json.Serialization; +using System.Text.Json; +using Microsoft.AspNetCore.CookiePolicy; +using Microsoft.AspNetCore.Mvc.Infrastructure; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Diagnostics; + + var builder = WebApplication.CreateBuilder(args); @@ -36,6 +47,18 @@ builder.Services.AddHttpContextAccessor(); builder.Services.AddHttpClient("holidayApi", c => c.BaseAddress = new System.Uri("https://api.github.com")); var connectionString = builder.Configuration.GetConnectionString("MesbahDb"); var connectionStringTestDb = builder.Configuration.GetConnectionString("TestDb"); + +#region MongoDb + +//var mongoConnectionSection = builder.Configuration.GetSection("MongoDb"); +//var mongoDbSettings = mongoConnectionSection.Get(); +//var mongoClient = new MongoClient(mongoDbSettings.ConnectionString); +//var mongoDatabase = mongoClient.GetDatabase(mongoDbSettings.DatabaseName); + +//builder.Services.AddSingleton(mongoDatabase); + +#endregion +builder.Services.AddSingleton, CustomJsonResultExecutor>(); PersonalBootstrapper.Configure(builder.Services, connectionString); TestDbBootStrapper.Configure(builder.Services, connectionStringTestDb); AccountManagementBootstrapper.Configure(builder.Services, connectionString); @@ -55,6 +78,7 @@ builder.Services.AddTransient(); #region Mahan builder.Services.AddTransient(); +builder.Services.Configure(builder.Configuration); #endregion @@ -71,8 +95,19 @@ builder.Services.Configure(options => builder.Services.Configure(options => { options.CheckConsentNeeded = context => true; - options.MinimumSameSitePolicy = SameSiteMode.Strict; + //options.MinimumSameSitePolicy = SameSiteMode.Strict; }); +var domain = builder.Configuration["Domain"]; + +builder.Services.ConfigureApplicationCookie(options => +{ + //options.Cookie.Name = "GozarAuth"; + options.Cookie.HttpOnly = true; + options.Cookie.SameSite = SameSiteMode.None; // مهم ✅ + options.Cookie.SecurePolicy = CookieSecurePolicy.Always; // فقط روی HTTPS کار می‌کنه ✅ + options.Cookie.Domain = domain; // دامنه مشترک بین پدر و ساب‌دامین‌ها ✅ +}); + builder.Services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme) .AddCookie(CookieAuthenticationDefaults.AuthenticationScheme, o => @@ -127,6 +162,16 @@ builder.Services.AddAuthorization(options => // }); +builder.Services.AddControllers().AddJsonOptions(options => +{ + options.JsonSerializerOptions.Converters.Add(new JsonStringEnumConverter()); +}); + +//builder.Services.AddControllers( +//options=> { +// options.Filters.Add(new ApiJsonEnumFilter()); +//}); + builder.Services.AddRazorPages(options => options.Conventions.AuthorizeAreaFolder("Admin", "/", "AdminArea")); @@ -157,9 +202,110 @@ builder.Services.AddSignalR(); #endregion +#region Swagger +builder.Services.AddSwaggerGen(options => +{ + options.UseInlineDefinitionsForEnums(); + + var xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml"; + var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile); + options.IncludeXmlComments(xmlPath); + + // Get XML comments from the class library + var classLibraryXmlFile = "CompanyManagment.App.Contracts.xml"; + var classLibraryXmlPath = Path.Combine(AppContext.BaseDirectory, classLibraryXmlFile); + options.IncludeXmlComments(classLibraryXmlPath); + + + options.SwaggerDoc("General", new OpenApiInfo { Title = "API - General", Version = "v1" }); + options.SwaggerDoc("Admin", new OpenApiInfo { Title = "API - Admin", Version = "v1" }); + options.SwaggerDoc("Client", new OpenApiInfo { Title = "API - Client", Version = "v1" }); + options.SwaggerDoc("Camera", new OpenApiInfo { Title = "API - Camera", Version = "v1" }); + + options.DocInclusionPredicate((docName, apiDesc) => string.Equals(docName, apiDesc.GroupName, StringComparison.OrdinalIgnoreCase)); + + + // اضافه کردن پشتیبانی از JWT در Swagger + options.AddSecurityDefinition("Bearer", new Microsoft.OpenApi.Models.OpenApiSecurityScheme + { + Name = "Authorization", + Type = Microsoft.OpenApi.Models.SecuritySchemeType.ApiKey, + Scheme = "Bearer", + BearerFormat = "JWT", + In = Microsoft.OpenApi.Models.ParameterLocation.Header, + Description = "لطفاً 'Bearer [space] token' را وارد کنید." + }); + + options.AddSecurityRequirement(new Microsoft.OpenApi.Models.OpenApiSecurityRequirement + { + { + new Microsoft.OpenApi.Models.OpenApiSecurityScheme + { + Reference = new Microsoft.OpenApi.Models.OpenApiReference + { + Type = Microsoft.OpenApi.Models.ReferenceType.SecurityScheme, + Id = "Bearer" + } + }, + Array.Empty() + } + }); + + options.EnableAnnotations(); +}); +#endregion + +#region CORS + +builder.Services.AddCors(options => +{ + options.AddPolicy("AllowSpecificOrigins", policy => + { + policy.WithOrigins( + "http://localhost:3000", + "http://localhost:4000", + "http://localhost:4001", + "http://localhost:3001", + "https://gozareshgir.ir", + "https://dad-mehr.ir", + "https://admin.dad-mehr.ir", + "https://admin.gozareshgir.ir" + ) + .AllowAnyHeader() + .AllowAnyMethod() + .AllowCredentials(); + }); +}); + +//builder.Services.AddCors(options => +//{ +// options.AddPolicy("AllowAny", policy => +// { +// policy.AllowAnyOrigin() +// .AllowAnyHeader() +// .AllowAnyMethod(); +// }); +// options.AddPolicy("AllowSpecificOrigins", policy => +// { +// policy.WithOrigins("http://localhost:3000", "http://localhost:3001", "https://gozareshgir.ir", "https://dad-mehr.ir") +// .AllowAnyHeader() +// .AllowAnyMethod() +// .AllowCredentials(); +// }); +//}); +#endregion + +builder.Services.AddExceptionHandler(); + + var app = builder.Build(); +app.UseCors("AllowSpecificOrigins"); + + + #region Mahan -app.UseStatusCodePagesWithRedirects("/error/{0}"); + +//app.UseStatusCodePagesWithRedirects("/error/{0}"); //the backend Tester if (builder.Environment.IsDevelopment()) @@ -169,10 +315,23 @@ if (builder.Environment.IsDevelopment()) await tester.Test(); } +if (app.Environment.IsDevelopment()) +{ + app.UseSwagger(); + app.UseSwaggerUI(options => + { + options.SwaggerEndpoint("/swagger/General/swagger.json", "API - General"); + options.SwaggerEndpoint("/swagger/Admin/swagger.json", "API - Admin"); + options.SwaggerEndpoint("/swagger/Client/swagger.json", "API - Client"); + options.SwaggerEndpoint("/swagger/Camera/swagger.json", "API - Camera"); + }); +} #endregion //Create Http Pipeline #region Create Http Pipeline + + if (builder.Environment.IsDevelopment()) { app.UseDeveloperExceptionPage(); @@ -183,23 +342,30 @@ else app.UseHsts(); } +app.UseExceptionHandler(options => { }); // این خط CustomExceptionHandler رو فعال می‌کنه + +app.UseRouting(); + app.UseAuthentication(); +app.UseAuthorization(); + + app.UseHttpsRedirection(); + app.UseStaticFiles(); app.UseCookiePolicy(); -app.UseRouting(); -app.UseAuthorization(); #region Mahan //app.UseLoginHandlerMiddleware(); //app.UseCheckTaskMiddleware(); +app.UseMiddleware(); #endregion diff --git a/ServiceHost/ServiceHost.csproj b/ServiceHost/ServiceHost.csproj index d03e3d54..76206104 100644 --- a/ServiceHost/ServiceHost.csproj +++ b/ServiceHost/ServiceHost.csproj @@ -3,8 +3,10 @@ net8.0 enable + true - + + true @@ -88,9 +90,12 @@ + + + @@ -383,7 +388,6 @@ - diff --git a/ServiceHost/ServiceHost.sln b/ServiceHost/ServiceHost.sln new file mode 100644 index 00000000..ba08276e --- /dev/null +++ b/ServiceHost/ServiceHost.sln @@ -0,0 +1,24 @@ +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.5.2.0 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServiceHost", "ServiceHost.csproj", "{A7FC06EB-C37E-33D2-FBED-09D896C572BE}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {A7FC06EB-C37E-33D2-FBED-09D896C572BE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A7FC06EB-C37E-33D2-FBED-09D896C572BE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A7FC06EB-C37E-33D2-FBED-09D896C572BE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A7FC06EB-C37E-33D2-FBED-09D896C572BE}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {C04A14A6-610A-4319-882E-9166DFF2F9C3} + EndGlobalSection +EndGlobal diff --git a/ServiceHost/appsettings.Development.json b/ServiceHost/appsettings.Development.json index 909ff3cd..663f601a 100644 --- a/ServiceHost/appsettings.Development.json +++ b/ServiceHost/appsettings.Development.json @@ -31,7 +31,8 @@ "SmsSecrets": { "ApiKey": "Og5M562igmzJRhQPnq0GdtieYdLgtfikjzxOmeQBPxJjZtyge5Klc046Lfw1mxSa", "SecretKey": "dadmehr" - } + }, + "Domain": ".dad-mehr.ir" } diff --git a/ServiceHost/appsettings.json b/ServiceHost/appsettings.json index b5c17e38..f5d3497b 100644 --- a/ServiceHost/appsettings.json +++ b/ServiceHost/appsettings.json @@ -10,6 +10,9 @@ //"MesbahDb": "Data Source=.\\MSSQLSERVER2019;Initial Catalog=mesbah_db;Persist Security Info=False;User ID=mesbah_db;Password=sa142857$@;" "MesbahDb": "Data Source=.;Initial Catalog=mesbah_db;Integrated Security=True;TrustServerCertificate=true;", + //dad-mehr + //"MesbahDb": "Data Source=.;Initial Catalog=teamWork;Integrated Security=True;TrustServerCertificate=true;", + //testDb "TestDb": "Data Source=.;Initial Catalog=TestDb;Integrated Security=True;TrustServerCertificate=true;" }, @@ -22,5 +25,6 @@ "faceModels": { "Faces": "c://labels//20//" }, - "AllowedHosts": "*" + "AllowedHosts": "*", + "Domain": ".gozareshgir.ir" } diff --git a/ServiceHost/wwwroot/AssetsClient/css/style.css b/ServiceHost/wwwroot/AssetsClient/css/style.css index a34a6668..f22f8bdb 100644 --- a/ServiceHost/wwwroot/AssetsClient/css/style.css +++ b/ServiceHost/wwwroot/AssetsClient/css/style.css @@ -96,6 +96,12 @@ outline: none; } +.ss03 { + -moz-font-feature-settings: "ss03"; + -webkit-font-feature-settings: "ss03"; + font-feature-settings: "ss03"; +} + /* Scrollbar Styling */ ::-webkit-scrollbar { width: 10px; @@ -1058,6 +1064,24 @@ ul { /* Buttons */ +button.btn-pdf { + border: 1px solid transparent; + width: 30px; + height: 30px; + border-radius: 5px; + padding: 3px 1px; + color: #E83838; + margin: auto 0 auto 1px; + background-color: rgba(211, 8, 37, 0.2); + box-shadow: 0; + transition: ease .2s; +} + +button.btn-pdf svg { + color: rgb(174, 0, 0); + fill: rgb(174, 0, 0); +} + button.btn-print { border: 1px solid transparent; width: 30px; @@ -1071,18 +1095,18 @@ button.btn-print { transition: ease .2s; } - button.btn-print svg { - color: #1E293B; - } +button.btn-print svg { + color: #1E293B; +} - button.btn-print:hover { - color: #ffffff; - background-color: rgba(52, 209, 209, 0.50); - } +button.btn-print:hover { + color: #ffffff; + background-color: rgba(52, 209, 209, 0.50); +} - button.btn-print:hover svg { - color: #1E293B; - } +button.btn-print:hover svg { + color: #1E293B; +} button.btn-edit, a .btn-edit { diff --git a/ServiceHost/wwwroot/AssetsClient/js/darkmode.js b/ServiceHost/wwwroot/AssetsClient/js/darkmode.js index f2fc3e29..a8ec3b21 100644 --- a/ServiceHost/wwwroot/AssetsClient/js/darkmode.js +++ b/ServiceHost/wwwroot/AssetsClient/js/darkmode.js @@ -3,12 +3,14 @@ const darkModeToggle = document.querySelector("#btn-darkmode"); // const darkModeMobileToggle = document.querySelector("#btn-mobiledarkmode"); const enableDarkMode = () => { - document.body.classList.add("darkmode"); + document.documentElement.classList.add("dark"); + //document.body.classList.add("dark"); localStorage.setItem("darkMode", "enabled"); } const disableDarkMode = () => { - document.body.classList.remove("darkmode"); + document.documentElement.classList.remove("dark"); + //document.body.classList.remove("dark"); localStorage.setItem("darkMode", null); } diff --git a/ServiceHost/wwwroot/AssetsClient/js/services/ajax-service.js b/ServiceHost/wwwroot/AssetsClient/js/services/ajax-service.js index 3d89cd44..f28ee328 100644 --- a/ServiceHost/wwwroot/AssetsClient/js/services/ajax-service.js +++ b/ServiceHost/wwwroot/AssetsClient/js/services/ajax-service.js @@ -7,6 +7,8 @@ } sendRequest({ url, method = "GET", data = {}, async = true }) { + console.log("data"); + console.log(data); return new Promise((resolve, reject) => { const isFormData = data instanceof FormData; diff --git a/ServiceHost/wwwroot/AssetsClient/pages/Register/css/Index.css b/ServiceHost/wwwroot/AssetsClient/pages/Register/css/Index.css new file mode 100644 index 00000000..9d871ff3 --- /dev/null +++ b/ServiceHost/wwwroot/AssetsClient/pages/Register/css/Index.css @@ -0,0 +1,385 @@ +body { + height: 100vh; + overflow: hidden; +} + +.registerTitleSteps { + font-size: 16px; + font-weight: 900; + color: #22A8A8; +} + +.customRegisterSteps { + padding: 12px; + background-color: #ffffff; + height: 100vh; + display: flex; + flex-direction: column; + justify-content: space-between; + align-items: start; + position: relative; +} + + +.contactUsImage { + background: linear-gradient(101.76deg, #146868 0%, #035757 100%); + border-radius: 20px; + align-items: center; + justify-content: center; + color: #ffffff; + flex-direction: column; + margin: 10px; +} + + .contactUsImage .svgLine { + top: 0; + right: -9px; + z-index: 1; + } + + .contactUsImage h3 { + font-weight: 800; + font-size: 20px; + color: #ffffff; + padding-bottom: 10px; + } + + .contactUsImage p { + font-weight: 500; + text-align: justify; + font-size: 12px; + color: #ffffff; + } + + .contactUsImage a { + font-weight: 500 !important; + font-size: 14px !important; + text-align: center; + color: #138F8F !important; + border-radius: 10px; + border: 1px solid #2DBCBC; + width: 132px !important; + margin: 3px auto auto; + z-index: 2; + } + +.errored { + animation: shake 300ms; + color: #eb3434 !important; + background-color: #fef2f2 !important; + border: 1px solid #eb3434 !important; + border-radius: 9px !important; +} + +.progressStepDiv { + display: flex; + justify-content: center; + align-items: center; + gap: 20px; + flex-direction: column; + justify-content: space-between; + margin: 30px auto; + align-items: start; +} + +.progressSteps { + display: flex; + justify-content: center; + align-items: center; + gap: 9px; +} + .progressSteps.currentStep { + color: #22A8A8; + } + + .progressSteps.completeStep { + color: #A3E635 !important; + } + +.bulletContainer { + position: absolute; + display: flex; + gap: 24px; + bottom: -6px; + left: 50%; + transform: translate(-50%, 0); +} + +.bullet { + background-color: #D9D9D9 !important; + box-shadow: 0px 2px 6px rgba(0, 0, 0, 0.3); + width: 15px; + height: 15px; + border-radius: 20px; +} + .bullet.currentStep { + background-color: #22A8A8 !important; + } + + .bullet.completeStep { + background-color: #A3E635 !important; + } + +.numberSteps { + font-size: 18px; + font-weight: 700; + color: #C7C7C7; + border: 4px solid #C7C7C7; + border-radius: 50%; + width: 50px; + height: 50px; + display: flex; + justify-content: center; + align-items: center; +} + +.currentStep .numberSteps { + border-color: #22A8A8; + color: #22A8A8; +} + +.completeStep .numberSteps { + border-color: #A3E635; + color: #A3E635; +} + +.textTitleSteps { + color: #C7C7C7; +} + +.textTitleSteps div:first-child { + font-size: 18px; + font-weight: 700; +} + +.textTitleSteps div:last-child { + font-size: 14px; + font-weight: 500; +} + +.currentStep .textTitleSteps { + color: #22A8A8; +} + +.completeStep .textTitleSteps { + color: #A3E635; +} + +#logoSvg { + width: 150px; +} + + +.customRegisterForm { + border-right: 1px solid #D0D0D0; + height: 100vh; + display: flex; + flex-direction: column; + width: 100%; + justify-content: space-between; + align-items: center; +} + +.stepBtn { + background-color: #84CC16; + color: #ffffff; + padding: 6px 9px; + width: 180px; + border-radius: 5px; + text-align: center; +} + + .stepBtn:hover { + background-color: #5f9213; + } + +.step { + display: flex; + flex-direction: column; + gap: 6px; + align-items: center; + justify-content: space-between; + height: 90vh; + padding: 10px; +} + + +/* ------------------------------ Step 1 ------------------------------ */ +.authorizeStep, .infoStep { + width: 39%; + margin: auto +} + +.labelRegisterForm { + color: #5C5C5C; + font-size: 13px; + font-weight: 600; +} + +.form-control { + border-radius: 10px !important; + border: 1px solid #C6C6C6; + font-size: 14px !important; + padding: 9px !important; +} + +.btnEnter { + background: rgb(46,191,191); + background: linear-gradient(130deg, rgba(46,191,191,1) 0%, rgba(10,119,119,1) 100%); + border-radius: 5px; + color: #ffffff; + padding: 9px; + margin: 60px auto auto; + width: 90% +} +/* ------------------------------ Step 1 ------------------------------ */ + + + +/* ------------------------------ Step 2 ------------------------------ */ +.lineRegister { + width: 100%; + height: 1px; + border-radius: 50px; + background: rgb(238,238,238); + background: linear-gradient(90deg, rgba(238,238,238,1) 0%, rgba(46,46,46,1) 50%, rgba(238,238,238,1) 100%); +} + +.titlePrice { + color: #737373; + font-size: 14px; + font-weight: 600; +} + +.totalPrice { + color: #1ABA3D; + font-size: 13px; + font-weight: 600; + width: 160px; + text-align: left; +} +/* ------------------------------ Step 2 ------------------------------ */ +.openAction { + margin: 6px auto; +} + +.select2-container--default .select2-selection--single .select2-selection__arrow { + left: 0; + right: auto !important; +} + +.select2-container .select2-selection--single .select2-selection__rendered { + padding-right: 5px !important; +} + +.operations-btns { + background: #ffffff; + border-radius: 0px 0px 8px 8px; + width: 100%; + margin: 0; + border-top: 1px solid #CACACA; + box-shadow: none; +} + +@media (max-width:1366px) { + .step { + padding: 0px; + } + + .progressStepDiv { + gap: 15px; + margin: 20px auto; + } + + .numberSteps { + font-weight: 800; + width: 45px; + height: 45px; + } + + .textTitleSteps div:first-child { + font-size: 15px; + font-weight: 800; + } + + .textTitleSteps div:last-child { + font-size: 13px; + font-weight: 600; + } + + .authorizeStep, .infoStep { + width: 63%; + margin: auto + } + + .contactUsImage { + margin: 0 auto; + } + + .contactUsImage h3 { + font-size: 15px; + } + + .contactUsImage p { + font-size: 11px; + } + + .contactUsImage a { + font-size: 13px !important; + width: 122px !important; + } + + #logoSvg { + width: 130px; + } +} + +@media (max-width:992px) { + .customRegisterForm { + height: 85vh; + } + + .step { + height: 80vh; + } + + .progressSteps { + display: none; + } + + .customRegisterSteps { + height: 90px; + flex-direction: row; + align-items: center; + } + + .authorizeStep, .infoStep { + width: 100%; + margin: auto + } + + + .progressSteps.currentStep { + display: flex; + } + + body { + height: auto; + overflow: auto; + } + + #logoSvg { + width: 120px; + } +} + +@media (max-width: 576px) { + .form-control { + margin: 0 0 5px !important; + } + + .stepBtn { + width: 120px; + } +} + diff --git a/ServiceHost/wwwroot/AssetsClient/pages/Register/css/_Partials/_Step3.css b/ServiceHost/wwwroot/AssetsClient/pages/Register/css/_Partials/_Step3.css new file mode 100644 index 00000000..c96ed6e4 --- /dev/null +++ b/ServiceHost/wwwroot/AssetsClient/pages/Register/css/_Partials/_Step3.css @@ -0,0 +1,434 @@ +.select2.select2-container .select2-selection { + font-size: 14px !important; + padding: 9px !important; +} + +.select2-container .select2-selection--single { + height: 41px; +} + +.workshopListItem { + width: 100%; + background-color: #ECFFFF; + display: flex; + align-items: center; + justify-content: space-between; + padding: 9px; + cursor: pointer; +} + +.workshopListItem .titleWP { + color: #0B5959; + font-size: 13px; + font-weight: 600; +} + + +.accordion-item .titleWP { + color: #0B5959; + font-size: 14px; + font-weight: 600; +} + +.openBtnWP { + background-color: #B6F2E1; + width: 30px; + height: 30px; + border-radius: 6px; +} + + .openBtnWP svg { + transform: rotate(0); + transition: transform 0.3s ease; + } + + .openBtnWP.expanded svg { + transform: rotate(180deg); + transition: transform 0.3s ease; + } + + .openBtnWP:hover { + background-color: #b0e9d9; + } + + +.badgeWP { + background-color: #B6F2E1; + border: 1px solid #059669; + border-radius: 50px; + width: 60px; + display: flex; + align-items: center; + justify-content: center; + gap: 4px; + color: #0B5959; + font-size: 13px; + font-weight: 500; + padding: 5px; +} + +.totalPayWP { + color: #0B5959; + font-size: 18px; + font-weight: 600; + width: 140px; + text-align: center; +} + +.totalPayCon { + display: flex; + justify-content: space-between; + align-items: center; + gap: 3px; +} + +.numberSpanInput { + width: 60px; + text-align: center; + direction: ltr; +} + +.errorString { + animation: shake 300ms; + color: #eb3434 !important; + display: none; + font-size: 12px; +} + +.orderCustom1 { + order: 1; +} + +.orderCustom2 { + order: 2; +} + +.divider { + width: 1px; + height: 27px; + border-left: 1px dashed #CACACA; +} + +.workshop-form-control { + width: 240px +} + +.totalPaymentWP { + color: #1ABA3D; + font-size: 18px; + font-weight: 600; + text-align: end; + width: 140px; +} + +.titleInfoWP { + color: #5C5C5C; + font-size: 12px; + font-weight: 500; + white-space: nowrap; +} + + +.main { + height: 60vh; + overflow-y: auto; +} + +.main .accordion { + max-width: 100%; + margin: 0 auto; +} + + .main .accordion-item { + outline: none; + margin: 12px 0; + border-bottom: 1.3px solid #e0e0e0; + border-radius: 12px; + background-color: #ECFFFF; + border: 1px solid #CACACA; + overflow: hidden; + box-shadow: 0px 3px 7px rgba(0, 0, 0, 0.1); + } + + .main .accordion-item .title { + display: flex; + justify-content: space-between; + align-items: center; + font-family: inherit; + font-size: 1rem; + font-weight: 500; + line-height: inherit; + cursor: pointer; + color: #333333; + } + + .main .accordion-item .title i.fas { + font-size: 0.9rem; + color: #333333; + transform: translateX(-50%) rotate(0); + transition: transform 0.15s ease; + } + + .main .accordion-item .paragraph { + background-color: #ffffff; + color: #333333; + display: none; + } + + .main .accordion-item.active .title i.fas { + color: #1a9de1; + transform: translateX(-50%) rotate(180deg); + } + + +.operations-btns { + display: none; +} + + +.totalTitle { + font-size: 1rem; + font-weight: 700; + color: #575757; + text-align: center; + /*margin: 6px auto;*/ +} + + +.btnRadioContainer { + display: grid; + grid-template-columns: repeat(4, minmax(0, 1fr)); + gap: 6px; +} + +.radioOption { + display: none; +} + +.radioLabelListOption { + font-size: 12px; + font-weight: 500; + color: #0F8080; + background-color: #ffffff; + border: 1px solid #1D9D9D; + text-align: center; + padding: 6px 9px; + border-radius: 9px; + width: 180px; + transition: all 0.3s ease-in-out; + cursor: pointer; + -webkit-user-select: none; + -ms-user-select: none; + user-select: none; +} + + .radioLabelListOption:hover { + color: #ffffff; + background-color: #1c7474; + border-color: #23A8A8; + } + +.radioOption:checked + .radioLabelListOption { + color: #ffffff; + background-color: #1D9D9D; +} + +.btnAdd { + display: flex; + align-items: center; + justify-content: center; + background-color: #84CC16; + border-radius: 5px; + color: #ffffff; + font-size: 12px; + font-weight: 500; + padding: 4px 8px; +} + + .btnAdd:hover { + background-color: #5f9213; + } + +.btnRemove { + display: flex; + align-items: center; + justify-content: center; + background-color: #F8E0E0; + border: 1px solid #BF3737; + border-radius: 7px; + padding: 3px; + width: 30px; + height: 30px; +} + + .btnRemove:hover { + background-color: #d3bebe; + } + + +.custom-padding { + padding: 0 0 0 33px; +} + + + +@media only screen and (max-width: 1366px) { + /*.btnRadioContainer { + grid-template-columns: repeat(2, minmax(0, 1fr)); + }*/ + .radioLabelListOption { + width: 153px; + font-size: 10px; + } + + .totalPayWP { + font-size: 14px; + font-weight: 800; + width: 126px; + } + + .totalTitle { + font-size: 0.8rem; + } + + .totalPaymentWP { + font-size: 14px; + font-weight: 800; + width: 126px; + } +} + +@media only screen and (max-width: 1200px) { + + .btnRadioContainer { + /*grid-template-columns: repeat(3, minmax(0, 1fr));*/ + grid-template-columns: repeat(2, minmax(0, 1fr)); + } + + .orderCustom1 { + order: 2; + } + + .orderCustom2 { + order: 1; + } + + .totalPayWP { + font-size: 14px; + font-weight: 800; + } + + .radioLabelListOption { + width: 145px; + padding: 4px 6px; + } +} + + + + + +@media only screen and (max-width: 768px) { + .main { + max-height: none; + } + + .main .accordion { + max-width: 100%; + } + + .btnRadioContainer { + grid-template-columns: repeat(2, minmax(0, 1fr)); + } + + .radioLabelListOption { + width: 100%; + font-size: 9px; + } + + .totalPayWP { + font-size: 13px; + width: 120px; + } + + .totalTitle { + display: none; + } + + .totalPaymentWP { + text-align: center; + margin-top: 20px; + font-weight: 800; + width: 120px; + } + + .errorString { + display: none; + } + + .custom-padding { + padding: 0; + } +} + +@media only screen and (max-width: 625px) { + .workshopListItem .titleWP { + font-size: 11px; + font-weight: 700; + text-overflow: ellipsis; + overflow: hidden; + white-space: nowrap; + } + + .totalPayWP { + font-size: 11px; + width: 110px; + font-weight: 700; + display: none; + } + + .totalPaymentWP { + margin-top: 18px; + width: 110px; + } + + .totalPayCon { + justify-content: center; + gap: 6px; + } + + .openBtnWP, + .btnRemove { + width: 25px; + height: 25px; + } +} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ServiceHost/wwwroot/AssetsClient/pages/Register/css/_Partials/_Step4.css b/ServiceHost/wwwroot/AssetsClient/pages/Register/css/_Partials/_Step4.css new file mode 100644 index 00000000..57d3d684 --- /dev/null +++ b/ServiceHost/wwwroot/AssetsClient/pages/Register/css/_Partials/_Step4.css @@ -0,0 +1,441 @@ +.step4Container { + display: flex; + flex-direction: column; + gap: 6px; + align-items: center; + justify-content: space-between; + height: 80vh; +} + +.btnStep4Tab { + color: #2B2F32; + font-size: 12px; + font-weight: 500; + background-color: #ffffff; + padding: 5px 9px; + margin: auto 9px auto 6px; + border-radius: 9px 9px 0 0; +} + + .btnStep4Tab:hover { + background-color: #178F8F; + color: #ffffff; + } + + .btnStep4Tab.active { + background-color: #178F8F; + color: #ffffff; + } + + +.cardHeight { + /*height: 30vh; + overflow: auto;*/ +} + +.cardContainer { + height: 18vh; + overflow: auto; + background-color: #ffffff; + border-radius: 15px; + padding: 10px; + display: grid; + gap: 19px; + grid-template-columns: repeat(3, minmax(0, 1fr)); +} + + +.cardBox { + background-color: #ffffff; + border-radius: 15px; + padding: 10px; + /*display: flex; + justify-content: space-between; + align-items: center;*/ + gap: 9px; + padding: 1rem; + margin-top: 1rem; + margin-bottom: 1rem; +} + +.cardGrid { + border: 1px solid #CACACA; + border-radius: 10px; + padding: 9px; + background-color: #ffffff; + box-shadow: 0px 3px 7px rgba(0, 0, 0, 0.1); +} + .cardGrid .titleWpName { + font-size: 13px; + font-weight: 500; + color: #0B5959; + } + + .cardGrid.titleWpPrice { + font-size: 12px; + font-weight: 400; + color: #0B5959; + } + + + + +.btnCheckContainer { + display: grid; + grid-template-columns: repeat(2, minmax(0, 1fr)); + gap: 6px; +} + +.checkOption { + display: none; +} + +.checkLabelListOption { + font-size: 12px; + font-weight: 500; + color: #2B2F32; + display: flex; + justify-content: space-between; + align-items: center; + gap: 3px; + background-color: #ffffff; + border: 1px solid #BEBEBE; + text-align: center; + padding: 6px 9px; + border-radius: 9px; + width: 100%; + transition: all 0.3s ease-in-out; + height: 35px; + /*cursor: pointer;*/ + -webkit-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.checkLabelListOption svg{ + display:none; +} + + .checkLabelListOption:hover { + border-color: #84CC16; + } + + .checkOption:checked + .checkLabelListOption { + border: 1px solid #84CC16; + } + .checkOption:checked + .checkLabelListOption svg { + display: block; + } + + +.titleStep4Contract { + color: #5C5C5C; + font-weight: 600; + font-size: 14px; + text-align: start; +} + +.radioBtnStartEndContainer { + display: flex; + /*grid-template-columns: repeat(4, minmax(0, 1fr));*/ + gap: 9px; + justify-content: center; + align-items: center; +} + +.footerStep4Container { + background-color: #ffffff; + border-radius: 15px; + border: 1px solid #178F8F; + padding: 6px; + display: flex; + flex-direction: column; + gap: 9px; + /* height: 260px; */ + justify-content: space-between; + padding: 12px 9px; +} + +.start-end-contract-section { + border: 1px solid #eee; + padding: 5px; + border-radius: 8px; +} + +.contractSection { + background-color: #ECFFFF; + padding: 6px; + border-radius: 8px; + text-align: center; + margin: 0 75px 0 0; +} + +.contractSection .startEndCon { + position: absolute; + right: -70px; + margin: auto 5px; + font-size: 12px; + font-weight: 500; + color: #5C5C5C; + white-space: nowrap; +} + +.contractSection .startEndConSpan { + font-size: 16px; + font-weight: 600; + color: #0B5959; +} + + + + +.radioLabelStartEndOption { + font-size: 12px; + font-weight: 500; + color: #0F8080; + background-color: #ffffff; + border: 1px solid #1D9D9D; + text-align: center; + padding: 6px 9px; + border-radius: 9px; + width: 130px; + transition: all 0.3s ease-in-out; + cursor: pointer; + -webkit-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.radioOption:checked + .radioLabelStartEndOption { + color: #ffffff; + background-color: #1D9D9D; +} + + + + + +.footerStep4Container .titleFooter { + color: #5C5C5C; + font-size: 12px; + font-weight: 500; + text-align: center; +} + + + .footerStep4Container .radioOption { + display: none; + } + + .footerStep4Container .radioLabelListOption { + font-size: 12px; + font-weight: 500; + color: #0F8080; + background-color: #ffffff; + border: 1px solid #1D9D9D; + text-align: center; + padding: 6px 9px; + border-radius: 9px; + width: 160px; + transition: all 0.3s ease-in-out; + cursor: pointer; + -webkit-user-select: none; + -ms-user-select: none; + user-select: none; + } + + .footerStep4Container .radioLabelListOption:hover { + color: #ffffff; + background-color: #1c7474; + border-color: #23A8A8; + } + + .footerStep4Container .radioOption:checked + .footerStep4Container .radioLabelListOption { + color: #ffffff; + background-color: #1D9D9D; + } + + +.infoPricesContainerDiv { + height: 192px; + overflow: auto; + padding: 6px; + border: 1px solid #E7E7E7; + background-color: #F5F5F5; + border-radius: 9px; +} + +.infoPricesContainer { + display: grid; + gap: 3px; + column-gap: 12px; + grid-auto-flow: column; + grid-template-rows: repeat(6, minmax(0, 1fr)); + align-content: start; +} + + .infoPricesContainer .item { + padding: 4px; + border: 1px solid #DDDDDD; + border-radius: 7px; + background-color: #ECFFFF; + color: #0B5959; + font-size: 12px; + font-weight: 500; + display: flex; + align-items: center; + } + +.lineRegisterStep4 { + width: 100%; + height: 1px; + border-radius: 50px; + background: rgb(238,238,238); + background: linear-gradient(90deg, rgba(238,238,238,1) 0%, rgba(46,46,46,1) 50%, rgba(238,238,238,1) 100%); +} + +.titlePriceStep4 { + color: #737373; + font-size: 14px; + font-weight: 600; +} + +.totalPriceStep4 { + color: #1ABA3D; + font-size: 13px; + font-weight: 600; + width: 160px; + text-align: left; +} + +.textRightCenter { + text-align: start; +} + +@media (max-width:1366px) { + .step4Container { + height: 80vh; + } + + .cardContainer { + grid-template-columns: repeat(2, minmax(0, 1fr)); + display: none; + } + + .footerStep4Container .radioLabelListOption { + width: 130px; + } + + .checkLabelListOption { + font-size: 11px; + } + + .startEndConSpan { + + width: auto; + } + /*.cardHeight { + height: 260px; + }*/ +} + +@media (max-width:992px) { + .step4Container { + height: auto; + } + + .cardBox { + padding: 0.5rem; + margin-top: 0.5rem; + margin-bottom: 0.5rem; + } + + .step4Container { + height: 74vh; + } + + .infoPricesContainerDiv { + height: 110px; + } + + .footerStep4Container .radioLabelListOption { + width: 100px; + } + + .contractSection { + width: 100%; + margin: 0 0 0 0; + justify-content: center; + } + + .contractSection .startEndCon { + position: relative; + right: auto; + font-weight: 800; + font-size: 10px; + } + + .contractSection .startEndConSpan { + font-size: 12px; + font-weight: 800; + } + + .infoPricesContainer { + grid-template-rows: repeat(12, minmax(0, 1fr)); + overflow: auto; + } + .infoPricesContainer .item { + font-size: 10px; + font-weight: 600; + } + + /*.cardHeight { + height: 48vh; + }*/ + .titleStep4Contract { + text-align: center; + } + + .radioLabelStartEndOption { + width: 100%; + } + + .radioBtnStartEndContainer { + margin: auto auto 10px; + } + + .checkLabelListOption { + font-size: 10px; + } + + .textRightCenter { + text-align: center; + } +} + +@media (max-width:768px) { + .cardContainer { + grid-template-columns: repeat(1, minmax(0, 1fr)); + } + + .btnStep4Tab { + width: 43%; + } +} + +@media (max-height:768px) { + .infoPricesContainerDiv { + height: 100px; + } +} + +@media (max-width:540px) { + .footerStep4Container .radioBtnFooterContainer { + display: flex; + gap: 5px; + } + + .footerStep4Container .radioBtnFooterContainer .radioLabelListOption { + width: 100%; + } +} \ No newline at end of file diff --git a/ServiceHost/wwwroot/AssetsClient/pages/Register/css/_Partials/_Step5.css b/ServiceHost/wwwroot/AssetsClient/pages/Register/css/_Partials/_Step5.css new file mode 100644 index 00000000..21a36c51 --- /dev/null +++ b/ServiceHost/wwwroot/AssetsClient/pages/Register/css/_Partials/_Step5.css @@ -0,0 +1,103 @@ +.descriptionStep5 { + border: 1px solid #CACACA; + border-radius: 7px; + background-color: #ffffff; + padding: 6px; + box-shadow: 0 5px 10px rgba(0,0,0, 0.1); + display: flex; + flex-direction: column; + gap: 6px; + align-items: center; + justify-content: space-between; +} + +.descriptionContainerStep5 { + overflow-y: auto; + height: 60vh; + padding: 5px; +} + +.titleDescStep5 { + color: #5C5C5C; + font-size: 12px; + font-weight: 500; + text-align: start; +} + +.textH4DescStep5 { + color: #000000; + font-size: 16px; + font-weight: 600; + text-align: start; +} + +.textDescStep5 { + color: #000000; + font-size: 12px; + font-weight: 500; + text-align: justify; +} + + +.lineRegisterStep5 { + width: 100%; + height: 1px; + border-radius: 50px; + background: rgb(238,238,238); + background: linear-gradient(90deg, rgba(238,238,238,1) 0%, rgba(46,46,46,1) 50%, rgba(238,238,238,1) 100%); +} + +.titlePriceStep5 { + color: #737373; + font-size: 14px; + font-weight: 600; +} + +.totalPriceStep5 { + color: #1ABA3D; + font-size: 13px; + font-weight: 600; + width: 160px; + text-align: left; +} + + +.otpRegister { + display: flex; + align-items: center; + justify-content: center; + direction: ltr; + gap: 12px; +} + + .otpRegister .form-control { + width: 40px; + height: 40px; + display: flex; + padding: 3px; + font-size: 12px; + text-align: center; + } + + +.registerBtnStep5 .modal-dialog { + max-width: 400px; +} + +@media (max-width: 992px) { + .descriptionContainerStep5 { + height: 50vh; + } + + .otpRegister .form-control { + padding: 3px; + font-size: 12px; + text-align: center; + } +} + +@media (max-width: 576px) { + .form-control { + margin: unset !important; + } +} \ No newline at end of file diff --git a/ServiceHost/wwwroot/AssetsClient/pages/Register/js/Index.js b/ServiceHost/wwwroot/AssetsClient/pages/Register/js/Index.js new file mode 100644 index 00000000..2e1646d0 --- /dev/null +++ b/ServiceHost/wwwroot/AssetsClient/pages/Register/js/Index.js @@ -0,0 +1,142 @@ +class Step { + constructor(form, stepNumber, validator = () => Promise.resolve(true), validatorsPrev = () => Promise.resolve(true)) { + this.form = form; + this.stepNumber = stepNumber; + this.validator = validator; + this.validatorsPrev = validatorsPrev; + } + + async validate() { + return await this.validator(); + } + + async onNext() { + if (await this.validate()) { + this.form.setStep(this.form.currentStep + 1); + } + } + + async onPrev() { + if (await this.validatorsPrev()) { + this.form.setStep(this.form.currentStep - 1); + } + } +} + +class MultiStepForm { + constructor(stepSelectors, validators = [], validatorsPrev = []) { + this.steps = stepSelectors.map((selector, index) => new Step( + this, + index + 1, + validators[index] || (() => Promise.resolve(true)), + validatorsPrev[index] || (() => Promise.resolve(true)) + )); + this.currentStep = 1; + this.showStep(); + } + + setStep(step) { + if (step < 1 || step > this.steps.length) return; + + let previousStep = this.currentStep; + this.currentStep = step; + + updateStepClasses(previousStep, this.currentStep, "progressSteps"); + updateStepClasses(previousStep, this.currentStep, "bullet"); + + this.showStep(); + } + + showStep() { + $(".step").hide(); + $("#step" + this.currentStep).fadeIn(); + } +} + +$(document).ready(function () { + const stepSelectors = ["#step1", "#step2", "#step3", "#step4", "#step5"]; + const validators = [ + checkInputsStep1, + checkInputsStep2, + checkInputsStep3, + checkInputsStep4, + () => Promise.resolve(true) + ]; + + const validatorsPrev = [ + () => Promise.resolve(true), + () => Promise.resolve(true), + () => Promise.resolve(true), + step4Action, + () => Promise.resolve(true) + ]; + + // const form = new MultiStepForm(); + const form = new MultiStepForm(stepSelectors, validators, validatorsPrev); + + + $(".stepBtn:contains('مرحله بعد')").click(() => form.steps[form.currentStep - 1].onNext()); + $(".stepBtn:contains('مرحله قبل')").click(() => form.steps[form.currentStep - 1].onPrev()); + + + $("#btnGetUidInfo").click(async function () { + let isValid = await form.steps[0].validate(); + if (isValid) { + form.setStep(2); + } + }); + + //$("#btnGetUidInfo").click(async function () { + // let isValid = await form.steps[0].validate(); + // if (isValid) { + // form.setStep(2); + // } + //}); +}); + +function updateStepClasses(prev, current, className) { + if (!prev || !current || !className) return; + + let prevStepElements = $(`.${className}[data-step='${prev}']`); + let currentStepElements = $(`.${className}[data-step='${current}']`); + + if (prevStepElements.length) { + prevStepElements.removeClass("currentStep").addClass("completeStep"); + + let title = currentStepElements.find('.textTitleSteps div:first').text(); + if (title) { + $('.registerTitleSteps').text(title); + } + } + + if (currentStepElements.length) { + currentStepElements.removeClass("completeStep").addClass("currentStep"); + } +} + +$(document).on('click', ".workshopListItem", function () { + let $currentAccordionItem = $(this).closest('.accordion-item'); + let $currentOperationsBtns = $currentAccordionItem.find(".operations-btns"); + + $(".openBtnWP").not($(this).find('.openBtnWP')).removeClass('expanded'); + $(this).find('.openBtnWP').toggleClass('expanded'); + + $currentOperationsBtns.slideToggle(300); + $(".operations-btns").not($currentOperationsBtns).slideUp(300); +}); + +function validateField(selector, message, time) { + $(selector).addClass("errored"); + $('.alert-msg').show(); + $('.alert-msg p').text(message); + setTimeout(function () { + $('.alert-msg').hide(); + $('.alert-msg p').text(""); + $(selector).removeClass("errored"); + }, time); +} + +function clearAlert(inputElement) { + inputElement.removeClass("errored"); + $('.alert-msg').hide().find('p').text(''); +} \ No newline at end of file diff --git a/ServiceHost/wwwroot/AssetsClient/pages/Register/js/_Partials/_Step1.js b/ServiceHost/wwwroot/AssetsClient/pages/Register/js/_Partials/_Step1.js new file mode 100644 index 00000000..3b747fd8 --- /dev/null +++ b/ServiceHost/wwwroot/AssetsClient/pages/Register/js/_Partials/_Step1.js @@ -0,0 +1,147 @@ + +var globalPhone = ""; + +$(document).ready(function() { + $("#nationalCode").mask("0000000000"); + $(document).on('input', "#nationalCode", function () { + let value = $(this).val(); + let englishValue = convertPersianNumbersToEnglish(value); + + englishValue = englishValue.replace(/\D/g, ''); + + $(this).val(englishValue); + }); + + $("#phoneNumber").mask("00000000000"); + $(document).on('input', "#phoneNumber", function () { + let value = $(this).val(); + let englishValue = convertPersianNumbersToEnglish(value); + + englishValue = englishValue.replace(/\D/g, ''); + + $(this).val(englishValue); + }); + + $("#birthdate").each(function () { + let element = $(this); + element.on('input', function () { + let value = convertPersianNumbersToEnglish(element.val()); + element.val(value); + }); + + new Cleave(this, { + delimiters: ['/', '/'], + blocks: [4, 2, 2], + numericOnly: true + }); + + //new Cleave(this, { + // date: true, + // delimiter: '/', + // datePattern: ['Y', 'm', 'd'] + //}); + }); +}); + +async function checkInputsStep1() { + let nationalCode = $("#nationalCode").val().trim(); + let birthdate = $("#birthdate").val(); + let phoneNumber = $("#phoneNumber").val(); + + if (!nationalCode || !birthdate || !phoneNumber) { + if (nationalCode === "" && birthdate === "" && phoneNumber === "") { + validateField('input', 'لطفاً تمام فیلدها را پر نمایید', 3500); + return false; + } + + if (nationalCode === "" || nationalCode.length !== 10) { + validateField("#nationalCode", "لطفا شماره ملی را به درستی وارد نمایید", 3500); + return false; + } + + if (birthdate === "" || birthdate.length !== 10) { + validateField("#birthdate", "لطفا تاریخ تولد را وارد نمایید", 3500); + return false; + } + + if (phoneNumber === "" || phoneNumber.length !== 11) { + validateField("#phoneNumber", "لطفا شماره موبایل را وارد نمایید", 3500); + return false; + } + + return false; + } + + const commandStep1 = { + mobile: phoneNumber, + birthDate: birthdate, + nationalCode: nationalCode + }; + + var btnDisable = $('#btnGetUidInfo').addClass('disable'); + var loading = $('#btnGetUidInfo .loading').show(); + + try { + const response = await ajax.post(createContractingPartyTempUrl, commandStep1, true); + if (response.success) { + $('.alert-success-msg').show(); + $('.alert-success-msg p').text(response.message); + setTimeout(() => { + $('.alert-success-msg').hide(); + $('.alert-success-msg p').text(''); + }, 3500); + btnDisable.removeClass('disable'); + loading.hide(); + + // console.log(response.data); + + // ************ Infos for Step 2 ************ + $('#contractPartyId').val(response.data.id); + $('#firstName').val(response.data.fName); + $('#lastName').val(response.data.lName); + $('#birthdayDate').val(response.data.dateOfBirthFa); + $('#fatherName').val(response.data.fatherName); + $('#nationalNumber').val(response.data.idNumber); + globalPhone = response.data.phone; + + // The State and City + $('#state').select2(); + $('#state').val(response.data.state).trigger('change'); + iranwebsv(response.data.state); + setTimeout(function () { + $('#city').select2(); + + let cityText = response.data.city; + let cityValue = $("#city option").filter(function () { + return $(this).text().trim() === cityText.trim(); + }).val(); + + if (cityValue) { + $('#city').val(cityValue).trigger('change'); + } else { + console.warn("شهرستان", cityText); + } + }, 100); + + $('#address').val(response.data.address); + // ************ Infos for Step 2 ************ + + return true; + } else { + $('.alert-msg').show(); + $('.alert-msg p').text(response.message); + setTimeout(() => { + $('.alert-msg').hide(); + $('.alert-msg p').text(''); + }, 3500); + btnDisable.removeClass('disable'); + loading.hide(); + return false; + } + } catch (err) { + btnDisable.removeClass('disable'); + loading.hide(); + console.error("خطا در ajax.post:", err); + return false; + } +} diff --git a/ServiceHost/wwwroot/AssetsClient/pages/Register/js/_Partials/_Step2.js b/ServiceHost/wwwroot/AssetsClient/pages/Register/js/_Partials/_Step2.js new file mode 100644 index 00000000..2a416dc8 --- /dev/null +++ b/ServiceHost/wwwroot/AssetsClient/pages/Register/js/_Partials/_Step2.js @@ -0,0 +1,82 @@ +$(document).ready(function () { + $(".select2Option").select2({ + language: "fa", + dir: "rtl" + }); +}); + + + +async function checkInputsStep2() { + let state = $("#state").val().trim(); + let city = $("#city").val(); + let address = $("#address").val().trim(); + + if (!state || city === "0" || !address) { + if (state === "" && city === "0" && address === "") { + validateField('.validControl', 'لطفاً اطلاعات استان، شهر و آدرس را پر نمایید', 3500); + return false; + } + + if (state === "") { + validateField(".stateValidate", "لطفا نام استان را وارد نمایید", 3500); + return false; + } + + if (city === "0") { + validateField(".cityValidate", "لطفا نام شهر را وارد نمایید", 3500); + return false; + } + + if (address === "" || address.length <= 3) { + validateField("#address", "لطفا آدرس را وارد نمایید", 3500); + return false; + } + + return false; + } + + const commandStep2 = { + id: $("#contractPartyId").val(), + state: state, + city: $("#city option:selected").text(), + address: address + }; + + var btnDisable = $('.stepNext').addClass('disable'); + var loading = $('.stepNext .loading').show(); + + try { + const response = await ajax.post(updateAddressUrl, commandStep2, true); + if (response.success) { + $('.alert-success-msg').show(); + $('.alert-success-msg p').text(response.message); + setTimeout(() => { + $('.alert-success-msg').hide(); + $('.alert-success-msg p').text(''); + }, 3500); + btnDisable.removeClass('disable'); + loading.hide(); + + loadWorkshopData($("#contractPartyId").val()); + + return true; + } else { + $('.alert-msg').show(); + $('.alert-msg p').text(response.message); + setTimeout(() => { + $('.alert-msg').hide(); + $('.alert-msg p').text(''); + }, 3500); + btnDisable.removeClass('disable'); + loading.hide(); + return false; + } + } catch (err) { + btnDisable.removeClass('disable'); + loading.hide(); + console.error("خطا در ajax.post:", err); + return false; + } + +} \ No newline at end of file diff --git a/ServiceHost/wwwroot/AssetsClient/pages/Register/js/_Partials/_Step3.js b/ServiceHost/wwwroot/AssetsClient/pages/Register/js/_Partials/_Step3.js new file mode 100644 index 00000000..1aa8f56a --- /dev/null +++ b/ServiceHost/wwwroot/AssetsClient/pages/Register/js/_Partials/_Step3.js @@ -0,0 +1,901 @@ +var sumAmountArray = []; +var command = { + workshops: [] +}; +let totalPrice = 0; +var workshopDataId = 0; +const isMobile = window.matchMedia('(max-width: 767px)').matches; + +$(document).ready(function () { + var $inputs = $('.operations-btns input'); + + // $(".select2Option").select2({ + // language: "fa", + // dir: "rtl" + //}); + + autoScroll(); +}); + +function autoScroll() { + $('.main').animate({ + scrollTop: $('.accordion').height() + }, 2500); +} + +$(document).on('input', '.operations-btns .workshopName', function () { + let $input = $(this); + let nameSpan = $input.closest(".accordion-item").find('.workshopListItem .workshopNameSpan'); + nameSpan.text($input.val()); + updateAddButtonText(); +}); + +$(document).on('input', '.operations-btns .numberSpanInput', function () { + let $input = $(this); + let value = $input.val().replace(/\D/g, ''); + $input.val(value); + + let number = parseInt(value, 10); + + if (isNaN(number) || number === 0) { + $input.addClass("errored"); + if (isMobile) { + validateField($(this), "عدد وارد شده نامعتبر است.", 2500); + } else { + $('.errorString').show().text('عدد وارد شده نامعتبر است.'); + } + } else if (number > 2000) { + $input.addClass("errored"); + if (isMobile) { + validateField($(this), "تعداد وارد شده نباید بیشتر از ۲۰۰۰ باشد.", 2500); + } else { + $('.errorString').show().text('تعداد وارد شده نباید بیشتر از ۲۰۰۰ باشد.'); + } + //$input.val('2000'); + } else if (number < 3) { + $input.addClass("errored"); + if (isMobile) { + validateField($(this), "تعداد وارد شده باید حداقل ۳ نفر باشد.", 2500); + } else { + $('.errorString').show().text('تعداد وارد شده باید حداقل ۳ نفر باشد.'); + } + } else { + $('.errorString').hide().text(''); + $input.removeClass("errored"); + } + + let numberSpan = $input.closest(".accordion-item").find('.workshopListItem .numberSpan'); + numberSpan.text($input.val()); + updateAddButtonText(); +}); + +$(document).on('change input', '.btnRadioContainer .radioOption', function () { + const accordionItem = $(this).closest('.accordion-item'); + const dataId = accordionItem.data('id'); + const dataIsNew = accordionItem.data('new'); + + // Services radio btn + const $contract = $(`#ContractAndCheckout${dataIsNew ? `_` : ''}${dataId}`); + const $contractAndCheckoutInPerson = $(`#ContractAndCheckoutInPerson${dataIsNew ? `_` : ''}${dataId}`); + const $insurance = $(`#Insurance${dataIsNew ? `_` : ''}${dataId}`); + const $insuranceInPerson = $(`#InsuranceInPerson${dataIsNew ? `_` : ''}${dataId}`); + const $rollCall = $(`#RollCall${dataIsNew ? `_` : ''}${dataId}`); + const $customize = $(`#CustomizeCheckout${dataIsNew ? `_` : ''}${dataId}`); + + if (!$contract.prop('checked')) { + $rollCall.prop('checked', false).prop('disabled', true).closest('div').find('label').addClass('disable'); + $customize.prop('checked', false).prop('disabled', true).closest('div').find('label').addClass('disable'); + $contractAndCheckoutInPerson.prop('checked', false).prop('disabled', false).closest('div').find('label').addClass('disable'); + } else { + $contractAndCheckoutInPerson.prop('checked', true).prop('disabled', false).closest('div').find('label').removeClass('disable'); + $rollCall.prop('disabled', false).closest('div').find('label').removeClass('disable'); + + if ($rollCall.prop('checked')) { + $customize.prop('disabled', false).closest('div').find('label').removeClass('disable'); + } else { + $customize.prop('checked', false).prop('disabled', true).closest('div').find('label').addClass('disable'); + } + } + + if (!$insurance.prop('checked')) { + $insuranceInPerson.prop('checked', false).prop('disabled', false).closest('div').find('label').addClass('disable'); + } else { + $insuranceInPerson.prop('checked', true).prop('disabled', false).closest('div').find('label').removeClass('disable'); + } + // Services radio btn + updateAddButtonText(); +}); +// $(document).on('change', '.btnRadioContainer .radioOption', updateAddButtonText); + +$(document).on("click", ".btnAdd", function () { + let $currentWorkshop = $(".accordion-item").last(); + + let allInputsFilled = true; + let atLeastOneChecked = false; + + $currentWorkshop.find('.operations-btns input').each(function () { + if ($(this).val().trim() === "") { + allInputsFilled = false; + validateField($(this), "ابتدا اطلاعات کارگاه را وارد نمائید", 3500); + return false; + } else { + workshopName = $(this).val().trim(); + } + }); + + $currentWorkshop.find('.btnRadioContainer .radioOption').each(function () { + if ($(this).prop('checked')) { + atLeastOneChecked = true; + } + }); + + if (!atLeastOneChecked) { + validateField($currentWorkshop.find('.btnRadioContainer .radioOption').first(), "حداقل یکی از گزینه های سرویس را انتخاب کنید", 3500); + } + + addNewWorkshop(); + updateAddButtonText(); +}); + +function addNewWorkshop() { + workshopDataId = workshopDataId + 1; + var workshopHtml = `
+
+ +
+
+ +
+
+ +
+
+
+ - + نفر +
+
+
+
-
+
+
+ +
+ +
+
+
+
+
+
+
+
+
+ نام مجموعه (کارگاه) +
+ +
+
+ + تعداد پرسنل: + + + +
+
+
+
+ انتخاب سرویس +
+ +
+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+
+
+
+ +
+
+
مبلغ کل
+
+
+ - +
+
+
+
+
+
`; + + + $('.accordion').append(workshopHtml); + + //$(`.select2Option_new_${workshopDataId}`).select2({ + // language: "fa", + // dir: "rtl" + // }); + + $(".operations-btns").slideUp(300); + $(".openBtnWP").removeClass('expanded'); + + let $newAccordionItem = $('.accordion-item').last(); + let $newOperationsBtns = $newAccordionItem.find(".operations-btns"); + let $newOpenBtn = $newAccordionItem.find(".openBtnWP"); + + // Expand only the new one + $newOperationsBtns.slideDown(300); + $newOpenBtn.addClass('expanded'); + + autoScroll(); +} + +$(document).on("click", ".btnRemove", function () { + $(".btnAdd").removeClass('d-none'); + var dataId = $(this).closest(".accordion-item").data('id'); + let existingSumAmount = sumAmountArray.find(w => w.workshopDataId === dataId); + if (existingSumAmount) { + sumAmountArray = sumAmountArray.filter(w => w.workshopDataId !== dataId); + } + sumNumberOfAmount(); + + $(this).closest(".accordion-item").remove(); + + + //var currentCount = $('.accordion-item').length; + updateAddButtonText(); +}); + +function createOrUpdateCommand() { + command = { + workshops: [] + }; + + totalPrice = 0; + + $(".accordion-item").each(function() { + + var accordionItem = $(this).closest('.accordion-item'); + var dataId = accordionItem.data('id'); + var dataIsNew = accordionItem.data('new'); + + let $currentWorkshop = $(this); + let workshopName = ""; + let personnelCount = 0; + //let selectedServices = []; + let selectedContractAndCheckout = false; + let selectedInsurance = false; + let selectedRollCall = false; + let selectedCustomizeCheckout = false; + let allInputsFilled = true; + let atLeastOneChecked = false; + + let workshopID = command.workshops.length; + + if (!allInputsFilled) return; + + $currentWorkshop.find('.operations-btns .workshopName').each(function() { + if ($(this).val() === "") { + allInputsFilled = false; + validateField($(this), "ابتدا اطلاعات کارگاه را وارد نمائید", 3500); + return false; + } else { + workshopName = $(this).val(); + } + }); + + $currentWorkshop.find('.numberSpanInput').each(function () { + let val = parseInt($(this).val(), 10); + if (isNaN(val) || val === 0 || val < 3 || val > 2000) { + validateField($(this), "لطفا تعداد پرسنل را مشخص نمایید.", 3500); + return false; + } + }); + + personnelCount = parseInt($currentWorkshop.find(".operations-btns .numberSpanInput").val()); + + function checkCheckbox(serviceName) { + const selector = `.btnRadioContainer #${serviceName}${dataIsNew ? `_` : ''}${dataId}`; + const $checkbox = $currentWorkshop.find(selector); + if ($checkbox.prop('checked')) { + atLeastOneChecked = true; + return true; + } + return false; + } + + selectedContractAndCheckout = checkCheckbox("ContractAndCheckout"); + selectedInsurance = checkCheckbox("Insurance"); + selectedRollCall = checkCheckbox("RollCall"); + selectedCustomizeCheckout = checkCheckbox("CustomizeCheckout"); + + if (!atLeastOneChecked) { + validateField($currentWorkshop.find('.btnRadioContainer .radioOption').first(), + "حداقل یکی از گزینه های سرویس را انتخاب کنید", + 3500); + return; + } + + let existingAmount = sumAmountArray.find(w => w.workshopDataId === dataId); + + let existingWorkshop = command.workshops.find(w => w.workshopId === dataId); + + if (existingWorkshop) { + existingWorkshop.CountPerson = personnelCount; + existingWorkshop.ContractAndCheckout = selectedContractAndCheckout; + existingWorkshop.Insurance = selectedInsurance; + existingWorkshop.RollCall = selectedRollCall; + existingWorkshop.CustomizeCheckout = selectedCustomizeCheckout; + if (existingAmount) { + existingWorkshop.WorkshopServicesAmount = existingAmount.amount; + existingWorkshop.WorkshopServicesAmountStr = existingAmount.amountStr; + } + } else { + let newWorkshop = { + Id: dataIsNew ? 0 : dataId, + workshopId: dataId, + WorkshopName: workshopName, + ContractingPartyTempId: parseInt($('#contractPartyId').val()) || 0, + CountPerson: personnelCount, + ContractAndCheckout: selectedContractAndCheckout, + Insurance: selectedInsurance, + RollCall: selectedRollCall, + CustomizeCheckout: selectedCustomizeCheckout, + ContractAndCheckoutInPerson: false, + InsuranceInPerson: false, + WorkshopServicesAmount: existingAmount.amount, + WorkshopServicesAmountStr: existingAmount.amountStr + }; + command.workshops.push(newWorkshop); + } + }); + + return command; +} + +function updateAddButtonText() { + let allInputsFilled = true; + let atLeastOneChecked = false; + let allNumbersValid = true; + + $(".accordion-item").each(function () { + let $workshop = $(this); + let isFilled = true; + let isChecked = false; + atLeastOneChecked = false; + + $workshop.find('.operations-btns .workshopName').each(function () { + if ($(this).val().trim() === "") { + isFilled = false; + return false; + } + }); + + $workshop.find('.btnRadioContainer .radioOption').each(function () { + if ($(this).prop('checked')) { + isChecked = true; + return false; + } + }); + + $workshop.find('.numberSpanInput').each(function () { + let val = parseInt($(this).val(), 10); + if (isNaN(val) || val === 0 || val < 3 || val > 2000) { + allNumbersValid = false; + return false; + } + }); + + if (!isFilled) allInputsFilled = false; + if (isChecked) atLeastOneChecked = true; + }); + + + if (allInputsFilled && atLeastOneChecked && allNumbersValid) { + $('.btnAdd').prop('disabled', false).removeClass('disable'); + $('#nextStep3').prop('disabled', false).removeClass('disable'); + } else { + $('.btnAdd').prop('disabled', true).addClass('disable'); + $('#nextStep3').prop('disabled', true).addClass('disable'); + } +} + +async function checkInputsStep3() { + const createOrUpdate = createOrUpdateCommand(); + + if (!createOrUpdate || createOrUpdate.workshops.length === 0) { + validateField('input', 'لطفاً حداقل اطلاعات کارگاه را پر نمایید', 3500); + return false; + } + + + await loadSpecifiedWorkshop(createOrUpdate); + + + try { + var command = createOrUpdate.workshops; + + let btnDisable = $('.stepNext').addClass('disable'); + let loading = $('.stepNext .loading').show(); + + const responseCreateOrUpdateWorkshop = await ajax.post(createOrUpdateWorkshopTempUrl, { command, contractingPartyTempId: parseInt($('#contractPartyId').val()) || 0 }, true); + if (responseCreateOrUpdateWorkshop.success) { + $('.alert-success-msg').show(); + $('.alert-success-msg p').text(responseCreateOrUpdateWorkshop.message); + setTimeout(() => { + $('.alert-success-msg').hide(); + $('.alert-success-msg p').text(''); + }, 3500); + await totalPaymentAndWorkshopList(); + btnDisable.removeClass('disable'); + loading.hide(); + return true; + } else { + $('.alert-msg').show(); + $('.alert-msg p').text(responseCreateOrUpdateWorkshop.message); + setTimeout(() => { + $('.alert-msg').hide(); + $('.alert-msg p').text(''); + }, 3500); + btnDisable.removeClass('disable'); + loading.hide(); + return false; + } + } catch (err) { + console.error("خطا در ajax.post:", err); + return false; + } +} + +function updateRemoveButtons() { + $(".btnRemove").prop('disabled', true).addClass("disable"); + $(".btnRemove").last().prop('disabled', false).removeClass("disable"); +} + +// Get Amounts for a Workshop service +$(document).on('change input', '.operations-btns .numberSpanInput, .btnRadioContainer .radioOption', function () { + const accordionItem = $(this).closest('.accordion-item'); + const dataId = accordionItem.data('id'); + const dataIsNew = accordionItem.data('new'); + + const $totalPayment = $(`#totalPayment_${dataId}`); + const $totalPay = $(`#totalPay_${dataId}`); + + const personnelCount = parseInt($(`#numberPersonnel${dataIsNew ? `_` : ''}${dataId}`).val()) || 0; + if (personnelCount === 0) { + let existingSumAmount = sumAmountArray.find(w => w.workshopDataId === dataId); + if (existingSumAmount) { + sumAmountArray = sumAmountArray.filter(w => w.workshopDataId !== dataId); + } + sumNumberOfAmount(); + $totalPayment.addClass('justify-content-center').text('-'); + $totalPay.addClass('justify-content-center').text('-'); + return; + } else if (personnelCount > 2000) { + sumNumberOfAmount(); + $totalPayment.addClass('justify-content-center').text('-'); + $totalPay.addClass('justify-content-center').text('-'); + return; + } else if (personnelCount < 3) { + sumNumberOfAmount(); + $totalPayment.addClass('justify-content-center').text('-'); + $totalPay.addClass('justify-content-center').text('-'); + return; + } + + const serviceKeys = ['ContractAndCheckout', 'Insurance', 'RollCall', 'CustomizeCheckout', 'ContractAndCheckoutInPerson', 'InsuranceInPerson']; + const selectedOptions = {}; + let atLeastOneChecked = false; + serviceKeys.forEach(key => { + const isChecked = $(`#${key}${dataIsNew ? `_` : ''}${dataId}`).prop('checked'); + selectedOptions[key] = isChecked; + if (isChecked) atLeastOneChecked = true; + }); + + + if (!atLeastOneChecked) { + let existingSumAmount = sumAmountArray.find(w => w.workshopDataId === dataId); + if (existingSumAmount) { + sumAmountArray = sumAmountArray.filter(w => w.workshopDataId !== dataId); + } + sumNumberOfAmount(); + $totalPayment.addClass('justify-content-center').text('-'); + $totalPay.addClass('justify-content-center').text('-'); + return; + } + + var newWorkshopGetAmountCommand = { + CountPerson: personnelCount, + ...selectedOptions + }; + + ajax.get(institutionPlanForWorkshopUrl, newWorkshopGetAmountCommand, false) + .then(response => { + const amountStr = response.data.onlineAndInPersonSumAmountStr; + const amountDouble = response.data.onlineAndInPersonSumAmountDouble || 0; + let existingSumAmount = sumAmountArray.find(w => w.workshopDataId === dataId); + if (existingSumAmount) { + existingSumAmount.amountStr = amountStr; + existingSumAmount.amount = amountDouble; + } else { + let newSumAmount = { + workshopDataId: dataId, + amountStr: amountStr, + amount: amountDouble + }; + sumAmountArray.push(newSumAmount); + } + + sumNumberOfAmount(); + + $(`#totalPayment_${dataId}`).removeClass('justify-content-center').html(`${amountStr} ریال`); + $(`#totalPay_${dataId}`).removeClass('justify-content-center').html(`${amountStr} ریال`); + }); +}); + +function sumNumberOfAmount() { + + var sumAllAmount = 0; + + sumAmountArray.forEach(item => { + sumAllAmount += item.amount; + }); + var formatted = formatNumber(sumAllAmount); + $('#totalSumDisplay').text(formatted + ' ریال'); +} + +function formatNumber(number) { + return Math.round(number) + .toString() + .replace(/\B(?=(\d{3})+(?!\d))/g, '٬'); +} + +function loadWorkshopData(id) { + var html = ``; + command = { + workshops: [] + }; + sumAmountArray = []; + //$('#accordionHtml').html(''); + + ajax.get(getWorkshopTempUrl, { contractingPartyId: id }, true) + .then(response => { + if (response.data.length > 0) { + response.data.forEach(function (item, index) { + + html += `
+
+ +
+
+ ${item.workshopName} +
+
+ +
+
+
+ ${item.countPerson} + نفر +
+
+
+
+ ${item.workshopServicesAmountStr} + ریال +
+
+
+ +
+ +
+
+
+
+
+
+
+
+
+ نام مجموعه (کارگاه) +
+ +
+
+ + تعداد پرسنل: + + + +
+
+
+
+ انتخاب سرویس +
+ +
+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+
+
+
+ +
+
+
مبلغ کل
+
+
+ ${item.workshopServicesAmountStr} + ریال +
+
+
+
+
+
+
`; + + //$('#accordionHtml').html(html); + //loadRadioChecked(item.id); + + var itemOfWorkshops = { + Id: item.id, + workshopId: item.id, + WorkshopName: item.workshopName, + ContractingPartyTempId: item.contractingPartyTempId, + CountPerson: item.countPerson, + ContractAndCheckout: item.contractAndCheckout, + Insurance: item.insurance, + RollCall: item.rollCall, + CustomizeCheckout: item.customizeCheckout, + ContractAndCheckoutInPerson: item.contractAndCheckoutInPerson, + InsuranceInPerson: item.insuranceInPerson, + WorkshopServicesAmount: item.workshopServicesAmount, + WorkshopServicesAmountStr: item.workshopServicesAmountStr + }; + command.workshops.push(itemOfWorkshops); + + var itemOfAmount = { + workshopDataId: item.id, + amountStr: item.workshopServicesAmountStr, + amount: item.workshopServicesAmount + }; + sumAmountArray.push(itemOfAmount); + + }); + } else { + html += `
+
+ +
+
+ +
+
+ +
+
+
+ - + نفر +
+
+
+
-
+
+
+ +
+ +
+
+
+
+
+
+
+
+
+ نام مجموعه (کارگاه) +
+ +
+
+ + تعداد پرسنل: + + + +
+
+
+
+ انتخاب سرویس +
+ +
+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+
+
+
+ +
+
+
مبلغ کل
+
+
+ - +
+
+
+
+
+
+
`; + } + + $('#accordionHtml').html(html); + + if (command.workshops.length > 0) { + command.workshops.forEach(function(item) { + //$(`#numberPersonnel${item.Id}`).select2(); + //$(`#numberPersonnel${item.Id}`).val(item.CountPerson).trigger('change'); + $(`#numberPersonnel${item.Id}`).val(item.CountPerson); + }); + } else { + //$(`#numberPersonnel_new_0`).select2(); + //$(`#numberPersonnel_new_0`).val("25").trigger('change'); + $(`#numberPersonnel_new_0`).val(""); + } + + // console.log(command.workshops); + // console.log(sumAmountArray); + sumNumberOfAmount(); + autoScroll(); + loadRadioChecked(); + updateAddButtonText(); + function loadRadioChecked() { + if (command.workshops.length > 0) { + command.workshops.forEach(function (item) { + let $contract = $(`#ContractAndCheckout${item.Id}`); + let $contractAndCheckoutInPerson = $(`#ContractAndCheckoutInPerson${item.Id}`); + let $insurance = $(`#Insurance${item.Id}`); + let $insuranceInPerson = $(`#InsuranceInPerson${item.Id}`); + let $rollCall = $(`#RollCall${item.Id}`); + let $customize = $(`#CustomizeCheckout${item.Id}`); + + if (!$contract.prop('checked')) { + $rollCall.prop('checked', false).prop('disabled', true).closest('div').find('label').addClass('disable'); + $customize.prop('checked', false).prop('disabled', true).closest('div').find('label').addClass('disable'); + $contractAndCheckoutInPerson.prop('checked', false).prop('disabled', false).closest('div').find('label').addClass('disable'); + } else { + $contractAndCheckoutInPerson.prop('checked', true).prop('disabled', false).closest('div').find('label').removeClass('disable'); + $rollCall.prop('disabled', false).closest('div').find('label').removeClass('disable'); + + if ($rollCall.prop('checked')) { + $customize.prop('disabled', false).closest('div').find('label').removeClass('disable'); + } else { + $customize.prop('checked', false).prop('disabled', true).closest('div').find('label').addClass('disable'); + } + } + + if (!$insurance.prop('checked')) { + $insuranceInPerson.prop('checked', false).prop('disabled', false).closest('div').find('label').addClass('disable'); + } else { + $insuranceInPerson.prop('checked', true).prop('disabled', false).closest('div').find('label').removeClass('disable'); + } + }); + } + } + }); + +} \ No newline at end of file diff --git a/ServiceHost/wwwroot/AssetsClient/pages/Register/js/_Partials/_Step4.js b/ServiceHost/wwwroot/AssetsClient/pages/Register/js/_Partials/_Step4.js new file mode 100644 index 00000000..4af490dc --- /dev/null +++ b/ServiceHost/wwwroot/AssetsClient/pages/Register/js/_Partials/_Step4.js @@ -0,0 +1,308 @@ +$(document).ready(function () { + $('input[name="radMonth"]').on('change', function () { + totalPaymentAndWorkshopList(); + }); + + $('input[name="radMonth"]:checked').trigger('change'); + + + $('input[name="radFinanceContract"]').on('change', function () { + totalPaymentAndWorkshopList(); + $("#btnDisableDisable").removeClass("disable"); + $("#footerDisableDisable").removeClass("disable"); + }); + + //$('input[name="radFinanceContract"]:checked').trigger('change'); +}); + +function autoScrollStep4() { + $('.cardHeight').animate({ + scrollTop: $('.cardHeight').height() + }, 100); +} + +async function loadSpecifiedWorkshop(data) { + var html = ''; + + + if (data.workshops.length > 0) { + data.workshops.forEach(function(item) { + html += `
+
+
نام کارگاه : ${item.WorkshopName}
+
${item.WorkshopServicesAmountStr} ریال
+
+ +
+
+ +
+
+
+ + +
+ +
+ + +
+
+ + +
+
+ + +
+
+
+
`; + }); + + $('#cardSelected').html(html); + + autoScrollStep4(); + } +} + +async function totalPaymentAndWorkshopList() { + var selectedRadMonth = $('input[name="radMonth"]:checked').val(); + var months = 12; + + switch (selectedRadMonth) { + case 'oneMonth': + months = 1; + break; + case 'threeMonth': + months = 3; + break; + case 'sixMonth': + months = 6; + break; + case 'twelveMonth': + months = 12; + break; + } + + var hasPriceStatic = $('#priceStatic').hasClass('active'); + + var selectedRadFinanceContract = $('input[name="radFinanceContract"]:checked').val(); + var financeContract = ""; + + switch (selectedRadFinanceContract) { + case 'contractStartCurrentMonthFa': + financeContract = 'currentMonth'; + break; + case 'contractStartNextMonthFa': + financeContract = 'nextMonth'; + break; + } + + ajax.get(totalPaymentAndWorkshopListUrl, + { + contractingPartyTempId: parseInt($('#contractPartyId').val()) || 0, + periodModel: months, + contractStartType: financeContract + }) + .then(response => { + //console.log(response.data); + + if (hasPriceStatic) { + $(`#sumOfWorkshopsPaymentPayment`).html(response.data.oneTimeWithoutTaxPaymentStr + " ریال"); + $(`#totalPaymentStr`).text(response.data.oneTimeTotalPaymentStr + " ریال"); + + } else { + $(`#sumOfWorkshopsPaymentPayment`).text(response.data.monthlyWithoutTaxPaymentStr + " ریال"); + $(`#totalPaymentStr`).text(response.data.monthlyTotalPaymentStr + " ریال"); + } + $(`#valueAddedTaxSt`).text(response.data.valueAddedTaxSt + " ریال"); + + if (hasPriceStatic) { + $(`#sumOfWorkshopsPaymentPaymentStep5`).text(response.data.oneTimeWithoutTaxPaymentStr + " ریال"); + $(`#totalPaymentStrStep5`).text(response.data.oneTimeTotalPaymentStr + " ریال"); + + } else { + $(`#sumOfWorkshopsPaymentPaymentStep5`).text(response.data.monthlyWithoutTaxPaymentStr + " ریال"); + $(`#totalPaymentStrStep5`).text(response.data.monthlyTotalPaymentStr + " ریال"); + } + $(`#valueAddedTaxStStep5`).text(response.data.valueAddedTaxSt + " ریال"); + + $(`#totalPaymentDoubleInput`).val(hasPriceStatic ? response.data.oneTimeTotalPaymentDouble : response.data.monthlyTotalPaymentDouble); + $(`#valueAddedTaxDoubleInput`).val(response.data.valueAddedTaxDouble); + + $('#priceStepContainerHtml').html(''); + if (response.data.monthlyInstallments) { + response.data.monthlyInstallments?.forEach(function (item, index) { + var html = ` +
+
${++index}
+
${item.installmentCounter}
+
${item.instalmentDate}
+
${item.installmentAmountStr} ریال
+
+ `; + $('#priceStepContainerHtml').append(html); + }); + } + + //$('#ContractStartMonthView').text(response.data.contractStartCurrentMonthFa); + $('#contractEndFa').text(response.data.contractEndFa); + + $('#ContractStartMonthView').text( + $('#contractStartCurrentMonthFa').prop('checked') + ? response.data.contractStartCurrentMonthFa + : response.data.contractStartNextMonthFa + ); + + //$('#ContractStartNextMonthView').text( + // $('#contractStartNextMonthFa').prop('checked') + // ? response.data.contractStartCurrentMonthFa + // : response.data.contractStartNextMonthFa + //); + + $('#ContractStartMonthGr').val( + $('#contractStartCurrentMonthFa').prop('checked') + ? response.data.contractStartCurrentMonthGr + : response.data.contractStartNextMonthGr + ); + }); + +} + +//$(document).on('change', '.btnCheckContainer .checkOption', createOrUpdateCommand); + +async function checkInputsStep4() { + + //checkRequirementData(); + if (!$('input[name="radFinanceContract"]:checked').length) { + validateField('.radioLabelStartEndOption', 'لطفاً شروع قرارداد را مشخص نمایید', 3500); + return false; + } + + //if (!$("#priceStatic").hasClass("active") || !$("#priceStep").hasClass("active")) { + // validateField('#btnDisableDisable', 'لطفاً روش پرداخت را مشخص نمایید', 3500); + // return false; + //} + + let btnDisable = $('.stepNext').addClass('disable'); + let loading = $('.stepNext .loading').show(); + + var selectedRadMonth = $('input[name="radMonth"]:checked').val(); + var months = 12; + + switch (selectedRadMonth) { + case 'oneMonth': + months = 1; + break; + case 'threeMonth': + months = 3; + break; + case 'sixMonth': + months = 6; + break; + case 'twelveMonth': + months = 12; + break; + } + + + var selectedRadFinanceContract = $('input[name="radFinanceContract"]:checked').val(); + var financeContract = ""; + + switch (selectedRadFinanceContract) { + case 'currentMonth': + financeContract = 'currentMonth'; + break; + case 'nextMonth': + financeContract = 'nextMonth'; + break; + } + + var priceMethod = $('#priceStatic').hasClass('active') ? "OneTime" : "Monthly"; + + try { + const response = await ajax.post(createOrUpdateInstitutionContractTemp, + { + contractingPartyTempId: parseInt($('#contractPartyId').val()) || 0, + periodModel: months, + paymentModel: priceMethod, + contractStart: $('#ContractStartMonthGr').val(), + totalPayment: Number($('#totalPaymentDoubleInput').val()), + valueAddedTax: Number($('#valueAddedTaxDoubleInput').val()) + }, true); + + if (response.success) { + $('.alert-success-msg').show(); + $('.alert-success-msg p').text(response.message); + setTimeout(() => { + $('.alert-success-msg').hide(); + $('.alert-success-msg p').text(''); + }, 3500); + btnDisable.removeClass('disable'); + loading.hide(); + return true; + } else { + $('.alert-msg').show(); + $('.alert-msg p').text(response.message); + setTimeout(() => { + $('.alert-msg').hide(); + $('.alert-msg p').text(''); + }, 3500); + btnDisable.removeClass('disable'); + loading.hide(); + return false; + } + } catch (err) { + console.error("خطا در ajax.post:", err); + return false; + } +} + +async function step4Action() { + loadWorkshopData($("#contractPartyId").val()); + return true; +} + +$('#priceStatic').on('click', function () { + //$('#priceStepContainer').hide(); + $('#priceStepContainer').css('visibility', 'hidden'); + $('#priceStep').removeClass('active'); + $(this).addClass('active'); + + totalPaymentAndWorkshopList(); +}); + +$('#priceStep').on('click', function () { + //$('#priceStepContainer').fadeIn(); + $('#priceStepContainer').css('visibility', 'visible'); + $('#priceStatic').removeClass('active'); + $(this).addClass('active'); + + totalPaymentAndWorkshopList(); +}); + diff --git a/ServiceHost/wwwroot/AssetsClient/pages/Register/js/_Partials/_Step5.js b/ServiceHost/wwwroot/AssetsClient/pages/Register/js/_Partials/_Step5.js new file mode 100644 index 00000000..9067836d --- /dev/null +++ b/ServiceHost/wwwroot/AssetsClient/pages/Register/js/_Partials/_Step5.js @@ -0,0 +1,154 @@ +var codeReg = ""; +let countdownTimer; +let timerDuration = 120; // 2 دقیقه +let currentTime = timerDuration; + +$('.codeInputRegister').on('keyup keypress', function (e) { + var keyCode = e.keyCode || e.which; + this.value = this.value.replace(/[^\d]/, ''); + + //if (keyCode === 13) { + // $('#getCodeRegisterToPayFinal').click(); + //} + + ////کلید دمکه بک اسپیس 8 + if (keyCode === 8) { + let index_next = $(this).attr("data-next"); + if (index_next === "end") { + $('#reg4').focus(); + $('#reg4').select(); + } else if (index_next === "5") { + $('#reg3').focus(); + $('#reg3').select(); + } else if (index_next === "4") { + $('#reg2').focus(); + $('#reg2').select(); + } else if (index_next === "3") { + $('#reg1').focus(); + $('#reg1').select(); + } else if (index_next === "2") { + $('#reg0').focus(); + $('#reg0').select(); + } else if (index_next === "1") { + $('#reg0').focus(); + $('#reg0').select(); + } + return; + } + + if (this.value.length === this.maxLength) { + let next = $(this).data('next'); + $('#reg' + next).focus(); + $('#reg' + next).select(); + } + + //وقتی کد ورودی وارد شد، اتوماتیک ورود میشود + if ($('#reg0').val() && $('#reg1').val() && $('#reg2').val() && $('#reg3').val() && $('#reg4').val() && $('#reg5').val()) { + //$('#btn-login-code').trigger('click'); + codeReg = $('#reg0').val() + $('#reg1').val() + $('#reg2').val() + $('#reg3').val() + $('#reg4').val() + $('#reg5').val(); + //$('#getCodeRegisterToPayFinal').click(); + } +}); + + +$('#getCodeRegisterToPay').on('click', async function () { + $(".otpRegister").removeClass('disable'); + + const commandStep5 = { + contractingPartyId: $("#contractPartyId").val() + }; + + let loading = $(this).find(".loading").show(); + + try { + const response = await ajax.post(receivedCodeFromServerUrl, commandStep5, true); + + if (response.success) { + $('.alert-success-msg').show().find('p').text(response.message); + setTimeout(() => $('.alert-success-msg').hide(), 3500); + + $(".otpRegister").removeClass('disable'); + $(this).hide(); + loading.hide(); + $('#getCodeRegisterToPayFinal').show(); + + + $(".otpRegister input").prop('disabled', false); + $('#reg0').focus(); + $('#reg0').select(); + $('#timerContainer').show(); + //var hashPhoneNumber = globalPhone.replace(/(\d{2})\d{6}(\d{2})/, '$1******$2'); + var hashPhoneNumber = globalPhone.slice(-2) + '*******' + globalPhone.slice(0, 2); + let messagePhoneNumber = `کد تأیید ثبت‌نام به شماره ${hashPhoneNumber} ارسال شد. لطفاً کد را در بخش مربوطه وارد کنید.`; + $('#messagePhoneNumber').text(messagePhoneNumber); + + startTimer(); + } else { + $('.alert-msg').show().find('p').text(response.message); + setTimeout(() => $('.alert-msg').hide(), 3500); + $(".otpRegister input").prop('disabled', true); + $(".otpRegister").addClass('disable'); + loading.hide(); + } + } catch (err) { + console.error("خطا در ajax.post:", err); + } +}); + +$('#getCodeRegisterToPayFinal').on('click', async function () { + if (codeReg.length === 6) { + const commandVerify = { + verifyCode: codeReg, + contractingPartyTempId: $("#contractPartyId").val() + }; + + let loading = $(this).find(".loading").show(); + + try { + const response = await ajax.post(checkVerifyCodeIsTrueUrl, commandVerify, true); + + if (response.success) { + //window.location.href = "/PaymentPage"; + $('.alert-success-msg').show().find('p').text(response.message); + setTimeout(() => $('.alert-msg').hide(), 3500); + alert("صفحه درگاه"); + loading.hide(); + } else { + $('.alert-msg').show().find('p').text(response.message); + setTimeout(() => $('.alert-msg').hide(), 3500); + loading.hide(); + } + } catch (err) { + console.error("خطا در تایید کد:", err); + } + } +}); + + + +function startTimer() { + clearInterval(countdownTimer); + currentTime = timerDuration; + updateTimerDisplay(); + + countdownTimer = setInterval(() => { + currentTime--; + updateTimerDisplay(); + + if (currentTime <= 0) { + clearInterval(countdownTimer); + $('#getCodeRegisterToPayFinal').hide(); + $('#getCodeRegisterToPay').show(); + $('#timerContainer').hide(); + $(".otpRegister input").val(''); + $(".otpRegister input").prop('disabled', true); + $(".otpRegister").addClass('disable'); + } + }, 1000); +} + +function updateTimerDisplay() { + const minutes = String(Math.floor(currentTime / 60)).padStart(2, '0'); + const seconds = String(currentTime % 60).padStart(2, '0'); + $('#timerText').text(`${minutes}:${seconds}`); +} diff --git a/ServiceHost/wwwroot/AssetsMain/css/fontiran.css b/ServiceHost/wwwroot/AssetsMain/css/fontiran.css new file mode 100644 index 00000000..1ec13866 --- /dev/null +++ b/ServiceHost/wwwroot/AssetsMain/css/fontiran.css @@ -0,0 +1,96 @@ +/** +* +* Name: IRANYekanX Fonts +* Version: 4.0 +* Author: Moslem Ebrahimi (moslemebrahimi.com) +* Created on: Aug 02, 2022 +* Updated on: Aug 02, 2022 +* Website: http://fontiran.com +* Copyright: Commercial/Proprietary Software +-------------------------------------------------------------------------------------- +فونت ایران یکان X یک نرم افزار مالکیتی محسوب می شود. جهت آگاهی از قوانین استفاده از این فونت ها لطفا به وب سایت (فونت ایران دات کام) مراجعه نمایید +-------------------------------------------------------------------------------------- +IRANYekanX fonts are considered a proprietary software. To gain information about the laws regarding the use of these fonts, please visit www.fontiran.com +-------------------------------------------------------------------------------------- +This set of fonts are used in this project under the license: (FWBSD2TG) +------------------------------------------------------------------------------------- fonts/- +* +**/ + + +@font-face { + font-family: IRANYekanX; + font-style: normal; + font-weight: 100; + src: url('../fonts/iranyekan/woff/IRANYekanX-Thin.woff') format('woff'), url('../fonts/iranyekan/woff2/IRANYekanX-Thin.woff2') format('woff2'); +} + +@font-face { + font-family: IRANYekanX; + font-style: normal; + font-weight: 200; + src: url('../fonts/iranyekan/woff/IRANYekanX-UltraLight.woff') format('woff'), url('../fonts/iranyekan/woff2/IRANYekanX-UltraLight.woff2') format('woff2'); +} + +@font-face { + font-family: IRANYekanX; + font-style: normal; + font-weight: 300; + src: url('../fonts/iranyekan/woff/IRANYekanX-Light.woff') format('woff'), url('../fonts/iranyekan/woff2/IRANYekanX-Light.woff2') format('woff2'); +} + +@font-face { + font-family: IRANYekanX; + font-style: normal; + font-weight: 500; + src: url('../fonts/iranyekan/woff/IRANYekanX-Medium.woff') format('woff'), url('../fonts/iranyekan/woff2/IRANYekanX-Medium.woff2') format('woff2'); +} + +@font-face { + font-family: IRANYekanX; + font-style: normal; + font-weight: 600; + src: url('../fonts/iranyekan/woff/IRANYekanX-DemiBold.woff') format('woff'), url('../fonts/iranyekan/woff2/IRANYekanX-DemiBold.woff2') format('woff2'); +} + +@font-face { + font-family: IRANYekanX; + font-style: normal; + font-weight: 800; + src: url('../fonts/iranyekan/woff/IRANYekanX-ExtraBold.woff') format('woff'), url('../fonts/iranyekan/woff2/IRANYekanX-ExtraBold.woff2') format('woff2'); +} + +@font-face { + font-family: IRANYekanX; + font-style: normal; + font-weight: 900; + src: url('../fonts/iranyekan/woff/IRANYekanX-Black.woff') format('woff'), url('../fonts/iranyekan/woff2/IRANYekanX-Black.woff2') format('woff2'); +} + +@font-face { + font-family: IRANYekanX; + font-style: normal; + font-weight: 950; + src: url('../fonts/iranyekan/woff/IRANYekanX-ExtraBlack.woff') format('woff'), url('../fonts/iranyekan/woff2/IRANYekanX-ExtraBlack.woff2') format('woff2'); +} + +@font-face { + font-family: IRANYekanX; + font-style: normal; + font-weight: 1000; + src: url('../fonts/iranyekan/woff/IRANYekanX-Heavy.woff') format('woff'), url('../fonts/iranyekan/woff2/IRANYekanX-Heavy.woff2') format('woff2'); +} + +@font-face { + font-family: IRANYekanX; + font-style: normal; + font-weight: bold; + src: url('../fonts/iranyekan/woff/IRANYekanX-Bold.woff') format('woff'), url('../fonts/iranyekan/woff2/IRANYekanX-Bold.woff2') format('woff2'); +} + +@font-face { + font-family: IRANYekanX; + font-style: normal; + font-weight: normal; + src: url('../fonts/iranyekan/woff/IRANYekanX-Regular.woff') format('woff'), url('../fonts/iranyekan/woff2/IRANYekanX-Regular.woff2') format('woff2'); +} \ No newline at end of file diff --git a/ServiceHost/wwwroot/AssetsMain/css/main.css b/ServiceHost/wwwroot/AssetsMain/css/main.css new file mode 100644 index 00000000..4f48d8af --- /dev/null +++ b/ServiceHost/wwwroot/AssetsMain/css/main.css @@ -0,0 +1,19 @@ +@import "/AssetsClient/css/fontiran.css"; + +*, +html { + direction: rtl; + font-family: 'IRANYekanX', serif; +} + +body { + -moz-font-feature-settings: "ss02"; + -webkit-font-feature-settings: "ss02"; + font-feature-settings: "ss02"; +} + +.ss03 { + -moz-font-feature-settings: "ss03"; + -webkit-font-feature-settings: "ss03"; + font-feature-settings: "ss03"; +} \ No newline at end of file diff --git a/ServiceHost/wwwroot/AssetsMain/css/styles.css b/ServiceHost/wwwroot/AssetsMain/css/styles.css new file mode 100644 index 00000000..53337db2 --- /dev/null +++ b/ServiceHost/wwwroot/AssetsMain/css/styles.css @@ -0,0 +1 @@ +*,::backdrop,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:initial}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:initial;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:initial}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.invisible{visibility:hidden}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.-bottom-9{bottom:-2.25rem}.-right-6{right:-1.5rem}.-start-9{inset-inline-start:-2.25rem}.-top-20{top:-5rem}.bottom-0{bottom:0}.left-0{left:0}.right-0{right:0}.start-\[1px\]{inset-inline-start:1px}.top-0{top:0}.top-\[127px\]{top:127px}.top-\[150px\]{top:150px}.top-\[66px\]{top:66px}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-\[100\]{z-index:100}.z-\[504\]{z-index:504}.z-\[51\]{z-index:51}.order-1{order:1}.order-2{order:2}.m-0{margin:0}.mx-1{margin-left:.25rem;margin-right:.25rem}.mx-4{margin-left:1rem;margin-right:1rem}.mx-6{margin-left:1.5rem;margin-right:1.5rem}.mx-auto{margin-left:auto;margin-right:auto}.my-1{margin-top:.25rem;margin-bottom:.25rem}.my-2{margin-top:.5rem;margin-bottom:.5rem}.my-3{margin-top:.75rem;margin-bottom:.75rem}.my-4{margin-top:1rem;margin-bottom:1rem}.my-6{margin-top:1.5rem;margin-bottom:1.5rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-9{margin-bottom:2.25rem}.mr-3{margin-right:.75rem}.mt-6{margin-top:1.5rem}.block{display:block}.inline{display:inline}.flex{display:flex}.grid{display:grid}.hidden{display:none}.h-7{height:1.75rem}.h-full{height:100%}.w-1{width:.25rem}.w-12{width:3rem}.w-14{width:3.5rem}.w-16{width:4rem}.w-24{width:6rem}.w-28{width:7rem}.w-32{width:8rem}.w-6\/12{width:50%}.w-9{width:2.25rem}.w-\[20rem\]{width:20rem}.w-\[240px\]{width:240px}.w-\[2px\]{width:2px}.w-\[5\.1rem\]{width:5.1rem}.w-\[6rem\]{width:6rem}.w-full{width:100%}.min-w-9{min-width:2.25rem}.max-w-\[1320px\]{max-width:1320px}.max-w-screen-lg{max-width:1024px}.max-w-screen-xl{max-width:1280px}.translate-x-full{--tw-translate-x:100%}.-rotate-90,.translate-x-full{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-rotate-90{--tw-rotate:-90deg}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-pointer{cursor:pointer}.resize-none{resize:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-9{gap:2.25rem}.space-x-3>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.75rem*var(--tw-space-x-reverse));margin-left:calc(.75rem*(1 - var(--tw-space-x-reverse)))}.space-y-12>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(3rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(3rem*var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem*var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.scroll-smooth{scroll-behavior:smooth}.rounded-2xl{border-radius:1rem}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-none{border-radius:0}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-e-2{border-inline-end-width:2px}.border-\[\#2DBCBC\]{--tw-border-opacity:1;border-color:rgb(45 188 188/var(--tw-border-opacity,1))}.border-\[\#575757\]{--tw-border-opacity:1;border-color:rgb(87 87 87/var(--tw-border-opacity,1))}.border-\[\#E3E3E3\]{--tw-border-opacity:1;border-color:rgb(227 227 227/var(--tw-border-opacity,1))}.border-\[\#E4E4E7\]{--tw-border-opacity:1;border-color:rgb(228 228 231/var(--tw-border-opacity,1))}.border-b-\[\#AEAEAE\]{--tw-border-opacity:1;border-bottom-color:rgb(174 174 174/var(--tw-border-opacity,1))}.border-b-gray-200{--tw-border-opacity:1;border-bottom-color:rgb(229 231 235/var(--tw-border-opacity,1))}.bg-\[\#2DBCBC\]{--tw-bg-opacity:1;background-color:rgb(45 188 188/var(--tw-bg-opacity,1))}.bg-\[\#D1DBE8\]{--tw-bg-opacity:1;background-color:rgb(209 219 232/var(--tw-bg-opacity,1))}.bg-\[\#D9FBFB\]{--tw-bg-opacity:1;background-color:rgb(217 251 251/var(--tw-bg-opacity,1))}.bg-\[\#F3F8FC\]{--tw-bg-opacity:1;background-color:rgb(243 248 252/var(--tw-bg-opacity,1))}.bg-\[\#FBFDFF\]{--tw-bg-opacity:1;background-color:rgb(251 253 255/var(--tw-bg-opacity,1))}.bg-black\/50{background-color:#00000080}.bg-gray-200{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity,1))}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.bg-gradient-to-l{background-image:linear-gradient(to left,var(--tw-gradient-stops))}.bg-gradient-to-t{background-image:linear-gradient(to top,var(--tw-gradient-stops))}.from-\[\#003E3E\]{--tw-gradient-from:#003e3e var(--tw-gradient-from-position);--tw-gradient-to:#003e3e00 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-\[\#035757\]{--tw-gradient-from:#035757 var(--tw-gradient-from-position);--tw-gradient-to:#03575700 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-\[\#E8E8E8\]\/30{--tw-gradient-from:#e8e8e84d var(--tw-gradient-from-position);--tw-gradient-to:#e8e8e800 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.via-\[\#067A7A\]{--tw-gradient-to:#067a7a00 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),#067a7a var(--tw-gradient-via-position),var(--tw-gradient-to)}.to-\[\#004343\]{--tw-gradient-to:#004343 var(--tw-gradient-to-position)}.to-\[\#2EBEBE\]{--tw-gradient-to:#2ebebe var(--tw-gradient-to-position)}.to-\[\#F3F8FC\]{--tw-gradient-to:#f3f8fc var(--tw-gradient-to-position)}.object-cover{-o-object-fit:cover;object-fit:cover}.object-center{-o-object-position:center;object-position:center}.p-0{padding:0}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-9{padding:2.25rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-12{padding-left:3rem;padding-right:3rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-9{padding-left:2.25rem;padding-right:2.25rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-20{padding-top:5rem;padding-bottom:5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-\[0\.54rem\]{padding-top:.54rem;padding-bottom:.54rem}.pb-3{padding-bottom:.75rem}.pl-6{padding-left:1.5rem}.pt-6{padding-top:1.5rem}.text-left{text-align:left}.text-center{text-align:center}.text-justify{text-align:justify}.text-start{text-align:start}.text-2xl{font-size:1.5rem;line-height:2rem}.text-\[0\.71rem\]{font-size:.71rem}.text-\[0\.75rem\]{font-size:.75rem}.text-\[0\.7rem\]{font-size:.7rem}.text-\[0\.85rem\]{font-size:.85rem}.text-\[0\.8rem\]{font-size:.8rem}.text-\[0\.9rem\]{font-size:.9rem}.text-\[1\.1rem\]{font-size:1.1rem}.text-\[1\.2rem\]{font-size:1.2rem}.text-\[1\.3rem\]{font-size:1.3rem}.text-\[1\.6rem\]{font-size:1.6rem}.text-\[1rem\]{font-size:1rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.font-\[500\]{font-weight:500}.font-\[600\]{font-weight:600}.font-\[700\]{font-weight:700}.font-\[800\]{font-weight:800}.font-\[900\]{font-weight:900}.font-bold{font-weight:700}.font-extrabold{font-weight:800}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.\!text-white{--tw-text-opacity:1!important;color:rgb(255 255 255/var(--tw-text-opacity,1))!important}.text-\[\#0\.8rem\]{color:#0.8rem}.text-\[\#002626\]{--tw-text-opacity:1;color:rgb(0 38 38/var(--tw-text-opacity,1))}.text-\[\#1\.4rem\]{color:#1.4rem}.text-\[\#11181C\]{--tw-text-opacity:1;color:rgb(17 24 28/var(--tw-text-opacity,1))}.text-\[\#138A8A\]{--tw-text-opacity:1;color:rgb(19 138 138/var(--tw-text-opacity,1))}.text-\[\#138F8F\]{--tw-text-opacity:1;color:rgb(19 143 143/var(--tw-text-opacity,1))}.text-\[\#178B8B\]{--tw-text-opacity:1;color:rgb(23 139 139/var(--tw-text-opacity,1))}.text-\[\#178C8C\]{--tw-text-opacity:1;color:rgb(23 140 140/var(--tw-text-opacity,1))}.text-\[\#2B2B2B\]{--tw-text-opacity:1;color:rgb(43 43 43/var(--tw-text-opacity,1))}.text-\[\#33363F\]{--tw-text-opacity:1;color:rgb(51 54 63/var(--tw-text-opacity,1))}.text-\[\#344456\]{--tw-text-opacity:1;color:rgb(52 68 86/var(--tw-text-opacity,1))}.text-\[\#393939\]{--tw-text-opacity:1;color:rgb(57 57 57/var(--tw-text-opacity,1))}.text-\[\#3C3C3C\]{--tw-text-opacity:1;color:rgb(60 60 60/var(--tw-text-opacity,1))}.text-\[\#3F3F3F\]{--tw-text-opacity:1;color:rgb(63 63 63/var(--tw-text-opacity,1))}.text-\[\#465A71\]{--tw-text-opacity:1;color:rgb(70 90 113/var(--tw-text-opacity,1))}.text-\[\#4E4E4E\]{--tw-text-opacity:1;color:rgb(78 78 78/var(--tw-text-opacity,1))}.text-\[\#4F4F4F\]{--tw-text-opacity:1;color:rgb(79 79 79/var(--tw-text-opacity,1))}.text-\[\#515151\]{--tw-text-opacity:1;color:rgb(81 81 81/var(--tw-text-opacity,1))}.text-\[\#52525B\]{--tw-text-opacity:1;color:rgb(82 82 91/var(--tw-text-opacity,1))}.text-\[\#575757\]{--tw-text-opacity:1;color:rgb(87 87 87/var(--tw-text-opacity,1))}.text-\[\#585960\]{--tw-text-opacity:1;color:rgb(88 89 96/var(--tw-text-opacity,1))}.text-\[\#666666\]{--tw-text-opacity:1;color:rgb(102 102 102/var(--tw-text-opacity,1))}.text-\[\#818181\]{--tw-text-opacity:1;color:rgb(129 129 129/var(--tw-text-opacity,1))}.text-\[\#8B8B8B\]{--tw-text-opacity:1;color:rgb(139 139 139/var(--tw-text-opacity,1))}.text-\[\#F31260\]{--tw-text-opacity:1;color:rgb(243 18 96/var(--tw-text-opacity,1))}.text-black{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity,1))}.text-gray-800{--tw-text-opacity:1;color:rgb(31 41 55/var(--tw-text-opacity,1))}.text-green-900{--tw-text-opacity:1;color:rgb(20 83 45/var(--tw-text-opacity,1))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-30{opacity:.3}.shadow-lg{--tw-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.shadow-lg,.shadow-md{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.shadow-xl{--tw-shadow:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a;--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline-\[\#E4E4E7\]{outline-color:#e4e4e7}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-300{transition-duration:.3s}.duration-500{transition-duration:.5s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-linear{transition-timing-function:linear}.before\:absolute:before{content:var(--tw-content);position:absolute}.before\:-right-3:before{content:var(--tw-content);right:-.75rem}.before\:bottom-0:before{content:var(--tw-content);bottom:0}.before\:right-0:before{content:var(--tw-content);right:0}.before\:top-0:before{content:var(--tw-content);top:0}.before\:top-2:before{content:var(--tw-content);top:.5rem}.before\:my-auto:before{content:var(--tw-content);margin-top:auto;margin-bottom:auto}.before\:mr-2:before{content:var(--tw-content);margin-right:.5rem}.before\:h-2:before{content:var(--tw-content);height:.5rem}.before\:h-\[33px\]:before{content:var(--tw-content);height:33px}.before\:h-\[4px\]:before{content:var(--tw-content);height:4px}.before\:h-full:before{content:var(--tw-content);height:100%}.before\:w-1:before{content:var(--tw-content);width:.25rem}.before\:w-2:before{content:var(--tw-content);width:.5rem}.before\:w-\[4px\]:before{content:var(--tw-content);width:4px}.before\:w-\[6px\]:before{content:var(--tw-content);width:6px}.before\:w-full:before{content:var(--tw-content);width:100%}.before\:rounded-full:before{content:var(--tw-content);border-radius:9999px}.before\:rounded-t-md:before{content:var(--tw-content);border-top-left-radius:.375rem;border-top-right-radius:.375rem}.before\:rounded-bl-md:before{content:var(--tw-content);border-bottom-left-radius:.375rem}.before\:rounded-tl-md:before{content:var(--tw-content);border-top-left-radius:.375rem}.before\:bg-\[\#27ACAC\]:before{content:var(--tw-content);--tw-bg-opacity:1;background-color:rgb(39 172 172/var(--tw-bg-opacity,1))}.before\:bg-\[\#2DBCBC\]:before{content:var(--tw-content);--tw-bg-opacity:1;background-color:rgb(45 188 188/var(--tw-bg-opacity,1))}.before\:bg-green-800:before{content:var(--tw-content);--tw-bg-opacity:1;background-color:rgb(22 101 52/var(--tw-bg-opacity,1))}.before\:\!opacity-0:before{content:var(--tw-content);opacity:0!important}.before\:\!opacity-100:before{content:var(--tw-content);opacity:1!important}.before\:opacity-0:before{content:var(--tw-content);opacity:0}.before\:transition-all:before{content:var(--tw-content);transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.before\:content-\[\'\'\]:before{--tw-content:"";content:var(--tw-content)}.hover\:border-\[\#178B8B\]:hover{--tw-border-opacity:1;border-color:rgb(23 139 139/var(--tw-border-opacity,1))}.hover\:bg-\[\#2DBCBC\]:hover{--tw-bg-opacity:1;background-color:rgb(45 188 188/var(--tw-bg-opacity,1))}.hover\:bg-\[\#DDDDDD\]:hover{--tw-bg-opacity:1;background-color:rgb(221 221 221/var(--tw-bg-opacity,1))}.hover\:bg-gray-100:hover{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.hover\:text-\[\#138A8A\]:hover{--tw-text-opacity:1;color:rgb(19 138 138/var(--tw-text-opacity,1))}.hover\:text-\[\#25303D\]:hover{--tw-text-opacity:1;color:rgb(37 48 61/var(--tw-text-opacity,1))}.hover\:text-\[\#282828\]:hover{--tw-text-opacity:1;color:rgb(40 40 40/var(--tw-text-opacity,1))}.hover\:text-\[\#424242\]:hover{--tw-text-opacity:1;color:rgb(66 66 66/var(--tw-text-opacity,1))}.hover\:text-white:hover{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.hover\:text-opacity-70:hover{--tw-text-opacity:0.7}.focus\:outline-none:focus{outline:2px solid #0000;outline-offset:2px}.focus\:outline-\[\#B3B3B3\]:focus{outline-color:#b3b3b3}.focus-visible\:outline:focus-visible{outline-style:solid}.focus-visible\:outline-\[\#B3B3B3\]:focus-visible{outline-color:#b3b3b3}.group\/item:hover .group-hover\/item\:-translate-x-2{--tw-translate-x:-0.5rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group\/item:hover .group-hover\/item\:text-\[\#178B8B\]{--tw-text-opacity:1;color:rgb(23 139 139/var(--tw-text-opacity,1))}.group\/item:hover .group-hover\/item\:opacity-100{opacity:1}.dark\:inline:is(.dark *){display:inline}.dark\:hidden:is(.dark *){display:none}.dark\:border-\[\#44475A\]:is(.dark *){--tw-border-opacity:1;border-color:rgb(68 71 90/var(--tw-border-opacity,1))}.dark\:border-b-\[\#212330\]:is(.dark *){--tw-border-opacity:1;border-bottom-color:rgb(33 35 48/var(--tw-border-opacity,1))}.dark\:border-b-\[\#494B57\]:is(.dark *){--tw-border-opacity:1;border-bottom-color:rgb(73 75 87/var(--tw-border-opacity,1))}.dark\:bg-\[\#144343\]:is(.dark *){--tw-bg-opacity:1;background-color:rgb(20 67 67/var(--tw-bg-opacity,1))}.dark\:bg-\[\#171923\]:is(.dark *){--tw-bg-opacity:1;background-color:rgb(23 25 35/var(--tw-bg-opacity,1))}.dark\:bg-\[\#212330\]:is(.dark *){--tw-bg-opacity:1;background-color:rgb(33 35 48/var(--tw-bg-opacity,1))}.dark\:to-\[\#444C53\]:is(.dark *){--tw-gradient-to:#444c53 var(--tw-gradient-to-position)}.dark\:text-\[\#D1D1D1\]:is(.dark *){--tw-text-opacity:1;color:rgb(209 209 209/var(--tw-text-opacity,1))}.dark\:text-\[\#EDEDED\]:is(.dark *){--tw-text-opacity:1;color:rgb(237 237 237/var(--tw-text-opacity,1))}.dark\:text-\[\#F695B7\]:is(.dark *){--tw-text-opacity:1;color:rgb(246 149 183/var(--tw-text-opacity,1))}.dark\:text-white:is(.dark *){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.dark\:opacity-15:is(.dark *){opacity:.15}.dark\:hover\:bg-gray-800:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1))}.dark\:hover\:text-\[\#D0D0D0\]:hover:is(.dark *){--tw-text-opacity:1;color:rgb(208 208 208/var(--tw-text-opacity,1))}.dark\:hover\:text-\[\#c9c9c9\]:hover:is(.dark *){--tw-text-opacity:1;color:rgb(201 201 201/var(--tw-text-opacity,1))}.group\/item:hover .dark\:group-hover\/item\:text-\[\#15BCBC\]:is(.dark *){--tw-text-opacity:1;color:rgb(21 188 188/var(--tw-text-opacity,1))}@media (min-width:640px){.sm\:w-72{width:18rem}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:768px){.md\:-top-\[160px\]{top:-160px}.md\:-top-\[600px\]{top:-600px}.md\:order-1{order:1}.md\:order-2{order:2}.md\:block{display:block}.md\:flex{display:flex}.md\:hidden{display:none}.md\:w-10\/12{width:83.333333%}.md\:w-11\/12{width:91.666667%}.md\:w-16{width:4rem}.md\:w-4\/12{width:33.333333%}.md\:w-52{width:13rem}.md\:w-6\/12{width:50%}.md\:w-8\/12{width:66.666667%}.md\:w-80{width:20rem}.md\:w-\[8rem\]{width:8rem}.md\:w-auto{width:auto}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:justify-between{justify-content:space-between}.md\:p-4{padding:1rem}.md\:p-6{padding:1.5rem}.md\:px-3{padding-left:.75rem;padding-right:.75rem}.md\:px-9{padding-left:2.25rem;padding-right:2.25rem}.md\:py-1{padding-top:.25rem;padding-bottom:.25rem}.md\:py-6{padding-top:1.5rem;padding-bottom:1.5rem}.md\:py-9{padding-top:2.25rem;padding-bottom:2.25rem}.md\:text-left{text-align:left}.md\:text-start{text-align:start}.md\:text-\[0\.8rem\]{font-size:.8rem}.md\:text-\[0\.95rem\]{font-size:.95rem}.md\:text-\[0\.9rem\]{font-size:.9rem}.md\:text-\[1\.1rem\]{font-size:1.1rem}.md\:text-\[1\.2rem\]{font-size:1.2rem}.md\:text-\[1\.4rem\]{font-size:1.4rem}.md\:font-medium{font-weight:500}}@media (min-width:1024px){.lg\:-top-\[400px\]{top:-400px}.lg\:-top-\[90px\]{top:-90px}.lg\:order-1{order:1}.lg\:order-2{order:2}.lg\:flex{display:flex}.lg\:hidden{display:none}.lg\:w-10\/12{width:83.333333%}.lg\:w-24{width:6rem}.lg\:w-3\/12{width:25%}.lg\:w-6\/12{width:50%}.lg\:w-9\/12{width:75%}.lg\:w-96{width:24rem}.lg\:w-\[30rem\]{width:30rem}.lg\:w-\[9rem\]{width:9rem}.lg\:w-full{width:100%}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:gap-4{gap:1rem}.lg\:gap-5{gap:1.25rem}.lg\:gap-9{gap:2.25rem}.lg\:p-6{padding:1.5rem}.lg\:p-9{padding:2.25rem}.lg\:px-12{padding-left:3rem;padding-right:3rem}.lg\:px-6{padding-left:1.5rem;padding-right:1.5rem}.lg\:py-16{padding-top:4rem;padding-bottom:4rem}.lg\:text-\[0\.82rem\]{font-size:.82rem}.lg\:text-\[0\.86rem\]{font-size:.86rem}.lg\:text-\[0\.9rem\]{font-size:.9rem}.lg\:text-\[1\.3rem\]{font-size:1.3rem}.lg\:text-\[1rem\]{font-size:1rem}}@media (min-width:1280px){.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}.ltr\:-left-\[19px\]:where([dir=ltr],[dir=ltr] *){left:-19px}.ltr\:before\:-left-\[20px\]:where([dir=ltr],[dir=ltr] *):before{content:var(--tw-content);left:-20px}.rtl\:-right-\[19px\]:where([dir=rtl],[dir=rtl] *){right:-19px}.rtl\:before\:-right-\[20px\]:where([dir=rtl],[dir=rtl] *):before{content:var(--tw-content);right:-20px} \ No newline at end of file diff --git a/ServiceHost/wwwroot/AssetsMain/images/checkout-list.png b/ServiceHost/wwwroot/AssetsMain/images/checkout-list.png new file mode 100644 index 00000000..1a021af6 Binary files /dev/null and b/ServiceHost/wwwroot/AssetsMain/images/checkout-list.png differ diff --git a/ServiceHost/wwwroot/AssetsMain/images/checkout-list.svg b/ServiceHost/wwwroot/AssetsMain/images/checkout-list.svg new file mode 100644 index 00000000..f4ebfd3d --- /dev/null +++ b/ServiceHost/wwwroot/AssetsMain/images/checkout-list.svg @@ -0,0 +1,281 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ServiceHost/wwwroot/AssetsMain/images/contract-list.png b/ServiceHost/wwwroot/AssetsMain/images/contract-list.png new file mode 100644 index 00000000..a70921fb Binary files /dev/null and b/ServiceHost/wwwroot/AssetsMain/images/contract-list.png differ diff --git a/ServiceHost/wwwroot/AssetsMain/images/contract-list.svg b/ServiceHost/wwwroot/AssetsMain/images/contract-list.svg new file mode 100644 index 00000000..7c14ce99 --- /dev/null +++ b/ServiceHost/wwwroot/AssetsMain/images/contract-list.svg @@ -0,0 +1,147 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ServiceHost/wwwroot/AssetsMain/images/enamad_icon.png b/ServiceHost/wwwroot/AssetsMain/images/enamad_icon.png new file mode 100644 index 00000000..b1bc90f1 Binary files /dev/null and b/ServiceHost/wwwroot/AssetsMain/images/enamad_icon.png differ diff --git a/ServiceHost/wwwroot/AssetsMain/images/enamed-park.png b/ServiceHost/wwwroot/AssetsMain/images/enamed-park.png new file mode 100644 index 00000000..b01e6484 Binary files /dev/null and b/ServiceHost/wwwroot/AssetsMain/images/enamed-park.png differ diff --git a/ServiceHost/wwwroot/AssetsMain/images/footer-logo.png b/ServiceHost/wwwroot/AssetsMain/images/footer-logo.png new file mode 100644 index 00000000..946bc7e8 Binary files /dev/null and b/ServiceHost/wwwroot/AssetsMain/images/footer-logo.png differ diff --git a/ServiceHost/wwwroot/AssetsMain/images/globeX.png b/ServiceHost/wwwroot/AssetsMain/images/globeX.png new file mode 100644 index 00000000..10c1d894 Binary files /dev/null and b/ServiceHost/wwwroot/AssetsMain/images/globeX.png differ diff --git a/ServiceHost/wwwroot/AssetsMain/images/headerSingle.png b/ServiceHost/wwwroot/AssetsMain/images/headerSingle.png new file mode 100644 index 00000000..a1e722f8 Binary files /dev/null and b/ServiceHost/wwwroot/AssetsMain/images/headerSingle.png differ diff --git a/ServiceHost/wwwroot/AssetsMain/images/hero-bg-real.jpg b/ServiceHost/wwwroot/AssetsMain/images/hero-bg-real.jpg new file mode 100644 index 00000000..9c6b1443 Binary files /dev/null and b/ServiceHost/wwwroot/AssetsMain/images/hero-bg-real.jpg differ diff --git a/ServiceHost/wwwroot/AssetsMain/images/hero-bg.png b/ServiceHost/wwwroot/AssetsMain/images/hero-bg.png new file mode 100644 index 00000000..79243baf Binary files /dev/null and b/ServiceHost/wwwroot/AssetsMain/images/hero-bg.png differ diff --git a/ServiceHost/wwwroot/AssetsMain/images/hero.png b/ServiceHost/wwwroot/AssetsMain/images/hero.png new file mode 100644 index 00000000..7512f3ab Binary files /dev/null and b/ServiceHost/wwwroot/AssetsMain/images/hero.png differ diff --git a/ServiceHost/wwwroot/AssetsMain/images/line-wave.svg b/ServiceHost/wwwroot/AssetsMain/images/line-wave.svg new file mode 100644 index 00000000..dead168a --- /dev/null +++ b/ServiceHost/wwwroot/AssetsMain/images/line-wave.svg @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ServiceHost/wwwroot/AssetsMain/images/lineSupportLeft.svg b/ServiceHost/wwwroot/AssetsMain/images/lineSupportLeft.svg new file mode 100644 index 00000000..884b5a37 --- /dev/null +++ b/ServiceHost/wwwroot/AssetsMain/images/lineSupportLeft.svg @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ServiceHost/wwwroot/AssetsMain/images/lineSupportRight.svg b/ServiceHost/wwwroot/AssetsMain/images/lineSupportRight.svg new file mode 100644 index 00000000..e4afdc2d --- /dev/null +++ b/ServiceHost/wwwroot/AssetsMain/images/lineSupportRight.svg @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ServiceHost/wwwroot/AssetsMain/images/logo.svg b/ServiceHost/wwwroot/AssetsMain/images/logo.svg new file mode 100644 index 00000000..889a3509 --- /dev/null +++ b/ServiceHost/wwwroot/AssetsMain/images/logo.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ServiceHost/wwwroot/AssetsMain/images/logoRegisterSvg.svg b/ServiceHost/wwwroot/AssetsMain/images/logoRegisterSvg.svg new file mode 100644 index 00000000..18dc1b85 --- /dev/null +++ b/ServiceHost/wwwroot/AssetsMain/images/logoRegisterSvg.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ServiceHost/wwwroot/AssetsMain/images/mngEmplyees.svg b/ServiceHost/wwwroot/AssetsMain/images/mngEmplyees.svg new file mode 100644 index 00000000..e4c196bc --- /dev/null +++ b/ServiceHost/wwwroot/AssetsMain/images/mngEmplyees.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ServiceHost/wwwroot/AssetsMain/images/mobile.png b/ServiceHost/wwwroot/AssetsMain/images/mobile.png new file mode 100644 index 00000000..7931f94f Binary files /dev/null and b/ServiceHost/wwwroot/AssetsMain/images/mobile.png differ diff --git a/ServiceHost/wwwroot/AssetsMain/images/newEmployee.svg b/ServiceHost/wwwroot/AssetsMain/images/newEmployee.svg new file mode 100644 index 00000000..eaabc45f --- /dev/null +++ b/ServiceHost/wwwroot/AssetsMain/images/newEmployee.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/ServiceHost/wwwroot/AssetsMain/images/permission.svg b/ServiceHost/wwwroot/AssetsMain/images/permission.svg new file mode 100644 index 00000000..e4f20d8b --- /dev/null +++ b/ServiceHost/wwwroot/AssetsMain/images/permission.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/ServiceHost/wwwroot/AssetsMain/images/pointer.svg b/ServiceHost/wwwroot/AssetsMain/images/pointer.svg new file mode 100644 index 00000000..3cf4630e --- /dev/null +++ b/ServiceHost/wwwroot/AssetsMain/images/pointer.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/ServiceHost/wwwroot/AssetsMain/images/rectangle-4729.png b/ServiceHost/wwwroot/AssetsMain/images/rectangle-4729.png new file mode 100644 index 00000000..a58a201e Binary files /dev/null and b/ServiceHost/wwwroot/AssetsMain/images/rectangle-4729.png differ diff --git a/ServiceHost/wwwroot/AssetsMain/images/rectangle-4730.png b/ServiceHost/wwwroot/AssetsMain/images/rectangle-4730.png new file mode 100644 index 00000000..9b5e7c47 Binary files /dev/null and b/ServiceHost/wwwroot/AssetsMain/images/rectangle-4730.png differ diff --git a/ServiceHost/wwwroot/AssetsMain/images/web-goz.png b/ServiceHost/wwwroot/AssetsMain/images/web-goz.png new file mode 100644 index 00000000..230f72c5 Binary files /dev/null and b/ServiceHost/wwwroot/AssetsMain/images/web-goz.png differ diff --git a/ServiceHost/wwwroot/AssetsMain/pages/complaints/js/Index.js b/ServiceHost/wwwroot/AssetsMain/pages/complaints/js/Index.js new file mode 100644 index 00000000..c1402de8 --- /dev/null +++ b/ServiceHost/wwwroot/AssetsMain/pages/complaints/js/Index.js @@ -0,0 +1,133 @@ +$(document).ready(function () { + var maxChars = 500; + var textLength = 0; + var comment = ""; + var outOfChars = '0'; + + /* initalize for when no data is in localStorage */ + var count = maxChars; + $('#characterLeft').text(count); + + /* fix val so it counts carriage returns */ + $.valHooks.textarea = { + get: function (e) { + return e.value.replace(/\r?\n/g, "\r\n"); + } + }; + + function checkCount() { + textLength = $('#description').val().length; + if (textLength >= maxChars) { + $('#characterLeft').text(outOfChars); + } + else { + count = maxChars - textLength; + $('#characterLeft').text(count); + } + } + + /* on keyUp: update #characterLeft as well as count & comment in localStorage */ + $('#description').keyup(function () { + checkCount(); + comment = $(this).val(); + // localStorage.setItem("comment", comment); + }); + + /* on pageload: get check for comment text in localStorage, if found update comment & count */ + // if (localStorage.getItem("comment") != null) { + // $('#description').text(localStorage.getItem("comment")); + // checkCount(); + // } +}); + +function saveContactUs() { + let isFormValid = true; + + requiredFields.forEach(field => { + const isValid = validateField(field); + if (!isValid) isFormValid = false; + }); + + if (!isFormValid) return; + + var data = $('#formContact').serialize(); + ajax.post(createAjaxUrl, data, false).then(response => { + if (response.success) { + $('.alert-success-msg').show(); + $('.alert-success-msg p').text(response.message); + + $('#formContact')[0].reset(); + //$('#formContact .text-[#F31260], #formContact .dark\\:text-[#F695B7]').hide(); + + setTimeout(function () { + $('.alert-success-msg').hide(); + $('.alert-success-msg p').text(''); + }, 3500); + return; + } else { + $('.alert-msg').show(); + $('.alert-msg p').text(response.message); + setTimeout(function () { + $('.alert-msg').hide(); + $('.alert-msg p').text(''); + }, 3500); + return; + } + }); +} + + +function validateField(field) { + const input = $(field.id); + const value = input.val().trim(); + const errorDiv = input.nextAll("div").first(); + let isValid = true; + + if (value === "") { + errorDiv.text(field.message).show(); + isValid = false; + } else if (field.type === "email" && !validateEmail(value)) { + errorDiv.text("فرمت ایمیل صحیح نیست.").show(); + isValid = false; + } else if (field.type === "number" && !/^\d+$/.test(value)) { + errorDiv.text("شماره همراه باید فقط شامل عدد باشد.").show(); + isValid = false; + } else { + errorDiv.hide(); + } + + return isValid; +} + + +function validateEmail(email) { + var re = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/; + return re.test(email); +} + +const requiredFields = [ + { id: "#fname", message: "نام را وارد کنید." }, + { id: "#lname", message: "نام خانوادگی را وارد کنید." }, + { id: "#email", message: "ایمیل را وارد کنید.", type: "email" }, + { id: "#phone", message: "شماره همراه را وارد کنید.", type: "number" }, + { id: "#subject", message: "موضوع را وارد کنید." }, + { id: "#description", message: "توضیحات را وارد کنید." }, +]; + +// فعال‌سازی اعتبارسنجی در لحظه‌ی تایپ +$(document).ready(function () { + requiredFields.forEach(field => { + $(field.id).on("input", function () { + validateField(field); + }); + }); +}); + + +$(document).ready(function () { + requiredFields.forEach(field => { + $(field.id).on("input", function () { + validateField(field); + }); + }); +}); \ No newline at end of file diff --git a/ServiceHost/wwwroot/AssetsMain/pages/contact-us/js/Index.js b/ServiceHost/wwwroot/AssetsMain/pages/contact-us/js/Index.js new file mode 100644 index 00000000..e761fc5f --- /dev/null +++ b/ServiceHost/wwwroot/AssetsMain/pages/contact-us/js/Index.js @@ -0,0 +1,309 @@ + +// $(document).ready(function() { +// var maxChars = 500; +// var textLength = 0; +// var comment = ""; +// var outOfChars = '0'; + +// /* initalize for when no data is in localStorage */ +// var count = maxChars; +// $('#characterLeft').text(count); + +// /* fix val so it counts carriage returns */ +// $.valHooks.textarea = { +// get: function(e) { +// return e.value.replace(/\r?\n/g, "\r\n"); +// } +// }; + +// function checkCount() { +// textLength = $('#description').val().length; +// if (textLength >= maxChars) { +// $('#characterLeft').text(outOfChars); +// } +// else { +// count = maxChars - textLength; +// $('#characterLeft').text(count); +// } +// } + +// /* on keyUp: update #characterLeft as well as count & comment in localStorage */ +// $('#description').keyup(function() { +// checkCount(); +// comment = $(this).val(); +// // localStorage.setItem("comment", comment); +// }); + +// /* on pageload: get check for comment text in localStorage, if found update comment & count */ +// // if (localStorage.getItem("comment") != null) { +// // $('#description').text(localStorage.getItem("comment")); +// // checkCount(); +// // } +// }); + +// function saveContactUs() { +// let isFormValid = true; + +// requiredFields.forEach(field => { +// const isValid = validateField(field); +// if (!isValid) isFormValid = false; +// }); + +// if (!isFormValid) return; + +// var data = $('#formContact').serialize(); +// ajax.post(createAjaxUrl, data, false).then(response => { +// if (response.success) { +// $('.alert-success-msg').show(); +// $('.alert-success-msg p').text(response.message); + +// $('#formContact')[0].reset(); +// //$('#formContact .text-[#F31260], #formContact .dark\\:text-[#F695B7]').hide(); + +// setTimeout(function() { +// $('.alert-success-msg').hide(); +// $('.alert-success-msg p').text(''); +// },3500); +// return; +// } else { +// $('.alert-msg').show(); +// $('.alert-msg p').text(response.message); +// setTimeout(function() { +// $('.alert-msg').hide(); +// $('.alert-msg p').text(''); +// }, 3500); +// return; +// } +// }); +// } + + +// function validateField(field) { +// const input = $(field.id); +// const value = input.val().trim(); +// const errorDiv = input.nextAll("div").first(); +// let isValid = true; + +// if (value === "") { +// errorDiv.text(field.message).show(); +// isValid = false; +// } else if (field.type === "email" && !validateEmail(value)) { +// errorDiv.text("فرمت ایمیل صحیح نیست.").show(); +// isValid = false; +// } else if (field.type === "number" && !/^\d+$/.test(value)) { +// errorDiv.text("شماره همراه باید فقط شامل عدد باشد.").show(); +// isValid = false; +// } else { +// errorDiv.hide(); +// } + +// return isValid; +// } + + +// function validateEmail(email) { +// var re = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/; +// return re.test(email); +// } + +// const requiredFields = [ +// { id: "#fname", message: "نام را وارد کنید." }, +// { id: "#lname", message: "نام خانوادگی را وارد کنید." }, +// { id: "#email", message: "ایمیل را وارد کنید.", type: "email" }, +// { id: "#phone", message: "شماره همراه را وارد کنید.", type: "number" }, +// { id: "#subject", message: "موضوع را وارد کنید." }, +// { id: "#description", message: "توضیحات را وارد کنید." }, +// ]; + +// // فعال‌سازی اعتبارسنجی در لحظه‌ی تایپ +// $(document).ready(function () { +// requiredFields.forEach(field => { +// $(field.id).on("input", function () { +// validateField(field); +// }); +// }); +// }); + + +// $(document).ready(function () { +// requiredFields.forEach(field => { +// $(field.id).on("input", function () { +// validateField(field); +// }); +// }); +// }); +$(document).ready(function () { + appendSvgMap(); + appendSvgRight(); + appendSvgLeft(); +}); + +function appendSvgMap() { + var html = ` + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +`; + $('#mapSvg').html(html); +} + +function appendSvgRight() { + var html = ` + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +`; + $('#rightSvg').html(html); +} + +function appendSvgLeft() { + var html = ` + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + `; + $('#leftSvg').html(html); +} \ No newline at end of file