'use client'; import { create } from 'zustand'; import { loadServerData, saveServerData } from '@/lib/server-data'; import { upsertDailySnapshot, upsertInsight, type XiaobaoRiskInsightCacheItem, } from '@/lib/xiaobao-risk-cache'; import type { XiaobaoRiskSnapshot } from '@/lib/xiaobao-risk-trend'; interface XiaobaoRiskState { snapshots: XiaobaoRiskSnapshot[]; insights: XiaobaoRiskInsightCacheItem[]; fetchRiskData: () => Promise; saveSnapshot: (item: XiaobaoRiskSnapshot) => Promise; saveInsight: (item: XiaobaoRiskInsightCacheItem) => Promise; } async function loadSnapshots(): Promise { try { const rows = await loadServerData('xiaobao-risk-snapshots'); return Array.isArray(rows) ? rows : []; } catch {} return []; } async function loadInsights(): Promise { try { const rows = await loadServerData('xiaobao-risk-insights'); return Array.isArray(rows) ? rows : []; } catch {} return []; } export const useXiaobaoRiskStore = create((set, get) => ({ snapshots: [], insights: [], fetchRiskData: async () => { const [snapshots, insights] = await Promise.all([loadSnapshots(), loadInsights()]); set({ snapshots, insights }); }, saveSnapshot: async (item) => { const snapshots = upsertDailySnapshot(get().snapshots, item); set({ snapshots }); await saveServerData('xiaobao-risk-snapshots', snapshots); }, saveInsight: async (item) => { const insights = upsertInsight(get().insights, item); set({ insights }); await saveServerData('xiaobao-risk-insights', insights); }, }));