# Verifiche e limiti — 61D2

## Base e ambiente
Sorgenti ricostruiti dallo ZIP di progetto ricevuto con applicazione dei payload 61C, 61C1, 61D e 61D1. Nessun accesso ai sistemi o database dell'utente. Preparazione con PHP 8.4.23 (il target dichiarato resta PHP >= 8.3).

## Test effettivamente eseguiti
- Nuova suite `FacilityDailyBookingsSmoke.php`: **135 controlli** nella modalità database, inclusi i **41 controlli** senza database. Importi 1/2/3/7 giorni, prezzi sotto tetto, minimi/scaglioni, massimale legacy, pause, varianti di calendario e periodi misti, ambiguità, cortesia unica e standalone, timestamp e cambi d'ora, giorni frazionari/alterati/oltre limite, storico per tariffa/targa/tenant, storage UTC e festività locali, borsellino, singolo titolo/addebito, disponibilità sul giorno di ingresso, idempotenza, conferma diretta e snapshot già avviati, controller e Blade IT/EN.
- Regressione 61D `FacilityBookingsSmoke.php`: **90 controlli**, con HTTP PayPal simulato, compresa verifica di webhook con chiave effimera di test. Nessun contatto con PayPal reale.
- Regressione 61D1 menu utente: **45 controlli**; 61C1 branding/menu: **46 controlli**; 61C operatività: **16 controlli**. Dati sintetici, nessun database operativo.
- Chromium di sistema, via Playwright, a 1440 e 390 pixel: form, preventivo, elenco, dettaglio e nuove etichette EN. Passaggi giorni/minuti/fisso, input disabilitati esclusi dal FormData, massimo configurato, blocco sotto 24 ore, valori oltre massimo, preview nel fuso del Comune anche con browser in America/New_York. Nessun errore JavaScript e nessuno sbordamento orizzontale di pagina rilevato; screenshot esaminati.
- Controllo sintattico PHP e integrità SHA-256 del pacchetto; controllo dei percorsi cumulativi. Il file SQL cumulativo è identico byte per byte alla 61D.

## Precisazione sul database dei test di preparazione
Nell'ambiente di preparazione non è installato il driver **pdo_sqlite**. Le suite database sono state eseguite con il vero motore **libsqlite3 in memoria**, tramite un piccolo adattatore PDO/FFI usato soltanto per l'analisi. Non è un test del driver PDO nativo e non riproduce blocchi/concorrenza di MySQL. L'adattatore NON è distribuito e NON è installato nel progetto utente.

L'installer della patch esegue invece i test database solo quando **pdo_sqlite nativo** è disponibile sul locale. Altrimenti segnala esplicitamente il salto della parte database. Non si tenta mai una connessione al database indicato nel `.env` per questi test.

La suite completa Pest non è stata eseguita: nell'ambiente di preparazione manca anche l'estensione DOM richiesta dal runner. Sono state usate le suite standalone mirate sopra riportate; non dichiarare un collaudo integrale dell'applicazione.

## Limiti residui
Non sono stati eseguiti PHP 8.3, MySQL 5.7/8, reali pagamenti sandbox/produzione, prove multi-processo sull'ultimo ingresso o importazioni SQL nei database di produzione. Servono il collaudo locale nel tuo ambiente e una prova PayPal sandbox reale prima del rilascio. Le funzionalità di pagamento e prenotazione precedenti non vengono riscritte.

Non si ricostruiscono retroattivamente periodi economici mai registrati per titoli storici: si usano le componenti/timestamp già presenti o l'importo registrato all'inizio del vecchio titolo. Gli importi già incassati non vengono modificati. I nuovi titoli registrano esplicitamente le quote per periodo nello snapshot JSON già esistente.

I contatori giornalieri restano contatori di nuovi ingressi, non di occupazione fisica o giornate impegnate. Nessun pagamento all'uscita, proroga giornaliera o nuovo provider in questa patch.

## Scenari installer
Vedere `VERIFICHE_INSTALLER.json` per gli scenari effettivamente eseguiti sul pacchetto finale. I test usano una copia locale sintetica, non il progetto/DB dell'utente.
