'Pulsanti con icona, una scelta', 'multipla' => 'Pulsanti con icona, più scelte (anche nessuna)', 'select' => 'Menu a tendina', 'nessuna' => 'Nessuno: solo prezzo (es. tipo finitura)', ]; public const SEZIONI = [ 'sistema' => 'Sistema (telaio, apertura...)', 'accessori' => 'Accessori (maniglia, cerniere...)', ]; protected $fillable = ['codice', 'etichetta', 'ui', 'sezione', 'modulo', 'ordine']; protected $casts = ['ordine' => 'integer']; public function opzioni(): HasMany { return $this->hasMany(Opzione::class, 'gruppo', 'codice'); } /** @return Collection per codice, nell'ordine del menu */ public static function perCodice(): Collection { return static::query()->orderBy('ordine')->orderBy('id')->get()->keyBy('codice'); } /** @return array codice => etichetta */ public static function etichette(): array { return static::query()->orderBy('ordine')->orderBy('id')->pluck('etichetta', 'codice')->all(); } public function haControllo(): bool { return $this->ui !== 'nessuna'; } }