# Richiesta di eliminazione account

VisPa consente di avviare una richiesta di eliminazione in due modi:

- dall'app mobile, in **Account e sicurezza**, confermando la password attuale;
- dalla pagina pubblica `/eliminazione-account`, con verifica dell'indirizzo email.

Il modulo pubblico restituisce sempre lo stesso messaggio, indipendentemente dal fatto che l'email sia registrata, per evitare l'enumerazione degli account. Il collegamento di verifica scade dopo 60 minuti e nel database viene conservato soltanto il relativo hash.

## Ciclo della richiesta

Gli stati sono:

- `pending_verification`: richiesta web ancora da verificare;
- `pending`: richiesta ricevuta e verificata;
- `processing`: presa in carico dall'amministrazione;
- `completed`: account anonimizzato e richiesta completata;
- `rejected`: richiesta chiusa con motivazione;
- `cancelled`: richiesta annullata dall'utente prima della lavorazione.

Una richiesta `pending_verification` può essere verificata anche dall'app: la conferma della password corrente sostituisce la verifica email.

## Controlli prima del completamento

Il completamento amministrativo è bloccato quando esistono:

- saldo wallet residuo;
- soste attive o in attesa di pagamento;
- titoli attivi, programmati o in attesa di pagamento;
- transazioni di pagamento ancora aperte.

Solo un `super_admin` può prendere in carico, rifiutare o completare la richiesta.

## Completamento

Il completamento:

- revoca token mobile e sessioni web;
- elimina le targhe salvate;
- rimuove i ruoli;
- disattiva l'utente;
- sostituisce nome, email e password con valori anonimi;
- azzera i riferimenti legali e di autenticazione non più necessari;
- rimuove l'email dalle transazioni di pagamento;
- conserva soste, titoli, wallet e registrazioni economiche che possono essere soggetti a obblighi contabili, antifrode o legali.

Le durate effettive di conservazione devono essere definite nella Privacy Policy e nelle procedure interne del titolare del trattamento.

## Configurazione store

La pagina pubblica da indicare nelle console degli store è:

```text
https://DOMINIO/eliminazione-account
```

Per le build Flutter può essere sovrascritta con:

```text
--dart-define=ACCOUNT_DELETION_URL=https://DOMINIO/eliminazione-account
```
