/**
 * Récupère l'access token depuis les cookies côté client
 * Utilise document.cookie pour lire le cookie httpOnly access_token
 */
export function getClientAccessToken(): string | null {
  if (typeof document === 'undefined') return null;
  
  const cookies = document.cookie.split(';');
  for (const cookie of cookies) {
    const [name, value] = cookie.trim().split('=');
    if (name === 'access_token') {
      return decodeURIComponent(value);
    }
  }
  return null;
}

/**
 * Effectue un appel API avec le token d'accès en header Authorization
 */
export async function apiWithAuth(endpoint: string, options: RequestInit = {}): Promise<Response> {
  const token = getClientAccessToken();
  if (!token) {
    throw new Error('Token d\'accès manquant');
  }
  
  const headers = new Headers(options.headers);
  headers.set('Authorization', `Bearer ${token}`);
  headers.set('Content-Type', 'application/json');
  
  return fetch(endpoint, {
    ...options,
    headers,
  });
}