import { useRouter } from 'vue-router';
import { useAuthStore } from '../stores/auth';

/**
 * Déconnexion centralisée. `auth.logout()` ferme la WebSocket ; la redirection vers /login
 * démonte l'AppShell, qui stoppe alors les abonnements temps réel (source unique). Corrige
 * l'incohérence où certaines vues ne stoppaient pas tous les flux au logout.
 */
export function useSession() {
  const auth = useAuthStore();
  const router = useRouter();

  async function logout(): Promise<void> {
    await auth.logout();
    await router.replace({ name: 'login' });
  }

  return { logout };
}
