import { defineStore } from 'pinia' import { ref, computed } from 'vue' export const useAuthStore = defineStore('auth', () => { const token = ref(localStorage.getItem('airgate_token') || '') const refreshToken = ref(localStorage.getItem('airgate_refresh') || '') const user = ref(JSON.parse(localStorage.getItem('airgate_user') || 'null')) const isLoggedIn = computed(() => !!token.value) const isAdmin = computed(() => user.value?.role !== 'iam_user') const isIamUser = computed(() => user.value?.role === 'iam_user') function setAuth(data) { token.value = data.access refreshToken.value = data.refresh || '' user.value = data.user localStorage.setItem('airgate_token', data.access) localStorage.setItem('airgate_refresh', data.refresh || '') localStorage.setItem('airgate_user', JSON.stringify(data.user)) } function logout() { token.value = '' refreshToken.value = '' user.value = null localStorage.removeItem('airgate_token') localStorage.removeItem('airgate_refresh') localStorage.removeItem('airgate_user') } return { token, refreshToken, user, isLoggedIn, isAdmin, isIamUser, setAuth, logout } })