import request from '@/utils/http'

/**
 * 登录
 * @param params 登录参数
 * @returns 登录响应
 */
export function fetchLogin(params: Api.Auth.LoginParams) {
  return request.post<Api.Auth.LoginResponse>({
    url: '/api/admin/v1/auth/login',
    params,
    // 登录不应携带租户 Header（避免历史租户残留导致登录失败）
    skipTenantHeader: true
    // showSuccessMessage: true // 显示成功消息
    // showErrorMessage: false // 不显示错误消息
  })
}

/**
 * 获取用户信息
 * @returns 用户信息
 */
export function fetchGetUserInfo() {
  return request.get<Api.Auth.UserInfo>({
    url: '/api/admin/v1/auth/profile'
    // 自定义请求头
    // headers: {
    //   'X-Custom-Header': 'your-custom-value'
    // }
  })
}

/**
 * 获取用户菜单
 * @returns 菜单列表
 */
export function fetchGetMenu() {
  return request.get<Api.Auth.MenuListResponse>({
    url: '/api/admin/v1/auth/menu'
  })
}

/**
 * 获取用户权限
 * @param userId 用户ID
 * @returns 用户权限信息
 */
export function fetchGetUserPermissions(userId: string) {
  return request.get<Api.Auth.UserPermissionsResponse>({
    url: `/api/admin/v1/users/${userId}/permissions`
  })
}

/**
 * 通过重置链接令牌重置管理员密码
 */
export function fetchResetAdminPassword(data: Api.Auth.ResetAdminPasswordRequest) {
  return request.post<void>({
    url: '/api/admin/v1/auth/reset-password',
    data
  })
}
