<?php

namespace App\Console\Seeders;

use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;
use App\Models\Amministratore;
use App\Models\User;
use App\Models\Stabile;

class AmministratoriSeeder extends Seeder
{
    /**
     * Seeder per amministratori con codici alfanumerici e sistema multi-database.
     */
    public function run(): void
    {
        $this->command->info('Creazione amministratori di test...');

        // Amministratore 1 - Con database dedicato
        $admin1 = Amministratore::create([
            'ragione_sociale' => 'Studio Amministrativo Rossi & Associati',
            'nome' => 'Mario',
            'cognome' => 'Rossi',
            'codice_fiscale' => 'RSSMRA70A01H501X',
            'partita_iva' => '12345678901',
            'email' => 'mario.rossi@studiorossi.it',
            'telefono' => '06-12345678',
            'cellulare' => '335-1234567',
            'indirizzo' => 'Via Roma 123',
            'cap' => '00100',
            'citta' => 'Roma',
            'provincia' => 'RM',
            'database_attivo' => true,
            'commissione_percentuale' => 2.50,
            'costo_fisso_mensile' => 150.00,
            'stato' => 'attivo',
            'data_inizio_attivita' => '2024-01-01',
        ]);

        // Amministratore 2 - Database condiviso
        $admin2 = Amministratore::create([
            'ragione_sociale' => 'Amministrazioni Bianchi SRL',
            'nome' => 'Laura',
            'cognome' => 'Bianchi',
            'codice_fiscale' => 'BNCLRA80B02H501Y',
            'partita_iva' => '09876543210',
            'email' => 'laura.bianchi@ammbianchi.it',
            'telefono' => '06-87654321',
            'cellulare' => '339-9876543',
            'indirizzo' => 'Via Milano 456',
            'cap' => '00200',
            'citta' => 'Roma',
            'provincia' => 'RM',
            'database_attivo' => false,
            'commissione_percentuale' => 3.00,
            'costo_fisso_mensile' => 100.00,
            'stato' => 'attivo',
            'data_inizio_attivita' => '2024-06-01',
        ]);

        $this->command->info("Creati amministratori:");
        $this->command->info("- {$admin1->ragione_sociale} (Codice: {$admin1->codice_amministratore})");
        $this->command->info("- {$admin2->ragione_sociale} (Codice: {$admin2->codice_amministratore})");

        // Crea stabili di test per i due amministratori
        $this->createStabiliPerAmministratori($admin1, $admin2);

        $this->command->info('Seeder AmministratoriSeeder completato con successo!');
    }

    private function createStabiliPerAmministratori($admin1, $admin2)
    {
        // Stabili per Amministratore 1
        Stabile::create([
            'amministratore_id' => $admin1->id,
            'denominazione' => 'Condominio Villa Roma',
            'indirizzo' => 'Via del Corso 100',
            'cap' => '00186',
            'citta' => 'Roma',
            'provincia' => 'RM',
            'codice_fiscale' => 'VLRM001234567890',
            'stato' => 'attivo',
        ]);

        Stabile::create([
            'amministratore_id' => $admin1->id,
            'denominazione' => 'Condominio Sole Nascente',
            'indirizzo' => 'Via Nazionale 250',
            'cap' => '00184',
            'citta' => 'Roma',
            'provincia' => 'RM',
            'codice_fiscale' => 'SLNS001234567891',
            'stato' => 'attivo',
        ]);

        // Stabili per Amministratore 2
        Stabile::create([
            'amministratore_id' => $admin2->id,
            'denominazione' => 'Condominio Verde Pineta',
            'indirizzo' => 'Via Tiburtina 500',
            'cap' => '00159',
            'citta' => 'Roma',
            'provincia' => 'RM',
            'codice_fiscale' => 'VRDP001234567892',
            'stato' => 'attivo',
        ]);

        $this->command->info("Creati stabili di test per entrambi gli amministratori");
    }
}
