package cn.iocoder.yudao.module.bpm.enums.message;

import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * Bpm 消息的枚举
 *
 * @author 芋道源码
 */
@AllArgsConstructor
@Getter
public enum BpmMessageEnum {

    PROCESS_INSTANCE_APPROVE("bpm_process_instance_approve"), // 流程任务被审批通过时，发送给申请人
    PROCESS_INSTANCE_REJECT("bpm_process_instance_reject"), // 流程任务被审批不通过时，发送给申请人
    TASK_ASSIGNED("bpm_task_assigned"), // 任务被分配时，发送给审批人
    TASK_TIMEOUT("bpm_task_timeout"), // 任务审批超时时，发送给审批人

    RETREAT_PROCESS_INSTANCE_APPROVE("retreat_process_instance_approve"), // 流程任务被审批通过时，发送给申请人
    RETREAT_PROCESS_INSTANCE_REJECT("retreat_process_instance_reject"), // 流程任务被审批不通过时，发送给申请人
    RETREAT_TASK_ASSIGNED("retreat_task_assigned"), // 任务被分配时，发送给审批人

    BED_CHANGE_PROCESS_INSTANCE_APPROVE("bed_change_process_instance_approve"),
    BED_CHANGE_PROCESS_INSTANCE_REJECT("bed_change_process_instance_reject"),
    BED_CHANGE_PROCESS_TASK_ASSIGNED("bed_change_process_task_assigned"),

    NURSE_CHANGE_PROCESS_INSTANCE_APPROVE("nurse_change_process_instance_approve"),
    NURSE_CHANGE_PROCESS_INSTANCE_REJECT("nurse_change_process_instance_reject"),
    NURSE_CHANGE_PROCESS_TASK_ASSIGNED("nurse_change_process_task_assigned"),

    CATERING_CHANGE_PROCESS_TASK_ASSIGNED("catering_change_process_task_assigned"),
    CATERING_CHANGE_PROCESS_INSTANCE_REJECT("catering_change_process_instance_reject"),
    CATERING_CHANGE_PROCESS_INSTANCE_APPROVE("catering_change_process_instance_approve"),

    PRICE_CHANGE_PROCESS_TASK_ASSIGNED("price_change_process_task_assigned"),
    PRICE_CHANGE_PROCESS_INSTANCE_REJECT("price_change_process_instance_reject"),
    PRICE_CHANGE_PROCESS_INSTANCE_APPROVE("price_change_process_instance_approve"),

    TRANSFER_CHANGE_PROCESS_TASK_ASSIGNED("transfer_change_process_task_assigned"),
    TRANSFER_CHANGE_PROCESS_INSTANCE_REJECT("transfer_change_process_instance_reject"),
    TRANSFER_CHANGE_PROCESS_INSTANCE_APPROVES("transfer_change_process_instance_approve"),

    BPM_COPY_INSTANCE_TASK_ASSIGNED("bpm_copy_instance_task_assigned"),
    BPM_COPY_INSTANCE_APPROVE("bpm_copy_instance_approve"),

    BPM_INSTANCE_CANCEL("bpm_instance_cancel"),

    CHECK_IN_PROCESS_TASK_ASSIGNED("check_in_process_task_assigned"),
    CHECK_IN_PROCESS_INSTANCE_APPROVE("check_in_process_instance_approve"),
    CHECK_IN_PROCESS_INSTANCE_REJECT("check_in_process_instance_reject"),

    CHECK_IN_WAIT_PROCESS_TASK_ASSIGNED("check_in_wait_process_task_assigned"),
    CHECK_IN_WAIT_PROCESS_INSTANCE_APPROVE("check_in_wait_process_instance_approve"),
    CHECK_IN_WAIT_PROCESS_INSTANCE_REJECT("check_in_wait_process_instance_reject"),

    PROCESS_INSTANCE_BACK("process_instance_back"),

    CHECK_IN_HANDLE("check_in_handle"),
    SYNTHETIC_ABILITY_HANDLE("synthetic_ability_handle"),
    EXPENSE_ORDER_HANDLE("expense_order_handle"),
    REFUND_SETTLEMENT_HANDLE("refund_settlement_handle"),

    SELF_MEDICATION_WARNING_HANDLE("self_medication_warning_handle"),
    SELF_MEDICATION_EXPIRE_HANDLE("self_medication_expire_handle"),
    ELDERLY_CONTRACT_EXPIRE_HANDLE("elderly_contract_expire_handle"),
    ELDER_BIRTHDAY_HANDLE("elder_birthday_handle"),

    OTHER("bpm_other");


    /**
     * 短信模板的标识
     *
     * 关联 SmsTemplateDO 的 code 属性
     */
    private final String templateCode;

}
