# Polityka prywatności TROPO — projekt zmian do przeglądu prawnego

Stan na 2 października 2026, przed publicznym startem. Dokument przygotowany na podstawie kodu (tropo.city + aplikacja PWA), **nie jest poradą prawną** — wymaga przeglądu prawnika przed publikacją. Obecna wersja polityki: 1.0 z 17.03.2026 (`templates/legal/privacy.html.twig`).

## 1. Co się zmieniło od wersji 1.0 (fakty z kodu)

| Obszar | Wersja 1.0 mówi | Stan faktyczny |
|---|---|---|
| Dane dzieci | „wymaga weryfikowalnej zgody rodzica” | Imię dziecka, ukończone misje i odznaki zostają **tylko na urządzeniu**, chyba że rodzic zaznaczy (domyślnie odznaczoną) zgodę „kopia postępów na serwerze”. Zgodę można wycofać w aplikacji — wycofanie usuwa dane z serwera od razu. |
| Lokalizacja | brak | Tryb „Przygoda” używa GPS urządzenia (za zgodą systemową). Do serwera tropo.city trafia pozycja zaokrąglona do ok. 100 m (szukanie miejsc) oraz punkty trasy, w tym punkt startu (wyznaczenie trasy pieszej). Serwer przekazuje punkty trasy do usługi wyznaczania tras (FOSSGIS e.V., Niemcy; opcjonalnie Geoapify). Trasy są zapamiętywane anonimowo do 7 dni (bez powiązania z urządzeniem). Lokalizacja nie jest zapisywana w profilu. |
| Statystyki aplikacji | brak | Anonimowe zdarzenia (np. „ukończono misję X”, „otwarto ekran zakupu”) z identyfikatorem urządzenia zastąpionym skrótem HMAC; bez imion i treści. Bez osobnej zgody. |
| Zakup | email, ID transakcji, kod | Dodatkowo data akceptacji Regulaminu i zgody na dostarczenie treści cyfrowej (art. 38 pkt 13 u.p.k.), numer urządzenia, na którym aktywowano kod, liczba przeniesień kodu. |
| Usunięcie danych | „na żądanie rodzica” (mail) | Dodatkowo przycisk w aplikacji: „Wyłącz i usuń dane z serwera”; usunięcie profilu dziecka w aplikacji usuwa też jego kopię na serwerze. |
| Podmioty trzecie | Przelewy24, Cloudflare, Resend | Dodatkowo: **OpenStreetMap Foundation** (kafelki mapy w Przygodzie → IP), **FOSSGIS e.V.** (trasy, wywoływane przez serwer), opcjonalnie **Geoapify**, oraz **Google Analytics 4** na stronie, jeśli zostanie skonfigurowany (`GOOGLE_ANALYTICS_ID`). |
| Okresy przechowywania | 24 mies. profile dzieci, 26 mies. tracking, 12 mies. kontakt | **Nie są dziś realizowane w kodzie** — brak automatycznego usuwania. Trzeba je wdrożyć albo zmienić tekst (patrz pkt 4). |
| Pamięć urządzenia | brak | Aplikacja zapisuje na urządzeniu (IndexedDB, localStorage): profile, postępy, identyfikator urządzenia, token dostępu, zgody, ustawienia. Niezbędne do działania (art. 5 ust. 3 dyrektywy ePrivacy / art. 399 Prawa komunikacji elektronicznej). |

## 2. Proponowane brzmienie nowych i zmienionych punktów

### 3.1. Kategorie przetwarzanych danych (zmiany w tabeli)

| Kategoria | Dane | Podstawa prawna |
|---|---|---|
| Kopia postępów dziecka (opcjonalna) | imię lub pseudonim dziecka, ukończone misje, zdobyte odznaki, identyfikator urządzenia | zgoda rodzica/opiekuna (art. 6 ust. 1 lit. a, art. 8 RODO) — *do potwierdzenia przez prawnika* |
| Zakup TROPO+ | email, numer zamówienia, kod aktywacyjny, data zakupu, data akceptacji Regulaminu i zgody z art. 38 pkt 13 u.p.k., identyfikator urządzenia z aktywnym kodem | wykonanie umowy (art. 6 ust. 1 lit. b), obowiązek prawny (lit. c) |
| Lokalizacja w trybie Przygoda | przybliżona pozycja (ok. 100 m) i punkty trasy, bez powiązania z profilem | wykonanie usługi na żądanie (lit. b) / uzasadniony interes (lit. f) — *do decyzji prawnika* |
| Statystyki aplikacji | anonimowe zdarzenia, skrót identyfikatora urządzenia | prawnie uzasadniony interes (lit. f) — rozwój i poprawa aplikacji |

### 3.2. Dane dzieci — szczególna ochrona (proponowany tekst)

> Aplikacja TROPO jest przeznaczona do wspólnej zabawy dziecka z rodzicem lub starszym rodzeństwem. Profil dziecka (imię lub pseudonim, postępy, odznaki) jest przechowywany wyłącznie na urządzeniu. Kopia postępów na serwerze TROPO jest tworzona tylko wtedy, gdy rodzic lub opiekun zaznaczy taką zgodę w aplikacji. Zgodę można w każdej chwili wycofać w aplikacji (Profile → „Wyłącz i usuń dane z serwera”) — dane zostaną wtedy niezwłocznie usunięte z serwera. Nie profilujemy dzieci w celach marketingowych ani reklamowych i nie wyświetlamy reklam.

### 3.x. Lokalizacja (nowy punkt)

> Tryb „Przygoda” korzysta z lokalizacji urządzenia, aby zaproponować trasę spacerową po okolicy. Dokładna pozycja jest używana na urządzeniu. Do naszego serwera trafia pozycja zaokrąglona do ok. 100 m (wyszukanie ciekawych miejsc) oraz punkty planowanej trasy (wyznaczenie przejścia pieszego), które przekazujemy dostawcy usługi wyznaczania tras. Nie zapisujemy lokalizacji w profilu dziecka ani nie łączymy jej z kontem. Wyznaczone trasy przechowujemy anonimowo do 7 dni, aby szybciej odpowiadać na takie same zapytania. Tryb Przygoda uruchamia dorosły opiekun, który potwierdza, że idzie razem z dzieckiem.

### 3.x. Statystyki aplikacji (nowy punkt)

> Aby rozwijać aplikację, zbieramy anonimowe informacje o korzystaniu z niej (np. ukończenie misji, otwarcie ekranu zakupu). Nie zawierają one imion ani treści wpisywanych w aplikacji, a identyfikator urządzenia zastępujemy nieodwracalnym skrótem. Dane przechowujemy przez 13 miesięcy.

### 4. Pamięć urządzenia (zamiast/obok „Polityka cookies”)

> Aplikacja zapisuje w pamięci przeglądarki (IndexedDB, localStorage) dane niezbędne do działania: profile i postępy dzieci, identyfikator urządzenia, informację o zakupie, zgody i ustawienia. Dane te pozostają na urządzeniu i można je usunąć, czyszcząc dane strony w przeglądarce lub odinstalowując aplikację.

### 7. Podmioty trzecie (proponowana tabela)

| Podmiot | Usługa | Jakie dane |
|---|---|---|
| Przelewy24 (PayPro S.A./DialCom24) | płatności | dane płatności (po stronie operatora) |
| Cloudflare | ochrona formularzy (Turnstile), CDN | adres IP, dane przeglądarki |
| Resend | wysyłka maili transakcyjnych | email, treść maila |
| OpenStreetMap Foundation | kafelki mapy w trybie Przygoda | adres IP, fragment mapy |
| FOSSGIS e.V. / Geoapify | wyznaczanie tras pieszych (przez serwer TROPO) | punkty trasy, bez danych identyfikujących |
| Google (Analytics 4) | statystyki strony tropo.city, po zgodzie cookies | jeśli zostanie włączony |

Dane OpenStreetMap: © współtwórcy OpenStreetMap, licencja ODbL.

### 3.5. Okresy przechowywania (do uzgodnienia, potem wdrożenia w kodzie)

| Dane | Proponowany okres |
|---|---|
| Kopia postępów dziecka | do wycofania zgody lub 24 miesiące bez synchronizacji |
| Statystyki aplikacji | 13 miesięcy |
| Tracking strony | 26 miesięcy, potem usunięcie |
| Formularz kontaktowy | 12 miesięcy |
| Zamówienia | 5 lat (obowiązek podatkowy) |
| Zapamiętane trasy | 7 dni |

## 3. Pytania do prawnika

1. **Podstawa prawna dla danych dzieci.** Czy zgoda rodzica zaznaczona w aplikacji (checkbox) wystarcza, skoro dziecko nie korzysta samodzielnie, a aplikację konfiguruje rodzic? Czy „weryfikowalna zgoda” z wersji 1.0 jest potrzebna i jak ją zrealizować bez kont?
2. **Lokalizacja.** Wykonanie usługi czy uzasadniony interes? Czy potrzebna jest osobna informacja/zgoda przed pierwszym użyciem Przygody (obecnie: systemowe pytanie o lokalizację + potwierdzenie dorosłego)?
3. **Statystyki bez zgody.** Czy anonimowe zdarzenia z skrótem identyfikatora mieszczą się w uzasadnionym interesie i w wyjątku ePrivacy, czy potrzebna jest zgoda?
4. **Google Fonts** — usunięte (czcionka na własnym serwerze), punkt nieaktualny.
5. **Przekazanie do dostawców tras** (FOSSGIS — Niemcy, Geoapify — UE/USA?): czy wymaga umowy powierzenia, skoro punkty trasy nie są powiązane z osobą?
6. **Administrator danych.** Osoba fizyczna (Kuba Gładki) — czy docelowo działalność/spółka? Wpływa na Regulamin, faktury i dane w polityce.
7. **Regulamin** — spójność z polityką (przenoszenie kodu, zgody przy zakupie: wersja 1.2 z 01.10.2026).

## 4. Zmiany w kodzie, żeby polityka mówiła prawdę

- [x] Automatyczne usuwanie danych po okresach z tabeli 3.5: `php bin/console app:data-retention` (cron codziennie; `--dry-run` tylko liczy). Dodatkowo nieopłacone zamówienia po 30 dniach. Komentarze na blogu — bez automatu (moderacja ręczna).
- [x] Czcionka Baloo 2 hostowana na serwerze TROPO (aplikacja i Paszport) — Google Fonts usunięte, punkt o Google Fonts w tabeli podmiotów trzecich można skreślić.
- [x] Zapisywanie daty ostatniej synchronizacji profilu (`pwa_child.last_sync_at`).
- [x] Informacja o lokalizacji z linkiem do polityki przy starcie Przygody (ekran ustawień Przygody).
- [x] Polityka 1.1 opublikowana w `templates/legal/privacy.html.twig` na podstawie tego projektu — nadal do przeglądu prawnika (pytania w pkt 3).
