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

namespace PTMIBase.Entity.MIDatatable
{
    class TransactionLog
    {
        /// <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 = "Infno", Desc = "交易编号", DbType = "Varchar(50)", SqlFieldName = "Infno", Order = 4, CanBeNull = false)]
        [Required(ErrorMessage = "交易编号不能为空")]
        [StringLength(50, ErrorMessage = "交易编号长度不能超过50个字符")]
        public string Infno { get; set; }

        /// <summary>
        /// 报文ID
        /// </summary>
        [IrisColumn(Name = "MSGID", Desc = "报文ID", DbType = "Varchar(50)", SqlFieldName = "MSGID", Order = 5, CanBeNull = false)]
        [Required(ErrorMessage = "报文ID不能为空")]
        [StringLength(50, ErrorMessage = "报文ID长度不能超过50个字符")]
        public string MSGID { get; set; }

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

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

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

        /// <summary>
        /// 交易日期
        /// </summary>
        [IrisColumn(Name = "InfDate", Desc = "交易日期", DbType = "Date", SqlFieldName = "InfDate", Order = 9, CanBeNull = true)]
        public DateTime? InfDate { get; set; }

        /// <summary>
        /// 交易时间
        /// </summary>
        [IrisColumn(Name = "InfTime", Desc = "交易时间", DbType = "Time", SqlFieldName = "InfTime", Order = 10, CanBeNull = true)]
        public TimeSpan? InfTime { get; set; }

        /// <summary>
        /// 接收系统编码
        /// </summary>
        [IrisColumn(Name = "RecerSyscode", Desc = "接收系统编码", DbType = "Varchar(50)", SqlFieldName = "RecerSyscode", Order = 11, CanBeNull = true)]
        [StringLength(50, ErrorMessage = "接收系统编码长度不能超过50个字符")]
        public string RecerSyscode { get; set; }

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

        /// <summary>
        /// 操作员编号
        /// </summary>
        [IrisColumn(Name = "Opter", Desc = "操作员编号", DbType = "Varchar(50)", SqlFieldName = "Opter", Order = 13, CanBeNull = true)]
        [StringLength(50, ErrorMessage = "操作员编号长度不能超过50个字符")]
        public string Opter { get; set; }

        /// <summary>
        /// 操作员姓名
        /// </summary>
        [IrisColumn(Name = "OpterName", Desc = "操作员姓名", DbType = "Varchar(50)", SqlFieldName = "OpterName", Order = 14, CanBeNull = true)]
        [StringLength(50, ErrorMessage = "操作员姓名长度不能超过50个字符")]
        public string OpterName { get; set; }

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

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

        /// <summary>
        /// 交易入参
        /// </summary>
        [IrisColumn(Name = "Inparam", Desc = "交易入参", DbType = "Text", SqlFieldName = "Inparam", Order = 17, CanBeNull = true)]
        public string Inparam { get; set; }

        /// <summary>
        /// 交易出参
        /// </summary>
        [IrisColumn(Name = "Outparam", Desc = "交易出参", DbType = "Text", SqlFieldName = "Outparam", Order = 18, CanBeNull = true)]
        public string Outparam { get; set; }

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

        /// <summary>
        /// 交易入参明文
        /// </summary>
        [IrisColumn(Name = "InparamPlain", Desc = "交易入参明文", DbType = "Text", SqlFieldName = "InparamPlain", Order = 20, CanBeNull = true)]
        public string InparamPlain { get; set; }

        /// <summary>
        /// 交易出参明文
        /// </summary>
        [IrisColumn(Name = "OutparamPlain", Desc = "交易出参明文", DbType = "Text", SqlFieldName = "OutparamPlain", Order = 21, CanBeNull = true)]
        public string OutparamPlain { get; set; }
    }
}