# 🔑 NetGesCon Laravel - Credenziali di Test e Sviluppo

**⚠️ ATTENZIONE: Solo per ambienti di sviluppo e test. Non utilizzare mai in produzione!**

## 🎯 Credenziali Principali (da TestSetupSeeder)

### 👑 Super Amministratore
- **Email**: `superadmin@example.com`
- **Password**: `password`
- **Nome**: Super Admin
- **Ruolo**: `super-admin`
- **Permessi**: Tutti i permessi del sistema

### 🏢 Amministratore (Mario Rossi)
- **Email**: `admin@example.com`
- **Password**: `password`
- **Nome**: Amministratore Test
- **Studio**: Studio Rossi Amministrazioni
- **P.IVA**: 12345678901
- **CF Studio**: RSSMRA80A01H501K
- **Indirizzo**: Via Roma 10, 00100 Roma (RM)
- **Telefono**: 061234567
- **Email Studio**: studio.rossi@example.com
- **PEC**: studio.rossi@pec.it
- **Ruolo**: `amministratore`

## 👥 Soggetti di Test

### 👤 Giuseppe Verdi (Proprietario)
- **Email**: `proprietario1@example.com`
- **Password**: `password`
- **CF**: VRDGPP80A01H501A
- **Proprietà**: Unità 1 (100%), Unità 2 (nudo proprietario)

### 👤 Maria Bianchi (Proprietario)
- **Email**: `proprietario2@example.com`
- **Password**: `password`
- **CF**: BNCMRA85B02H502B
- **Proprietà**: Unità 2 (usufruttuario)

### 👤 Luca Neri (Inquilino)
- **Email**: `inquilino@example.com`
- **Password**: `password`
- **CF**: NRELCA90C03H503C
- **Unità**: Unità 1 (dal 15/06/2023)

## 🏠 Stabile di Test

### Stabile Test Via Milano 1
- **Denominazione**: Stabile Test Via Milano 1
- **Indirizzo**: Via Milano 1, 20100 Milano (MI)
- **CF**: CNDMLN00001A001A
- **Amministratore**: Mario Rossi

#### Unità Immobiliari:
- **Unità 1**: Scala A, Interno 1, Piano 1, 4.5 vani, 80.5 mq
- **Unità 2**: Scala A, Interno 2, Piano 1, 3.5 vani, 70.0 mq

## 🔧 Utenti Aggiuntivi (Popolati automaticamente dal TestSetupSeeder)

### 👥 Utenti Aggiuntivi Disponibili:

#### 🤝 Collaboratore
- **Email**: `collaboratore@example.com`
- **Password**: `password`
- **Nome**: Marco Collaboratore
- **Ruolo**: `collaboratore`
- **Permessi**: Visualizzazione stabili, soggetti, fornitori, unità immobiliari

#### 🏠 Condomini Aggiuntivi
- **Email**: `condomino1@example.com` / **Password**: `password`
  - **Nome**: Anna Condomina
  - **Ruolo**: `condomino`
- **Email**: `condomino2@example.com` / **Password**: `password`
  - **Nome**: Paolo Proprietario  
  - **Ruolo**: `condomino`

#### 🔧 Fornitori di Servizi
- **Email**: `fornitore@example.com` / **Password**: `password`
  - **Nome**: Ditta Pulizie Srl
  - **Ruolo**: `fornitore`
- **Email**: `elettricista@example.com` / **Password**: `password`
  - **Nome**: Elettro Service
  - **Ruolo**: `fornitore`

#### ⚙️ Servizi Tecnici
- **Email**: `ascensori@example.com` / **Password**: `password`
  - **Nome**: Manutenzione Ascensori
  - **Ruolo**: `servizi`
- **Email**: `caldaie@example.com` / **Password**: `password`
  - **Nome**: Assistenza Caldaie
  - **Ruolo**: `servizi`

#### 👤 Utente Ospite
- **Email**: `ospite@example.com`
- **Password**: `password`
- **Nome**: Utente Ospite
- **Ruolo**: `ospite`
- **Permessi**: Sola lettura stabili

#### 🔌 Utenti API
- **Email**: `api@example.com` / **Password**: `api_password_123`
  - **Nome**: API User
  - **Ruolo**: `api` - Accesso completo API
- **Email**: `api-readonly@example.com` / **Password**: `readonly_123`
  - **Nome**: API Read Only
  - **Ruolo**: `api-readonly` - Solo lettura API

### Ruoli Disponibili:
- `super-admin` - Accesso completo sistema
- `amministratore` - Gestione condominiale completa
- `collaboratore` - Collaboratore amministratore con permessi limitati
- `condomino` - Proprietari/inquilini con accesso ai propri dati
- `fornitore` - Fornitori di servizi
- `servizi` - Servizi tecnici
- `ospite` - Accesso in sola lettura
- `api` - Utente API con accesso completo
- `api-readonly` - Utente API solo lettura

## 🔄 Comandi per Reset

### Reset Database Completo
```bash
php artisan migrate:fresh --seed
```

### Solo TestSetupSeeder (Raccomandato)
```bash
php artisan db:seed --class=TestSetupSeeder
```

### Verifica Utenti e Ruoli
```bash
php artisan tinker
User::with('roles')->get(['name', 'email'])
Role::with('permissions')->get(['name', 'description'])
```

### Conteggio Utenti per Ruolo
```bash
php artisan tinker
User::with('roles')->get()->groupBy(function($u) { return $u->roles->pluck('name')->implode(', ') ?: 'No role'; })->each(function($users, $role) { echo $role . ': ' . $users->count() . PHP_EOL; });
```

## 🔗 Link Utili
- **Admin Dashboard**: http://localhost:8000/admin
- **SuperAdmin Dashboard**: http://localhost:8000/superadmin
- **Login**: http://localhost:8000/login

## ✅ Stato Sistema
- **Database**: ✅ Completamente popolato
- **Utenti**: ✅ Tutti i ruoli creati (15+ utenti di test)
- **Permessi**: ✅ Sistema granulare implementato
- **Localizzazione**: ✅ Interfaccia completamente in italiano
- **Seeder**: ✅ TestSetupSeeder operativo e stabile

---
📅 **Aggiornato**: 9 Luglio 2025  
🔗 **Riferimento**: `database/seeders/TestSetupSeeder.php`  
📊 **Status**: Sistema pronto per sviluppo e test
