package vip.xiaonuo.coldchain.core.alarm.bean;

import lombok.Getter;

/**
 * @author jackzhou
 * @version 1.0
 * @project jfcloud-coldchain
 * @description 告警通知渠道的枚举类型，定义了用户可以选择的通知方式
 * @date 2024/11/26 11:30:00
 */
@Getter
public enum NotificationChannel {

    /**
     * 短信通知
     */
    SMS("短信"),

    /**
     * 邮件通知
     */
    EMAIL("电子邮件"),

    /**
     * 推送通知（例如APP通知）
     */
    PUSH_NOTIFICATION("推送通知"),

    /**
     * 微信通知
     */
    WECHAT("微信公众号"),
    /**
     * 微信通知
     */
    WECHAT_MINI("微信小程序"),

    /**
     * 钉钉通知
     */
    DINGTALK("钉钉"),

    /**
     * 系统内部通知
     */
    SYSTEM("系统通知");

    /**
     * -- GETTER --
     * 获取通知渠道的中文名称
     *
     * @return 通知渠道的中文名称
     */
    // 通道名称
    private final String channelName;

    /**
     * 构造函数
     *
     * @param channelName 通道的中文名称
     */
    NotificationChannel(String channelName) {
        this.channelName = channelName;
    }

    /**
     * 根据通道名称返回对应的枚举类型
     *
     * @param channelName 通道名称
     * @return 对应的枚举类型
     */
    public static NotificationChannel fromString(String channelName) {
        for (NotificationChannel channel : NotificationChannel.values()) {
            if (channel.channelName.equals(channelName)) {
                return channel;
            }
        }
        // 默认返回系统通知
        return SYSTEM;
    }

}
