import { create } from 'zustand'; import { persist } from 'zustand/middleware'; export interface User { id: string; email: string; fullName: string; tenantId: string; tenantName: string; role: 'TenantOwner' | 'TenantAdmin' | 'TenantMember' | 'TenantGuest'; isEmailVerified: boolean; } interface AuthState { user: User | null; isAuthenticated: boolean; isLoading: boolean; setUser: (user: User) => void; clearUser: () => void; setLoading: (loading: boolean) => void; } export const useAuthStore = create()( persist( (set) => ({ user: null, isAuthenticated: false, isLoading: true, setUser: (user) => set({ user, isAuthenticated: true, isLoading: false }), clearUser: () => set({ user: null, isAuthenticated: false, isLoading: false }), setLoading: (loading) => set({ isLoading: loading }), }), { name: 'colaflow-auth', partialize: (state) => ({ user: state.user, isAuthenticated: state.isAuthenticated, }), } ) );