package cn.axzo.workflow.common.enums;

import cn.axzo.framework.rocketmq.Event;

/**
 * 流程消息推送相关的 MQ 事件枚举定义
 *
 * @author wangli
 * @since 2023/11/22 13:58
 */
public enum ProcessMessagePushEventEnum {

    PROCESS_PUSH_NOTICE("process-push", "process-push-notice", "站内信推送"),
    PROCESS_PUSH_PENDING("process-push", "process-push-pending", "待办推送"),
    PROCESS_PUSH_PENDING_COMPLETE("process-push", "process-push-pending-complete", "完成待办"),
    PROCESS_CARBON_COPY("process-push", "process-carbon-copy", "抄送流程"),
    PROCESS_CARBON_COPY_COMPLETE("process-push", "process-carbon-copy-complete", "完成抄送"),
    PROCESS_PUSH_SMS("process-push", "process-push-sms", "短信推送"),
    ;


    private final String module;
    private final String tag;
    private final String desc;
    private Event.EventCode eventCode;

    ProcessMessagePushEventEnum(String model, String tag, String desc) {
        this.eventCode = Event.EventCode.builder()
                .module(model)
                .name(tag)
                .build();
        this.module = model;
        this.tag = tag;
        this.desc = desc;
    }

    public String getModule() {
        return module;
    }

    public String getTag() {
        return tag;
    }

    public String getDesc() {
        return desc;
    }

    public Event.EventCode getEventCode() {
        return eventCode;
    }
}
