using OASystem.Domain.Attributes;
using OASystem.Domain.Entities.Customer;
using System.Text.Json.Serialization;
namespace OASystem.Domain.ViewModels.CRM
{
    /// 
    /// 签证客户信息 View
    /// 
    public class VisaDeleClientView : Crm_DeleClient
    { }
    /// 
    /// 签证客户信息 ListView
    /// 
    public class VisaDeleClientListView
    {
        /// 
        /// Id
        /// 
        public int Id { get; set; }
        /// 
        /// 客户姓名
        /// 
        public string ClientName
        {
            get
            {
                return this.LastName + this.FirstName;
            }
        }
        [Encrypted]
        public string LastName { get; set; }
        [Encrypted]
        public string FirstName { get; set; }
        /// 
        /// 所属公司(全称)
        /// 
        [Encrypted]
        public string CompanyFullName { get; set; }
        /// 
        /// 性别 0 男  1 女
        /// 
        public int Sex { get; set; }
        /// 
        /// 婚姻状态
        ///  0、1、2、3、4 (未设置、未婚、已婚、离异、丧偶)
        /// 
        public int Marriage { get; set; }
        /// 
        /// 客户座机
        /// 
        [Encrypted]
        public string LandlinePhone { get; set; }
        /// 
        /// 客户手机号
        /// 
        [Encrypted]
        public string Tel { get; set; }
        /// 
        /// 身份证号码
        /// 
        [Encrypted]
        public string IDNo { get; set; }
        /// 
        /// 护照号码
        /// 
        [Encrypted]
        public string PassportNo { get; set; }
    }
    public class ClientByGroupIdView
    {
        /// 
        /// clientId
        /// 
        public int Id { get; set; }
        /// 
        /// 姓
        /// 
        public string LastName { get; set; }
        /// 
        /// 名称
        /// 
        public string FirstName { get; set; }
        /// 
        /// 手机号
        /// 
        public string Tel { get; set; }
        /// 
        /// 身份证No
        /// 
        public string IdNo { get; set; }
    }
    #region 签证客户资料 New
    public class VisaUploadFileTypeView
    {
        /// 
        /// 文件Id
        /// 
        public int FileId { get; set; }
        /// 
        /// 文件名称
        /// 
        public string FileName { get; set; }
        /// 
        /// kimi AI 提示语
        /// 
        public string KimiAITips { get; set; }
        public VisaUploadFileTypeView() { }
        /// 
        /// 初始化 文件类型item
        /// 
        /// 
        public static List GetVisaUploadFileTypeViewItemInit()
        {
            #region 新西兰、澳大利亚签证申请资料表 实体类cs
            string json1 = @"
public class VisaApplication
    {
        /// 
        /// 其他国家访问记录
        /// 
        [JsonPropertyName(""其他国家"")]
        public string OtherCountries { get; set; }
        /// 
        /// 申请人个人信息
        /// 
        [JsonPropertyName(""申请人个人信息"")]
        public ApplicantInfo ApplicantInfo { get; set; }
        /// 
        /// 新西兰澳大利亚访问记录
        /// 
        [JsonPropertyName(""新西兰澳大利亚访问记录"")]
        public List VisitHistory { get; set; }
        /// 
        /// 拒签记录
        /// 
        [JsonPropertyName(""拒签记录"")]
        public List RejectionRecords { get; set; }
        /// 
        /// 教育经历
        /// 
        [JsonPropertyName(""教育经历"")]
        public List EducationExperiences { get; set; }
        /// 
        /// 工作经历
        /// 
        [JsonPropertyName(""工作经历"")]
        public List WorkExperiences { get; set; }
        /// 
        /// 服兵役历史(识别成一段话)
        /// 
        [JsonPropertyName(""服兵役历史"")]
        public string MilitaryServices { get; set; }
    }
    /// 
    /// 申请人个人信息
    /// 
    public class ApplicantInfo
    {
        /// 
        /// 姓名
        /// 
        [JsonPropertyName(""姓名"")]
        public string Name { get; set; }
        /// 
        /// 曾用名
        /// 
        [JsonPropertyName(""曾用名"")]
        public string FormerName { get; set; }
        /// 
        /// 婚姻状况
        /// 
        [JsonPropertyName(""婚姻状况"")]
        public string MaritalStatus { get; set; }
        /// 
        /// 出生地
        /// 
        [JsonPropertyName(""出生地"")]
        public string BirthPlace { get; set; }
        /// 
        /// 出生日期
        /// 
        [JsonPropertyName(""出生日期"")]
        public string BirthDate { get; set; }
        /// 
        /// 性别
        /// 
        [JsonPropertyName(""性别"")]
        public string Gender { get; set; }
        /// 
        /// 手机
        /// 
        [JsonPropertyName(""手机"")]
        public string Mobile { get; set; }
        /// 
        /// 现在住址
        /// 
        [JsonPropertyName(""现在住址"")]
        public string CurrentAddress { get; set; }
        /// 
        /// 在职人员信息
        /// 
        [JsonPropertyName(""在职人员信息"")]
        public EmploymentInfo EmploymentInfo { get; set; }
        /// 
        /// 关系信息
        /// 
        [JsonPropertyName(""关系信息"")]
        public List RelationInfos { get; set; }
    }
    /// 
    /// 在职人员信息
    /// 
    public class EmploymentInfo
    {
        /// 
        /// 现单位名称
        /// 
        [JsonPropertyName(""现单位名称"")]
        public string CurrentCompanyName { get; set; }
        /// 
        /// 现单位地址
        /// 
        [JsonPropertyName(""现单位地址"")]
        public string CurrentCompanyAddress { get; set; }
        /// 
        /// 单位电话
        /// 
        [JsonPropertyName(""单位电话"")]
        public string CompanyPhone { get; set; }
        /// 
        /// 目前职位
        /// 
        [JsonPropertyName(""目前职位"")]
        public string CurrentPosition { get; set; }
        /// 
        /// 月收入
        /// 
        [JsonPropertyName(""月收入"")]
        public string MonthlyIncome { get; set; }
    }
    /// 
    /// 关系信息
    /// 
    public class RelationInfo
    {
        /// 
        /// 关系
        /// 
        /// 关系
        /// 
        [JsonPropertyName(""关系"")]
        public string Relation { get; set; }
        /// 
        /// 姓名
        /// 
        [JsonPropertyName(""姓名"")]
        public string Name { get; set; }
        /// 
        /// 出生日期
        /// 
        [JsonPropertyName(""出生日期"")]
        public string BirthDate { get; set; }
        /// 
        /// 地址
        /// 
        [JsonPropertyName(""地址"")]
        public string Address { get; set; }
        /// 
        /// 联系方式
        /// 
        [JsonPropertyName(""联系方式"")]
        public string ContactNumber { get; set; }
    }
    /// 
    /// 新西兰澳大利亚访问记录
    /// 
    public class VisitHistory
    {
        /// 
        /// 抵达日期
        /// 
        [JsonPropertyName(""抵达日期"")]
        public string ArrivalDate { get; set; }
        /// 
        /// 离开日期
        /// 
        [JsonPropertyName(""离开日期"")]
        public string DepartureDate { get; set; }
    }
    /// 
    /// 拒签记录
    /// 
    public class RejectionRecord
    {
        /// 
        /// 国家
        /// 
        [JsonPropertyName(""国家"")]
        public string Country { get; set; }
        /// 
        /// 申请日期地点
        /// 
        [JsonPropertyName(""申请日期地点"")]
        public string ApplicationDateLocation { get; set; }
        /// 
        /// 申请签证类别
        /// 
        [JsonPropertyName(""申请签证类别"")]
        public string VisaCategory { get; set; }
        /// 
        /// 拒签原因
        /// 
        [JsonPropertyName(""拒签原因"")]
        public string RejectionReason { get; set; }
    }
    /// 
    /// 教育经历
    /// 
    public class EducationExperience
    {
        /// 
        /// 院校名称
        /// 
        [JsonPropertyName(""院校名称"")]
        public string SchoolName { get; set; }
        /// 
        /// 入学时间
        /// 
        [JsonPropertyName(""入学时间"")]
        public string EnrollmentDate { get; set; }
        /// 
        /// 毕业时间
        /// 
        [JsonPropertyName(""毕业时间"")]
        public string GraduationDate { get; set; }
        /// 
        /// 课程专业名称
        /// 
        [JsonPropertyName(""课程专业名称"")]
        public string CourseName { get; set; }
    }
    /// 
    /// 工作经历
    /// 
    public class WorkExperience
    {
        /// 
        /// 单位名称
        /// 
        [JsonPropertyName(""单位名称"")]
        public string CompanyName { get; set; }
        /// 
        /// 开始时间
        /// 
        [JsonPropertyName(""开始时间"")]
        public string StartDate { get; set; }
        /// 
        /// 结束时间
        /// 
        [JsonPropertyName(""结束时间"")]
        public string EndDate { get; set; }
        /// 
        /// 单位所在地
        /// 
        [JsonPropertyName(""单位所在地"")]
        public string CompanyLocation { get; set; }
        /// 
        /// 职务
        /// 
        [JsonPropertyName(""职务"")]
        public string Position { get; set; }
    }
";
            #endregion
            var datas = new List() {
                new(){FileId = 1,FileName="澳新签证个人申请表",
                    //KimiAITips = $"按照标题识别成json格式,其中json属性名称为中文。第一行“其他国家”文本值为string。表头及本人声明不参与识别。按照C#中的System.Text.Json可解析的格式生成。不要除JSON数据外的任何文字以及符号。该段json格式文本为压缩格式json字符串。" },
                    KimiAITips = $"请将上传的文件内容识别为JSON格式,并按照以下指定的实体类结构进行映射。确保生成的JSON格式与实体类的属性名称和类型一致。\r\n**实体类定义**:\r\n```csharp\r\n{json1}\r\n在不影响数据完整性的前提下,该格式为压缩后的json字符串。不要除JSON数据外的任何文字以及符号。" },
                new(){FileId = 2,FileName="出国个人申请表" },
                new(){FileId = 3,FileName="美国签证个人申请表格" },
                new(){FileId = 4,FileName="沙特个人信息表格" },
                new(){FileId = 5,FileName="申根签证个人资料表" },
                new(){FileId = 6,FileName="中文个人简历模板" },
            };
            return datas;
        }
    }
    #region 新西兰、澳大利亚签证申请资料表
    public class VisaApplication
    {
        /// 
        /// 其他国家访问记录
        /// 
        [JsonPropertyName("其他国家")]
        public string OtherCountries { get; set; }
        /// 
        /// 申请人个人信息
        /// 
        [JsonPropertyName("申请人个人信息")]
        public ApplicantInfo ApplicantInfo { get; set; }
        /// 
        /// 新西兰澳大利亚访问记录
        /// 
        [JsonPropertyName("新西兰澳大利亚访问记录")]
        public List VisitHistory { get; set; }
        ///// 
        ///// 拒签记录
        ///// 
        //[JsonPropertyName("拒签记录")]
        //public List RejectionRecords { get; set; }
        /// 
        /// 教育经历
        /// 
        [JsonPropertyName("教育经历")]
        public List EducationExperiences { get; set; }
        /// 
        /// 工作经历
        /// 
        [JsonPropertyName("工作经历")]
        public List WorkExperiences { get; set; }
        /// 
        /// 服兵役历史(识别成一段话)
        /// 
        [JsonPropertyName("服兵役历史")]
        public string MilitaryServices { get; set; }
    }
    /// 
    /// 申请人个人信息
    /// 
    public class ApplicantInfo
    {
        /// 
        /// 姓名
        /// 
        [JsonPropertyName("姓名")]
        public string Name { get; set; }
        /// 
        /// 曾用名
        /// 
        [JsonPropertyName("曾用名")]
        public string FormerName { get; set; }
        /// 
        /// 婚姻状况
        /// 
        [JsonPropertyName("婚姻状况")]
        public string MaritalStatus { get; set; }
        /// 
        /// 出生地
        /// 
        [JsonPropertyName("出生地")]
        public string BirthPlace { get; set; }
        /// 
        /// 出生日期
        /// 
        [JsonPropertyName("出生日期")]
        public string BirthDate { get; set; }
        /// 
        /// 性别
        /// 
        [JsonPropertyName("性别")]
        public string Gender { get; set; }
        /// 
        /// 手机
        /// 
        [JsonPropertyName("手机")]
        public string Mobile { get; set; }
        /// 
        /// 现在住址
        /// 
        [JsonPropertyName("现在住址")]
        public string CurrentAddress { get; set; }
        /// 
        /// 在职人员信息
        /// 
        [JsonPropertyName("在职人员信息")]
        public EmploymentInfo EmploymentInfo { get; set; }
        /// 
        /// 关系信息
        /// 
        [JsonPropertyName("关系信息")]
        public List RelationInfos { get; set; }
    }
    /// 
    /// 在职人员信息
    /// 
    public class EmploymentInfo
    {
        /// 
        /// 现单位名称
        /// 
        [JsonPropertyName("现单位名称")]
        public string CurrentCompanyName { get; set; }
        /// 
        /// 现单位地址
        /// 
        [JsonPropertyName("现单位地址")]
        public string CurrentCompanyAddress { get; set; }
        /// 
        /// 单位电话
        /// 
        [JsonPropertyName("单位电话")]
        public string CompanyPhone { get; set; }
        /// 
        /// 目前职位
        /// 
        [JsonPropertyName("目前职位")]
        public string CurrentPosition { get; set; }
        /// 
        /// 月收入
        /// 
        [JsonPropertyName("月收入")]
        public string MonthlyIncome { get; set; }
    }
    /// 
    /// 关系信息
    /// 
    public class RelationInfo
    {
        /// 
        /// 关系
        /// 
        /// 关系
        /// 
        [JsonPropertyName("关系")]
        public string Relation { get; set; }
        /// 
        /// 姓名
        /// 
        [JsonPropertyName("姓名")]
        public string Name { get; set; }
        /// 
        /// 出生日期
        /// 
        [JsonPropertyName("出生日期")]
        public string BirthDate { get; set; }
        /// 
        /// 地址
        /// 
        [JsonPropertyName("地址")]
        public string Address { get; set; }
        /// 
        /// 联系方式
        /// 
        [JsonPropertyName("联系方式")]
        public string ContactNumber { get; set; }
    }
    /// 
    /// 新西兰澳大利亚访问记录
    /// 
    public class VisitHistory
    {
        /// 
        /// 抵达日期
        /// 
        [JsonPropertyName("抵达日期")]
        public string ArrivalDate { get; set; }
        /// 
        /// 离开日期
        /// 
        [JsonPropertyName("离开日期")]
        public string DepartureDate { get; set; }
    }
    /// 
    /// 拒签记录
    /// 
    public class RejectionRecord1
    {
        /// 
        /// 国家
        /// 
        [JsonPropertyName("国家")]
        public string Country { get; set; }
        /// 
        /// 申请日期地点
        /// 
        [JsonPropertyName("申请日期地点")]
        public string ApplicationDateLocation { get; set; }
        /// 
        /// 申请签证类别
        /// 
        [JsonPropertyName("申请签证类别")]
        public string VisaCategory { get; set; }
        /// 
        /// 拒签原因
        /// 
        [JsonPropertyName("拒签原因")]
        public string RejectionReason { get; set; }
    }
    /// 
    /// 教育经历
    /// 
    public class EducationExperience
    {
        /// 
        /// 院校名称
        /// 
        [JsonPropertyName("院校名称")]
        public string SchoolName { get; set; }
        /// 
        /// 入学时间
        /// 
        [JsonPropertyName("入学时间")]
        public string EnrollmentDate { get; set; }
        /// 
        /// 毕业时间
        /// 
        [JsonPropertyName("毕业时间")]
        public string GraduationDate { get; set; }
        /// 
        /// 课程专业名称
        /// 
        [JsonPropertyName("课程专业名称")]
        public string CourseName { get; set; }
    }
    /// 
    /// 工作经历
    /// 
    public class WorkExperiences
    {
        /// 
        /// 单位名称
        /// 
        [JsonPropertyName("单位名称")]
        public string CompanyName { get; set; }
        /// 
        /// 开始时间
        /// 
        [JsonPropertyName("开始时间")]
        public string StartDate { get; set; }
        /// 
        /// 结束时间
        /// 
        [JsonPropertyName("结束时间")]
        public string EndDate { get; set; }
        /// 
        /// 单位所在地
        /// 
        [JsonPropertyName("单位所在地")]
        public string CompanyLocation { get; set; }
        /// 
        /// 职务
        /// 
        [JsonPropertyName("职务")]
        public string Position { get; set; }
    }
    #endregion
    #endregion
}