# Architettura Complessiva Questa pagina collega i moduli principali del progetto in una vista unica, partendo dal launcher fino ai moduli GUI e al livello infrastrutturale async/DB. ## Vista architetturale ```{mermaid} flowchart TD Main["main.py"] --> Launcher["Launcher"] Main --> Loop["async_loop_singleton.get_global_loop()"] Main --> DB["AsyncMSSQLClient"] Launcher --> Reset["reset_corsie.py"] Launcher --> Layout["layout_window.py"] Launcher --> Ghost["view_celle_multiple.py"] Launcher --> Search["search_pallets.py"] Launcher --> Picking["gestione_pickinglist.py"] Reset --> Runner["gestione_aree_frame_async.AsyncRunner"] Layout --> Runner Ghost --> Runner Search --> Runner Picking --> Runner Runner --> Loop Runner --> DB Picking --> SP["prenota_sprenota_sql.py"] SP --> DB DB --> SQL["SQL Server / Mediseawall"] ``` ## Flusso applicativo generale ```{mermaid} flowchart LR User["Utente"] --> MainWin["Launcher"] MainWin --> Module["Finestra modulo"] Module --> AsyncReq["AsyncRunner.run(...)"] AsyncReq --> DbClient["AsyncMSSQLClient"] DbClient --> SqlServer["Database SQL Server"] SqlServer --> Callback["Callback _ok/_err"] Callback --> Module ``` ## Osservazioni - `main.py` centralizza il loop asincrono e il client database condiviso. - I moduli GUI si concentrano sulla UI e delegano query e task lunghi a `AsyncRunner`. - `gestione_pickinglist.py` è l'unico modulo che passa anche da `prenota_sprenota_sql.py` per la logica di prenotazione. - La cartella `docs/flows/` contiene la vista dettagliata modulo per modulo.