import { useState, useRuntimeConfig } from '#imports' export interface Profile { id: string firstName: string lastName: string email?: string | null isActive?: boolean hasPassword?: boolean roles?: string[] [key: string]: unknown } const buildUrl = (path: string): string => { const config = useRuntimeConfig() const base = (config.public.apiBaseUrl as string)?.replace(/\/$/, '') || '' return `${base}${path}` } export function useProfiles() { const profiles = useState('profiles:list', () => []) const loadingProfiles = useState('profiles:loading', () => false) const profilesLoaded = useState('profiles:loaded', () => false) const fetchProfiles = async (): Promise => { loadingProfiles.value = true try { profiles.value = await $fetch(buildUrl('/session/profiles'), { method: 'GET', credentials: 'include', }) profilesLoaded.value = true } catch (error) { console.error('Erreur lors du chargement des profils', error) profiles.value = [] profilesLoaded.value = false } finally { loadingProfiles.value = false } return profiles.value } return { profiles, loadingProfiles, profilesLoaded, fetchProfiles, } }