Files
kreios/backoffice/app/Models/Concerns/HaImmaginiCatalogo.php
carmine.savino 06617a985a feat: add previous configuration handling for user selections in quotes
- Implemented session storage management for the last configuration choices made by the user.
- Added functionality to prompt users when changing models to retain their previous selections.
- Introduced methods to apply previous choices to the newly loaded model, including finishes, handles, glass types, and options.
- Enhanced user experience by ensuring selections are automatically applied where applicable.
2026-10-19 19:49:44 +02:00

32 lines
991 B
PHP

<?php
namespace App\Models\Concerns;
use Illuminate\Support\Facades\Storage;
/**
* Immagini del configuratore salvate sul disco public: rimuove i file sostituiti o del
* record eliminato. Ogni record ha percorsi propri, quindi nessun file è condiviso.
*
* Il modello dichiara le colonne con `protected static array $immagini = [...]`.
*/
trait HaImmaginiCatalogo
{
protected static function bootHaImmaginiCatalogo(): void
{
static::updated(function ($record): void {
foreach (static::$immagini as $colonna) {
$vecchia = $record->getOriginal($colonna);
if ($record->wasChanged($colonna) && $vecchia) {
Storage::disk('public')->delete($vecchia);
}
}
});
static::deleted(function ($record): void {
$file = array_filter(array_map(fn ($c) => $record->{$c}, static::$immagini));
Storage::disk('public')->delete($file);
});
}
}