'decimal:2', 'confirmed_at' => 'datetime', ]; public const STATI = [ 'bozza' => 'Bozza', 'inviato' => 'Inviato', 'in_lavorazione' => 'In lavorazione', 'chiuso' => 'Chiuso', ]; public function cliente(): BelongsTo { return $this->belongsTo(Cliente::class); } public function items(): HasMany { return $this->hasMany(PreventivoItem::class); } /** Ricalcola e salva il totale dagli item. */ public function ricalcolaTotale(): void { $this->totale = $this->items()->sum('prezzo_totale'); $this->save(); } /** Numero progressivo assegnato alla conferma (max+1). */ public static function prossimoNumero(): int { return (int) static::max('numero') + 1; } }