// Trading Terminal demo data for the read-only presentation account.
//
// This mirrors src/lib/trading/demoData.ts (the frontend's own, already-built
// "realistic trading demo" generator, which exists but is never invoked
// automatically — the project's "no seeded data" rule forbids that for real
// accounts). The backend cannot import frontend modules (separate TS
// projects, no shared path aliases), so the three accounts are reproduced
// here verbatim rather than duplicating the generation logic — this is data,
// not a second implementation of it. Keep both files in sync if either one
// changes; this file is only ever read by seed-demo-account.ts, on request,
// for one explicitly named account.

export interface DemoTradeInput {
  openDate: string;
  closeDate?: string;
  asset: string;
  dir: 'LONG' | 'SHORT';
  tradeType: 'Scalp' | 'Daytrade' | 'Swing';
  entry: number;
  exit?: number;
  lev: number;
  capital: number;
  setup: string;
  emotion: string;
  notes: string;
  sl?: number;
  tp?: number;
}

export interface DemoTrade extends Omit<DemoTradeInput, 'closeDate' | 'exit' | 'sl' | 'tp'> {
  id: string;
  closeDate: string | null;
  result: 'OPEN' | 'WIN' | 'LOSS';
  exit: number | null;
  sl: number | null;
  tp: number | null;
  qty: number;
  pnl: number | null;
  adds: never[];
  partials: never[];
}

export interface DemoTradingAccount {
  id: string;
  name: string;
  exchange: string;
  desc: string;
  color: string;
  trades: DemoTrade[];
  transactions: Array<{
    id: string;
    type: 'deposit' | 'withdrawal';
    amount: number;
    date: string;
    currency: string;
    who: string;
    note: string;
  }>;
}

function createDemoTrade(id: string, input: DemoTradeInput): DemoTrade {
  const qty = Number(((input.capital * input.lev) / input.entry).toFixed(6));
  const closed = Boolean(input.closeDate && input.exit);
  const direction = input.dir === 'SHORT' ? -1 : 1;
  const grossPnl = closed ? ((input.exit || 0) - input.entry) * qty * direction : 0;
  const estimatedCosts = closed ? (input.entry + (input.exit || 0)) * qty * 0.0006 : 0;
  const rawNetPnl = grossPnl - estimatedCosts;
  const managedPnl = rawNetPnl >= 0
    ? Math.min(rawNetPnl, input.capital * 0.4)
    : Math.max(Math.min(rawNetPnl, -input.capital * 0.18), -input.capital * 0.45);
  const pnl = closed ? Number(managedPnl.toFixed(2)) : null;

  return {
    id,
    openDate: input.openDate,
    closeDate: input.closeDate || null,
    asset: input.asset,
    dir: input.dir,
    tradeType: input.tradeType,
    result: closed ? (pnl! >= 0 ? 'WIN' : 'LOSS') : 'OPEN',
    entry: input.entry,
    exit: input.exit ?? null,
    sl: input.sl ?? null,
    tp: input.tp ?? null,
    lev: input.lev,
    capital: input.capital,
    qty,
    pnl,
    setup: input.setup,
    emotion: input.emotion,
    notes: input.notes,
    adds: [],
    partials: [],
  };
}

export function createDemoTradingAccounts(): DemoTradingAccount[] {
  const macroTrades: DemoTrade[] = [
    createDemoTrade('macro-01', { openDate: '2023-01-12', closeDate: '2023-03-15', asset: 'BTCUSDT', dir: 'LONG', tradeType: 'Swing', entry: 17400, exit: 24500, lev: 1.5, capital: 5000, setup: 'Weekly Reclaim', emotion: 'Geduldig', notes: 'Einstieg nach Rückeroberung der 200-Tage-Linie; Risiko unter dem Januar-Tief.' }),
    createDemoTrade('macro-02', { openDate: '2023-03-12', closeDate: '2023-04-16', asset: 'ETHUSDT', dir: 'LONG', tradeType: 'Swing', entry: 1480, exit: 1900, lev: 1.5, capital: 4000, setup: 'Macro Pullback', emotion: 'Ruhig', notes: 'Gestaffelter Einstieg nach Liquiditätsereignis im März.' }),
    createDemoTrade('macro-03', { openDate: '2023-06-23', closeDate: '2023-07-07', asset: 'BTCUSDT', dir: 'LONG', tradeType: 'Swing', entry: 30700, exit: 30000, lev: 2, capital: 7000, setup: 'Range Breakout', emotion: 'Fokussiert', notes: 'Später Einstieg; Momentum verlor an Stärke und der Stop wurde ausgelöst.' }),
    createDemoTrade('macro-04', { openDate: '2023-08-18', closeDate: '2023-09-11', asset: 'BTCUSDT', dir: 'LONG', tradeType: 'Swing', entry: 26100, exit: 25200, lev: 2, capital: 6000, setup: 'Support Reclaim', emotion: 'Ungeduldig', notes: 'Reclaim scheiterte; Verlust regelkonform begrenzt.' }),
    createDemoTrade('macro-05', { openDate: '2023-10-20', closeDate: '2023-12-24', asset: 'SOLUSDT', dir: 'LONG', tradeType: 'Swing', entry: 28.5, exit: 112, lev: 1, capital: 1000, setup: 'Cycle Rotation', emotion: 'Geduldig', notes: 'Kleine Satellitenposition in der frühen Altcoin-Rotation.' }),
    createDemoTrade('macro-06', { openDate: '2024-01-25', closeDate: '2024-03-12', asset: 'BTCUSDT', dir: 'LONG', tradeType: 'Swing', entry: 39800, exit: 70200, lev: 1.5, capital: 6000, setup: 'ETF Trend', emotion: 'Fokussiert', notes: 'Trendfolge nach dem ETF-bedingten Januar-Rücksetzer.' }),
    createDemoTrade('macro-07', { openDate: '2024-05-27', closeDate: '2024-06-11', asset: 'ETHUSDT', dir: 'LONG', tradeType: 'Swing', entry: 3700, exit: 3500, lev: 1.5, capital: 6000, setup: 'Event Momentum', emotion: 'Zuversichtlich', notes: 'Einstieg nach dem ersten Impuls war zu spät; Risiko blieb begrenzt.' }),
    createDemoTrade('macro-08', { openDate: '2024-06-11', closeDate: '2024-07-05', asset: 'BTCUSDT', dir: 'SHORT', tradeType: 'Swing', entry: 67200, exit: 56800, lev: 1.5, capital: 5000, setup: 'Distribution Breakdown', emotion: 'Ruhig', notes: 'Absicherung nach Bruch der Range-Unterkante.' }),
    createDemoTrade('macro-09', { openDate: '2024-09-12', closeDate: '2024-11-11', asset: 'BTCUSDT', dir: 'LONG', tradeType: 'Swing', entry: 58000, exit: 82200, lev: 1.5, capital: 6000, setup: 'Q4 Trend Expansion', emotion: 'Geduldig', notes: 'Positionsaufbau vor dem Q4-Momentum.' }),
    createDemoTrade('macro-10', { openDate: '2024-12-20', closeDate: '2025-02-02', asset: 'ETHUSDT', dir: 'LONG', tradeType: 'Swing', entry: 3300, exit: 2900, lev: 1.5, capital: 6000, setup: 'Relative Strength', emotion: 'Zuversichtlich', notes: 'ETH blieb relativ schwach; Stop nach Verlust der Wochenstruktur.' }),
    createDemoTrade('macro-11', { openDate: '2025-04-07', closeDate: '2025-05-22', asset: 'BTCUSDT', dir: 'LONG', tradeType: 'Swing', entry: 75000, exit: 111000, lev: 1.5, capital: 5000, setup: 'Weekly Reversal', emotion: 'Fokussiert', notes: 'Einstieg nach Kapitulationsdocht und Wochen-Reversal.' }),
    createDemoTrade('macro-12', { openDate: '2025-04-07', closeDate: '2025-05-23', asset: 'SOLUSDT', dir: 'LONG', tradeType: 'Swing', entry: 105, exit: 176, lev: 1.5, capital: 2000, setup: 'High Beta Recovery', emotion: 'Neutral', notes: 'Kleine High-Beta-Beimischung mit engem Portfoliorisiko.' }),
    createDemoTrade('macro-13', { openDate: '2025-06-24', closeDate: '2025-07-14', asset: 'BTCUSDT', dir: 'LONG', tradeType: 'Swing', entry: 105000, exit: 119000, lev: 1.5, capital: 6000, setup: 'ATH Continuation', emotion: 'Ruhig', notes: 'Fortsetzungstrade nach Konsolidierung unter dem Allzeithoch.' }),
    createDemoTrade('macro-14', { openDate: '2025-08-20', closeDate: '2025-09-02', asset: 'BTCUSDT', dir: 'LONG', tradeType: 'Swing', entry: 114000, exit: 108000, lev: 1.5, capital: 7000, setup: 'Breakout Retest', emotion: 'Ungeduldig', notes: 'Fehlausbruch; Positionsgröße vorab reduziert.' }),
    createDemoTrade('macro-15', { openDate: '2025-10-10', closeDate: '2025-11-21', asset: 'BTCUSDT', dir: 'SHORT', tradeType: 'Swing', entry: 113000, exit: 84000, lev: 1.5, capital: 5000, setup: 'Cycle De-Risking', emotion: 'Fokussiert', notes: 'Taktischer Hedge nach Bruch der mittelfristigen Struktur.' }),
    createDemoTrade('macro-16', { openDate: '2026-06-25', asset: 'BTCUSDT', dir: 'LONG', tradeType: 'Swing', entry: 58400, lev: 1.5, capital: 5000, setup: 'Weekly Base', emotion: 'Ruhig', notes: 'Aktive Kernposition mit klar definiertem Wochenrisiko.', sl: 54800, tp: 68200 }),
  ];

  const systematicTrades: DemoTrade[] = [
    createDemoTrade('systematic-01', { openDate: '2024-02-07', closeDate: '2024-03-04', asset: 'BTCUSDT', dir: 'LONG', tradeType: 'Swing', entry: 43000, exit: 68000, lev: 2, capital: 2500, setup: '20D Momentum', emotion: 'Systematisch', notes: 'Signal nach Volatilitätskompression.' }),
    createDemoTrade('systematic-02', { openDate: '2024-03-15', closeDate: '2024-03-20', asset: 'BTCUSDT', dir: 'SHORT', tradeType: 'Daytrade', entry: 68000, exit: 62000, lev: 2.5, capital: 2000, setup: 'Mean Reversion', emotion: 'Systematisch', notes: 'Kontratrend nur nach Überdehnung und Volumensignal.' }),
    createDemoTrade('systematic-03', { openDate: '2024-04-15', closeDate: '2024-04-28', asset: 'ETHUSDT', dir: 'LONG', tradeType: 'Swing', entry: 3100, exit: 2950, lev: 2, capital: 1800, setup: 'Volatility Break', emotion: 'Systematisch', notes: 'Regelbasiertes Signal scheiterte unter dem Trendfilter.' }),
    createDemoTrade('systematic-04', { openDate: '2024-05-15', closeDate: '2024-05-21', asset: 'SOLUSDT', dir: 'LONG', tradeType: 'Daytrade', entry: 145, exit: 180, lev: 2, capital: 1500, setup: 'Relative Strength', emotion: 'Systematisch', notes: 'SOL relative Stärke gegenüber BTC.' }),
    createDemoTrade('systematic-05', { openDate: '2024-06-20', closeDate: '2024-07-02', asset: 'BTCUSDT', dir: 'LONG', tradeType: 'Swing', entry: 65000, exit: 62000, lev: 2, capital: 2500, setup: 'Trend Re-Entry', emotion: 'Systematisch', notes: 'Signal invalidiert; Ausstieg ohne Diskretion.' }),
    createDemoTrade('systematic-06', { openDate: '2024-08-12', closeDate: '2024-08-16', asset: 'BTCUSDT', dir: 'LONG', tradeType: 'Swing', entry: 61000, exit: 58000, lev: 2, capital: 2500, setup: 'Shock Recovery', emotion: 'Systematisch', notes: 'Erster Rebound-Versuch scheiterte; zweites Signal wurde abgewartet.' }),
    createDemoTrade('systematic-07', { openDate: '2024-09-16', closeDate: '2024-10-07', asset: 'BTCUSDT', dir: 'LONG', tradeType: 'Swing', entry: 58000, exit: 63000, lev: 2, capital: 2500, setup: 'Trend Filter', emotion: 'Systematisch', notes: 'Long nur oberhalb des langfristigen Trendfilters.' }),
    createDemoTrade('systematic-08', { openDate: '2024-11-06', closeDate: '2024-11-22', asset: 'BTCUSDT', dir: 'LONG', tradeType: 'Swing', entry: 69000, exit: 99000, lev: 2, capital: 2500, setup: 'Momentum Expansion', emotion: 'Systematisch', notes: 'Signalstärke erlaubte Halten bis zum Trailing Stop.' }),
    createDemoTrade('systematic-09', { openDate: '2024-12-06', closeDate: '2024-12-20', asset: 'ETHUSDT', dir: 'SHORT', tradeType: 'Swing', entry: 4000, exit: 3300, lev: 2, capital: 2000, setup: 'Relative Weakness', emotion: 'Systematisch', notes: 'ETH-Schwäche bei abnehmendem Momentum.' }),
    createDemoTrade('systematic-10', { openDate: '2025-01-20', closeDate: '2025-01-27', asset: 'BTCUSDT', dir: 'LONG', tradeType: 'Daytrade', entry: 108000, exit: 100000, lev: 2, capital: 2500, setup: 'Event Breakout', emotion: 'Systematisch', notes: 'Breakout am Hoch scheiterte; Zeit-Stop beendete den Trade.' }),
    createDemoTrade('systematic-11', { openDate: '2025-01-20', closeDate: '2025-02-03', asset: 'SOLUSDT', dir: 'SHORT', tradeType: 'Swing', entry: 250, exit: 200, lev: 2, capital: 1500, setup: 'Exhaustion', emotion: 'Systematisch', notes: 'Reversal nach parabolischer Extension.' }),
    createDemoTrade('systematic-12', { openDate: '2025-02-03', closeDate: '2025-02-10', asset: 'BTCUSDT', dir: 'LONG', tradeType: 'Daytrade', entry: 97000, exit: 96000, lev: 2, capital: 2200, setup: 'Range Break', emotion: 'Systematisch', notes: 'Fehlsignal mit kleinem Verlust.' }),
    createDemoTrade('systematic-13', { openDate: '2025-04-08', closeDate: '2025-05-08', asset: 'BTCUSDT', dir: 'LONG', tradeType: 'Swing', entry: 76000, exit: 103000, lev: 2, capital: 2500, setup: '30D Breakout', emotion: 'Systematisch', notes: 'Trendwechsel nach April-Low.' }),
    createDemoTrade('systematic-14', { openDate: '2025-05-08', closeDate: '2025-05-23', asset: 'ETHUSDT', dir: 'LONG', tradeType: 'Swing', entry: 1800, exit: 2500, lev: 2, capital: 1800, setup: 'Cross-Asset Momentum', emotion: 'Systematisch', notes: 'ETH folgte dem BTC-Breakout verzögert.' }),
    createDemoTrade('systematic-15', { openDate: '2025-06-06', closeDate: '2025-06-10', asset: 'BTCUSDT', dir: 'SHORT', tradeType: 'Daytrade', entry: 104000, exit: 108000, lev: 2, capital: 2200, setup: 'Failed Breakout', emotion: 'Systematisch', notes: 'Hedge wurde durch erneutes Momentum ausgestoppt.' }),
    createDemoTrade('systematic-16', { openDate: '2025-07-16', closeDate: '2025-08-24', asset: 'ETHUSDT', dir: 'LONG', tradeType: 'Swing', entry: 3350, exit: 4940, lev: 1.5, capital: 2000, setup: 'Weekly Momentum', emotion: 'Systematisch', notes: 'Trendfolge bis in den Hochbereich.' }),
    createDemoTrade('systematic-17', { openDate: '2025-10-07', closeDate: '2025-10-12', asset: 'BTCUSDT', dir: 'LONG', tradeType: 'Daytrade', entry: 124000, exit: 112000, lev: 2, capital: 2200, setup: 'ATH Breakout', emotion: 'Systematisch', notes: 'Breakout scheiterte; harter Zeit- und Preis-Stop.' }),
    createDemoTrade('systematic-18', { openDate: '2026-06-22', asset: 'ETHUSDT', dir: 'SHORT', tradeType: 'Swing', entry: 1660, lev: 2.5, capital: 2000, setup: 'Relative Weakness', emotion: 'Systematisch', notes: 'Aktiver regelbasierter Hedge gegen ETH-Schwäche.', sl: 1785, tp: 1420 }),
  ];

  const tacticalTrades: DemoTrade[] = [
    createDemoTrade('tactical-01', { openDate: '2023-10-23', closeDate: '2023-12-23', asset: 'SOLUSDT', dir: 'LONG', tradeType: 'Swing', entry: 29, exit: 110, lev: 1.5, capital: 700, setup: 'Ecosystem Rotation', emotion: 'Geduldig', notes: 'Kleine Startposition nach strukturellem Trendwechsel.' }),
    createDemoTrade('tactical-02', { openDate: '2023-10-25', closeDate: '2023-12-08', asset: 'LINKUSDT', dir: 'LONG', tradeType: 'Swing', entry: 7.5, exit: 14.5, lev: 1.5, capital: 1000, setup: 'Infrastructure Rotation', emotion: 'Fokussiert', notes: 'Rotation in liquide Infrastruktur-Assets.' }),
    createDemoTrade('tactical-03', { openDate: '2023-09-25', closeDate: '2023-12-24', asset: 'AVAXUSDT', dir: 'LONG', tradeType: 'Swing', entry: 10, exit: 40, lev: 1.5, capital: 800, setup: 'Capitulation Base', emotion: 'Geduldig', notes: 'Asymmetrischer Einstieg mit kleiner Positionsgröße.' }),
    createDemoTrade('tactical-04', { openDate: '2024-02-14', closeDate: '2024-02-23', asset: 'SOLUSDT', dir: 'LONG', tradeType: 'Swing', entry: 115, exit: 105, lev: 2, capital: 1000, setup: 'Trend Re-Entry', emotion: 'Neutral', notes: 'Erster Re-Entry scheiterte; keine Aufstockung im Verlust.' }),
    createDemoTrade('tactical-05', { openDate: '2024-02-20', closeDate: '2024-03-18', asset: 'AVAXUSDT', dir: 'LONG', tradeType: 'Swing', entry: 37, exit: 60, lev: 2, capital: 1200, setup: 'High Beta Breakout', emotion: 'Fokussiert', notes: 'Breakout aus Jahresbasis.' }),
    createDemoTrade('tactical-06', { openDate: '2024-02-09', closeDate: '2024-03-14', asset: 'ADAUSDT', dir: 'LONG', tradeType: 'Swing', entry: 0.52, exit: 0.72, lev: 2, capital: 1000, setup: 'Range Expansion', emotion: 'Neutral', notes: 'Range-Ausbruch bei steigendem Volumen.' }),
    createDemoTrade('tactical-07', { openDate: '2024-03-18', closeDate: '2024-04-13', asset: 'SOLUSDT', dir: 'LONG', tradeType: 'Swing', entry: 190, exit: 145, lev: 2, capital: 1500, setup: 'Continuation', emotion: 'Überzeugt', notes: 'Zu späte Trendfortsetzung; Verlust konsequent begrenzt.' }),
    createDemoTrade('tactical-08', { openDate: '2024-04-15', closeDate: '2024-04-30', asset: 'LINKUSDT', dir: 'LONG', tradeType: 'Swing', entry: 18, exit: 16, lev: 2, capital: 1000, setup: 'Base Breakout', emotion: 'Ruhig', notes: 'Breakout verlor Anschlusskäufe; Position am Invalidationsniveau geschlossen.' }),
    createDemoTrade('tactical-09', { openDate: '2024-08-12', closeDate: '2024-08-19', asset: 'SOLUSDT', dir: 'LONG', tradeType: 'Swing', entry: 150, exit: 140, lev: 2, capital: 1200, setup: 'Shock Recovery', emotion: 'Fokussiert', notes: 'Zu früher Recovery-Trade; Verlust vor dem zweiten Signal realisiert.' }),
    createDemoTrade('tactical-10', { openDate: '2024-09-12', closeDate: '2024-11-22', asset: 'SOLUSDT', dir: 'LONG', tradeType: 'Swing', entry: 132, exit: 245, lev: 1.5, capital: 1500, setup: 'Q4 Rotation', emotion: 'Geduldig', notes: 'Position bis zur parabolischen Beschleunigung gehalten.' }),
    createDemoTrade('tactical-11', { openDate: '2025-01-03', closeDate: '2025-01-19', asset: 'SOLUSDT', dir: 'LONG', tradeType: 'Swing', entry: 190, exit: 286, lev: 2, capital: 1000, setup: 'Momentum Continuation', emotion: 'Fokussiert', notes: 'Teilnahme am Januar-Momentum.' }),
    createDemoTrade('tactical-12', { openDate: '2025-01-20', closeDate: '2025-02-03', asset: 'SOLUSDT', dir: 'LONG', tradeType: 'Swing', entry: 250, exit: 200, lev: 2, capital: 1000, setup: 'Breakout Retest', emotion: 'Ungeduldig', notes: 'Zu früher Wiedereinstieg; Stop respektiert.' }),
    createDemoTrade('tactical-13', { openDate: '2025-02-28', closeDate: '2025-03-02', asset: 'ADAUSDT', dir: 'LONG', tradeType: 'Daytrade', entry: 0.65, exit: 1.1, lev: 2, capital: 800, setup: 'Event Momentum', emotion: 'Fokussiert', notes: 'Kurzfristiges Momentum, Gewinn vollständig realisiert.' }),
    createDemoTrade('tactical-14', { openDate: '2025-02-14', closeDate: '2025-04-07', asset: 'SOLUSDT', dir: 'SHORT', tradeType: 'Swing', entry: 190, exit: 105, lev: 2, capital: 1000, setup: 'Trend Breakdown', emotion: 'Ruhig', notes: 'Absicherung gegen anhaltende Altcoin-Schwäche.' }),
    createDemoTrade('tactical-15', { openDate: '2025-06-22', closeDate: '2025-08-24', asset: 'LINKUSDT', dir: 'LONG', tradeType: 'Swing', entry: 13, exit: 26, lev: 1.5, capital: 1000, setup: 'Infrastructure Rotation', emotion: 'Geduldig', notes: 'Positionsaufbau vor dem Infrastruktur-Momentum.' }),
    createDemoTrade('tactical-16', { openDate: '2025-09-18', closeDate: '2025-10-10', asset: 'SOLUSDT', dir: 'LONG', tradeType: 'Swing', entry: 230, exit: 190, lev: 2, capital: 1200, setup: 'High Beta Breakout', emotion: 'Zuversichtlich', notes: 'Fehlausbruch im späten Zyklus.' }),
    createDemoTrade('tactical-17', { openDate: '2026-06-26', asset: 'SOLUSDT', dir: 'LONG', tradeType: 'Swing', entry: 68, lev: 2, capital: 1500, setup: 'Weekly Reclaim', emotion: 'Ruhig', notes: 'Aktive Position nach Rückeroberung der Wochenstruktur.', sl: 61, tp: 86 }),
  ];

  return [
    {
      id: 'ck-demo-macro-swing-v2',
      name: 'CK Macro Swing · Binance',
      exchange: 'Binance',
      desc: 'Diskretionäres BTC-/ETH-Swing-Mandat · 2023–2026',
      color: '#c9a84c',
      trades: macroTrades,
      transactions: [
        { id: 'macro-cash-01', type: 'deposit', amount: 60000, date: '2023-01-05', currency: 'USDT', who: 'CK', note: 'Mandatskapital Macro Swing' },
        { id: 'macro-cash-02', type: 'withdrawal', amount: 15000, date: '2025-09-15', currency: 'USDT', who: 'CK', note: 'Teilweise Gewinnentnahme' },
      ],
    },
    {
      id: 'ck-demo-systematic-v2',
      name: 'CK Systematic · Bybit',
      exchange: 'Bybit',
      desc: 'Regelbasiertes Momentum- und Mean-Reversion-Konto · 2024–2026',
      color: '#2f84ff',
      trades: systematicTrades,
      transactions: [
        { id: 'systematic-cash-01', type: 'deposit', amount: 30000, date: '2024-02-01', currency: 'USDT', who: 'CK', note: 'Startkapital Systematic' },
        { id: 'systematic-cash-02', type: 'withdrawal', amount: 5000, date: '2025-09-01', currency: 'USDT', who: 'CK', note: 'Quartalsweise Gewinnentnahme' },
      ],
    },
    {
      id: 'ck-demo-tactical-v2',
      name: 'CK Tactical Alpha · OKX',
      exchange: 'OKX',
      desc: 'Taktische Altcoin-Rotation mit begrenztem Einzelrisiko · 2023–2026',
      color: '#20b486',
      trades: tacticalTrades,
      transactions: [
        { id: 'tactical-cash-01', type: 'deposit', amount: 15000, date: '2023-09-20', currency: 'USDT', who: 'CK', note: 'Startkapital Tactical Alpha' },
        { id: 'tactical-cash-02', type: 'withdrawal', amount: 3000, date: '2025-09-05', currency: 'USDT', who: 'CK', note: 'Realisierte Gewinne entnommen' },
      ],
    },
  ];
}

/** Full `ck_trading_terminal_v10_30_live` state, ready to JSON.stringify. */
export function buildTradingDemoState() {
  const accounts = createDemoTradingAccounts();
  return {
    accounts,
    activeId: accounts[0]?.id ?? null,
  };
}
