/* ─────────────────────────────────────────────────────────────
   Market risk alerts (Scanner page). Static fallback mirrors the
   original hardcoded list; replaced at startup by bootstrapRisks()
   when the panel is reachable. Mutated in place so importers stay live.
   ───────────────────────────────────────────────────────────── */

export type RiskLevel = 'high' | 'medium' | 'low';

export interface RiskAlert {
  title: string;
  desc: string;
  level: RiskLevel;
}

export const riskAlerts: RiskAlert[] = [
  {
    title: 'فشار صادرات چین',
    desc: 'افزایش ۱۸٪ صادرات ارزان چین فشار قیمتی روی بازار آسیا',
    level: 'high',
  },
  {
    title: 'محدودیت انرژی داخلی',
    desc: 'کاهش تولید زمستانی به دلیل محدودیت گاز صنعتی',
    level: 'medium',
  },
  {
    title: 'فرصت بازار عراق',
    desc: 'کاهش واردات ترکیه، فرصت افزایش سهم بازار برای ایران',
    level: 'low',
  },
];

/* panel risk levels (critical/high/medium/low/opportunity) → Scanner's 3 levels */
function mapLevel(level: unknown): RiskLevel {
  switch (level) {
    case 'critical':
    case 'high':
      return 'high';
    case 'medium':
      return 'medium';
    case 'low':
    case 'opportunity':
    default:
      return 'low';
  }
}

const PANEL_API =
  (import.meta as ImportMeta & { env?: Record<string, string> }).env?.VITE_PANEL_API ||
  '';

export async function bootstrapRisks(): Promise<void> {
  try {
    const res = await fetch(`${PANEL_API}/api/risks?limit=100`);
    if (!res.ok) return;
    const fetched = await res.json();
    if (!Array.isArray(fetched) || fetched.length === 0) return;
    riskAlerts.length = 0;
    riskAlerts.push(
      ...fetched.map((r: Record<string, unknown>) => ({
        title: String(r.name ?? ''),
        desc: String(r.quote ?? ''),
        level: mapLevel(r.level),
      })),
    );
  } catch {
    /* panel offline → keep static fallback */
  }
}
