import { defineStore } from 'pinia' import { storage, USER_KEY, SESSION_KEY, USER_MODE_KEY, QUIT_CHECKIN_KEY } from '@/utils/storage' export const useUserStore = defineStore('user', { state: () => ({ user: storage.get(USER_KEY), sessionKey: storage.get(SESSION_KEY), isLoggedIn: !!storage.get(SESSION_KEY), mode: storage.get(USER_MODE_KEY) }), actions: { setUser(user, sessionKey) { this.user = user this.sessionKey = sessionKey this.isLoggedIn = true storage.set(USER_KEY, user) storage.set(SESSION_KEY, sessionKey) }, setMode(mode) { this.mode = mode storage.set(USER_MODE_KEY, mode) }, updateUser(fields) { this.user = { ...this.user, ...fields } storage.set(USER_KEY, this.user) }, logout() { this.user = null this.sessionKey = null this.isLoggedIn = false this.mode = null storage.remove(USER_KEY) storage.remove(SESSION_KEY) storage.remove(USER_MODE_KEY) storage.remove(QUIT_CHECKIN_KEY) } } })