export function useUserSwitching() { const toast = useToast(); const { fetch: refreshUserSession } = useUserSession(); const { session } = useUserSession(); const isUserSwitched = computed(() => Boolean(session.value?.switchedBy)); async function userSwitchTo(userId: string | number) { try { const result = await $fetch<{ success: boolean; message?: string }>("/api/switch-to", { method: "POST", body: { userId }, }); if (!result.success) { throw new Error(result.message || "Switch failed"); } await refreshUserSession(); return result; } catch (error) { const message = error instanceof Error ? error.message : "Switch failed"; toast.add({ title: "Échec du changement d'utilisateur", description: message, color: "error" }); throw error; } } async function userSwitchBack() { try { const result = await $fetch<{ success: boolean; message?: string }>("/api/switch-back", { method: "POST", }); if (!result.success) { throw new Error(result.message || "Échec du retour à l'utilisateur précédent"); } await refreshUserSession(); return result; } catch (error) { const message = error instanceof Error ? error.message : "Échec du retour à l'utilisateur précédent"; toast.add({ title: "Échec du changement d'utilisateur", description: message, color: "error" }); throw error; } } return { isUserSwitched, userSwitchTo, userSwitchBack }; }