import { defineStore } from 'pinia'; /** * Holds the logged-in customer's identity. Now backed by a real (if stubbed — * see LoginView.vue) login flow: `login()` sets the same `appToken` * localStorage key legacy's `isUserLoggedIn()` reads, so downstream login * gates keep working unchanged. */ export const useSessionStore = defineStore('session', { state: () => ({ customerId: localStorage.getItem('gold-bank:customerId') as string | null, mobile: localStorage.getItem('gold-bank:mobile') as string | null, }), actions: { setCustomerId(id: string) { this.customerId = id; localStorage.setItem('gold-bank:customerId', id); }, login(customerId: string, mobile: string) { this.customerId = customerId; this.mobile = mobile; localStorage.setItem('gold-bank:customerId', customerId); localStorage.setItem('gold-bank:mobile', mobile); // matches legacy's isUserLoggedIn() check (Mixins/checkAccess.ts) localStorage.setItem('appToken', customerId); }, logout() { this.customerId = null; this.mobile = null; localStorage.removeItem('gold-bank:customerId'); localStorage.removeItem('gold-bank:mobile'); localStorage.removeItem('appToken'); }, }, });