using System.Text.Json.Serialization;

namespace DataSharing.Share.Dtos.YiBin.Enterprise
{
    /// <summary>
    /// 12345平台推送涉企工单至服务企业平台
    /// </summary>
    public class PushWorkOrder
    {
        /// <summary>
        /// 企业CODE
        /// </summary>
        [JsonPropertyName("enterpriseCode")]
        [MDisplayName("企业CODE")]
        [VRequired]
        public string EnterpriseCode { get; set; }

        /// <summary>
        /// 专班CODE
        /// </summary>
        [JsonPropertyName("specialTeamCode")]
        [MDisplayName("专班CODE")]
        [VRequired]
        public string SpecialTeamCode { get; set; }

        /// <summary>
        /// 服务工单编号
        /// </summary>
        [JsonPropertyName("workOrderNo")]
        [MDisplayName("服务工单编号")]
        [VRequired]
        public string WorkOrderNo { get; set; }

        /// <summary>
        /// 服务工单标题
        /// </summary>
        [JsonPropertyName("workOrderTitle")]
        [MDisplayName("服务工单标题")]
        [VRequired]
        public string WorkOrderTitle { get; set; }

        /// <summary>
        /// 受理时间(yyyy-MM-dd HH:mm:ss格式)
        /// </summary>
        [JsonPropertyName("acceptTime")]
        [MDisplayName("受理时间")]
        [VRequired]
        public string AcceptTime { get; set; }

        /// <summary>
        /// 诉求渠道
        /// </summary>
        [JsonPropertyName("appealChannel")]
        [MDisplayName("诉求渠道")]
        [VRequired]
        public string AppealChannel { get; set; }

        /// <summary>
        /// 联系电话
        /// </summary>
        [JsonPropertyName("contactPhone")]
        [MDisplayName("联系电话")]
        [VRequired]
        public string ContactPhone { get; set; }

        /// <summary>
        ///服务对象姓名
        /// </summary>
        [JsonPropertyName("contactName")]
        [MDisplayName("服务对象姓名")]
        [VRequired]
        public string ContactName { get; set; }

        /// <summary>
        /// 诉求类型
        /// </summary>
        [JsonPropertyName("appealType")]
        [MDisplayName("诉求类型")]
        [VRequired]
        public string AppealType { get; set; }

        /// <summary>
        /// 热点类型
        /// </summary>
        [JsonPropertyName("hotspotType")]
        [MDisplayName("热点类型")]
        [VRequired]
        public string HotspotType { get; set; }

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

        /// <summary>
        /// 紧急程度
        /// </summary>
        [JsonPropertyName("urgencyDegree")]
        [MDisplayName("紧急程度")]
        [VRequired]
        public string UrgencyDegree { get; set; }

        /// <summary>
        /// 行政区划代码
        /// </summary>
        [JsonPropertyName("regionCode")]
        [MDisplayName("行政区划代码")]
        [VRequired]
        public string RegionCode { get; set; }

        /// <summary>
        /// 期满时间(yyyy-MM-dd HH:mm:ss格式)
        /// </summary>
        [JsonPropertyName("expirationTime")]
        [MDisplayName("期满时间")]
        [VRequired]
        public string ExpirationTime { get; set; }

        /// <summary>
        /// 事发时间(yyyy-MM-dd HH:mm:ss格式)
        /// </summary>
        [JsonPropertyName("incidentTime")]
        [MDisplayName("事发时间")]
        [VRequired]
        public string? IncidentTime { get; set; }

        /// <summary>
        /// byte[]转base64，方法如下：Convert.ToBase64String(byte)
        /// </summary>
        [JsonPropertyName("replyFiles")]
        public List<ReplyFiles>? ReplyFiles { get; set; } = new List<ReplyFiles>();
    }
}
