2.6 KiB
2.6 KiB
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
- 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.jsonna základe vybranej kategórie. - Zobrazenie otázok (checkboxy pre Áno/Nie, textové polia pre detaily).
- Tlačidlo "Preskočiť" pre voliteľné polia.
- Na backende (
ajax.php):- Validácia dát pre krok 3.
- Uloženie do
wizard_data.servicesawizard_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:
{
"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
- Pridaj 3 služby a vyplň im názvy.
- Odpovedz na smart otázky (napr. pre Gastro: donaska = true).
- Klikni na "Pokračovať".
- 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