import { EnumKey } from '@/common/constants/EnumKey';
import { AllEnums } from '@/services/go/commonService/interface';
import { localStorageUtil } from '@/utils/storage';



/**
 * 是否有所有枚举数据
 * @returns 
 */
export function isAllEnum(): boolean {
    return localStorageUtil.getItem('allEnums') ? true : false;
}

/**
 * 获取所有枚举数据
 * @returns 
 */
export function getAllEnum(): AllEnums[] {
    return isAllEnum() ? localStorageUtil.getItem('allEnums') : []
}

/**
 * 缓存所有枚举数据
 * @param value 
 */
export function setAllEnum(value: AllEnums[]) {
    localStorageUtil.setItem('allEnums', value);
}


/**
 * 获取具体某个枚举列表
 * @param enumdiccode: string; //所属枚举代码
 */
export function getItemEnumList(enumdiccode: keyof EnumKey): AllEnums[] {
    return getAllEnum().filter(e => (e.enumdiccode === enumdiccode) && e.enumitemstatus === 1)
}

/**
 * 获取某个枚举列表中具体某个id对应的枚举名字
 * @param enumdiccode  所属枚举代码
 * @param enumdicid 所属枚举ID
 * @returns 
 */
export function getItemEnumName(enumdiccode: keyof EnumKey, enumdicid: number): string {
    const temp = getItemEnumList(enumdiccode).find(e => e.enumitemname === enumdicid)
    return temp ? temp.enumdicname : '--'
}