ContractDto.cs 4.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. using MTWorkHR.Application.Models;
  2. using MTWorkHR.Core.Entities.Base;
  3. using MTWorkHR.Core.Global;
  4. using Newtonsoft.Json;
  5. using System;
  6. using System.Collections.Generic;
  7. using System.ComponentModel.DataAnnotations;
  8. using System.ComponentModel.DataAnnotations.Schema;
  9. using System.Linq;
  10. using System.Text;
  11. using System.Threading.Tasks;
  12. namespace MTWorkHR.Application.Models
  13. {
  14. public class ContractDto : EntityDto
  15. {
  16. public ContractTypeEnum ContractTypeId { get; set; }
  17. public ContractStatusEnum ContractStatusId { get; set; }
  18. public long CompanyId { get; set; }
  19. public string CompanyRepresentativeId { get; set; }
  20. public string UserId { get; set; }
  21. [JsonProperty(Required = Required.AllowNull)]
  22. public string? EmployeeName { get; set; }
  23. [JsonProperty(Required = Required.AllowNull)]
  24. public string? EmployeeEmail { get; set; }
  25. public int? JobId { get; set; }
  26. public int? AcademicQualificationId { get; set; }
  27. public int? SpecializationId { get; set; }
  28. public int WorkCountryId { get; set; }
  29. public int WorkStateId { get; set; }
  30. //-------------------Scope of work-----------
  31. public string? JobTitleName { get; set; }
  32. public string? JobDescription{ get; set; }
  33. [MaxLength(150)]
  34. public string? JobNumber { get; set; } //ثابت و مأخوذ من المنصة
  35. //----------------Contract data -------------------------
  36. public DateTime? StartDate { get; set; }
  37. [JsonProperty(Required = Required.AllowNull)]
  38. public DateTime? EndDate { get; set; }
  39. [JsonProperty(Required = Required.AllowNull)]
  40. public ContractDurationEnum? ContractDurationId { get; set; } //: اختيار: شهري – ربعي – نصف سنوي – 3 ارباع – سنوي
  41. public TypeOfWork? TypeOfWork { get; set; } //: : اختيار: عقد بدوام كامل - عقد دوام جزئي
  42. [JsonProperty(Required = Required.AllowNull)]
  43. public int? VacationDays { get; set; } //اختيار: بدون – سنويا (رقم)
  44. public int? TrialPeriod { get; set; } // تجربة (ادخال: تلقائياً كل ربع سنوي أسبوع تلقائياً) آخر: تعديل
  45. public TerminateContractEnum WhoCanTerminateContractInTrial { get; set; } //اختيار الجميع – صاحب العمل – الموظف
  46. public TerminateContractEnum WhoCanTerminateContract { get; set; }
  47. public int NoticePeriodBeforeTermination { get; set; } //اختيار: بدون – تحديد (ادخال: تلقائياً مدة 10 أيام قبل انتهاء الاستحقاق) آخر: تعديل
  48. //------Working time---------------
  49. [JsonProperty(Required = Required.AllowNull)]
  50. public List<ContractWorkingDayDto>? WorkingDays { get; set; } //: اختيار متعدد الأيام سبت أحد اثنين..... (بحيث الأيام الأخرى تكون إجازة) 1,2,3,4,5
  51. public WorkingHours WorkingHours { get; set; } // يومي/ اسبوعي
  52. public int? WorkingHoursNum { get; set; } // عدد الساعات
  53. public DateTime? StartDailyWorkingHours { get; set; } // تحديد ساعات الدوام قائمة الساعات << التوقيت بحسب دولة صاحب العمل
  54. public DateTime? EndDailyWorkingHours { get; set; } // تحديد ساعات الدوام قائمة الساعات << التوقيت بحسب دولة صاحب العمل
  55. //----------Salary-----------------
  56. [MaxLength(50)]
  57. public string? Currency { get; set; }
  58. public decimal? Salary{ get; set; }
  59. public string? BillingCycle { get; set; }// 2 fortnightly, 4 Monthly
  60. //------------------------Fixed Pay----------------
  61. public DateTime? FirstPatchDateFrom { get; set; }
  62. public DateTime? FirstPatchDateTo { get; set; } //
  63. public decimal? FirstPatchAmount { get; set; }
  64. public DateTime? LastPatchDateFrom { get; set; } //
  65. public DateTime? LastPatchDateTo { get; set; } //
  66. public decimal? LastPatchAmount { get; set; }
  67. //---------Allowances----------------------
  68. public bool IncludesAllAllowances { get; set; }
  69. public List<ContractAllowanceDto>? FixedAllowances { get; set; }
  70. //-------------------------------
  71. public List<ContractTaskDto>? ContractTasks { get; set; }
  72. public List<ProjectStageDto>? ProjectStages { get; set; }
  73. }
  74. }