'use strict';
const fs = require('fs');
const path = require('path');

const root = path.join(__dirname, '..', '..', 'frontend', 'textbooks');

const STUBS = [
  { f:'algebra_7_ch1.html', hub:'/textbook/algebra-7', hubName:'Алгебра 7', ch:'Глава 1 · Степень', range:'§1–§3', color:'#d97706', colorD:'#b45309', wm:'a&#8319;' },
  { f:'algebra_7_ch2.html', hub:'/textbook/algebra-7', hubName:'Алгебра 7', ch:'Глава 2 · Выражения и их преобразования', range:'§4–§14', color:'#059669', colorD:'#047857', wm:'P(x)' },
  { f:'algebra_7_ch3.html', hub:'/textbook/algebra-7', hubName:'Алгебра 7', ch:'Глава 3 · Линейные уравнения. Неравенства. Функция', range:'§15–§20', color:'#7c3aed', colorD:'#6d28d9', wm:'y=kx' },
  { f:'algebra_7_ch4.html', hub:'/textbook/algebra-7', hubName:'Алгебра 7', ch:'Глава 4 · Системы линейных уравнений', range:'§21–§25', color:'#0891b2', colorD:'#0e7490', wm:'{' },
  { f:'geometry_7_ch1.html', hub:'/textbook/geometry-7', hubName:'Геометрия 7', ch:'Глава 1 · Начальные понятия', range:'§1–§7', color:'#d97706', colorD:'#b45309', wm:'&#9679;' },
  { f:'geometry_7_ch2.html', hub:'/textbook/geometry-7', hubName:'Геометрия 7', ch:'Глава 2 · Признаки равенства треугольников', range:'§8–§14', color:'#059669', colorD:'#047857', wm:'&#9651;' },
  { f:'geometry_7_ch3.html', hub:'/textbook/geometry-7', hubName:'Геометрия 7', ch:'Глава 3 · Параллельность прямых', range:'§15–§18', color:'#7c3aed', colorD:'#6d28d9', wm:'&#8741;' },
  { f:'geometry_7_ch4.html', hub:'/textbook/geometry-7', hubName:'Геометрия 7', ch:'Глава 4 · Сумма углов треугольника', range:'§19–§26', color:'#0891b2', colorD:'#0e7490', wm:'&#8736;' },
  { f:'geometry_7_ch5.html', hub:'/textbook/geometry-7', hubName:'Геометрия 7', ch:'Глава 5 · Задачи на построение', range:'§27–§31', color:'#db2777', colorD:'#9d174d', wm:'&#9711;' },
];

const tpl = ({ hub, hubName, ch, range, color, colorD, wm }) => `<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<title>${ch}</title>
<link href="https://fonts.googleapis.com/css2?family=Outfit:wght@600;800;900&family=Inter:wght@400;600;700&display=swap" rel="stylesheet">
<script src="/js/api.js" defer></script>
<style>
:root{--bg:#fafafa;--card:#fff;--text:#0f172a;--muted:#64748b;--border:#e2e8f0;--pri:${color};--pri-d:${colorD};--pri-soft:${color}1a}
html.dark{--bg:#0a0a0e;--card:#13120a;--text:#fef9e7;--muted:#a39070;--border:#2a2512}
*{margin:0;padding:0;box-sizing:border-box}
html,body{min-height:100vh}
body{font-family:'Inter',system-ui,sans-serif;background:var(--bg);color:var(--text);line-height:1.55}
.hdr{position:relative;background:linear-gradient(110deg,${colorD},${color} 60%,${color}cc);color:#fff;padding:46px 22px 30px;overflow:hidden;border-bottom:2px solid ${color}33}
.hdr::before{content:'${wm}';position:absolute;right:-12px;top:50%;transform:translateY(-50%);font-family:'Outfit',sans-serif;font-size:clamp(5rem,15vw,11rem);font-weight:900;color:transparent;-webkit-text-stroke:1.5px rgba(255,255,255,.12);line-height:1;pointer-events:none}
.hdr-inner{position:relative;z-index:1;max-width:1100px;margin:0 auto;display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.hdr-back{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;background:rgba(255,255,255,.14);border-radius:9px;color:#fff;text-decoration:none;font-size:.85rem;font-weight:600}
.hdr-back:hover{background:rgba(255,255,255,.24)}
.hdr h1{font-family:'Outfit',sans-serif;font-size:1.6rem;font-weight:900}
.hdr-sub{font-size:.92rem;opacity:.85;margin-top:4px}
.ic{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;display:inline-block;vertical-align:middle}
main{max-width:740px;margin:0 auto;padding:48px 22px 80px}
.coming{background:var(--card);border:1.5px solid var(--border);border-radius:18px;padding:32px 28px;text-align:center;box-shadow:0 4px 18px rgba(0,0,0,.05)}
.coming-icon{width:72px;height:72px;border-radius:20px;background:var(--pri-soft);display:flex;align-items:center;justify-content:center;margin:0 auto 18px;color:var(--pri-d)}
.coming-icon svg{width:36px;height:36px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.coming h2{font-family:'Outfit',sans-serif;font-size:1.5rem;color:var(--pri-d);margin-bottom:12px}
.coming p{font-size:1rem;color:var(--muted);margin-bottom:8px}
.coming p b{color:var(--text)}
.coming-cta{margin-top:24px;display:inline-flex;align-items:center;gap:8px;padding:12px 22px;background:linear-gradient(135deg,var(--pri),var(--pri-d));color:#fff;border-radius:12px;font-weight:700;text-decoration:none;box-shadow:0 6px 22px ${color}33}
.coming-cta:hover{filter:brightness(1.08)}
.range-pill{display:inline-block;padding:5px 13px;background:var(--pri-soft);color:var(--pri-d);border-radius:99px;font-size:.84rem;font-weight:700;margin-top:6px}
</style>
</head>
<body>

<header class="hdr">
  <div class="hdr-inner">
    <div>
      <a href="${hub}" class="hdr-back">
        <svg class="ic" viewBox="0 0 24 24"><polyline points="15 18 9 12 15 6"/></svg>
        К ${hubName}
      </a>
    </div>
    <div>
      <h1>${ch}</h1>
      <div class="hdr-sub">${range}</div>
    </div>
  </div>
</header>

<main>
  <div class="coming">
    <div class="coming-icon">
      <svg viewBox="0 0 24 24"><circle cx="12" cy="12" r="10"/><polyline points="12 6 12 12 16 14"/></svg>
    </div>
    <h2>Глава в разработке</h2>
    <p>Эта глава — часть нового курса <b>${hubName}</b>.</p>
    <p>Содержание (${range}) уже спланировано — теория, интерактивы и финальный босс появятся в одной из ближайших волн реализации.</p>
    <div class="range-pill">${range}</div>
    <div style="margin-top:8px">
      <a href="${hub}" class="coming-cta">
        Вернуться к учебнику
        <svg class="ic" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"/></svg>
      </a>
    </div>
  </div>
</main>

</body>
</html>
`;

for (const s of STUBS) {
  fs.writeFileSync(path.join(root, s.f), tpl(s), 'utf8');
  console.log('wrote ' + s.f);
}
