package com.hzs.common.core.enums;

import com.hzs.common.core.constant.CacheConstants;
import com.hzs.common.core.constant.SmsConstants;
import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * 短信模板类型
 */
@AllArgsConstructor
@Getter
public enum ESmsTemplate {

    /**
     * 每日业绩
     */
    ACHIEVEMENT(SmsConstants.SMS_CODE_PREFIX + "1", "", false),

    /**
     * 结算安置问题
     */
    SETTLE_ACHIEVE(SmsConstants.SMS_CODE_PREFIX + "2", "", false),

    /**
     * 特殊用户
     */
    SPECIAL_MEMBER(SmsConstants.SMS_CODE_PREFIX + "5", "", false),

    /**
     * 验证码
     */
    VERIFICATION(SmsConstants.SMS_CODE_PREFIX + "10", CacheConstants.CACHE_SMS_PREFIX + "verification:", false),
    /**
     * 后台验证码
     */
    VERIFICATION_MANAGE(SmsConstants.SMS_CODE_PREFIX + "10", CacheConstants.CACHE_SMS_PREFIX + "verificationManage:", false),

    /**
     * 会员注册成功
     */
    REGISTER_SUCCESS(SmsConstants.SMS_CODE_PREFIX + "11", "", false),

    /**
     * 忘记密码
     */
    FORGET_PASSWORD(SmsConstants.SMS_CODE_PREFIX + "12", CacheConstants.CACHE_SMS_PREFIX + "forget:", false),

    /**
     * 订单发货
     */
    ORDER_SHIPPING(SmsConstants.SMS_CODE_PREFIX + "13", "", false),

    /**
     * 库存预警
     */
    STOCK_WARNING(SmsConstants.SMS_CODE_PREFIX + "15", "", false),

    /**
     * 余额核对
     */
    BALANCE_CHECK(SmsConstants.SMS_CODE_PREFIX + "17", "", false),


    //////////////////// 上面的短信不能进行手动发送 ////////////////////

    /**
     * 售后收货
     */
    SMS21(SmsConstants.SMS_CODE_PREFIX + "21", "", true),
    /**
     * 售后换新
     */
    SMS22(SmsConstants.SMS_CODE_PREFIX + "22", "", true),
    /**
     * 售后原件
     */
    SMS23(SmsConstants.SMS_CODE_PREFIX + "23", "", true),
    /**
     * 售后换件
     */
    SMS24(SmsConstants.SMS_CODE_PREFIX + "24", "", true),
    /**
     * 产品补发
     */
    SMS25(SmsConstants.SMS_CODE_PREFIX + "25", "", true),
    /**
     * 售后受理
     */
    SMS26(SmsConstants.SMS_CODE_PREFIX + "26", "", true),
    /**
     * 疫情延迟补发
     */
    SMS27(SmsConstants.SMS_CODE_PREFIX + "27", "", true),
    /**
     * 疫情延迟发货
     */
    SMS28(SmsConstants.SMS_CODE_PREFIX + "28", "", true),
    /**
     * 售后快速处理
     */
    SMS29(SmsConstants.SMS_CODE_PREFIX + "29", "", true),
    /**
     * 支付订单退款
     */
    SMS30(SmsConstants.SMS_CODE_PREFIX + "30", "", true),

    ;

    /**
     * 短信模板编号
     */
    private final String code;
    /**
     * 短信模板缓存KEY
     */
    private final String cache;
    /**
     * 是否可以手动创建（true则可以通过短信发送功能进行发送）
     */
    private final boolean create;

    /**
     * 根据编号获取枚举
     *
     * @param code
     * @return
     */
    public static ESmsTemplate getEnumsByCode(String code) {
        for (ESmsTemplate value : ESmsTemplate.values()) {
            if (value.getCode().equals(code)) {
                return value;
            }
        }
        return null;
    }

}
