# 🚀 **SCRIPT AUTOMATICI IMPORT NETGESCON** ## 📋 **OVERVIEW** Script Node.js per automatizzare l'import dei dati dal vecchio sistema Gescon a NetGescon tramite API. --- ## 🔧 **SETUP** ### 1. **Prerequisiti** ```bash # Installa Node.js e npm node --version # >= 14.0.0 npm --version # >= 6.0.0 # Installa dipendenze npm install axios ``` ### 2. **Configurazione** ```bash # Copia file environment cp .env.example .env # Modifica configurazione API nano .env ``` ### 3. **Variabili Environment** ```bash NETGESCON_API_URL=http://localhost:8000/api/v1 NETGESCON_EMAIL=admin@netgescon.local NETGESCON_PASSWORD=your_password ``` --- ## 🎯 **SCRIPT DISPONIBILI** ### **validation-checker.js** Validazione preliminare dati senza import ```bash # Esecuzione node validation-checker.js # Output - validation-report-{timestamp}.json - Log validazione su console ``` ### **import-runner.js** Import automatico completo via API ```bash # Solo validazione (no import) node import-runner.js --validate-only # Import solo amministratori node import-runner.js --step=admin # Import solo stabili node import-runner.js --step=stabili # Import completo node import-runner.js ``` --- ## 📊 **PROCESSO STEP-BY-STEP** ### **Step 1: Validazione Pre-Import** ```bash # Controlla tutti i dati prima di iniziare node validation-checker.js ``` **Controlla:** - Formati codici fiscali - Validità email e PEC - Formati IBAN - CAP e province italiane - Riferimenti incrociati amministratori-stabili ### **Step 2: Test Validazione API** ```bash # Test chiamata API senza modifiche node import-runner.js --validate-only ``` **Verifica:** - Connessione API - Autenticazione - Validazione remota dati - Mappatura campi corretta ### **Step 3: Import Amministratori** ```bash # Import solo amministratori node import-runner.js --step=admin ``` **Risultato:** - Creazione utenti sistema - Assegnazione ruoli - Generazione password temporanee ### **Step 4: Import Stabili** ```bash # Import stabili (dopo amministratori) node import-runner.js --step=stabili ``` **Risultato:** - Creazione stabili - Collegamento amministratori - Configurazione dati bancari --- ## 📁 **FILE GENERATI** ### **Log Files** - `import.log` - Log dettagliato operazioni - `validation-report-{timestamp}.json` - Report validazione - `import-report-{timestamp}.json` - Report import finale ### **Struttura Log** ``` [2025-01-08T10:30:15.123Z] [INFO] Avvio import... [2025-01-08T10:30:16.456Z] [INFO] Login API completato [2025-01-08T10:30:17.789Z] [INFO] Amministratori importati: 1 [2025-01-08T10:30:18.012Z] [ERROR] Errore validazione stabile... ``` --- ## 🔍 **MONITORING E DEBUG** ### **Verifica Stato** ```bash # Durante import - altro terminale tail -f import.log # Controlla API server curl http://localhost:8000/api/v1/auth/login ``` ### **Recovery da Errori** ```bash # Re-run solo step falliti node import-runner.js --step=stabili # Debug modalità DEBUG_MODE=true node import-runner.js --validate-only ``` --- ## ⚡ **ESEMPI USO** ### **Workflow Completo** ```bash # 1. Validazione locale node validation-checker.js # 2. Test API node import-runner.js --validate-only # 3. Import step-by-step node import-runner.js --step=admin node import-runner.js --step=stabili # 4. Verifica risultati grep "importati" import.log ``` ### **Solo Validazione** ```bash # Controllo rapido dati node validation-checker.js | grep ERROR # Test connessione API node import-runner.js --validate-only --step=admin ``` --- ## 🔧 **TROUBLESHOOTING** ### **Errori Comuni** #### **Connection Refused** ```bash # Verifica server Laravel attivo php artisan serve --host=0.0.0.0 --port=8000 # Test connessione curl http://localhost:8000/api/v1/auth/login ``` #### **Authentication Failed** ```bash # Verifica credenziali in .env cat .env | grep NETGESCON_ # Test login manuale curl -X POST http://localhost:8000/api/v1/auth/login \ -H "Content-Type: application/json" \ -d '{"email":"admin@netgescon.local","password":"password"}' ``` #### **Validation Errors** ```bash # Controlla dettagli errori node validation-checker.js > validation-output.txt grep "ERROR" validation-output.txt # Fix dati in JSON files nano ../01-GESCON/amministratori.json ``` --- ## 📈 **PERFORMANCE** ### **Tempi Stimati** - Validazione: ~5 secondi - Import 1 amministratore: ~2 secondi - Import 7 stabili: ~10 secondi - **Totale**: ~20 secondi ### **Ottimizzazione** - Batch size: 50 record/volta - Timeout: 30 secondi/richiesta - Retry: 3 tentativi automatici --- ## 🔒 **SICUREZZA** ### **Best Practices** - Password sicure in .env (non committare) - Token API con scadenza - Log senza dati sensibili - Backup prima import ### **Rollback** ```sql -- In caso di problemi DELETE FROM stabili WHERE created_at > '2025-01-08 10:30:00'; DELETE FROM users WHERE email LIKE '%@import.temp'; ``` --- ## 🎯 **NEXT STEPS** Dopo import amministratori e stabili: 1. Import unità immobiliari 2. Import anagrafica condomini 3. Import dati contabilità 4. Verifica integrità finale