import { apiFetch } from './client' import type { AuthResponse } from '../types' export async function login(email: string, password: string): Promise { const res = await apiFetch('/api/auth/login', { method: 'POST', body: JSON.stringify({ email, password }), }) if (!res.ok) { const err = await res.json() throw new Error(err.detail ?? 'Login failed') } return res.json() } export async function signup( full_name: string, email: string, password: string, role: string, class_code?: string ): Promise { const res = await apiFetch('/api/auth/signup', { method: 'POST', body: JSON.stringify({ full_name, email, password, role, class_code }), }) if (!res.ok) { const err = await res.json() throw new Error(err.detail ?? 'Signup failed') } return res.json() } export async function logout(): Promise { await apiFetch('/api/auth/logout', { method: 'POST' }) } export async function refreshToken(): Promise<{ access_token: string }> { const res = await fetch('/api/auth/refresh', { method: 'POST', credentials: 'include', }) if (!res.ok) throw new Error('Refresh failed') return res.json() }