/**
 * 残疾等级枚举
 * 对应数据库 sys_dict 表中的 disability_level 字典类型
 *
 * @remarks
 * 根据 Allin 系统数据库定义，包含4个固定残疾等级（1-4级）
 */
export enum DisabilityLevel {
  /** 一级残疾 */
  ONE = 1,

  /** 二级残疾 */
  TWO = 2,

  /** 三级残疾 */
  THREE = 3,

  /** 四级残疾 */
  FOUR = 4
}

/**
 * 残疾等级显示名称映射
 */
export const DisabilityLevelLabels: Record<DisabilityLevel, string> = {
  [DisabilityLevel.ONE]: '一级',
  [DisabilityLevel.TWO]: '二级',
  [DisabilityLevel.THREE]: '三级',
  [DisabilityLevel.FOUR]: '四级'
};

/**
 * 获取残疾等级显示名称
 * @param level 残疾等级枚举值
 * @returns 对应的中文显示名称
 */
export function getDisabilityLevelLabel(level: DisabilityLevel): string {
  return DisabilityLevelLabels[level];
}

/**
 * 所有有效的残疾等级值数组
 * 注意：对于数字枚举，Object.values() 会返回键和值，需要过滤出数字值
 */
export const DISABILITY_LEVELS = Object.values(DisabilityLevel)
  .filter(value => typeof value === 'number') as DisabilityLevel[];