package com.xindazhou.business.framework.sms.core.enums;

import cn.hutool.core.util.ArrayUtil;

/**
 * 短信渠道枚举
 *
 * @author zzf
 * @since 2021/1/25 10:56
 */
public enum SmsChannelEnum {

    DEBUG_DING_TALK("DEBUG_DING_TALK", "调试(钉钉)"),
    ALIYUN("ALIYUN", "阿里云"),
    TENCENT("TENCENT", "腾讯云"),
    HUAWEI("HUAWEI", "华为云"),
    QINIU("QINIU", "七牛云"),
    ;

    /**
     * 编码
     */
    private final String code;
    /**
     * 名字
     */
    private final String name;

    /**
     * 构造函数（枚举必须手动写，Lombok 的 @AllArgsConstructor 在枚举上不工作）
     */
    SmsChannelEnum(String code, String name) {
        this.code = code;
        this.name = name;
    }

    /**
     * 获取编码（Lombok 的 @Getter 在枚举上可能不工作，手动添加）
     */
    public String getCode() {
        return code;
    }

    /**
     * 获取名字（Lombok 的 @Getter 在枚举上可能不工作，手动添加）
     */
    public String getName() {
        return name;
    }

    public static SmsChannelEnum getByCode(String code) {
        return ArrayUtil.firstMatch(o -> o.getCode().equals(code), values());
    }

}

