'boolean', 'sort_order' => 'integer', ]; /** * Ein gespeicherter Wert als lesbarer Text: der Name des Grundes, sonst der Wert selbst. * * Der ist dann der Freitext von "Anderer Grund" oder stammt aus der Zeit vor der Auswahl -- beides * ist bereits die Antwort auf die Frage und braucht keine Übersetzung. */ public static function text(?string $value): string { return self::find($value)?->name ?? (string) $value; } /** * Optionen für das Frontend. `requiresNote` steuert dort das Freitextfeld. * * @return array */ public static function options(): array { return self::orderBy('sort_order')->get() ->map(static fn (self $reason): array => [ 'value' => $reason->slug, 'label' => $reason->name, 'requiresNote' => $reason->requires_note, ]) ->all(); } }