import { defineStore } from "pinia"; export interface User { id: string; username: string; role: "admin" | "viewer"; session_id: string; } export const useSessionStore = defineStore("session", () => { const user = ref(null); const ready = ref(false); async function refresh() { try { user.value = await $fetch("/api/session"); return true; } catch { user.value = null; return false; } finally { ready.value = true; } } async function logout() { try { await $fetch("/api/logout", { method: "POST" }); } finally { user.value = null; await navigateTo("/login"); } } return { user, ready, refresh, logout }; });