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

namespace BMA.EHR.Recurit.Exam.Service.Request.Disables
{
    /// <summary>
    /// ตัวแปรสำหรับสร้างข้อมูลการสอบคัดเลือกผู้พิการ
    /// </summary>
    public class PostDisableImportRequest
    {
        /// <summary>
        /// ปีงบประมาณที่จัดสอบ
        /// </summary>
        [Required]
        public int Year { get; set; }

        /// <summary>
        /// รอบการสอบ
        /// </summary>
        [Required, MaxLength(250)]
        public string Name { get; set; } = string.Empty;

        /// <summary>
        /// ครั้งที่
        /// </summary>
        [Required]
        public int Round { get; set; } = 1;

        /// <summary>
        /// รายละเอียด
        /// </summary>
        public string? Detail { get; set; }

        /// <summary>
        /// ค่าธรรมเนียม
        /// </summary>
        public int Fee { get; set; } = 0;

        /// <summary>
        /// วันเริ่มประกาศ
        /// </summary>
        public DateTime AnnouncementStartDate { get; set; }

        /// <summary>
        /// วันสิ้นสุดประกาศ
        /// </summary>
        public DateTime AnnouncementEndDate { get; set; }

        /// <summary>
        /// วันเริ่มชำระเงิน
        /// </summary>
        public DateTime PaymentStartDate { get; set; }

        /// <summary>
        /// วันสิ้นสุดชำระเงิน
        /// </summary>
        public DateTime PaymentEndDate { get; set; }

        /// <summary>
        /// วันเริ่มสมัครสอบ
        /// </summary>
        public DateTime RegisterStartDate { get; set; }

        /// <summary>
        /// วันสิ้นสุดสมัครสอบ
        /// </summary>
        public DateTime RegisterEndDate { get; set; }

        /// <summary>
        /// วันที่สอบ
        /// </summary>
        public DateTime ExamDate { get; set; }

        /// <summary>
        /// หมายเหตุ
        /// </summary>
        public string? Note { get; set; }

        /// <summary>
        /// วันที่ประกาศผลสอบ
        /// </summary>
        public DateTime AnnouncementDate { get; set; }
    }
}
