using Hotline.Share.Enums.Push;

namespace Hotline.Share.Dtos.Push
{
    public class PushReceiveMessageDto
    {
        /// <summary>
        /// 消息处理类型  0：推送状态修改，1：发送状态，2：短信回复
        /// </summary>
        public string Type { get; set; }

        /// <summary>
        /// 外部业务唯一编号
        /// </summary>
        public string? ExternalId { get; set; }

        /// <summary>
        /// 推送状态
        /// </summary>
        public EPushStatus Status { get; set; }

        /// <summary>
        /// 短信中心待发送ID
        /// </summary>
        public string? SmsWaitSendingId { get; set; }

        /// <summary>
        /// 短信中心已发送ID
        /// </summary>
        public string? SmsSendingCompletedId { get; set; }

        /// <summary>
        /// 短信发送状态
        /// </summary>
        public ESendState SendState { get; set; }

        /// <summary>
        /// 发送时间
        /// </summary>
        public DateTime? SendTime { get; set; }

        /// <summary>
        /// 短信回复是否回复
        /// </summary>   
        public bool IsSmsReply { get; set; }

        /// <summary>
        /// 短信回复内容
        /// </summary>   
        public string? SmsReplyContent { get; set; }

        /// <summary>
        /// 短信回复时间
        /// </summary>
        public DateTime? SmsReplyTime { get; set; }

        /// <summary>
        /// 业务系统短信ID
        /// </summary>
        public int WaitSendId { get; set; } = 0;

        /// <summary>
        /// 发送短信使用的数量
        /// </summary>
        public int? MsgCount { get; set; }

        /// <summary>
        /// 发送失败原因等
        /// </summary>
        public string? Reason { get; set; }

        /// <summary>
        /// 手机号
        /// </summary>
        public string? TelNumber { get; set; }
    }
}
