using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Runtime.Serialization;

namespace AMESCoreStudio.WebApi.Models.AMES
{
    /// <summary>
    /// 日曆
    /// </summary>
    [Table("CALENDAR_TABLE", Schema = "JHAMES")]
    public class CalendarTable
    {
        /// <summary>
        /// 時間
        /// </summary>
        [Key]
        [Column("TIME_ID")]
        [Required(ErrorMessage = "{0},不能空白")]
        [Display(Name = "時間")]
        [DataMember]
        public DateTime TimeID { get; set; }

        /// <summary>
        /// 年份
        /// </summary>
        [Column("YEAR")]
        [DataMember]
        [Required(ErrorMessage = "{0},不能空白")]
        [Display(Name = "年份")]
        public string Year { get; set; }

        /// <summary>
        /// 月份
        /// </summary>
        [Column("MONTH")]
        [DataMember]
        [Required(ErrorMessage = "{0},不能空白")]
        [Display(Name = "月份")]
        public string Month { get; set; }

        /// <summary>
        /// 日期
        /// </summary>
        [Column("DAY")]
        [Required(ErrorMessage = "{0},不能空白")]
        [Display(Name = "日期")]
        [DataMember]
        public string Day { get; set; }

        /// <summary>
        /// 月份描述
        /// </summary>
        [Column("MONTH_NAME")]
        [DataMember]
        [Required(ErrorMessage = "{0},不能空白")]
        [Display(Name = "月份描述")]
        public string MonthName { get; set; }

        /// <summary>
        /// 日期描述
        /// </summary>
        [Column("DAY_NAME")]
        [DataMember]
        [Required(ErrorMessage = "{0},不能空白")]
        [Display(Name = "日期描述")]
        public string DayName { get; set; }

        /// <summary>
        /// 當月第幾周
        /// </summary>
        [Column("WEEK_OF_MONTH")]
        [DataMember]
        [Required(ErrorMessage = "{0},不能空白")]
        [Display(Name = "當月第幾周")]
        public int WeekOfMonth { get; set; }

        /// <summary>
        /// 當年第幾周(ISO)
        /// </summary>
        [Column("WEEK_OF_YEAR_ISO")]
        [DataMember]
        [Required(ErrorMessage = "{0},不能空白")]
        [Display(Name = "當年第幾周(ISO)")]
        public int? WeekOfYearISO { get; set; } = 0;

        /// <summary>
        /// 當月最後一天
        /// </summary>
        [Column("MONTH_END_DAY")]
        [DataMember]
        [Required(ErrorMessage = "{0},不能空白")]
        [Display(Name = "當月最後一天")]
        public DateTime MonthEndDay { get; set; }

        /// <summary>
        /// 週日期起訖
        /// </summary>
        [Column("WEEK_RANGE")]
        [DataMember]
      //  [Required(ErrorMessage = "{0},不能空白")]
        [Display(Name = "週日期起訖")]
        public string WeekRange { get; set; }

        /// <summary>
        /// 當年第幾周
        /// </summary>
        [Column("WEEK_OF_YEAR")]
        [DataMember]
        [Required(ErrorMessage = "{0},不能空白")]
        [Display(Name = "當年第幾周")]
        public int WeekOfYear { get; set; }

        /// <summary>
        /// 當年第幾周(客戶)
        /// </summary>
        [Column("WEEK_OF_YEAR_ADVANTECH")]
        [DataMember]
        [Required(ErrorMessage = "{0},不能空白")]
        [Display(Name = "當年第幾周(客戶)")]
        public int WeekOfYearAdvantech { get; set; }

        /// <summary>
        /// 假日
        /// </summary>
        [Column("HOLIDAY")]
        [Required(ErrorMessage = "{0},不能空白")]
        [Display(Name = "假日")]
        [StringLength(2, ErrorMessage = "{0},不能大于{1}")]
        [DataMember]
        public string Holiday { get; set; }
    }
}