using OASystem.Domain.Attributes;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace OASystem.Domain.Entities.Customer
{

    /// <summary>
    /// 客户信息表
    /// </summary>
    [SugarTable("Crm_DeleClient")]
    public class Crm_DeleClient : EntityBase
    {
        /// <summary>
        /// 团组Id
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
        public int DiId { get; set; }
        /// <summary>
        /// 中文姓
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
        [Encrypted]
        public string LastName { get; set; }
        /// <summary>
        /// 中文名
        /// </summary>
        [Encrypted]
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
        public string FirstName { get; set; }
        /// <summary>
        /// 曾用名
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
        public string OldName { get; set; }
        /// <summary>
        /// 名字拼音
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
        [Encrypted]
        public string Pinyin { get; set; }
        /// <summary>
        /// 性别 
        /// 0男1女 -1未选择
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
        public int Sex { get; set; } = -1;
        /// <summary>
        /// 婚姻状况 0、1、2、3、4 (未设置、未婚、已婚、离异、丧偶)
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
        public int Marriage { get; set; } = 0;
        /// <summary>
        /// 客户手机号
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(20)")]
        [Encrypted]
        public string Phone { get; set; } = "";
        /// <summary>
        /// 出生省份
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
        public string BirthProvince { get; set; }
        /// <summary>
        /// 出生城市
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
        public string BirthCity { get; set; }
        /// <summary>
        /// 出生日期
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "datetime")]
        public DateTime? BirthDay { get; set; } = null;

        /// <summary>
        /// 机票喜好舱位
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(300)")]
        public string AirType { get; set; }
        /// <summary>
        /// 是否靠窗
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
        public int SeatPref { get; set; }
        /// <summary>
        /// 机票备注
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(300)")]
        public string AirRemark { get; set; }
        /// <summary>
        /// 酒店喜好房型
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(300)")]
        public string RoomType { get; set; }
        /// <summary>
        /// 酒店需求
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(300)")]
        public string RoomPref { get; set; }

        /// <summary>
        /// 家庭联系方式
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(20)")]
        public string Tel { get; set; }
        /// <summary>
        /// 客户电子邮件
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
        public string Email { get; set; }
        /// <summary>
        /// 住址
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(300)")]
        public string Address { get; set; }
        /// <summary>
        /// 最高学历
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(100)")]
        public string HighestEducation { get; set; }
        /// <summary>
        /// 邮编
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
        public string PostCodes { get; set; }

        /// <summary>
        /// 客户公司Id
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
        public int CrmCompanyId { get; set; }

        /// <summary>
        /// 职位
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(200)")]
        [Encrypted]
        public string Job { get; set; }
        /// <summary>
        /// 本人工作内容
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(300)")]
        public string WorkState { get; set; }
        /// <summary>
        /// 入职时间
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "Datetime")]
        public string WorkDate { get; set; }
        /// <summary>
        /// 薪资
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(20)")]
        public string Wage { get; set; }
        /// <summary>
        /// (单位/部门)电话
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(20)")]
        public string ClientPhone { get; set; }
        /// <summary>
        /// (单位/部门)传真
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
        public string ClientFax { get; set; }
        /// <summary>
        /// (单位/部门)邮箱
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
        public string ClientEmail { get; set; }
        /// <summary>
        /// (单位/部门)负责人姓名
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(20)")]
        public string ClientLeader { get; set; }
        /// <summary>
        /// (单位/部门)负责人职务
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(20)")]
        public string ClientLeaderJob { get; set; }
        /// <summary>
        /// 是否有获批的申根签证 
        /// 0否1是
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
        public int IsGetSchengen { get; set; } = 0;
        /// <summary>
        /// 申根有效期
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "DateTime")]
        public DateTime StartTime { get; set; }
        /// <summary>
        /// 申根有效期
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "Datetime")]
        public DateTime EndTime { get; set; }
        /// <summary>
        /// 申根是否在使馆有指纹记录 
        /// 0否1是
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
        public int IsFinger { get; set; } = 0;
        /// <summary>
        /// 申根指纹录入时间
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "DateTime")]
        public DateTime FingerDate { get; set; }
        /// <summary>
        /// 是否因公去过美国/加拿大
        /// 0否1是
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
        public int IsVisitUC { get; set; } = 0;
        /// <summary>
        /// 美国抵达日期
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "DateTime")]
        public DateTime USADate { get; set; }
        /// <summary>
        /// 美国停留天数
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
        public int USADays { get; set; } = 0;
        /// <summary>
        /// 加拿大抵达日期
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "DateTime")]
        public DateTime CanDate { get; set; }
        /// <summary>
        /// 加拿大停留天数
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
        public int CanDays { get; set; } = 0;
        /// <summary>
        /// 是否曾获得过因公美国签证 0否1是
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
        public int IsUSAVia { get; set; }
        /// <summary>
        /// 因公美国签证最近获得时间
        /// 0否1是
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "DateTime")]
        public DateTime GetUSAVisaDate { get; set; }
        /// <summary>
        /// 因公美国签证地点
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
        public string GetUPPlace { get; set; }
        /// <summary>
        /// 因公美国签证种类
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
        public string USAVisaCate { get; set; }
        /// <summary>
        /// 因公美国签证编码
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
        public string USAVisaCode { get; set; }
        /// <summary>
        /// 是否在使馆留过十指的指纹 0否1是
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
        public int USAFinger { get; set; } = 0;
        /// <summary>
        /// 是否曾经被拒签 0否1是
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
        public int IsRejected { get; set; } = 0;
        /// <summary>
        /// 被拒时间
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "DateTime")]
        public DateTime RejectedDate { get; set; }
        /// <summary>
        /// 被拒地点
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
        public string RejectedPlace { get; set; }
        /// <summary>
        /// 被拒签证种类
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
        public string RejectedVisa { get; set; }
        /// <summary>
        /// 美国签证是否被吊销过 0否1是
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
        public int IsRevoke { get; set; } = 0;
        /// <summary>
        /// 护照是否曾经丢失 0否1是
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
        public int IsLose { get; set; } = 0;
        /// <summary>
        /// 丢失护照时间
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "DateTime")]
        public DateTime LoseDate { get; set; }
        /// <summary>
        /// 丢失护照编号
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
        public string LoseCode { get; set; }
        /// <summary>
        /// 丢失的护照是否有美国签证 0否1是
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
        public int IsUSAVisa { get; set; } = 0;
        /// <summary>
        /// 夫/妻是否已在美国 
        /// 0否1是
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
        public int MateUSA { get; set; } = 0;
        /// <summary>
        /// 夫/妻身份
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
        public string MateIden { get; set; }
        /// <summary>
        /// 未婚夫/妻是否已在美国 0否1是
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
        public int WHUSA { get; set; } = 0;
        /// <summary>
        /// 未婚夫/妻身份
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
        public string WHIden { get; set; }
        /// <summary>
        /// 父/母是否已在美国
        /// 0否1是
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
        public int ParentUSA { get; set; } = 0;
        /// <summary>
        /// 父/母身份
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
        public string ParentIden { get; set; }
        /// <summary>
        /// 子/女是否已在美国 0否1是
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
        public int ChildUSA { get; set; } = 0;
        /// <summary>
        /// 子/女身份
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
        public string ChildIden { get; set; }
        /// <summary>
        /// 兄弟/姐妹是否已在美国 0否1是
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
        public int BroUSA { get; set; } = 0;
        /// <summary>
        /// 兄弟/姐妹身份
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
        public string BroIden { get; set; }
        /// <summary>
        /// 所属/捐助/工作过的职业协会、社会团体和慈善机构
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(500)")]
        public string Social { get; set; }
        /// <summary> 
        /// 是否参军  
        /// 0否1是
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
        public int IsArmy { get; set; } = 0;
        /// <summary>
        /// 参军详情
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(500)")]
        public string ArmyState { get; set; }
        /// <summary>
        /// 在外期间费用承担人
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(20)")]
        public string CostBearers { get; set; }
        /// <summary>
        /// 填表经办人
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(20)")]
        public string TableOpName { get; set; }
        /// <summary>
        /// 填表经办人联系电话
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(20)")]
        public string TableOpTel { get; set; }
        /// <summary>
        /// 填表日期
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "DateTime")]
        public DateTime TableDate { get; set; }
        /// <summary>
        /// 所属党派或宗教
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
        public string Party { get; set; }
        /// <summary>
        /// 国籍
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(20)")]
        public string Nationality { get; set; }
        /// <summary>
        /// 结婚日期
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "DateTime")]
        public DateTime WeddingDate { get; set; }
        /// <summary>
        /// 离婚日期
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "DateTime")]
        public DateTime DivorceDate { get; set; }
        /// <summary>
        /// 配偶姓名
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
        public string MateName { get; set; }
        /// <summary>
        /// 配偶出生日期
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "DateTime")]
        public DateTime MateBirthDay { get; set; }
        /// <summary>
        /// 配偶出生城市
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
        public string MateBirthCity { get; set; }
        /// <summary>
        /// 配偶出生国家省份
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
        public string MateBirthCountry { get; set; }
        /// <summary>
        /// 配偶住址
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(300)")]
        public string MateAddress { get; set; }
        /// <summary>
        /// 配偶工作单位
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(300)")]
        public string MateClient { get; set; }
        /// <summary>
        /// 配偶工作单位地址
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(300)")]
        public string MateClientAddress { get; set; }
        /// <summary>
        /// 配偶职务
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
        public string MateJob { get; set; }
        /// <summary>
        /// 因公出访国家
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
        public string VisitCountry { get; set; }
        /// <summary>
        /// 发表的期刊/论文
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(500)")]
        public string Paper { get; set; }
        /// <summary>
        /// 专利
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(500)")]
        public string Papent { get; set; }
        /// <summary>
        /// 发表的博士论文
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(500)")]
        public string PhD { get; set; }
    }

}