__('Ohne generative KI erstellt – oder KI nur als Formulierungshilfe, mit anschließender menschlicher Überarbeitung und Verantwortung.'), self::MostlyAi, self::FullyAi => __('Ganz oder überwiegend mit generativer KI erstellt.'), }; } /** * Öffentliches Label in Einreicher-Stimme — null, wenn kein Pflicht-Label * fällig ist ("Ohne KI" wird bewusst nicht als Portal-Aussage zertifiziert, * die Formulierungshilfe entspricht dem Entlastungsfall). */ public function publicLabel(): ?string { return match ($this) { self::None, self::Assisted => null, self::MostlyAi, self::FullyAi => __('KI-generiert: Nach Angaben des einreichenden Unternehmens wurde diese Pressemitteilung ganz oder überwiegend mit generativer KI erstellt.'), }; } /** * Kanonische Formular-Option der Gruppe — mappt Alt-/API-Werte * (assisted, fully_ai) auf die zwei im Modal angebotenen Radios. */ public function formOption(): self { return match ($this) { self::None, self::Assisted => self::None, self::MostlyAi, self::FullyAi => self::MostlyAi, }; } /** * Die zwei im Submit-Modal angebotenen Auswahloptionen. * * @return list */ public static function formCases(): array { return [self::None, self::MostlyAi]; } /** * 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'); } }