using FreeSql.DataAnnotations;

namespace PTCMS.API.Domain.Entities
{
    /// <summary>
    /// 证书信息
    /// </summary>
    [Table(Name = "certificate")]
    public class Certificate
    {
        /// <summary>
        /// id
        /// </summary>
        [Column(Name = "id", IsIdentity = true, IsPrimary = true)]
        public int Id { get; set; }

        /// <summary>
        /// 姓名
        /// </summary>
        [Column(Name = "name", IsNullable = false, StringLength = 50)]
        public string Name { get; set; }

        /// <summary>
        /// 身份证号
        /// </summary>
        [Column(Name = "id_number", StringLength = 50, IsNullable = false)]
        public string IdNumber { get; set; }

        /// <summary>
        /// 证书编号
        /// </summary>
        [Column(Name = "certificate_number", StringLength = 50, IsNullable = false)]
        public string CertificateNumber { get; set; }

        /// <summary>
        /// 职称系列
        /// </summary>
        [Column(Name = "professional_title_series", StringLength = 50)]
        public string ProfessionalTitleSeries { get; set; }

        /// <summary>
        /// 职称专业
        /// </summary>
        [Column(Name = "professional_title", StringLength = 50)]
        public string ProfessionalTitle { get; set; }

        /// <summary>
        /// 职务任职资格
        /// </summary>
        [Column(Name = "qualification", StringLength = 50)]
        public string Qualification { get; set; }

        /// <summary>
        /// 职称级别
        /// </summary>
        [Column(Name = "level", StringLength = 10)]
        public string Level { get; set; }

        /// <summary>
        /// 任职资格时间
        /// </summary>
        [Column(Name = "qualification_time")]
        public DateTime? QualificationTime { get; set; }

        /// <summary>
        /// 发证时间
        /// </summary>
        [Column(Name = "issue_time")]
        public DateTime? IssueTime { get; set; }

        /// <summary>
        /// 评审组织
        /// </summary>
        [Column(Name = "review_organization", StringLength = 80)]
        public string ReviewOrganization { get; set; }

        /// <summary>
        /// 发证单位
        /// </summary>
        [Column(Name = "issuing_authority", StringLength = 50)]
        public string IssuingAuthority { get; set; }

        /// <summary>
        /// 申报单位
        /// </summary>
        [Column(Name = "declaration_unit", StringLength = 50)]
        public string DeclarationUnit { get; set; }

        /// <summary>
        /// 备注
        /// </summary>
        [Column(Name = "remark", StringLength = 200)]
        public string Remark { get; set; }

        /// <summary>
        /// 证件类型
        /// </summary>
        [Column(Name = "id_type", StringLength = 20)]
        public string IdType { get; set; }

        /// <summary>
        /// 证件照片
        /// </summary>
        [Column(Name = "img_url", StringLength = 1000)]
        public string ImgUrl { get; set; }
    }
}