package com.ltgk.common.utils.enums;


import com.ltgk.common.vo.EnumsVO;

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

/**
 * 枚举工具类
 *
 * @author Qi ChengBin
 * @date 2025/02/07
 */
public class EnumUtil {

    /**
     * 通用枚举类转换成对应list 方法，
     * -- 枚举类需要为 code 和 desc 的形式
     *
     * @param enumClass: 枚举类
     * @return java.util.List<com.ltgk.common.vo.EnumsVO>
     * @author Qi ChengBin
     * @date 2025/2/7
     */
    public static <E extends Enum<E> & CodeDescEnumInterface> List<EnumsVO> getEnumsVOList(Class<E> enumClass) {
        return Arrays.stream(enumClass.getEnumConstants()).map(item -> {
            EnumsVO enumsVO = new EnumsVO();
            enumsVO.setCode(item.getCode());
            enumsVO.setDesc(item.getDesc());
            return enumsVO;
        }).collect(Collectors.toList());
    }
}
