export const CHINA_COUNTRY_STOCK_INDEX_KEY = 'market:stock-index:v1:CN'; export function buildCountryStockIndexSnapshotFromCloses(closes, currency = 'CNY', fetchedAt = new Date().toISOString()) { const finiteCloses = Array.isArray(closes) ? closes.filter((value) => Number.isFinite(value)) : []; if (finiteCloses.length < 2) return null; const weekly = finiteCloses.slice(-6); const latest = weekly.at(-1); const oldest = weekly[0]; if (!Number.isFinite(latest) || !Number.isFinite(oldest) || oldest === 0) return null; return { available: true, code: 'CN', symbol: '000001.SS', indexName: 'SSE Composite', price: +latest.toFixed(2), weekChangePercent: +(((latest - oldest) / oldest) * 100).toFixed(2), currency, fetchedAt, }; } export function buildCountryStockIndexSnapshot(chart, fetchedAt = new Date().toISOString()) { const result = chart?.chart?.result?.[0]; const closes = result?.indicators?.quote?.[0]?.close?.filter((value) => Number.isFinite(value)); return buildCountryStockIndexSnapshotFromCloses(closes, result?.meta?.currency || 'CNY', fetchedAt); }