import { create } from 'zustand'; import { devtools, persist } from 'zustand/middleware'; /** * authStore — JWT session + user profile */ interface User { id: string; name: string; email: string; role: 'SALES_BROKER' | 'SALES_DIRECTOR' | 'ADMIN' | 'SUPERADMIN' | string; avatarUrl?: string; } interface AuthStore { user: User | null; token: string | null; isAuthenticated: boolean; // Actions setSession: (user: User, token: string) => void; clearSession: () => void; } export const useAuthStore = create()( devtools( persist( (set) => ({ user: null, token: null, isAuthenticated: false, setSession: (user, token) => set({ user, token, isAuthenticated: true }, false, 'auth/setSession'), clearSession: () => set({ user: null, token: null, isAuthenticated: false }, false, 'auth/clearSession'), }), { name: 'velocity-auth', partialize: (state) => ({ token: state.token, user: state.user, isAuthenticated: Boolean(state.token && state.user), }), } ), { name: 'AuthStore' } ) );