package com.qqchen.deploy.backend.notification.dto;

import com.qqchen.deploy.backend.notification.enums.NotificationChannelTypeEnum;
import jakarta.validation.constraints.NotEmpty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.util.List;

/**
 * 邮件发送通知请求
 *
 * @author qqchen
 * @since 2025-11-12
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class EmailSendNotificationRequest extends BaseSendNotificationRequest {
    
    /**
     * 渠道类型（用于Jackson反序列化）
     */
    private final NotificationChannelTypeEnum channelType = NotificationChannelTypeEnum.EMAIL;
    
    /**
     * 邮件主题（必填）
     */
    @NotEmpty(message = "邮件主题不能为空")
    private String subject;
    
    /**
     * 收件人列表（必填）
     */
    @NotEmpty(message = "收件人不能为空")
    private List<String> toReceivers;
    
    /**
     * 抄送列表（可选）
     */
    private List<String> ccReceivers;
    
    /**
     * 密送列表（可选）
     */
    private List<String> bccReceivers;
    
    /**
     * 是否HTML格式（可选，默认false）
     */
    private Boolean isHtml = false;
    
    @Override
    public NotificationChannelTypeEnum getChannelType() {
        return NotificationChannelTypeEnum.EMAIL;
    }
}
