using System.Text.Json.Serialization;

namespace DataSharing.Share.Dtos.Province.XieTong.Receive
{
    /// <summary>
    /// 服务工单交办
    /// </summary>
    public class ReceiveCaseInfoRequest
    {
        /// <summary>
        /// 
        /// </summary>
        public ClientInfo token { get; set; }

        /// <summary>
        /// 服务工单
        /// </summary>
        public ReceiveCaseInfoModel paras { get; set; }
    }

    /// <summary>
    /// 服务工单交办
    /// </summary>
    public class ReceiveCaseInfoModel
    {
        /// <summary>
        /// 服务工单标题
        /// </summary>
        [JsonPropertyName("CASE_TITLE")]
        [MDisplayName("服务工单标题")]
        [VRequired]
        [VStringLength(0, 300)]
        public string CaseTitle { get; set; }

        /// <summary>
        /// 服务代表姓名
        /// </summary>
        [JsonPropertyName("CASE_REGISTER")]
        [MDisplayName("服务代表姓名")]
        [VRequired]
        [VStringLength(0, 200)]
        public string CaseRegister { get; set; }

        /// <summary>
        /// 服务代表工号
        /// </summary>
        [JsonPropertyName("CASE_REGISTERNO")]
        [MDisplayName("服务代表工号")]
        [VRequired]
        [VStringLength(0, 50)]
        public string CaseRegisterNo { get; set; }

        /// <summary>
        /// 登记时间
        /// </summary>
        [JsonPropertyName("CASE_DATE")]
        [VRequired]
        [MDisplayName("登记时间")]
        public string? CaseDate { get; set; }

        /// <summary>
        /// 诉求渠道
        /// </summary>
        [JsonPropertyName("CASE_SOURCE")]
        [MDisplayName("诉求渠道")]
        [VRequired]
        [VStringLength(0, 10)]
        public string CaseSource { get; set; }

        /// <summary>
        /// 联系电话
        /// </summary>
        [JsonPropertyName("PHONE_NUMBER")]
        [MDisplayName("联系电话")]
        [VRequired]
        [VStringLength(0, 50)]
        public string PhoneNumber { get; set; }

        /// <summary>
        /// 服务对象名称
        /// </summary>
        [JsonPropertyName("APPLICANT_NAME")]
        [MDisplayName("服务对象名称")]
        [VRequired]
        [VStringLength(0, 200)]
        public string AppLicantName { get; set; }

        /// <summary>
        /// 服务对象性别
        /// </summary>
        [JsonPropertyName("APPLICANT_SEX")]
        [MDisplayName("服务对象性别")]
        [VRequired]
        [VStringLength(0, 1)]
        public string AppLicantSex { get; set; }

        /// <summary>
        /// 服务对象年龄范围
        /// </summary>
        [JsonPropertyName("APPLICANT_AGE")]
        [MDisplayName("服务对象年龄范围")]
        [VStringLength(0, 4)]
        public string AppLicantAge { get; set; }

        /// <summary>
        /// 证件类型
        /// </summary>
        [JsonPropertyName("CERTIFICATE_TYPE")]
        [MDisplayName("证件类型")]
        [VStringLength(0, 4)]
        public string CertifiCateType { get; set; }

        /// <summary>
        /// 证件号码
        /// </summary>
        [JsonPropertyName("APPLICANT_ID")]
        [MDisplayName("证件号码")]
        [VStringLength(0, 50)]
        public string AppLicantId { get; set; }

        /// <summary>
        /// 诉求类型
        /// </summary>
        [JsonPropertyName("CASE_TYPE")]
        [MDisplayName("诉求类型")]
        [VRequired]
        [VStringLength(0, 4)]
        public string CaseType { get; set; }

        /// <summary>
        /// 诉求归口
        /// </summary>
        [JsonPropertyName("CASE_ACCORD")]
        [MDisplayName("诉求归口")]
        [VRequired]
        [VStringLength(0, 50)]
        public string CaseAccord { get; set; }

        /// <summary>
        /// 诉求内容
        /// </summary>
        [JsonPropertyName("CASE_CONTENT")]
        [MDisplayName("诉求内容")]
        [VRequired]
        public string CaseContent { get; set; }

        /// <summary>
        /// 处理方式
        /// </summary>
        [JsonPropertyName("CASE_PROCESS_TYPE")]
        [MDisplayName("处理方式")]
        [VRequired]
        [VStringLength(0, 4)]
        public string CaseProcessType { get; set; }

        /// <summary>
        /// 是否公开
        /// </summary>
        [JsonPropertyName("CASE_ISPUBLIC")]
        [MDisplayName("是否公开")]
        [VRequired]
        [VStringLength(0, 4)]
        public string CaseIsPublic { get; set; }

        /// <summary>
        /// 是否保密
        /// </summary>
        [JsonPropertyName("CASE_ISSECRECT")]
        [MDisplayName("是否保密")]
        [VRequired]
        [VStringLength(0, 4)]
        public string CaseIsSecrect { get; set; }

        /// <summary>
        /// 是否回访
        /// </summary>
        [JsonPropertyName("CASE_ISVISIT")]
        [MDisplayName("是否回访")]
        [VRequired]
        [VStringLength(0, 4)]
        public string CaseIsVisit { get; set; }

        /// <summary>
        /// 紧急程度
        /// </summary>
        [JsonPropertyName("CASE_ISURGENT")]
        [MDisplayName("紧急程度")]
        [VRequired]
        [VStringLength(0, 4)]
        public string CaseIsUrgent { get; set; }

        /// <summary>
        /// 应签收时限
        /// </summary>
        [JsonPropertyName("TSIGNTTME_BF")]
        public string? TSigntTmeBf { get; set; }

        /// <summary>
        /// 应办结时限
        /// </summary>
        [JsonPropertyName("TFDBACKTIME_BF")]
        public string? TfdBackTimeBf { get; set; }

        /// <summary>
        /// 应退回时限
        /// </summary>
        [JsonPropertyName("TBACKTIME_BF")]
        public string? TBackTimeBf { get; set; }

        /// <summary>
        /// 交办类型
        /// </summary>
        [JsonPropertyName("TASK_TYPE")]
        [MDisplayName("交办类型")]
        [VStringLength(0, 4)]
        public string TaskType { get; set; }

        /// <summary>
        /// 经纬度
        /// </summary>
        [JsonPropertyName("CASE_LNGLAT")]
        [MDisplayName("经纬度")]
        [VStringLength(0, 50)]
        public string CaseLngLat { get; set; }

        /// <summary>
        /// 诉求情感
        /// </summary>
        [JsonPropertyName("CASE_EMOTION")]
        [MDisplayName("诉求情感")]
        [VStringLength(0, 50)]
        public string CaseEmotion { get; set; }

        /// <summary>
        /// 诉求详细地址
        /// </summary>
        [JsonPropertyName("CASE_ADDRESS")]
        [MDisplayName("诉求详细地址")]
        [VStringLength(0, 500)]
        public string CaseAddress { get; set; }

        /// <summary>
        ///事发时间
        /// </summary>
        [JsonPropertyName("EVENT_DATE")]
        [MDisplayName("事发时间")]
        [VRequired]
        public string? EventDate { get; set; }

        /// <summary>
        /// 任务关联单guid
        /// </summary>
        [JsonPropertyName("TROWGUID")]
        [MDisplayName("任务关联单guid")]
        [VStringLength(0, 50)]
        public string TrowGuid { get; set; }

        /// <summary>
        /// 建议类型
        /// </summary>
        [JsonPropertyName("ADVISE_TYPE")]
        [MDisplayName("建议类型")]
        [VStringLength(0, 100)]
        public string AdviseType { get; set; }

        /// <summary>
        /// 建议部门
        /// </summary>
        [JsonPropertyName("ADVISE_DEPT")]
        [MDisplayName("建议部门")]
        [VStringLength(0, 100)]
        public string AdviseDept { get; set; }

        /// <summary>
        /// 投诉类型
        /// </summary>
        [JsonPropertyName("COMPLAIN_TYPE")]
        [MDisplayName("投诉类型")]
        [VStringLength(0, 1000)]
        public string ComplainType { get; set; }

        /// <summary>
        /// 投诉部门
        /// </summary>
        [JsonPropertyName("COMPLAIN_DEPT")]
        [MDisplayName("投诉部门")]
        [VStringLength(0, 100)]
        public string ComplainDept { get; set; }

        /// <summary>
        /// 服务工单编号
        /// </summary>
        [JsonPropertyName("CASE_SERIAL")]
        [VRequired]
        [VStringLength(0, 50)]
        [MDisplayName("服务工单编号")]
        public string CaseSerial { get; set; }

        /// <summary>
        /// 行政区划代码
        /// </summary>
        [JsonPropertyName("AREA_CODE")]
        [MDisplayName("行政区划代码")]
        [VRequired]
        [VStringLength(0, 24)]
        public string AreaCode { get; set; }

        /// <summary>
        /// 材料标识
        /// </summary>
        [JsonPropertyName("CLIENG_GUID")]
        [MDisplayName("材料标识")]
        [VRequired]
        [VStringLength(0, 50)]
        public string CliengGuid { get; set; }

    }
}
