# FranCoach — Implementazione privacy

## Stato del documento

Questa è documentazione tecnica, non consulenza legale. I testi in applicazione sono marcati come bozze. Prima della pubblicazione è obbligatoria una revisione legale professionale, in particolare perché FranCoach tratta fotografie, misurazioni corporee e informazioni potenzialmente relative alla salute.

## Pagine e flussi

- `/privacy`: bozza tecnica dell’informativa pubblica
- `/terms`: bozza tecnica dei termini pubblici
- `/privacy/manage`: consensi, storico, esportazioni e richieste di cancellazione
- `/privacy/deletion/confirm`: conferma con password corrente e frase esplicita

Le pagine di gestione richiedono account autenticato e attivo. Le richieste e i download sono soggetti a rate limiting.

## Consensi

I tipi tecnici disponibili sono:

- informativa privacy;
- termini di utilizzo;
- trattamento dati relativi alla salute;
- comunicazioni promozionali.

Ogni concessione crea un record con versione documento, data, IP e user agent. La revoca chiude il record attivo senza eliminare lo storico. Concessioni e revoche sono registrate nell’audit log.

La configurazione `LEGAL_DOCUMENT_VERSION` identifica la bozza mostrata. La versione di produzione deve essere sostituita solo dopo approvazione legale.

## Esportazione dati

La richiesta genera sincronicamente un’autorizzazione al download valida 24 ore. Il file JSON è prodotto al momento del download, servito con header `no-store` e protetto da policy proprietario.

Sono esclusi:

- password, token e credenziali;
- percorsi storage;
- file binari delle fotografie;
- note private del coach.

Sono inclusi dati account, profilo, obiettivi, limitazioni, misurazioni, riepiloghi allenamenti, metadati delle fotografie e storico consensi. Completezza, formato, inclusione delle note professionali e modalità di consegna devono essere confermati nella revisione legale.

## Cancellazione

La richiesta richiede:

- password corrente;
- frase `CANCELLA ACCOUNT`;
- motivo facoltativo.

La richiesta viene confermata, registrata come `pending`, pianificata non prima di 30 giorni e può essere annullata dall’utente. Nessun dato viene eliminato automaticamente.

Prima del rilascio devono essere definiti:

- verifica dell’identità;
- eventuale periodo di ripensamento;
- dati da cancellare o anonimizzare;
- obblighi di conservazione e legal hold;
- gestione backup;
- evidenza dell’esecuzione;
- comunicazione dell’esito.

## Protezioni

- policy proprietario per consensi, esportazioni e cancellazioni;
- identificatori ULID nelle URL delle richieste;
- audit di creazione, download, cancellazione e revoca;
- IP e user agent limitati in lunghezza;
- nessun contenuto sensibile completo nell’audit;
- esportazioni non memorizzate su disco;
- cache privata disabilitata;
- nessuna fotografia inclusa in notifiche o URL pubblici.

## Conservazione da definire legalmente

Il codice non impone una conservazione definitiva dei dati personali. Devono essere approvati tempi distinti per account, allenamenti, misurazioni, fotografie, messaggi, consensi, audit, esportazioni, richieste di cancellazione, log applicativi e backup.
