feat(biochem): Фаза 4 (4.1-4.3) — пути метаболизма из БД (API), хардкод убран
Перенос данных путей из ~700 строк инлайн-объекта PATHWAYS в biochem-pathways.html в БД. Document-подход: каждый путь — самодостаточный документ data_json (граф узлов/рёбер + шаги с квизами); путь всегда читается целиком, реляционных запросов нет — нормализация не нужна. - migration 045_bio_pathways: таблица bio_pathways(slug, name, color, ord, data_json). - backend/scripts/biochem_pathways_data.js: данные 4 путей (извлечены из инлайн- объекта, теперь самодостаточный источник правды). - seed_biochem_pathways.js: идемпотентный upsert по slug. - biochemController.getPathways + GET /biochem/pathways (карта slug->данные). - js/api.js: biochemGetPathways. - biochem-pathways.html: инлайн PATHWAYS (-238 строк) заменён на загрузку из API в init (loadPathways); форма данных идентична — рендер не изменён. Проверено: API отдаёт 4 пути в форме фронта, сидер идемпотентен. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,15 @@
|
||||
-- 045_bio_pathways.sql
|
||||
-- Метаболические пути как данные (вместо ~700 строк хардкода в
|
||||
-- biochem-pathways.html). Каждый путь — самодостаточный документ (граф узлов
|
||||
-- и рёбер + шаги Learn-режима с квизами) в data_json; страница грузит их через
|
||||
-- API. Document-подход выбран намеренно: путь всегда читается целиком,
|
||||
-- реляционных запросов к узлам/рёбрам нет.
|
||||
|
||||
CREATE TABLE IF NOT EXISTS bio_pathways (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
slug TEXT NOT NULL UNIQUE,
|
||||
name TEXT NOT NULL,
|
||||
color TEXT NOT NULL DEFAULT '#9B5DE5',
|
||||
ord INTEGER NOT NULL DEFAULT 0,
|
||||
data_json TEXT NOT NULL DEFAULT '{}'
|
||||
);
|
||||
Reference in New Issue
Block a user