package cn.axzo.workflow.common.model.request.bpmn;

import cn.axzo.workflow.common.enums.BpmnProcessInstanceResultEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.util.List;

/**
 * 站内信
 *
 * @author wangli
 * @since 2023/12/2 18:36
 */
@ApiModel("JSON 版本的 BPMN 协议模型中的通知管理的站内信")
@Data
@NoArgsConstructor
@Accessors(chain = true)
public class BpmnNoticeProperty implements Serializable {

    /**
     * 通知消息模板 ID
     */
    @ApiModelProperty(value = "通知消息模板 ID")
    //    @NotBlank(message = "通知消息模板 ID 不能为空")
    private String noticeMessageId;

    /**
     * 用于前端回显数据, 服务端不解析
     */
    @ApiModelProperty(value = "用于前端回显数据, 服务端不解析")
    private String viewJson;

    /**
     * 是否发送消息通知
     */
    @ApiModelProperty(value = "是否发送消息通知")
    private Boolean sendMessage;

    /**
     * 消息触发时机列表
     */
    @ApiModelProperty(value = "触发时机列表")
    private List<BpmnProcessInstanceResultEnum> triggerEvents;

    /**
     * 消息模版发起人配置
     */
    @ApiModelProperty(value = "消息模版发起人配置")
    private BpmnNoticeReceiver initiator;

    /**
     * 消息历史审批配置
     */
    @ApiModelProperty(value = "消息模版历史审批人配置")
    private BpmnNoticeReceiver histories;

    /**
     * 消息模版指定岗位配置
     */
    @ApiModelProperty(value = "消息模版指定岗位配置")
    private BpmnNoticeReceiver positions;

    /**
     * 消息模版指定角色配置
     */
    @ApiModelProperty(value = "消息模版指定角色配置")
    private BpmnNoticeReceiver roles;
}
