79 lines
2.6 KiB
Markdown
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
|