/**
 * 认证相关类型定义
 */

// 用户角色类型
export enum UserRole {
  SUPER_ADMIN = 'R_SUPER', // 超级管理员
  ADMIN = 'R_ADMIN', // 管理员
  AGENT = 'R_AGENT', // 代理商
  ENTERPRISE = 'R_ENTERPRISE' // 企业客户
}

// 登录请求参数
export interface LoginParams {
  username: string
  password: string
  device?: string
}

// 登录响应数据
export interface LoginData {
  access_token: string
  refresh_token: string
  expires_in: number
  permissions: string[] | null
  menus: any[] | null
  buttons: string[] | null
  user: UserInfo
}

// 用户信息
export interface UserInfo {
  id: number // 用户ID
  username: string // 用户名
  phone: string // 手机号
  user_type: number // 用户类型 (1:超级管理员, 2:平台用户, 3:代理账号, 4:企业账号)
  user_type_name: string // 用户类型名称
  enterprise_id?: number // 企业ID（可选）
  enterprise_name?: string // 企业名称（可选）
  shop_id?: number // 店铺ID（可选）
  shop_name?: string // 店铺名称（可选）
  roles?: string[]
  permissions?: string[]
}

// 获取用户信息响应数据 (GET /api/admin/me)
export interface UserInfoResponse {
  user: UserInfo
  permissions: string[]
}

// 刷新 Token 参数
export interface RefreshTokenParams {
  refreshToken: string
}

// 刷新 Token 响应数据
export interface RefreshTokenData {
  access_token: string
  refresh_token: string
  expires_in: number
}

// 修改密码参数
export interface ChangePasswordParams {
  oldPassword: string
  newPassword: string
  confirmPassword: string
}
