package com.fzm.mall.server.admin.mq.enums;

import com.fzm.mall.server.admin.constant.MALLGlobalConfig;

/**
 * @author wangp
 * @date 2021/4/28 12:23
 * @description 队列类型
 * @since JDK 1.8
 */
public enum QueueTypeEnum {
    // 发行货币
    ISSUE_COINS(MALLGlobalConfig.PROJECT_PREFIX + "-issue-coins-exchange", MALLGlobalConfig.PROJECT_PREFIX + ".issue.coins.queue", MALLGlobalConfig.PROJECT_PREFIX + ".issue.coins.key"),
    // 增减货币
    CHANGE_COINS(MALLGlobalConfig.PROJECT_PREFIX + "-change-coins-exchange", MALLGlobalConfig.PROJECT_PREFIX + ".change.coins.queue", MALLGlobalConfig.PROJECT_PREFIX + ".change.coins.key"),
    // 提货订单
    ORDER_DELIVERY(MALLGlobalConfig.PROJECT_PREFIX + "-order-delivery-exchange", MALLGlobalConfig.PROJECT_PREFIX + ".order.delivery.queue", MALLGlobalConfig.PROJECT_PREFIX + ".order.delivery.key"),
    // 发行商户积分
    ISSUE_MERCHANT_INTEGRAL(MALLGlobalConfig.PROJECT_PREFIX + "-issue-merchant-integral-exchange", MALLGlobalConfig.PROJECT_PREFIX + ".issue.merchant.integral.queue", MALLGlobalConfig.PROJECT_PREFIX + ".issue.merchant.integral.key"),
    // 商户积分转账
    MERCHANT_INTEGRAL_TRAN(MALLGlobalConfig.PROJECT_PREFIX + "-merchant-integral-tran-exchange", MALLGlobalConfig.PROJECT_PREFIX + ".merchant.integral.tran.queue", MALLGlobalConfig.PROJECT_PREFIX + ".merchant.integral.tran.key"),
    // 短信模板
    QUERY_SMS_TEMPLATE_CHECK(MALLGlobalConfig.PROJECT_PREFIX + "-query-sms-template-check-exchange", MALLGlobalConfig.PROJECT_PREFIX + ".query.sms.template.check.queue", MALLGlobalConfig.PROJECT_PREFIX + ".query.sms.template.check.key"),
    // 定时短信
    SEND_TIMING_SMS(MALLGlobalConfig.PROJECT_PREFIX + "-send-timing-sms-exchange", MALLGlobalConfig.PROJECT_PREFIX + ".send.timing.sms.queue", MALLGlobalConfig.PROJECT_PREFIX + ".send.timing.sms.key"),
    //订单退款，提货单退货，货币返还
    ORDER_REFUND_COINS(MALLGlobalConfig.PROJECT_PREFIX + "-order-refund-coins-exchange", MALLGlobalConfig.PROJECT_PREFIX + ".order.refund.conins.queue", MALLGlobalConfig.PROJECT_PREFIX + ".order.refund.coins.key"),
    // 平台积分转账
    PLATFORM_INTEGRAL_TRAN(MALLGlobalConfig.PROJECT_PREFIX + "-platform-integral-tran-exchange", MALLGlobalConfig.PROJECT_PREFIX + ".platform.integral.tran.queue", MALLGlobalConfig.PROJECT_PREFIX + ".platform.integral.tran.key"),
    // 平台积分增发
    PLATFORM_INTEGRAL_ADD(MALLGlobalConfig.PROJECT_PREFIX + "-platform-integral-add-exchange", MALLGlobalConfig.PROJECT_PREFIX + ".platform.integral.add.queue", MALLGlobalConfig.PROJECT_PREFIX + ".platform.integral.add.key"),
    // 平台积分回收
    PLATFORM_INTEGRAL_RECOVER(MALLGlobalConfig.PROJECT_PREFIX + "-platform-integral-recover-exchange", MALLGlobalConfig.PROJECT_PREFIX + ".platform.integral.recover.queue", MALLGlobalConfig.PROJECT_PREFIX + ".platform.integral.recover.key"),
    // 用户资产充值、扣除
    USER_ASSETS_RECHARGE_OR_DEDUCTION(MALLGlobalConfig.PROJECT_PREFIX + "-user-assets-recharge-or-deduction-exchange", MALLGlobalConfig.PROJECT_PREFIX + ".user.assets.recharge.or.deduction.queue", MALLGlobalConfig.PROJECT_PREFIX + ".user.assets.recharge.or.deduction.key"),
    //订单超时关闭
    ORDER_CLOSE(MALLGlobalConfig.PROJECT_PREFIX + "-order-exchange", MALLGlobalConfig.PROJECT_PREFIX + ".order.close.queue", MALLGlobalConfig.PROJECT_PREFIX + ".order.close.key"),
    //用户支付有效订单后得7-8天内，发送升级积分
    USER_MEMBER_UP(MALLGlobalConfig.PROJECT_PREFIX + "-memberup-exchange", MALLGlobalConfig.PROJECT_PREFIX + ".memberup.queue", MALLGlobalConfig.PROJECT_PREFIX + ".memberup.key"),
    //发行nft
    NFT_ISSUE(MALLGlobalConfig.PROJECT_PREFIX + "-issue-nft-exchange", MALLGlobalConfig.PROJECT_PREFIX + ".issue.nft.queue", MALLGlobalConfig.PROJECT_PREFIX + ".issue.nft.key"),
    //批量发行使用权
    NFT_USU(MALLGlobalConfig.PROJECT_PREFIX + "-usu-nft-exchange", MALLGlobalConfig.PROJECT_PREFIX + ".usu.nft.queue", MALLGlobalConfig.PROJECT_PREFIX + ".usu.nft.key");


    private String exchange;

    private String queue;

    private String queueKey;

    QueueTypeEnum(String exchange, String queue, String queueKey) {
        this.exchange = exchange;
        this.queue = queue;
        this.queueKey = queueKey;
    }

    public String getExchange() {
        return exchange;
    }

    public String getQueue() {
        return queue;
    }

    public String getQueueKey() {
        return queueKey;
    }
}
