# `reset_corsie.py`

## Scopo

Questo modulo mostra il riepilogo di una corsia e permette, dopo doppia
conferma, di cancellare i record di `MagazziniPallet` collegati a quella corsia.

## Flusso operativo

```{mermaid}
flowchart TD
    A["open_reset_corsie_window()"] --> B["ResetCorsieWindow.__init__()"]
    B --> C["_build_ui()"]
    C --> D["_load_corsie()"]
    D --> E["query_json SQL_CORSIE"]
    E --> F["Seleziona corsia iniziale"]
    F --> G["refresh()"]
    G --> H["query_json SQL_RIEPILOGO"]
    G --> I["query_json SQL_DETTAGLIO"]
    H --> J["Aggiorna contatori"]
    I --> K["Aggiorna tree celle occupate"]
```

## Flusso distruttivo

```{mermaid}
flowchart TD
    A["Click su Svuota corsia"] --> B["_ask_reset()"]
    B --> C["query_json SQL_COUNT_DELETE"]
    C --> D{"Record da cancellare > 0?"}
    D -- No --> E["Messaggio: niente da rimuovere"]
    D -- Si --> F["Richiesta conferma testuale"]
    F --> G{"Testo corretto?"}
    G -- No --> H["Annulla operazione"]
    G -- Si --> I["_do_reset(corsia)"]
    I --> J["query_json SQL_DELETE"]
    J --> K["Messaggio completato"]
    K --> L["refresh()"]
```

## Note

- È il modulo più delicato lato operazioni, perché esegue `DELETE`.
- La finestra separa chiaramente fase di ispezione e fase distruttiva.
- Tutte le query passano dal client condiviso tramite `AsyncRunner`.
