Skip to content

Rituály — knihovna (spiritual_guides) a routy /ritualy

Stav dokumentu: Částečně — tabulka spiritual_guides (migrace 0016_spiritual_guides.sql) a veřejné stránky /ritualy, /ritualy/:slug jsou v produkci; základní krokovač na detailu návodu je hotový. Admin CRUD a validace JSON jsou v 32-admin.md. Rozšíření průvodce (URL krok, animace, …) zůstává backlog.

Cíl: jedna doména — editorské strukturované návody mimo volné spiritual_uses na kartě byliny (odděleně od vědy; viz úvod na /ritualy).

Vstup: 22-data-model.md · 32-admin.md (správa návodů). Rozcestník: spiritualni-a-ritualni-obsah.md. Sekce na kartě: spiritualni-uses-karta-byliny.md.


1. Datový model

  • Tabulka spiritual_guides: slug, title, intent, category, intro, steps_json, materials_json, safety_notes, references_note, volitelně herb_id, is_published, časová razítka.
  • Seed v migraci 0016_spiritual_guides.sql (ukázkový záznam).
  • Další seed návodů (idempotentní INSERT … SELECT … WHERE NOT EXISTS podle slug): 0031_spiritual_guides_seed_expand.sql, 0040_spiritual_guides_seed_more.sql0045_spiritual_guides_seed_expand_6.sql, 0048_spiritual_guides_seed_expand_7.sql, 0050_spiritual_guides_seed_expand_8.sql, 0051_spiritual_guides_seed_expand_9.sql, 0052_spiritual_guides_seed_expand_10.sql, 0054_spiritual_guides_seed_expand_11.sql, 0056_spiritual_guides_seed_expand_12.sql, 0060_spiritual_guides_seed_expand_13.sql, 0064_spiritual_guides_seed_expand_14.sql, 0065_spiritual_guides_seed_expand_15.sql, 0066_spiritual_guides_seed_expand_16.sql. Mezi nimi běží jiné domény (recepty / věda / zpracování) pod vlastními čísly — viz řada 00460049, 0053, 0055, 00570059, 00610067 (recipe science, včetně 0067_recipe_science_ema_curated_teas.sql).
  • Pravidlo pojmenování: v migrations/ nesmí existovat dva soubory se stejným číselným prefixem před první podtržítkem (0062_a.sql + 0062_b.sql ne). wrangler d1 migrations apply řadí soubory lexikograficky a v metatabulce migrací je identifikátor odvozen od celého názvu souboru.
  • Příklad řešení kolize: dva soubory 0062_* (recipe science × spirituální seed) — spirituální migrace přejmenovat na další volné číslo (v repu: 0064_spiritual_guides_seed_expand_14.sql). Stejně tak globálně: dvě migrace 0025_* → jednu přejmenovat (v repu: topics 0037_topics_expand_symptoms.sql vedle 0025_herbs_catalog_expand.sql).

Strategie obsahu (návodů)

  • Hromadné SQL migrace zůstávají vhodné pro doplnění knihovny po šabloně, idempotentní opakování a obsah navázaný na nové bylinky v katalogu (nový herb_id).
  • Úpravy copy, opravy disclaimerů a „jednorázové“ návody po nasazení admin CRUD směřovat do administrace (32-admin.md), aby nevznikala zbytečná řada čísel migrací jen kvůli překlepům.
  • Doporučení: další velké vlny spiritual_guides_seed_expand_*.sql omezit na zjevné mezery (nové druhy v DB, nová kategorie návodů); rutinní práci přesunout na editor.

Lokální ověření po změnách migrací

  • Použít Node z .nvmrc / engines v package.json (nvm use), jinak Wrangler na starém Node nespustíš.
  • npm run d1:apply:local — aplikuje nepoužité migrace na lokální D1 pro vývoj.
  • Rychlá kontrola dat např.:
    npx wrangler d1 execute DB --local --command "SELECT COUNT(*) AS total FROM spiritual_guides WHERE is_published = 1"
    a výběr konkrétního slug po přidané migraci.

2. Veřejný web

  • /ritualy — seznam publikovaných návodů (listPublishedSpiritualGuides).
  • /ritualy/:slug — detail s kroky (JSON), materiály, bezpečnostní poznámka, odkaz na související bylina (pokud je herb_id).

3. Plánovaná vylepšení

  • Interaktivní průvodce (krok za krokem) — na /ritualy/:slug: krokovač pro více kroků, indikátor pozice, klávesové šipky, pozice v sessionStorage (relace prohlížeče), rozbalení celého seznamu; komponenta RitualGuideSteps v app/components/ritual-guide-steps.tsx (viz 26-ui-components.md).
  • Rozšíření průvodce (např. animace, sdílení odkazu na konkrétní krok v URL, trvalější stav) — backlog podle potřeby.

4. Akceptace

  • Nepublikované záznamy se na veřejném webu nezobrazují (is_published = 1).
  • Detail návodu má čitelné kroky a konzistentní bezpečnostní rámec (text / disclaimer).

5. Vazby na jiné dokumenty