// ═══════════════════════════════════════════════════════════
//  investmap.js — 互動式「投資地圖」六層漏斗設定
//  內容整理自 emmy/emmy/學習分類/投資底層邏輯.md 的六層漏斗與提問清單。
//  每一層是一道篩子，任一「閘門題(gate)」答否 → 該層出局、後面先停。
//  問題上的 principles 為原則編號，server 端會補上標題與 note id 供前端連結。
// ═══════════════════════════════════════════════════════════

export const CORE_QUESTION =
  '市場現在相信什麼（已 price 進去的共識）？我相信而市場還沒相信的點是什麼？看錯了我會不會死？答不出「市場還沒信的點」就只是追價。';

const LAYERS = [
  {
    key: 'macro', title: '總經水位', ask: '現在是滿倉、半倉還是減倉的環境？覆巢之下無完卵。',
    pillar: '柱二：這波是結構性還非結構性？',
    out: '總經明確轉空 → 降到低水位，後面幾層先不看。',
    questions: [
      { q: '利率處於升息結束的高原期或初升段，而非「降息=衰退確認」的環境？', gate: true, principles: [2, 55] },
      { q: '即時數據（Truflation、訂單、貨運）與官方數據一致、沒有惡化？', principles: [24] },
      { q: '目前的下跌是「非結構性」恐慌（可加碼），而非結構性崩壞？', gate: true, principles: [101, 50] },
    ],
  },
  {
    key: 'industry', title: '產業結構', ask: '這產業未來 3-5 年是結構性成長、循環、還是結構性衰退？',
    pillar: '柱二：供給端還是需求端決定價格？',
    out: '結構性衰退產業 → 再便宜也避開。',
    questions: [
      { q: '這是長期不可逆的結構性成長/長多趨勢？', gate: true, principles: [13] },
      { q: '價格由「供給瓶頸」撐住，而非「需求結構性消失」？', gate: true, principles: [4, 6] },
      { q: '近期營收回升來自終端需求，而非只是補庫存？', principles: [14] },
    ],
  },
  {
    key: 'moat', title: '商業模式（真假護城河）', ask: '這家公司「贏」的理由能撐多久？',
    pillar: '柱二：護城河可不可複製。',
    out: '護城河靠剝削/補貼撐 → 不碰。',
    questions: [
      { q: '是生態/技術/資本型護城河，而非掠奪補貼型？', gate: true, principles: [12, 16] },
      { q: '若有毀滅性價格戰，它是資本最深的贏家？', principles: [15] },
      { q: '能把技術真正變現（賣得出去），而非只有技術？', principles: [66] },
    ],
  },
  {
    key: 'management', title: '管理層（人對不對）', ask: '買股票就是買管理層；前三層決定局好不好打，這層決定派誰上場。',
    pillar: '避開結果論：看當下決策品質 + 兌現紀錄。',
    out: '判斷力差或常財測跳票 → 給折價甚至避開。',
    questions: [
      { q: '重大決策用「當下資訊」看邏輯站得住（非事後諸葛）？', gate: true, principles: [96, 83] },
      { q: '過去財測穩健、說到做到（信任溢價而非折價）？', principles: [17, 103] },
      { q: '研發/資本投入誠實反映他真正相信的方向？', principles: [46] },
      { q: 'CEO 公開行為與認股條款透露對自己有信心？', principles: [93, 71] },
    ],
  },
  {
    key: 'valuation', title: '估值 / 財報（價格對不對）', ask: '好公司 ≠ 好價格。現在買，賠率划算嗎？（可搭配「財報健檢」）',
    pillar: '柱三前哨：別在脆弱估值上重壓。',
    out: '好公司但價格爛 → 等更好的賠率。',
    questions: [
      { q: '財測（未來）向上，而不是只看過去財報？', gate: true, principles: [17] },
      { q: '本益比沒有高到「一次不如預期就重摔」？', principles: [79] },
      { q: '同產業裡沒有更便宜的選擇正在吸走資金？', principles: [102] },
      { q: '毛利率/營收獲利型態揭露規模化或營運槓桿？', principles: [47, 91] },
    ],
  },
  {
    key: 'discipline', title: '交易紀律（怎麼進出）', ask: '怎麼進、怎麼加、看錯怎麼退、永遠留多少現金？＝柱三落地。',
    pillar: '柱三：看錯時還活著，等對的幾次兌現。',
    out: '沒有事前規則 → 別憑情緒進場。',
    questions: [
      { q: '總經、產業、公司三面向都支持才動手？', gate: true, principles: [54] },
      { q: '減倉/停損規則「事前」就設好、能機械執行？', principles: [59] },
      { q: '有留底倉、分散到不被單一判斷錯誤打死？', principles: [97, 89] },
      { q: '計畫好「多頭讓利潤奔跑、空頭虧一半就斷」？', principles: [63] },
    ],
  },
];

// 由 server 呼叫：用知識庫把 principles(編號) 補成 {num,title,id}
export function getInvestMap(principlesByNum) {
  const enrichOne = (n) => {
    const p = principlesByNum[n];
    return p ? { num: n, title: p.title, id: p.id } : { num: n, title: `原則 ${n}`, id: null };
  };
  return {
    coreQuestion: CORE_QUESTION,
    layers: LAYERS.map(L => ({
      key: L.key, title: L.title, ask: L.ask, pillar: L.pillar, out: L.out,
      questions: L.questions.map(q => ({ q: q.q, gate: !!q.gate, principles: (q.principles || []).map(enrichOne) })),
    })),
  };
}
