import { ApiResponse, LoginRequest, LoginResponseData, UserProfile, TenantContextResponse } from "@/types/api"; import { apiClient, unwrap } from "./api"; export async function login(request: LoginRequest, tenantId: string): Promise { const response = await apiClient.post>( "/api/auth/login", request, { headers: { "X-Tenant-Id": tenantId } } ); const payload = response.data; if (!payload.success) { throw new Error(payload.message); } return payload.data; } export async function refreshToken(refreshToken: string) { const response = await apiClient.post>("/api/auth/refresh", { refreshToken }); const payload = response.data; if (!payload.success) throw new Error(payload.message); return payload.data; } export async function logout() { await unwrap(apiClient.post>("/api/auth/logout")); } export async function getCurrentUser(): Promise> { const response = await apiClient.get>("/api/users/me"); return response.data; } export async function getTenantContext(): Promise { const response = await apiClient.get>("/api/tenant/context"); if (!response.data.success) throw new Error(response.data.message); return response.data.data; }