package com.njcn.msgpush.module.push.controller.admin.message.vo;

import cn.hutool.core.lang.RegexPool;
import com.njcn.msgpush.framework.common.pojo.PageParam;
import com.njcn.msgpush.framework.common.validation.InEnum;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Pattern;
import lombok.Data;

/**
 * @author caozehui
 * @data 2026-02-27
 */
@Data
@Schema(description = "管理后台 - 消息记录发送 Request VO")
public class MessageRecordReqVO extends PageParam {

    private String channel;

    @Schema(description = "消息类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "verify_code/order_notify/marketing/system_notify")
    @NotBlank(message = "消息类型不能为空")
    private String messageType;

    @Schema(description = "接收者", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotBlank(message = "接收者不能为空")
//    @Pattern(regexp = RegexPool.EMAIL + "|" + RegexPool.MOBILE, message = "必须是有效的邮箱或手机号格式")
    private String receiver;

    @Schema(description = "标题", requiredMode = Schema.RequiredMode.REQUIRED)
    private String title;

    @Schema(description = "消息内容", requiredMode = Schema.RequiredMode.REQUIRED)
    private String content;

    @Schema(description = "模板编码", requiredMode = Schema.RequiredMode.REQUIRED)
    private String templateCode;

    @Schema(description = "模板参数")
    private String templateParams;
}
