Files
WebWizard/docs/prompts/step09.md
2026-06-12 12:54:10 +02:00

79 lines
2.6 KiB
Markdown

# Krok 09 - Wizard - Služby a Smart otázky (Krok 3)
## Kontext projektu
Krok 3 zbiera konkrétne informácie o službách a odpovede na dynamické otázky, ktoré závisia od kategórie vybranej v Kroku 1.
## Pred implementáciou si preštuduj
- `docs/wizard.md` - Sekcia 4 (Krok 3 - Služby a smart otazky).
- `data/categories.json` - Definícia smart otázok pre jednotlivé kategórie.
## Cieľ
Vytvoriť dynamické rozhranie pre zadávanie služieb a zodpovedanie segmentovo špecifických otázok.
## Požadované zmeny
1. Na frontende (`wizard.js`):
- Rozhranie pre dynamické pridávanie/odoberanie služieb (Názov, Popis, Cena od).
- Logika pre načítanie "Smart questions" z `categories.json` na základe vybranej kategórie.
- Zobrazenie otázok (checkboxy pre Áno/Nie, textové polia pre detaily).
- Tlačidlo "Preskočiť" pre voliteľné polia.
2. Na backende (`ajax.php`):
- Validácia dát pre krok 3.
- Uloženie do `wizard_data.services` a `wizard_data.smart_answers`.
## Implementačné pravidlá
- Minimálne 2 služby by mali byť odporúčané, ale nie striktne povinné pre MVP (AI vie zvyšok domyslieť).
- Smart otázky musia presne zodpovedať kategórii.
## Súbory ktoré je potrebné vytvoriť
Žiadne (predpokladá sa, že `data/categories.json` už existuje).
## Súbory ktoré je potrebné upraviť
- `public/index.html` (DOM pre Krok 3)
- `public/js/wizard.js` (logika pre Krok 3)
- `public/ajax.php` (validácia kroku 3)
- `data/categories.json` (doplnenie smart otázok, ak chýbajú)
## API a dátové štruktúry
Payload pre `saveStep`:
```json
{
"step": 3,
"data": {
"services": {
"items": [{ "name": "...", "description": "...", "price_from": "..." }],
"pricing_note": "..."
},
"smart_answers": {
"question_id": "answer"
}
}
}
```
## Frontend požiadavky
- Jednoduché pridávanie položiek do zoznamu.
- Prehľadné zobrazenie dynamických otázok.
## Backend požiadavky
- PHP validácia štruktúry poľa služieb.
## Testovací scenár
1. Pridaj 3 služby a vyplň im názvy.
2. Odpovedz na smart otázky (napr. pre Gastro: donaska = true).
3. Klikni na "Pokračovať".
4. Over v JSONe projektu, či sú služby a odpovede správne uložené.
## Definition of Done
- Používateľ vie zadať služby a odpovedať na segmentové otázky.
- Dáta sú perzistentne uložené.
- UI je dynamické podľa kategórie.
## Obmedzenia
- Nepoužívaj zložité state management knižnice (Redux a pod.), zostaň pri Vanilla JS.
## Výstup
- zoznam vytvorených súborov
- zoznam upravených súborov
- stručné zhrnutie vykonaných zmien
- prípadné otvorené problémy