using FluentValidation;
using System.Collections.Generic;

namespace Kean.Domain.Message.Commands
{
    /// <summary>
    /// 发送命令
    /// </summary>
    public class SendMessageCommand : CommandValidator<SendMessageCommand>, ICommand
    {
        /// <summary>
        /// 主题
        /// </summary>
        public string Subject { get; set; }

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

        /// <summary>
        /// 消息源(发送者的用户 ID)
        /// </summary>
        public int Source { get; set; }

        /// <summary>
        /// 目标(接收者的用户 ID 集合)
        /// </summary>
        public IEnumerable<int> Targets { get; set; }

        /// <summary>
        /// 验证项
        /// </summary>
        protected override void Validation()
        {
            RuleFor(r => r.Subject).NotEmpty().WithMessage("主题不允许为空");
            RuleFor(r => r.Targets).NotEmpty().WithMessage("目标不允许为空");
        }
    }
}