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
{
    /// 
    /// 客户信息表
    /// 
    [SugarTable("Crm_DeleClient")]
    public class Crm_DeleClient : EntityBase
    {
        /// 
        /// 团组Id
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
        public int DiId { get; set; }
        /// 
        /// 中文姓
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
        [Encrypted]
        public string LastName { get; set; }
        /// 
        /// 中文名
        /// 
        [Encrypted]
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
        public string FirstName { get; set; }
        /// 
        /// 曾用名
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
        public string OldName { get; set; }
        /// 
        /// 名字拼音
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
        [Encrypted]
        public string Pinyin { get; set; }
        /// 
        /// 性别 
        /// 0男1女 -1未选择
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
        public int Sex { get; set; } = -1;
        /// 
        /// 婚姻状况 0、1、2、3、4 (未设置、未婚、已婚、离异、丧偶)
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
        public int Marriage { get; set; } = 0;
        /// 
        /// 客户手机号
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(20)")]
        [Encrypted]
        public string Phone { get; set; } = "";
        /// 
        /// 出生省份
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
        public string BirthProvince { get; set; }
        /// 
        /// 出生城市
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
        public string BirthCity { get; set; }
        /// 
        /// 出生日期
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "datetime")]
        public DateTime? BirthDay { get; set; } = null;
        /// 
        /// 机票喜好舱位
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(300)")]
        public string AirType { get; set; }
        /// 
        /// 是否靠窗
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
        public int SeatPref { get; set; }
        /// 
        /// 机票备注
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(300)")]
        public string AirRemark { get; set; }
        /// 
        /// 酒店喜好房型
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(300)")]
        public string RoomType { get; set; }
        /// 
        /// 酒店需求
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(300)")]
        public string RoomPref { get; set; }
        /// 
        /// 家庭联系方式
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(20)")]
        public string Tel { get; set; }
        /// 
        /// 客户电子邮件
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
        public string Email { get; set; }
        /// 
        /// 住址
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(300)")]
        public string Address { get; set; }
        /// 
        /// 最高学历
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(100)")]
        public string HighestEducation { get; set; }
        /// 
        /// 邮编
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
        public string PostCodes { get; set; }
        /// 
        /// 客户公司Id
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
        public int CrmCompanyId { get; set; }
        /// 
        /// 职位
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(200)")]
        [Encrypted]
        public string Job { get; set; }
        /// 
        /// 本人工作内容
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(300)")]
        public string WorkState { get; set; }
        /// 
        /// 入职时间
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "Datetime")]
        public string WorkDate { get; set; }
        /// 
        /// 薪资
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(20)")]
        public string Wage { get; set; }
        /// 
        /// (单位/部门)电话
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(20)")]
        public string ClientPhone { get; set; }
        /// 
        /// (单位/部门)传真
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
        public string ClientFax { get; set; }
        /// 
        /// (单位/部门)邮箱
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
        public string ClientEmail { get; set; }
        /// 
        /// (单位/部门)负责人姓名
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(20)")]
        public string ClientLeader { get; set; }
        /// 
        /// (单位/部门)负责人职务
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(20)")]
        public string ClientLeaderJob { get; set; }
        /// 
        /// 是否有获批的申根签证 
        /// 0否1是
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
        public int IsGetSchengen { get; set; } = 0;
        /// 
        /// 申根有效期
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "DateTime")]
        public DateTime StartTime { get; set; }
        /// 
        /// 申根有效期
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "Datetime")]
        public DateTime EndTime { get; set; }
        /// 
        /// 申根是否在使馆有指纹记录 
        /// 0否1是
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
        public int IsFinger { get; set; } = 0;
        /// 
        /// 申根指纹录入时间
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "DateTime")]
        public DateTime FingerDate { get; set; }
        /// 
        /// 是否因公去过美国/加拿大
        /// 0否1是
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
        public int IsVisitUC { get; set; } = 0;
        /// 
        /// 美国抵达日期
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "DateTime")]
        public DateTime? USADate { get; set; }
        /// 
        /// 美国停留天数
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
        public int? USADays { get; set; } = 0;
        /// 
        /// 加拿大抵达日期
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "DateTime")]
        public DateTime CanDate { get; set; }
        /// 
        /// 加拿大停留天数
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
        public int CanDays { get; set; } = 0;
        /// 
        /// 是否曾获得过因公美国签证 0否1是
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
        public int IsUSAVia { get; set; }
        /// 
        /// 因公美国签证最近获得时间
        /// 0否1是
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "DateTime")]
        public DateTime GetUSAVisaDate { get; set; }
        /// 
        /// 因公美国签证地点
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
        public string GetUPPlace { get; set; }
        /// 
        /// 因公美国签证种类
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
        public string USAVisaCate { get; set; }
        /// 
        /// 因公美国签证编码
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
        public string USAVisaCode { get; set; }
        /// 
        /// 是否在使馆留过十指的指纹 0否1是
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
        public int USAFinger { get; set; } = 0;
        /// 
        /// 是否曾经被拒签 0否1是
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
        public int IsRejected { get; set; } = 0;
        /// 
        /// 被拒时间
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "DateTime")]
        public DateTime? RejectedDate { get; set; }
        /// 
        /// 被拒地点
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
        public string RejectedPlace { get; set; }
        /// 
        /// 被拒签证种类
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
        public string RejectedVisa { get; set; }
        /// 
        /// 美国签证是否被吊销过 0否1是
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
        public int IsRevoke { get; set; } = 0;
        /// 
        /// 护照是否曾经丢失 0否1是
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
        public int IsLose { get; set; } = 0;
        /// 
        /// 丢失护照时间
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "DateTime")]
        public DateTime LoseDate { get; set; }
        /// 
        /// 丢失护照编号
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
        public string LoseCode { get; set; }
        /// 
        /// 丢失的护照是否有美国签证 0否1是
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
        public int IsUSAVisa { get; set; } = 0;
        /// 
        /// 夫/妻是否已在美国 
        /// 0否1是
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
        public int MateUSA { get; set; } = 0;
        /// 
        /// 夫/妻身份
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
        public string MateIden { get; set; }
        /// 
        /// 未婚夫/妻是否已在美国 0否1是
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
        public int WHUSA { get; set; } = 0;
        /// 
        /// 未婚夫/妻身份
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
        public string WHIden { get; set; }
        /// 
        /// 父/母是否已在美国
        /// 0否1是
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
        public int ParentUSA { get; set; } = 0;
        /// 
        /// 父/母身份
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
        public string ParentIden { get; set; }
        /// 
        /// 子/女是否已在美国 0否1是
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
        public int ChildUSA { get; set; } = 0;
        /// 
        /// 子/女身份
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
        public string ChildIden { get; set; }
        /// 
        /// 兄弟/姐妹是否已在美国 0否1是
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
        public int BroUSA { get; set; } = 0;
        /// 
        /// 兄弟/姐妹身份
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
        public string BroIden { get; set; }
        /// 
        /// 所属/捐助/工作过的职业协会、社会团体和慈善机构
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(500)")]
        public string Social { get; set; }
        ///  
        /// 是否参军  
        /// 0否1是
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
        public int IsArmy { get; set; } = 0;
        /// 
        /// 参军详情
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(500)")]
        public string ArmyState { get; set; }
        /// 
        /// 在外期间费用承担人
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(20)")]
        public string CostBearers { get; set; }
        /// 
        /// 填表经办人
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(20)")]
        public string TableOpName { get; set; }
        /// 
        /// 填表经办人联系电话
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(20)")]
        public string TableOpTel { get; set; }
        /// 
        /// 填表日期
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "DateTime")]
        public DateTime TableDate { get; set; }
        /// 
        /// 所属党派或宗教
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
        public string Party { get; set; }
        /// 
        /// 国籍
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(20)")]
        public string Nationality { get; set; }
        /// 
        /// 结婚日期
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "DateTime")]
        public DateTime? WeddingDate { get; set; }
        /// 
        /// 离婚日期
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "DateTime")]
        public DateTime? DivorceDate { get; set; }
        /// 
        /// 配偶姓名
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
        public string MateName { get; set; }
        /// 
        /// 配偶出生日期
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "DateTime")]
        public DateTime MateBirthDay { get; set; }
        /// 
        /// 配偶出生城市
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
        public string MateBirthCity { get; set; }
        /// 
        /// 配偶出生国家省份
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
        public string MateBirthCountry { get; set; }
        /// 
        /// 配偶住址
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(300)")]
        public string MateAddress { get; set; }
        /// 
        /// 配偶工作单位
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(300)")]
        public string MateClient { get; set; }
        /// 
        /// 配偶工作单位地址
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(300)")]
        public string MateClientAddress { get; set; }
        /// 
        /// 配偶职务
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
        public string MateJob { get; set; }
        /// 
        /// 因公出访国家
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
        public string VisitCountry { get; set; }
        /// 
        /// 发表的期刊/论文
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(500)")]
        public string Paper { get; set; }
        /// 
        /// 专利
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(500)")]
        public string Papent { get; set; }
        /// 
        /// 发表的博士论文
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(500)")]
        public string PhD { get; set; }
        //----------增加字段------------
        /// 
        /// 离婚原因
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(500)")]
        public string DivorceRsn { get; set; }
        /// 
        /// 美国驾照No
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(100)")]
        public string USA_DLNo { get; set; }
        /// 
        /// 美国驾照签发地
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(100)")]
        public string USA_DLPlace { get; set; }
        /// 
        /// 美国社会安全号或者纳税ID号
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(100)")]
        public string USA_SSNOrITIN { get; set; }
        /// 
        /// 是否是其他国家的永久居民
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(100)")]
        public string Resident { get; set; }
        /// 
        /// 近五年内是否使用过任何社交账号
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(200)")]
        public string HasSocialAcc { get; set; }
        /// 
        /// 请提供美国详细住址
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(200)")]
        public string USAAddress { get; set; }
        /// 
        /// 赴美目的
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(200)")]
        public string USAPurpose { get; set; }
        /// 
        /// 美国联系人或组织
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(100)")]
        public string USAContact { get; set; }
        /// 
        /// 美国联系人电话
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
        public string USAContactTel { get; set; }
        /// 
        /// 美国联系人邮箱
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
        public string USAContactEmail { get; set; }
        /// 
        /// 赴美的到达城市
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(100)")]
        public string USAArrivalCity { get; set; }
        /// 
        /// 赴美的离开城市
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(100)")]
        public string USADepartCity { get; set; }
        /// 
        /// 计划在美国访问的景点
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(100)")]
        public string USAVisitSites { get; set; }
        /// 
        /// 赴美同行人姓名
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(100)")]
        public string USACmpName { get; set; }
        /// 
        /// 赴美同行人关系
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(100)")]
        public string USACmpRelation { get; set; }
        /// 
        /// 过去5年内到过的国家
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(100)")]
        public string Cntry5Y { get; set; }
        /// 
        /// 签时能流利交流的语言
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(100)")]
        public string LangSkill { get; set; }
        /// 
        /// 曾被哪些国家拒签/拒签原因
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(300)")]
        public string DenyNationRsn { get; set; }
        /// 
        /// 曾抵达过美国时间
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
        public string USAHadArrival { get; set; }
        /// 
        /// 曾停留美国天数
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(30)")]
        public string USAHadDays { get; set; }
        /// 
        /// 美国移民签证时间
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "DateTime")]
        public DateTime? USAImmVisaDate { get; set; }
        /// 
        /// 美国移民签证地点
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
        public string USAImmVisaPlace { get; set; }
        /// 
        /// 美国移民签证种类
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
        public string USAImmVisa { get; set; }
        /// 
        /// 直系亲属在美国 姓名
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
        public string USAImmedFamName { get; set; }
        /// 
        /// 直系亲属在美国 关系
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
        public string USAImmedFamRel { get; set; }
        /// 
        /// 直系亲属在美国 身份
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
        public string USAImmedFamStat { get; set; }
        /// 
        /// 旁系亲属在美国 姓名
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
        public string USAUncleFamName { get; set; }
        /// 
        /// 旁系亲属在美国 关系
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
        public string USAUncleFamRel { get; set; }
        /// 
        /// 旁系亲属在美国 身份
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
        public string USAUncleFamStat { get; set; }
        /// 
        /// 父亲姓名
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
        public string FthName { get; set; }
        /// 
        /// 父亲出生日期
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
        public DateTime? FthBirth { get; set; }
        /// 
        /// 母亲姓名
        /// 
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
        public string MthName { get; set; }
        /// 
        /// 母亲出生日期
        /// 
        [SugarColumn( IsNullable = true, ColumnDataType = "varchar(50)")]
        public DateTime? MthBirth { get; set; }
    }
    public class GroupClints
    {
        public int Id { get; set; }
        public string Name { get; set; }
        /// 
        /// 是否陪同
        /// 1 否 2 是
        /// 默认:1
        /// 
        public int IsAccompany { get; set; }
        [Encrypted]
        public string CompanyFullName { get; set; }
    }
    /// 
    /// 军事信息
    /// 
    public class MilitaryInfo
    {
        /// 
        /// 军种(陆军/海军/空军等)
        /// 
        public string MilBranch { get; set; }
        /// 
        /// 军衔(列兵/上校等)
        /// 
        public string MilRank { get; set; }
        /// 
        /// 军事特长(狙击/医疗等)
        /// 
        public string MilSkill { get; set; }
        /// 
        /// 服役时间(单位:xxxx年xx月xx日) 起
        /// 
        public DateTime? ServeTimeBegin { get; set; }
        /// 
        /// 服役时间(单位:xxxx年xx月xx日)止
        /// 
        public DateTime? ServeTimeEnd { get; set; }
    }
}