diff --git a/app/Services/TenantArchivePathService.php b/app/Services/TenantArchivePathService.php index 017eaa9..a6f8bc2 100755 --- a/app/Services/TenantArchivePathService.php +++ b/app/Services/TenantArchivePathService.php @@ -42,7 +42,7 @@ public function stabileCode(Stabile | string $stabile): string return $code; } - $code = trim((string) ($stabile->codice_stabile ?: $stabile->codice_univoco ?: '')); + $code = trim((string) ($stabile->codice_univoco ?: $stabile->codice_stabile ?: '')); if ($code === '') { throw new InvalidArgumentException('Stabile senza codice archivio canonico.'); diff --git a/directives/ANAGRAFICHE_MAPPING_LEGACY.md b/directives/ANAGRAFICHE_MAPPING_LEGACY.md index a7daaac..d9e2819 100644 --- a/directives/ANAGRAFICHE_MAPPING_LEGACY.md +++ b/directives/ANAGRAFICHE_MAPPING_LEGACY.md @@ -43,12 +43,13 @@ ## 6. Principio di Deterministicità Assoluta (Regola Commercialista) - **Divieto di Fallback o Date Fittizie**: È tassativamente vietato inventare date fittizie (es. `01/01/2000` o `01/01/2026` ripetute) o stimare ruoli non presenti negli archivi MDB. - **Trattamento dati mancanti**: Se una relazione o una data di decorrenza non è presente negli archivi consolidati, il sistema deve riportare unicamente le gestioni storiche certe (es. `Gestioni 0004, 0005, 0909, 0912, 0913, 0914`) oppure restituire `BLOCCO_DATI`. I dati devono essere certificabili e certi al 100%. -## 7. Struttura Cartelle Canonica dello Stabile e Portabilità -- **Codice Canonico Stabile**: Le cartelle fisiche di archivio documenti e backup SQLite sono identificate tassativamente tramite il `codice_stabile` canonico (es. `0021` per Supercondominio Milizie 3). +## 7. Struttura Cartelle Canonica dello Stabile, Codice Univoco e Portabilità +- **Codice Univoco Stabile (Non Legacy)**: Le cartelle fisiche di archivio documenti e backup SQLite sono identificate tassativamente tramite il `codice_univoco` generato dal sistema (es. `HWAGIBXK` o `0000000C`), **mai tramite il codice numerico del legacy** (es. `0001` o `0021`). +- **Motivazione Architetturale**: L'uso del `codice_univoco` evita conflitti sulla stessa macchina nel caso in cui due amministratori differenti abbiano entrambi uno stabile con il medesimo identificativo legacy (es. `0001`), e garantisce la portabilità e l'interconnessione multi-tenant di fornitori, proprietari ed inquilini durante i passaggi di gestione. - **Percorsi Tipo**: - - Cartella Stabile: `storage/app/private/amministratori/{codice_amministratore}/stabili/{codice_stabile}` - - Documenti Stabile: `storage/app/private/amministratori/{codice_amministratore}/stabili/{codice_stabile}/documenti` - - Backup & SQLite: `storage/app/private/amministratori/{codice_amministratore}/stabili/{codice_stabile}/database/backups` + - Cartella Stabile: `storage/app/private/amministratori/{codice_amministratore}/stabili/{codice_univoco}` + - Documenti Stabile: `storage/app/private/amministratori/{codice_amministratore}/stabili/{codice_univoco}/documenti` + - Backup & SQLite: `storage/app/private/amministratori/{codice_amministratore}/stabili/{codice_univoco}/database/backups` ## 8. Architettura Database PostgreSQL e Visualizzatore Web (Stile PhpMyAdmin) - **Database Engine**: PostgreSQL per persistenza strutturale multi-tenant e gestione passaggio gestioni tra amministratori.