/**
 * 设备相关类型定义
 */

/**
 * 设备信息
 */
export interface Device {
  id: number
  user_id: number
  device_id: string
  device_name: string
  device_type: DeviceType
  device_os: string
  device_browser: string
  ip: string
  location: string
  status: DeviceStatus
  is_trusted: boolean
  trust_expires_at: string | null
  last_active_time: string
  created_at: string
  updated_at: string
}

/**
 * 设备类型
 */
export type DeviceType = 0 | 1 | 2 | 3

/**
 * 设备状态
 */
export type DeviceStatus = 0 | 1

/**
 * 设备列表查询参数
 */
export interface DeviceListParams {
  page?: number
  page_size?: number
}

/**
 * 设备状态更新请求
 */
export interface UpdateDeviceStatusRequest {
  status: DeviceStatus
}

/**
 * 设备类型文本映射
 */
export const DeviceTypeText: Record<DeviceType, string> = {
  0: '未知',
  1: 'Web',
  2: '移动端',
  3: '桌面端',
}

/**
 * 设备状态文本映射
 */
export const DeviceStatusText: Record<DeviceStatus, string> = {
  0: '离线',
  1: '活跃',
}

/**
 * 设备状态颜色映射
 */
export const DeviceStatusColor: Record<DeviceStatus, string> = {
  0: 'default',
  1: 'success',
}

/**
 * 管理员设备列表查询参数
 */
export interface AdminDeviceListParams {
  // 传统 offset 分页（向后兼容）
  page?: number
  page_size?: number
  // 游标分页（推荐，大数据量场景）
  cursor?: string
  size?: number
  user_id?: number
  status?: DeviceStatus
  is_trusted?: boolean
  keyword?: string
}

/**
 * 设备信任状态文本映射
 */
export const DeviceTrustText: Record<string, string> = {
  true: '已信任',
  false: '未信任',
}

/**
 * 设备信任状态颜色映射
 */
export const DeviceTrustColor: Record<string, string> = {
  true: 'success',
  false: 'default',
}
