import { defineStore } from 'pinia' import { ref, computed } from 'vue' export const useAuthStore = defineStore('auth', () => { const token = ref(localStorage.getItem('auth_token')) const role = ref(localStorage.getItem('user_role')) const userName = ref(localStorage.getItem('user_name')) const isAuthenticated = computed(() => !!token.value) const isAdmin = computed(() => role.value?.toUpperCase() === 'ADMIN') const isDriver = computed(() => role.value?.toUpperCase() === 'DRIVER') const isPromoter = computed(() => role.value?.toUpperCase() === 'PROMOTER') const isPassenger = computed(() => !role.value || role.value?.toUpperCase() === 'PASSENGER') function login(newToken: string, newRole: string, newName: string) { token.value = newToken role.value = newRole userName.value = newName localStorage.setItem('auth_token', newToken) localStorage.setItem('user_role', newRole) localStorage.setItem('user_name', newName) } function logout() { token.value = null role.value = null userName.value = null localStorage.removeItem('auth_token') localStorage.removeItem('user_role') localStorage.removeItem('user_name') window.location.href = '/' } return { token, role, userName, isAuthenticated, isAdmin, isDriver, isPromoter, isPassenger, login, logout } })