__('Originalfoto'), self::AiGenerated => __('KI-generiertes Bild'), self::AiEdited => __('KI-bearbeitetes Bild'), }; } /** * Öffentlicher Bildhinweis direkt am Bild (Badge) — null bei Originalfotos * (keine Nicht-KI-Zertifizierung in Portalstimme). Kurzform „KI-generiert" * statt Satz-Wortlaut (User-Entscheidung 10.07.2026). */ public function publicLabel(): ?string { return match ($this) { self::Original => null, self::AiGenerated => __('KI-generiert'), self::AiEdited => __('KI-bearbeitet'), }; } /** * Optionsliste für Radios/Selects: value => label. * * @return array */ public static function options(): array { $options = []; foreach (self::cases() as $case) { $options[$case->value] = $case->label(); } return $options; } /** * @return list */ public static function values(): array { return array_column(self::cases(), 'value'); } }