// =============================================================================
// IT智能服务台 — Portal API 接口
// =============================================================================
// 说明：Portal 统一入口相关的 API 接口
// =============================================================================

import apiClient from './index'

// 角色信息接口
export interface Role {
  id: string
  name: string
  display_name: string
  description: string | null
  permissions: string[]
  is_default: boolean
  user_count: number | null
  created_at: string
  updated_at: string
}

// 用户信息接口
export interface UserInfo {
  employee_id: string
  name: string
  department: string | null
  avatar: string | null
  roles: Role[]
  current_role: string
}

// 角色切换响应接口
export interface SwitchRoleResponse {
  current_role: string
  redirect_url: string
}

/**
 * 获取当前用户角色信息
 * @returns 用户信息（包含角色列表）
 */
export async function getUserRoles(): Promise<UserInfo> {
  const response = await apiClient.get('/portal/roles')
  return response.data.data
}

/**
 * 切换当前角色
 * @param newRole 目标角色标识
 * @returns 切换结果（包含重定向URL）
 */
export async function switchRole(newRole: string): Promise<SwitchRoleResponse> {
  const response = await apiClient.post('/portal/switch-role', {
    new_role: newRole,
  })
  return response.data.data
}

/**
 * 获取角色对应的入口 URL
 * @param roleName 角色标识
 * @returns 入口 URL 信息
 */
export async function getRoleEntry(roleName: string): Promise<{ role: string; url: string; display_name: string }> {
  const response = await apiClient.get(`/portal/entry/${roleName}`)
  return response.data.data
}
