Refactor code structure for improved readability and maintainability

This commit is contained in:
2026-10-19 16:25:15 +02:00
parent 2ed2c0389d
commit a8aa6d9927
50 changed files with 1164 additions and 8 deletions
@@ -0,0 +1,50 @@
<?php
namespace Database\Seeders;
use App\Models\Modello;
use App\Models\Sistema;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\Storage;
/**
* Anagrafica iniziale di sistemi e modelli. Idempotente: crea solo i record
* mancanti, senza sovrascrivere le modifiche fatte dal pannello admin.
*/
class CatalogoSeeder extends Seeder
{
public function run(): void
{
$pvc = Sistema::firstOrCreate(['codice' => 'pvc'], ['nome' => 'PVC', 'ordine' => 1]);
$this->seedModelli($pvc, require __DIR__.'/data/modelli_pvc.php');
}
private function seedModelli(Sistema $sistema, array $modelli): void
{
foreach ($modelli as $ordine => $dati) {
$modello = Modello::firstOrCreate(
['sistema_id' => $sistema->id, 'codice' => $dati['codice']],
$dati + ['ordine' => $ordine + 1]
);
if (! $modello->icona) {
$modello->icona = $this->copiaIcona($sistema->codice, $modello->codice);
$modello->save();
}
}
}
private function copiaIcona(string $sistema, string $codice): ?string
{
$sorgente = __DIR__."/data/icone/{$sistema}/{$codice}.jpg";
if (! is_file($sorgente)) {
return null;
}
$destinazione = "modelli/icone/{$sistema}/{$codice}.jpg";
Storage::disk('public')->put($destinazione, file_get_contents($sorgente));
return $destinazione;
}
}