ai / services /storageService.ts
Lianjx's picture
Upload 75 files
8fb4cca verified
import { UserAccount, LeadData, AdminConfig } from '../types';
const KEYS = {
USERS: 'rl_users',
LEADS: 'rl_leads',
CONFIG: 'rl_config',
SESSION: 'rl_session' // Stores the ID of the currently logged-in user
};
export const storageService = {
// --- Users ---
getUsers: (): UserAccount[] => {
try {
const data = localStorage.getItem(KEYS.USERS);
return data ? JSON.parse(data) : [];
} catch (e) { return []; }
},
saveUsers: (users: UserAccount[]) => {
localStorage.setItem(KEYS.USERS, JSON.stringify(users));
},
// --- Leads ---
getLeads: (): LeadData[] => {
try {
const data = localStorage.getItem(KEYS.LEADS);
return data ? JSON.parse(data) : [];
} catch (e) { return []; }
},
saveLeads: (leads: LeadData[]) => {
localStorage.setItem(KEYS.LEADS, JSON.stringify(leads));
},
// --- Admin Config ---
getAdminConfig: (): AdminConfig | null => {
try {
const data = localStorage.getItem(KEYS.CONFIG);
return data ? JSON.parse(data) : null;
} catch (e) { return null; }
},
saveAdminConfig: (config: AdminConfig) => {
localStorage.setItem(KEYS.CONFIG, JSON.stringify(config));
},
// --- Session (Auto Login) ---
getSessionUserId: (): string | null => {
return localStorage.getItem(KEYS.SESSION);
},
setSessionUserId: (id: string) => {
localStorage.setItem(KEYS.SESSION, id);
},
clearSession: () => {
localStorage.removeItem(KEYS.SESSION);
}
};