using BMA.EHR.Recurit.Exam.Service.Models;
using System.ComponentModel.DataAnnotations;
using Microsoft.EntityFrameworkCore;

namespace BMA.EHR.Profile.Service.Models.HR
{
    public class ProfileSalary : EntityBase
    {
        [Comment("วัน เดือน ปี รับตำแหน่ง")]
        public DateTime? Date { get; set; }
        [Comment("ลำดับ")]
        public int? Order { get; set; }
        [Comment("เงินเดือน")]
        public double? Amount { get; set; }
        [Comment("เงินประจำตำแหน่ง")]
        public double? PositionSalaryAmount { get; set; }
        [Comment("เงินค่าตอบแทนรายเดือน")]
        public double? MouthSalaryAmount { get; set; }
        [Comment("Id สังกัด")]
        public Guid? OcId { get; set; }
        [Comment("Id ชื่อย่อหน่วยงาน")]
        public Guid? OrganizationShortNameId { get; set; }
        [Comment("Id ตำแหน่ง")]
        public Guid? PositionId { get; set; }
        [Comment("Id เลขที่ตำแหน่ง")]
        public Guid? PosNoId { get; set; }
        [Comment("เลขที่ตำแหน่งลูกจ้าง")]
        public string? PosNoEmployee { get; set; }
        [Comment("Id สายงาน")]
        public Guid? PositionLineId { get; set; }
        [Comment("Id ด้าน/สาขา")]
        public Guid? PositionPathSideId { get; set; }
        [Comment("Id ประเภทตำแหน่ง")]
        public Guid? PositionTypeId { get; set; }
        // [Comment("Id ระดับ")]
        // public PositionLevel? PositionLevel { get; set; }
        [Comment("Id ตำแหน่งทางการบริหาร")]
        public Guid? PositionExecutiveId { get; set; }
        [Comment("Id ด้านทางการบริหาร")]
        public Guid? PositionExecutiveSideId { get; set; }
        [Comment("Id ตำแหน่ง")]
        public Guid? PositionEmployeePositionId { get; set; }
        [Comment("Id ด้านของตำแหน่ง")]
        public Guid? PositionEmployeePositionSideId { get; set; }
        [Comment(" Id ระดับชั้นงาน")]
        public Guid? PositionEmployeeLevelId { get; set; }
        [Comment("Id กลุ่มงาน")]
        public Guid? PositionEmployeeGroupId { get; set; }

        [Comment("ตำแหน่ง (รายละเอียด)")]
        public string? SalaryClass { get; set; }

        [Comment("เอกสารอ้างอิง")]
        public string? SalaryRef { get; set; }
        // public virtual List<ProfileSalaryHistory> ProfileSalaryHistorys { get; set; } = new List<ProfileSalaryHistory>();
        public virtual Profile? Profile { get; set; }

        [Comment("เลขที่คำสั่ง")]
        public string CommandNo { get; set; }

        [Comment("ประเภทคำสั่ง")]
        public string CommandTypeName { get; set; }

        [Comment("ประเภทตำแหน่งกรณีพิเศษ")]
        public string? SalaryStatus { get; set; }
        public bool IsActive { get; set; } = true;
    }
}
