/**
 * 角色相关类型定义
 */

import type { Role } from './auth'

/**
 * 角色状态
 * - 0: 禁用
 * - 1: 启用
 */
export type RoleStatus = 0 | 1

/**
 * 角色状态文本映射
 */
export const RoleStatusText: Record<RoleStatus, string> = {
  0: '已禁用',
  1: '已启用',
}

/**
 * 角色状态颜色映射（Ant Design Tag 颜色）
 */
export const RoleStatusColor: Record<RoleStatus, string> = {
  0: 'default',
  1: 'success',
}

/**
 * 角色列表查询参数
 */
export interface RoleListParams {
  /** 页码 */
  page?: number
  /** 每页数量 */
  page_size?: number
  /** 关键词（名称/代码） */
  keyword?: string
  /** 状态筛选 */
  status?: RoleStatus
}

/**
 * 创建角色请求
 */
export interface CreateRoleRequest {
  /** 角色名称 */
  name: string
  /** 角色代码 */
  code: string
  /** 角色描述 */
  description?: string
  /** 是否默认角色 */
  is_default?: boolean
}

/**
 * 更新角色请求
 */
export interface UpdateRoleRequest {
  /** 角色名称 */
  name?: string
  /** 角色描述 */
  description?: string
  /** 是否默认角色 */
  is_default?: boolean
}

/**
 * 更新角色状态请求
 */
export interface UpdateRoleStatusRequest {
  /** 状态 */
  status: RoleStatus
}

/**
 * 分配角色权限请求
 */
export interface AssignRolePermissionsRequest {
  /** 权限 ID 列表 */
  permission_ids: number[]
}

/**
 * 重导出 Role 类型
 */
export type { Role }
