package cn.superdesk.uniorder.executor.scheduler.kafka._thirdpart.qchjc._constants.enums;

import java.util.EnumSet;
import java.util.HashMap;
import java.util.Map;

/**
 * @Description: Java类作用描述
 * @Author: linjinyu
 * @CreateDate: 2022/5/10 11:47 上午
 * @UpdateUser: linjinyu
 * @UpdateDate: 2022/5/10 11:47 上午
 * @UpdateRemark: 修改内容
 * @Version: 1.0
 */
public enum QchjcCustomerStatementEventEnum {

    // 触发事件点;
    //  1.来源于“企业商城”的开票申请在**发起开票成功时**：若该对账单的申请状态为“全部申请”**&**所有有效的开票申请的申请状态均为“待回款”时
    //  1.来源于“企业商城”的对账单在**“积分结算-发票管理-【运营寄票】”成功时**：若该对账单的申请状态为“全部申请”**&**所有有效的开票申请的申请状态均为“待回款”时；
    开票状态同步("makeInvoiceStatusSync", "开票状态同步"),

    // 触发事件点;
    //  1. 来源于“企业商城”的对账单在**“积分结算-发票管理-【回款登记】”成功时**：若该对账单的申请状态为“全部申请”**&**所有有效的开票申请的申请状态均为“已回款”时；
    收款状态同步("receivePaymentStatusSync", "收款状态同步"),

    // 触发事件点;
    //  1. 来源于“企业商城”的对账单在**“积分结算-对账单-【重新对账】”成功时**；
    账单作废同步("statementCancelSync", "账单作废同步"),
    ;

    private String key;
    private String desc;

    QchjcCustomerStatementEventEnum(String key, String desc) {
        this.key = key;
        this.desc = desc;
    }

    public String getKey() {
        return key;
    }

    public String getDesc() {
        return desc;
    }

    public static String getDesc(String key) {
        for (QchjcCustomerStatementEventEnum c : QchjcCustomerStatementEventEnum.values()) {
            if (c.key.equals(key)) {
                return c.getDesc();
            }
        }

        return "未知事件";
    }

    private static final Map<String, QchjcCustomerStatementEventEnum> LOOKUP = new HashMap<>();

    static {
        for (QchjcCustomerStatementEventEnum s : EnumSet.allOf(QchjcCustomerStatementEventEnum.class)) {
            LOOKUP.put(s.getKey(), s);
        }
    }

    public static QchjcCustomerStatementEventEnum get(String key) {
        return LOOKUP.get(key);
    }
}
