import AsyncStorage from '@/utils/kvStore'; export type AiCoachChatMessage = { id: string; role: 'user' | 'assistant'; content: string; attachments?: any[]; choices?: any[]; interactionType?: string; pendingData?: any; context?: any; }; export type AiCoachSessionCache = { conversationId?: string; messages: AiCoachChatMessage[]; updatedAt: number; }; const STORAGE_KEY = '@ai_coach_session_v1'; export async function loadAiCoachSessionCache(): Promise { try { const s = await AsyncStorage.getItem(STORAGE_KEY); if (!s) return null; const obj = JSON.parse(s) as AiCoachSessionCache; if (!obj || !Array.isArray(obj.messages)) return null; return obj; } catch { return null; } } export async function saveAiCoachSessionCache(cache: AiCoachSessionCache): Promise { try { const payload: AiCoachSessionCache = { conversationId: cache.conversationId, messages: cache.messages?.slice?.(-200) ?? [], // 限制最多缓存 200 条,避免无限增长 updatedAt: Date.now(), }; await AsyncStorage.setItem(STORAGE_KEY, JSON.stringify(payload)); } catch { } } export async function clearAiCoachSessionCache(): Promise { try { await AsyncStorage.removeItem(STORAGE_KEY); } catch { } }