/**
 * 系统状态值常量定义
 * 
 * 统一前后端状态值，避免不一致导致的功能问题
 * 
 * @author 张翔
 * @date 2026-03-24
 */

/**
 * 用户状态枚举
 */
export enum UserStatus {
  /** 正常 */
  ACTIVE = 1,
  /** 禁用 */
  INACTIVE = 0,
  /** 锁定 */
  LOCKED = 2
}

/**
 * 角色状态枚举
 */
export enum RoleStatus {
  /** 正常 */
  ACTIVE = 1,
  /** 禁用 */
  INACTIVE = 0
}

/**
 * 菜单状态枚举
 */
export enum MenuStatus {
  /** 正常 */
  ACTIVE = 1,
  /** 禁用 */
  INACTIVE = 0
}

/**
 * 通知状态枚举
 */
export enum NoticeStatus {
  /** 正常 */
  ACTIVE = '1',
  /** 禁用 */
  INACTIVE = '0'
}

/**
 * 状态值映射工具类
 */
export class StatusHelper {
  /**
   * 判断状态是否为正常
   */
  static isActive(status: number | string): boolean {
    return status === 1 || status === '1' || status === 'ACTIVE'
  }

  /**
   * 判断状态是否为禁用
   */
  static isInactive(status: number | string): boolean {
    return status === 0 || status === '0' || status === 'INACTIVE'
  }

  /**
   * 获取状态显示文本
   */
  static getStatusText(status: number | string): string {
    if (this.isActive(status)) return '正常'
    if (this.isInactive(status)) return '禁用'
    return '未知'
  }

  /**
   * 获取状态标签类型
   */
  static getStatusType(status: number | string): 'success' | 'danger' | 'warning' {
    if (this.isActive(status)) return 'success'
    if (this.isInactive(status)) return 'danger'
    return 'warning'
  }
}