using Hotline.Share.Enums.Push;
using System.ComponentModel.DataAnnotations;

namespace Hotline.Share.Dtos.Push;

public class MessageDto
{
    /// <summary>
    /// 消息推送业务
    /// </summary>
    public EPushBusiness PushBusiness { get; set; }

    /// <summary>
    /// 接收姓名
    /// </summary>
    public string Name { get; set; }

    /// <summary>
    /// 接收手机号码
    /// </summary>
    public string TelNumber { get; set; }

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

    /// <summary>
    /// 关联工单编号
    /// </summary>
    public string? OrderId { get; set; }

    /// <summary>
    /// 推送平台
    /// </summary>
    public EPushPlatform? PushPlatform { get; set; } = EPushPlatform.Sms;

    /// <summary>
    /// 模板
    /// </summary>
    public string? TemplateCode { get; set; }

    /// <summary>
    /// 内容
    /// </summary>
    public string? Content { get; set; }

    /// <summary>
    /// 备注
    /// </summary>
    public string? Remark { get; set; }

    /// <summary>
    /// 参数
    /// </summary>
    public List<string>? Params { get; set; }
    public bool IsSmsReply { get; set; }
    public string? SmsReplyContent { get; set; }
    /// <summary>
    /// 消息处理类型  0：推送状态修改，1：发送状态，2：短信回复
    /// </summary>
    public string Type { get; set; }
}

public class MessageInDto
{
    /// <summary>
    /// 接收手机号码(多个逗号分隔)
    /// </summary>
    public string? TelNumbers { get; set; }

    /// <summary>
    /// 用户Id集合
    /// </summary>
    public IList<string>? UserIds { get; set; }

    /// <summary>
    /// 内容
    /// </summary>
    [Required(ErrorMessage = "内容不能为空")]
    public string Content { get; set; }
}
