import { defineStore } from 'pinia' import type { User } from '~/types/models' export const useAuthStore = defineStore('auth', () => { const user = ref(null) const isLoading = ref(false) const error = ref(null) const isAuthenticated = computed(() => !!user.value) const isAdmin = computed(() => user.value?.role === 'admin') const isModerator = computed(() => user.value?.role === 'admin' || user.value?.role === 'moderator', ) const setUser = (userData: User | null) => { user.value = userData } const clearUser = () => { user.value = null error.value = null } const setLoading = (loading: boolean) => { isLoading.value = loading } const setError = (err: string | null) => { error.value = err } return { user, isLoading, error, isAuthenticated, isAdmin, isModerator, setUser, clearUser, setLoading, setError, } })