package com.crunii.micro.domain.dto.message;

import com.crunii.micro.common.validate.AddGroup;
import com.crunii.micro.common.validate.EditGroup;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.util.List;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import lombok.Data;

/**
 * @Author thw
 * @date 2023/11/27
 * @description 通过消息模板表查找对应的模板消息内容 YCQ_MESSAGE_TEMPLATE
 */
@Data
@ApiModel(value = "消息推送请求bo")
public class SaveMessageTaskReqBo {

  /**
   * 系统名称（应用业务系统）
   */
  @NotBlank(message = "系统名称（应用业务系统", groups = { AddGroup.class, EditGroup.class })
  @ApiModelProperty(value = "系统名称（应用业务系统）")
  private String systemName;
  /**
   * 场景名称（业务场景名称）
   */
  @NotBlank(message = "场景名称（业务场景名称）", groups = { AddGroup.class, EditGroup.class })
  @ApiModelProperty(value = "场景名称（业务场景名称）")
  private String sceneName;
  /**
   * 消息标题
   */
  @NotBlank(message = "消息标题", groups = { AddGroup.class, EditGroup.class })
  @ApiModelProperty(value = "消息标题")
  private String title;
  /**
   * 按顺序传入,替换模板参数值
   */
  @NotNull(message = "替换模板参数值", groups = { AddGroup.class, EditGroup.class })
  @ApiModelProperty(value = "按顺序传入,替换模板参数值")
  private List<String> valueList;

  // 消息保存需要的参数
  /**
   * 发送范围(1全用户、2角色、3组织【全用户可以用 user、role 、org、单独的用户id等】、4单独用户)
   */
  @NotNull(message = "发送范围必传")
  @ApiModelProperty(value = "发送范围(1全用户、2角色、3组织、4单独用户)")
  private Integer scopeType;
  /**
   * 范围数据(逗号拼接ID)
   */
  @ApiModelProperty(value = "范围数据(英文逗号拼接ID)")
  private String scopeData;


}
