ContractDetail.cs 5.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. using MTWorkHR.Core.Entities.Base;
  2. using System.ComponentModel.DataAnnotations.Schema;
  3. using System.ComponentModel.DataAnnotations;
  4. using MTWorkHR.Core.Entities;
  5. using MTWorkHR.Core.Global;
  6. using Newtonsoft.Json;
  7. namespace MTWorkHR.Infrastructure.Entities
  8. {
  9. public class ContractDetail2
  10. {
  11. public ContractTypeEnum ContractTypeId { get; set; }
  12. public ContractStatusEnum ContractStatusId { get; set; }
  13. //--------Company data-------
  14. public string CompanyName { get; set; }
  15. public string CompanyCR { get; set; }
  16. public string CompanyEmail { get; set; }
  17. public string CompanyAddress { get; set; }
  18. public string CompanyPhone { get; set; }
  19. //--------Company Representative-------
  20. public string CompanyRepresentativeName { get; set; }
  21. public string CompanyRepresentativePassport { get; set; }
  22. public string CompanyRepresentativePhone { get; set; }
  23. public string CompanyRepresentativeEmail { get; set; }
  24. public string CompanyRepresentativePosition { get; set; }
  25. //--------Employee Data------------------------------------
  26. public string UserId { get; set; }
  27. [JsonProperty(Required = Required.AllowNull)]
  28. public string? EmployeeName { get; set; }
  29. [JsonProperty(Required = Required.AllowNull)]
  30. public string? EmployeeEmail { get; set; }
  31. public string? EmployeePassport{ get; set; }
  32. public string? EmployeePhone { get; set; }
  33. public string? EmployeeUniversity { get; set; }
  34. public DateTime? EmployeeDateOfBirth { get; set; }
  35. //-----------------------------
  36. public string? EmployeeJobName { get; set; }
  37. public string? AcademicQualification { get; set; }
  38. public string? Specialization { get; set; }
  39. public string WorkCountry { get; set; }
  40. public string WorkState { get; set; }
  41. //-------------------Scope of work-----------
  42. public string? JobTitleName { get; set; }
  43. public string? JobDescription { get; set; }
  44. [MaxLength(150)]
  45. public string? JobNumber { get; set; } //ثابت و مأخوذ من المنصة
  46. //----------------Contract data -------------------------
  47. public DateTime? StartDate { get; set; }
  48. [JsonProperty(Required = Required.AllowNull)]
  49. public DateTime? EndDate { get; set; }
  50. [JsonProperty(Required = Required.AllowNull)]
  51. public string? ContractDuration { get; set; } //: اختيار: شهري – ربعي – نصف سنوي – 3 ارباع – سنوي
  52. public string? TypeOfWork { get; set; } //: : اختيار: عقد بدوام كامل - عقد دوام جزئي
  53. [JsonProperty(Required = Required.AllowNull)]
  54. public int? VacationDays { get; set; } //اختيار: بدون – سنويا (رقم)
  55. public int? TrialPeriod { get; set; } // تجربة (ادخال: تلقائياً كل ربع سنوي أسبوع تلقائياً) آخر: تعديل
  56. public string? WhoCanTerminateContractInTrial { get; set; } //اختيار الجميع – صاحب العمل – الموظف
  57. public string? WhoCanTerminateContract { get; set; }
  58. [JsonProperty(Required = Required.AllowNull)]
  59. public int? NoticePeriodBeforeTermination { get; set; } //اختيار: بدون – تحديد (ادخال: تلقائياً مدة 10 أيام قبل انتهاء الاستحقاق) آخر: تعديل
  60. //------Working time---------------
  61. [JsonProperty(Required = Required.AllowNull)]
  62. public List<string>? WorkingDays { get; set; } //: اختيار متعدد الأيام سبت أحد اثنين..... (بحيث الأيام الأخرى تكون إجازة) 1,2,3,4,5
  63. public string? WorkingHours { get; set; } // يومي/ اسبوعي
  64. public int? WorkingHoursNum { get; set; } // عدد الساعات
  65. public DateTime? StartDailyWorkingHours { get; set; } // تحديد ساعات الدوام قائمة الساعات << التوقيت بحسب دولة صاحب العمل
  66. public DateTime? EndDailyWorkingHours { get; set; } // تحديد ساعات الدوام قائمة الساعات << التوقيت بحسب دولة صاحب العمل
  67. //----------Salary-----------------
  68. [MaxLength(50)]
  69. public string? Currency { get; set; }
  70. public decimal? Salary { get; set; }
  71. public string? BillingCycle { get; set; }// 2 fortnightly, 4 Monthly
  72. //------------------------Fixed Pay----------------
  73. public DateTime? FirstPatchDateFrom { get; set; }
  74. public DateTime? FirstPatchDateTo { get; set; } //
  75. public decimal? FirstPatchAmount { get; set; }
  76. public DateTime? LastPatchDateFrom { get; set; } //
  77. public DateTime? LastPatchDateTo { get; set; } //
  78. public decimal? LastPatchAmount { get; set; }
  79. public string? Teams { get; set; }
  80. public string? Vacations { get; set; }
  81. //---------Allowances----------------------
  82. public bool IncludesAllAllowances { get; set; }
  83. public List<ContractAllowance>? FixedAllowances { get; set; }
  84. //-------------------------------
  85. public List<ContractTask>? ContractTasks { get; set; }
  86. public List<ProjectStage>? ProjectStages { get; set; }
  87. }
  88. }