using PTMIBase.Extensions.Attributes;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;


namespace PTMIBase.Entity.MIDatatable
{
    class DirectorySelfpayProportion
    {
        /// <summary>
        /// 医院编号 指向医院表
        /// </summary>
        [IrisColumn(Name = "HospitalDr", Desc = "医院编号", DbType = "Int", SqlFieldName = "Hospital_Dr", Order = 2, CanBeNull = false)]
        [Required(ErrorMessage = "医院编号不能为空")]
        public int HospitalDr { get; set; }

        /// <summary>
        /// 接口编号 指向接口表
        /// </summary>
        [IrisColumn(Name = "InterfaceDr", Desc = "接口编号", DbType = "Int", SqlFieldName = "Interface_Dr", Order = 3, CanBeNull = false)]
        [Required(ErrorMessage = "接口编号不能为空")]
        public int InterfaceDr { get; set; }

        /// <summary>
        /// 医保编码
        /// </summary>
        [IrisColumn(Name = "Code", Desc = "医保编码", DbType = "Varchar(50)", SqlFieldName = "Code", Order = 4, CanBeNull = false)]
        [Required(ErrorMessage = "医保编码不能为空")]
        [StringLength(50, ErrorMessage = "医保编码长度不能超过50个字符")]
        public string Code { get; set; }

        /// <summary>
        /// 医保名称
        /// </summary>
        [IrisColumn(Name = "Name", Desc = "医保名称", DbType = "Varchar(100)", SqlFieldName = "Name", Order = 5, CanBeNull = true)]
        [StringLength(100, ErrorMessage = "医保名称长度不能超过100个字符")]
        public string Name { get; set; }

        /// <summary>
        /// 医保目录自付比例人员类别
        /// </summary>
        [IrisColumn(Name = "PersonnelType", Desc = "医保目录自付比例人员类别", DbType = "Varchar(50)", SqlFieldName = "PersonnelType", Order = 6, CanBeNull = false)]
        [Required(ErrorMessage = "医保目录自付比例人员类别不能为空")]
        [StringLength(50, ErrorMessage = "医保目录自付比例人员类别长度不能超过50个字符")]
        public string PersonnelType { get; set; }

        /// <summary>
        /// 目录自付比例类别
        /// </summary>
        [IrisColumn(Name = "ProportionType", Desc = "目录自付比例类别", DbType = "Varchar(50)", SqlFieldName = "ProportionType", Order = 7, CanBeNull = false)]
        [Required(ErrorMessage = "目录自付比例类别不能为空")]
        [StringLength(50, ErrorMessage = "目录自付比例类别长度不能超过50个字符")]
        public string ProportionType { get; set; }

        /// <summary>
        /// 开始日期
        /// </summary>
        [IrisColumn(Name = "BeginDate", Desc = "开始日期", DbType = "Varchar(50)", SqlFieldName = "BeginDate", Order = 8, CanBeNull = true)]
        [StringLength(50, ErrorMessage = "开始日期长度不能超过50个字符")]
        public string BeginDate { get; set; }

        /// <summary>
        /// 结束日期
        /// </summary>
        [IrisColumn(Name = "EndDate", Desc = "结束日期", DbType = "Varchar(50)", SqlFieldName = "EndDate", Order = 9, CanBeNull = true)]
        [StringLength(50, ErrorMessage = "结束日期长度不能超过50个字符")]
        public string EndDate { get; set; }

        /// <summary>
        /// 自付比例
        /// </summary>
        [IrisColumn(Name = "Proportion", Desc = "自付比例", DbType = "Varchar(50)", SqlFieldName = "Proportion", Order = 10, CanBeNull = true)]
        [StringLength(50, ErrorMessage = "自付比例长度不能超过50个字符")]
        public string Proportion { get; set; }

        /// <summary>
        /// 参保地医保区划
        /// </summary>
        [IrisColumn(Name = "InsuranceAreaCode", Desc = "参保地医保区划", DbType = "Varchar(50)", SqlFieldName = "InsuranceAreaCode", Order = 11, CanBeNull = true)]
        [StringLength(50, ErrorMessage = "参保地医保区划长度不能超过50个字符")]
        public string InsuranceAreaCode { get; set; }

        /// <summary>
        /// 统筹区
        /// </summary>
        [IrisColumn(Name = "PoolAreaNO", Desc = "统筹区", DbType = "Varchar(50)", SqlFieldName = "PoolAreaNO", Order = 12, CanBeNull = true)]
        [StringLength(50, ErrorMessage = "统筹区长度不能超过50个字符")]
        public string PoolAreaNO { get; set; }

        /// <summary>
        /// 有效标志
        /// </summary>
        [IrisColumn(Name = "ValidFlag", Desc = "有效标志", DbType = "Varchar(50)", SqlFieldName = "ValidFlag", Order = 13, CanBeNull = true)]
        [StringLength(50, ErrorMessage = "有效标志长度不能超过50个字符")]
        public string ValidFlag { get; set; }

        /// <summary>
        /// 唯一记录号
        /// </summary>
        [IrisColumn(Name = "RequiredID", Desc = "唯一记录号", DbType = "Varchar(50)", SqlFieldName = "RequiredID", Order = 14, CanBeNull = true)]
        [StringLength(50, ErrorMessage = "唯一记录号长度不能超过50个字符")]
        public string RequiredID { get; set; }

        /// <summary>
        /// 更新时间
        /// </summary>
        [IrisColumn(Name = "UpdateTime", Desc = "更新时间", DbType = "DateTime", SqlFieldName = "UpdateTime", Order = 15, CanBeNull = true)]
        public DateTime? UpdateTime { get; set; }
    }
}