# 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