// src/lib/api/auth.ts import { apiClient } from './client'; import type { AuthResponse, TrialRegistrationData, LoginData } from '@/types/auth'; import type { SubscriptionAlertData } from '@/types/subscription'; export const authApi = { // Register a new trial organization registerTrial: async (data: TrialRegistrationData): Promise => { const response = await apiClient.post('/auth/register', data); return response.data; }, // Login user login: async (data: LoginData): Promise => { const response = await apiClient.post('/auth/login', data); return response.data; }, // Get user profile getProfile: async (): Promise => { const response = await apiClient.get('/auth/profile'); return response.data; }, /** Owner-only meaningful data; staff always gets showWarning: false */ getSubscriptionAlert: async (): Promise<{ success: boolean; data: SubscriptionAlertData; }> => { const response = await apiClient.get('/auth/subscription-alert'); return response.data; }, // Select organization selectOrganization: async (organizationId: string): Promise => { const response = await apiClient.post('/auth/select-organization', { organizationId }); return response.data; }, // Create organization for current user createOrganization: async (data: { organizationName: string; organizationEmail: string; organizationType: 'CLINIC' | 'LAB'; planName?: string; }): Promise => { const response = await apiClient.post('/auth/organizations', data); return response.data; }, // Logout logout: async (): Promise => { await apiClient.post('/auth/logout'); }, // Refresh token refreshToken: async (refreshToken: string): Promise<{ accessToken: string }> => { const response = await apiClient.post('/auth/refresh', { refreshToken }); return response.data; }, };