package cn.axzo.msg.center.service.bizevent.request;

import cn.axzo.basics.common.util.AssertUtil;
import java.util.List;
import java.util.Objects;
import javax.validation.constraints.NotNull;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.apache.commons.lang3.StringUtils;

/**
 * @author syl
 * @date 2023/12/14
 */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class BizEventMappingUpdateRequest {

    /**
     * 主键ID
     */
    private Long id;

    /**
     * 操作者的自然人id
     */
    @NotNull(message = "操作者的自然人id不能为空")
    private Long operatorId;

    /**
     * 业务事件code
     * 尽量保证唯一
     */
    private String bizCode;

    /**
     * 业务事件名称
     */
    private String bizName;

    /**
     * 业务动作配置
     */
    private List<ReachDto> reachConfig;

    public void check() {
        AssertUtil.isFalse(Objects.isNull(id) && StringUtils.isBlank(bizCode),
                "主键id和业务事件code不能同时为空");
    }
}
