# DPass 61D1 — Menu utente con divisori

Patch locale sulla base 61D, dedicata esclusivamente alla navigazione utente.
Ultima richiesta recepita: la voce di acquisto si chiama **Prenota ingresso**, non “Strutture di sosta”.

## Disposizione

```
Home

SOSTA
  Nuova sosta
  Le mie soste
  Abbonamenti

STRUTTURE
  Prenota ingresso
  Le mie prenotazioni

ANAGRAFICA
  Dati anagrafici
  Veicoli
  Documenti legali

WALLET
  Wallet

Assistenza
Modifica password
```

I quattro divisori non sono collegamenti e non creano sottomenu da aprire.
Home precede tutti i gruppi. Assistenza e Modifica password sono fuori dai gruppi,
senza una propria intestazione. Lingua ed Esci restano nella posizione precedente.
L'icona, il comportamento del selettore Comune e i colori del tenant restano invariati.
Divisori e bordi sono neutri; nessun nuovo colore specifico per le strutture.

## Visibilità ed evidenziazione

Le condizioni preesistenti vengono conservate: Nuova sosta richiede la disponibilità
del servizio, Abbonamenti richiede il Comune e la feature attiva. Lo storico soste
rimane raggiungibile come prima, anche senza nuove vendite abilitate.
Il gruppo Strutture è assente se il servizio non è disponibile o non ha collegamenti
utilizzabili. Ogni collegamento condizionale continua a verificare la relativa rotta.
Assistenza mantiene i controlli su telefono/URL configurati, ma non è più annidata
nel blocco di Documenti legali: è indipendente, come richiesto per il nuovo ordine.

Prenota ingresso conduce alla selezione della struttura già realizzata nella 61D,
senza modificare preventivi o pagamenti. Acquisto e preventivo evidenziano Prenota
ingresso; elenco e dettaglio prenotazioni evidenziano Le mie prenotazioni.
Sono incluse le traduzioni IT/EN dei nuovi divisori e collegamenti: in inglese la
voce è “Book entry”. I titoli delle pagine applicative non sono rinominati.

## Applicazione in locale

Salvare `dpass_patch_61D1_menu_utente.zip` in `C:\Users\massi\Downloads`.
Incollare il blocco completo in Ubuntu/WSL (le parentesi isolano la shell):

```bash
(
  set -e
  cd ~/progetti/dpass

  PATCH_DIR="$(mktemp -d /tmp/dpass_patch_61D1.XXXXXX)"

  unzip -q \
    /mnt/c/Users/massi/Downloads/dpass_patch_61D1_menu_utente.zip \
    -d "$PATCH_DIR"

  bash "$PATCH_DIR/apply_patch.sh" "$PWD"
)
```

Prerequisiti: patch 61D già applicata, relativo marcatore, PHP CLI >= 8.3, dipendenze
vendor presenti. Il controllo hash blocca sorgenti modificati non riconosciuti:
non forzare l'applicazione e non cancellare i marcatori per superare un errore.

L'installer verifica il pacchetto e la base, crea un backup in
`storage/app/patch-backups/dpass_patch_61D1_<timestamp>_<id>`, copia i file e avvia
45 controlli isolati del menu (database non configurati, tenant e Comune sintetici).
Poi elimina soltanto le viste Blade compilate standard e salva il marcatore
`storage/app/patches/dpass_patch_61D1.json`.

Esito atteso:

```
[61D1] PATCH 61D1 APPLICATA E VERIFICATA.
```

La riesecuzione su file già aggiornati verifica la patch senza sovrascriverli.
Se i controlli dopo la copia falliscono, l'installer tenta di ripristinare il backup.
Il ripristino si ferma in presenza di ulteriori modifiche ai file, per non perderle.

Non vengono eseguiti artisan migrate, SQL, Composer, NPM, queue o cron.
Nessun controller, servizio di business, rotta, .env o database viene modificato.
Il menu amministrativo resta invariato.

## Verifica manuale

Aprire una pagina utente desktop e mobile; controllare ordine e divisori, aprire
Prenota ingresso e Le mie prenotazioni, quindi verificare il collegamento evidenziato.
Verificare anche un Comune senza strutture (gruppo nascosto), la lingua inglese,
Assistenza, Modifica password e lo scorrimento fino a Lingua ed Esci.
Se il browser conserva una schermata precedente, ricaricarla con Ctrl+F5.

## Produzioni cPanel: non aggiornare adesso

Il locale `~/progetti/dpass` resta l'unica sorgente per le produzioni.
La 61D1 non aggiunge SQL: resta valido il cumulativo della 61D,
`dpass_strutture_database_cumulativo_61A_61B_61D_phpmyadmin.sql`.
Il vecchio SQL 61B non va applicato separatamente. Il cumulativo è da usare una
sola volta per ogni installazione al rilascio completo, con backup e i controlli
del piano 61D: questa patch non ne cambia contenuto o stato di collaudo.

Il pacchetto aggiorna la lista cumulativa dei file di produzione, includendo le
due nuove traduzioni. `FILES_PRODUZIONE_61D1.txt` elenca i soli tre file applicativi
nuovi/modificati di questa patch; devono essere presi dal locale collaudato.
Al rilascio completo usare File Manager/FTP e phpMyAdmin, senza SSH o Terminal.
Dopo il caricamento, svuotare i file compilati in `storage/framework/views`,
conservando `.gitignore`. Non caricare test, marcatori, backup o l'installer in
pubblico. Il piano cumulativo 61D rimane valido per tutte le altre operazioni.

## Ripristino locale

Conservare la directory estratta e il percorso backup stampato dall'installer.
Dal progetto, per ripristinare la sola 61D1:

```bash
bash /percorso/patch-estratta/rollback.sh ~/progetti/dpass
```

È ammesso un secondo argomento con il percorso backup completo. Il rollback
verifica gli hash prima di ripristinare e non tocca mai il database.
Non usarlo per rimuovere la 61D o altri aggiornamenti.
