package com.zanxiang.game.data.serve.pojo.enums;

import lombok.AllArgsConstructor;
import lombok.Getter;

import java.util.Objects;

/**
 * @author : ZhangXianyu
 * @time : 2024-03-11 11:36:57
 * @description : 任务策略类型枚举
 */
@Getter
@AllArgsConstructor
public enum TaskStrategyEnum {

    /**
     * 立即发送
     */
    SEND_NOW(1, "立即发送"),

    /**
     * 定时发送
     */
    SEND_ON_TIME(2, "定时发送"),

    /**
     * 每日循环发送
     */
    SEND_ON_EVERYDAY(3, "每日循环发送"),

    /**
     * 触发条件发送
     */
    APPLET(4, "触发条件发送");

    /**
     * 标识ID
     */
    private Integer id;

    /**
     * 类型名
     */
    private String name;

    /**
     * 获取任务类型名字
     *
     * @param deviceTypeId id
     * @return {@link String}
     */
    public static String getName(Integer deviceTypeId) {
        TaskStrategyEnum deviceType = TaskStrategyEnum.getDeviceType(deviceTypeId);
        return deviceType == null ? null : deviceType.getName();
    }

    /**
     * 获取客户端类型枚举
     *
     * @param deviceTypeId id
     * @return DeviceTypeEnum
     */
    public static TaskStrategyEnum getDeviceType(Integer deviceTypeId) {
        for (TaskStrategyEnum deviceTypeEnum : TaskStrategyEnum.values()) {
            if (Objects.equals(deviceTypeEnum.getId(), deviceTypeId)) {
                return deviceTypeEnum;
            }
        }
        return null;
    }

}
