using Microsoft.EntityFrameworkCore;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;

namespace BMA.EHR.Recurit.Exam.Service.Models.Disables
{
    public class Disable : EntityBase
    {

        [Required, MaxLength(13), Comment("เลขประจำตัวประชาชน")]
        public string CitizenId { get; set; } = string.Empty;//

        [Required, MaxLength(50)]
        public string ExamId { get; set; } = string.Empty;//

        [Required, MaxLength(50)]
        public string Prefix { get; set; } = string.Empty;//

        [Required, MaxLength(150)]
        public string FirstName { get; set; } = string.Empty;//

        [Required, MaxLength(150)]
        public string LastName { get; set; } = string.Empty;//

        [MaxLength(20)]
        public string Gendor { get; set; } = string.Empty;//

        [MaxLength(200)]
        public string National { get; set; } = string.Empty;//

        [MaxLength(200)]
        public string Race { get; set; } = string.Empty;//

        [MaxLength(200)]
        public string Religion { get; set; } = string.Empty;//

        [Required]
        public DateTime DateOfBirth { get; set; }//

        [MaxLength(20)]
        public string Marry { get; set; } = string.Empty;//

        [MaxLength(1)]
        public string Isspecial { get; set; } = "N";

        [MaxLength(20)]
        public string RefNo { get; set; } = string.Empty;

        [MaxLength(200)]
        public string CitizenCardIssuer { get; set; } = string.Empty;//

        public DateTime CitizenCardExpireDate { get; set; }//

        [MaxLength(200)]
        public string Remark { get; set; } = string.Empty;

        [MaxLength(1)]
        public string Qualified { get; set; } = "Y";

        public PeriodExam? PeriodExam { get; set; }

        public virtual List<DisableAddress> Addresses { get; set; } = new List<DisableAddress>();

        public virtual List<DisableOccupation> Occupations { get; set; } = new List<DisableOccupation>();

        public virtual List<DisableCertificate> Certificates { get; set; } = new List<DisableCertificate>();

        public virtual List<DisableEducation> Educations { get; set; } = new List<DisableEducation>();

        public virtual List<DisablePayment> Payments { get; set; } = new List<DisablePayment>();

        public virtual List<DisableDocument> Documents { get; set; } = new List<DisableDocument>();

        public DateTime CreatedDate { get; set; } = DateTime.Now;

        public DateTime ModifiedDate { get; set; }

        public DateTime ApplyDate { get; set; }

        public string? PositionName { get; set; }//
    }
}
