# Krok 05 - Služba pre GDPR súhlas ## Kontext projektu Podľa právnych požiadaviek a špecifikácie MVP musí systém evidovať explicitný súhlas používateľa so spracovaním údajov pred tým, než povolí uloženie akýchkoľvek citlivých dát alebo generovanie webu. ## Pred implementáciou si preštuduj - `docs/mvp.md` - Sekcia 10 (GDPR). - `docs/architecture.md` - Sekcia 7 (GDPR súhlas). ## Cieľ Vytvoriť službu na správu GDPR súhlasov a implementovať API akciu na uloženie súhlasu. ## Požadované zmeny 1. Vytvorenie triedy `App\Services\ConsentService` v `src/Services/ConsentService.php`. 2. Implementácia metódy `saveConsent(string $projectId, string $userId, string $consentText): bool`. - Uloží súbor `data/consent/.json`. - Záznam musí obsahovať: `project_id`, `user_id`, `consent_text_version`, `consent_text`, `accepted: true`, `accepted_at` (v UTC). 3. Implementácia metódy `hasConsent(string $projectId): bool`. 4. Implementácia API akcie `saveConsent` v `ajax.php`. ## Implementačné pravidlá - Verzia textu súhlasu by mala byť konštanta v kóde (napr. `webwizard-mvp-2026-06-12`). - Dátum musí byť v ISO 8601 formáte (UTC). - Bez súhlasu nesmie systém povoliť krok generovania AI (bude validované v neskorších krokoch). ## Súbory ktoré je potrebné vytvoriť - `src/Services/ConsentService.php` ## Súbory ktoré je potrebné upraviť - `public/ajax.php` (pridanie akcie `saveConsent`) ## API a dátové štruktúry JSON súhlasu: ```json { "project_id": "...", "user_id": "...", "consent_text_version": "...", "consent_text": "...", "accepted": true, "accepted_at": "2026-06-12T10:00:00Z" } ``` ## Frontend požiadavky Nerelevantné. ## Backend požiadavky - PHP 8.2. ## Testovací scenár 1. Zavolaj akciu `saveConsent` s platným `project_id` a textom. 2. Over, či sa vytvoril súbor v `data/consent/`. 3. Over obsah súboru, najmä formát dátumu a prítomnosť všetkých polí. ## Definition of Done - Systém dokáže auditovateľne ukladať GDPR súhlasy. - Existuje služba na overenie existencie súhlasu pre daný projekt. ## Obmedzenia - Súhlas je neprenosný medzi projektami (každý projekt musí mať vlastný záznam súhlasu, aj keď je to ten istý používateľ). ## Výstup - zoznam vytvorených súborov - zoznam upravených súborov - stručné zhrnutie vykonaných zmien - prípadné otvorené problémy