'fisica', 'cognome' => 'Rossi', 'nome' => 'Mario', 'codice_fiscale' => 'RSSMRA70A01H501Z', 'telefono_principale' => '+393331234567', 'email_principale' => 'mario.rossi@email.it', 'data_nascita' => '1970-01-01', 'residenza_via' => 'Via Roma, 123', 'consenso_privacy' => true, 'modalita_comunicazione_preferita' => 'email' ], [ 'tipologia' => 'fisica', 'cognome' => 'Bianchi', 'nome' => 'Anna', 'codice_fiscale' => 'BNCNNA80B15F205Y', 'telefono_principale' => '+393339876543', 'email_principale' => 'anna.bianchi@gmail.com', 'data_nascita' => '1980-02-15', 'residenza_via' => 'Via Milano, 45', 'consenso_privacy' => true, 'modalita_comunicazione_preferita' => 'whatsapp', 'whatsapp' => '+393339876543' ], [ 'tipologia' => 'fisica', 'cognome' => 'Verdi', 'nome' => 'Giuseppe', 'codice_fiscale' => 'VRDGPP65C10L736X', 'telefono_principale' => '+393355678901', 'email_principale' => 'g.verdi@hotmail.com', 'data_nascita' => '1965-03-10', 'residenza_via' => 'Corso Italia, 67', 'consenso_privacy' => true, 'modalita_comunicazione_preferita' => 'telefono' ], [ 'tipologia' => 'fisica', 'cognome' => 'Ferrari', 'nome' => 'Laura', 'codice_fiscale' => 'FRRLRA75D20H501W', 'telefono_principale' => '+393348765432', 'email_principale' => 'laura.ferrari@libero.it', 'data_nascita' => '1975-04-20', 'residenza_via' => 'Via Garibaldi, 89', 'consenso_privacy' => true, 'modalita_comunicazione_preferita' => 'sms' ], [ 'tipologia' => 'fisica', 'cognome' => 'Conti', 'nome' => 'Roberto', 'codice_fiscale' => 'CNTRBT85E30L219V', 'telefono_principale' => '+393391234567', 'email_principale' => 'roberto.conti@yahoo.it', 'data_nascita' => '1985-05-30', 'residenza_via' => 'Piazza Duomo, 12', 'consenso_privacy' => false, 'modalita_comunicazione_preferita' => 'posta' ] ]; // 2️⃣ PERSONE GIURIDICHE $personeGiuridiche = [ [ 'tipologia' => 'giuridica', 'cognome' => 'Immobiliare', 'nome' => 'Milano', 'ragione_sociale' => 'Immobiliare Milano S.r.l.', 'codice_fiscale' => '12345678901', 'partita_iva' => '12345678901', 'forma_giuridica' => 'S.r.l.', 'telefono_principale' => '+390212345678', 'email_principale' => 'info@immobiliaremilano.it', 'email_pec' => 'immobiliaremilano@pec.it', 'residenza_via' => 'Via Montenapoleone, 1', 'consenso_privacy' => true, 'modalita_comunicazione_preferita' => 'email' ], [ 'tipologia' => 'giuridica', 'cognome' => 'Costruzioni', 'nome' => 'Roma', 'ragione_sociale' => 'Costruzioni Roma S.p.A.', 'codice_fiscale' => '98765432109', 'partita_iva' => '98765432109', 'forma_giuridica' => 'S.p.A.', 'telefono_principale' => '+390687654321', 'email_principale' => 'amministrazione@costruzioniroma.it', 'email_pec' => 'costruzioniroma@pec.it', 'residenza_via' => 'Via del Corso, 234', 'consenso_privacy' => true, 'modalita_comunicazione_preferita' => 'email' ] ]; // 3️⃣ DITTE INDIVIDUALI $ditteIndividuali = [ [ 'tipologia' => 'ditta_individuale', 'cognome' => 'Fontana', 'nome' => 'Marco', 'ragione_sociale' => 'Ditta Individuale Fontana Marco', 'codice_fiscale' => 'FNTMRC78F12L736Z', 'partita_iva' => '11223344556', 'telefono_principale' => '+393357788990', 'email_principale' => 'marco.fontana@business.it', 'data_nascita' => '1978-06-12', 'residenza_via' => 'Via Venezia, 56', 'consenso_privacy' => true, 'modalita_comunicazione_preferita' => 'email' ] ]; // Crea le persone $personeCreate = []; foreach (array_merge($personeFisiche, $personeGiuridiche, $ditteIndividuali) as $datiPersona) { $persona = Persona::create($datiPersona); $personeCreate[] = $persona; echo "✅ Creata persona: {$persona->nome_completo} ({$persona->codice_interno})\n"; } // 4️⃣ AGGIUNGI EMAIL MULTIPLE (solo per alcune persone) $emailAggiuntive = [ ['persona_id' => $personeCreate[0]->id, 'email' => 'mario.rossi.lavoro@azienda.it', 'tipo_email' => 'lavoro'], ['persona_id' => $personeCreate[1]->id, 'email' => 'anna.bianchi.personale@outlook.com', 'tipo_email' => 'personale'], ['persona_id' => $personeCreate[5]->id, 'email' => 'commerciale@immobiliaremilano.it', 'tipo_email' => 'commerciale'], ['persona_id' => $personeCreate[5]->id, 'email' => 'tecnico@immobiliaremilano.it', 'tipo_email' => 'tecnico'], ]; foreach ($emailAggiuntive as $emailData) { PersonaEmailMultipla::create($emailData); } // 5️⃣ COLLEGA PERSONE ALLE UNITÀ IMMOBILIARI (se esistono) $unita = UnitaImmobiliare::limit(10)->get(); // Creo un mapping persona_id => persona per facilitare l'accesso $personeMap = []; foreach ($personeCreate as $persona) { $personeMap[$persona->id] = $persona; } if ($unita->count() > 0) { $relazioniDaCreare = [ // Mario Rossi - Proprietario di due unità ['persona_id' => $personeCreate[0]->id, 'unita_id' => $unita[0]->id ?? null, 'tipo_relazione' => 'proprietario', 'quota_relazione' => 100.00, 'data_inizio' => '2020-01-15'], ['persona_id' => $personeCreate[0]->id, 'unita_id' => $unita[1]->id ?? null, 'tipo_relazione' => 'proprietario', 'quota_relazione' => 50.00, 'data_inizio' => '2021-03-20'], // Anna Bianchi - Comproprietaria ['persona_id' => $personeCreate[1]->id, 'unita_id' => $unita[1]->id ?? null, 'tipo_relazione' => 'comproprietario', 'quota_relazione' => 50.00, 'data_inizio' => '2021-03-20'], // Giuseppe Verdi - Inquilino ['persona_id' => $personeCreate[2]->id, 'unita_id' => $unita[2]->id ?? null, 'tipo_relazione' => 'inquilino', 'quota_relazione' => null, 'data_inizio' => '2023-01-01'], // Laura Ferrari - Usufruttuaria ['persona_id' => $personeCreate[3]->id, 'unita_id' => $unita[3]->id ?? null, 'tipo_relazione' => 'usufruttuario', 'quota_relazione' => null, 'data_inizio' => '2022-06-01'], // Roberto Conti - Delegato Assemblea ['persona_id' => $personeCreate[4]->id, 'unita_id' => $unita[0]->id ?? null, 'tipo_relazione' => 'delegato_assemblea', 'quota_relazione' => null, 'data_inizio' => '2023-12-01', 'vota_assemblea' => true], // Immobiliare Milano - Proprietaria di unità commerciale ['persona_id' => $personeCreate[5]->id, 'unita_id' => $unita[4]->id ?? null, 'tipo_relazione' => 'proprietario', 'quota_relazione' => 100.00, 'data_inizio' => '2019-05-10'], // Marco Fontana - Referente per Costruzioni Roma ['persona_id' => $personeCreate[7]->id, 'unita_id' => $unita[5]->id ?? null, 'tipo_relazione' => 'referente', 'quota_relazione' => null, 'data_inizio' => '2023-01-01'], ]; foreach ($relazioniDaCreare as $relazione) { if ($relazione['unita_id'] && isset($personeMap[$relazione['persona_id']])) { PersonaUnitaRelazione::create([ 'persona_id' => $relazione['persona_id'], 'unita_id' => $relazione['unita_id'], 'tipo_relazione' => $relazione['tipo_relazione'], 'quota_relazione' => $relazione['quota_relazione'], 'data_inizio' => $relazione['data_inizio'], 'attivo' => true, 'riceve_comunicazioni' => true, 'riceve_convocazioni' => in_array($relazione['tipo_relazione'], ['proprietario', 'comproprietario', 'usufruttuario', 'delegato_assemblea']), 'vota_assemblea' => $relazione['vota_assemblea'] ?? in_array($relazione['tipo_relazione'], ['proprietario', 'comproprietario', 'usufruttuario', 'delegato_assemblea']) ]); echo "🔗 Collegata relazione: {$personeMap[$relazione['persona_id']]->nome_completo} -> {$relazione['tipo_relazione']}\n"; } } } echo "\n🎉 Rubrica Unica popolata con successo!\n"; echo "📊 Totale persone create: " . count($personeCreate) . "\n"; echo "📧 Email aggiuntive create: " . count($emailAggiuntive) . "\n"; echo "🔗 Relazioni create: " . (isset($relazioniDaCreare) ? count(array_filter($relazioniDaCreare, fn($r) => $r['unita_id'])) : 0) . "\n"; } }