netgescon-day0/docs/00-IMPORT/03-SCRIPTS/README-SCRIPTS.md

264 lines
5.0 KiB
Markdown

# 🚀 **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