*/ public static function defaults(): array { $defaults = []; foreach (EventPaymentModuleRegistry::all() as $slug => $module) { $defaults[$slug] = ['name' => $module->defaultName(), 'description' => $module->defaultDescription()]; } return $defaults; } /** * Options-Schema für einen Slug. * * @return array */ public static function optionsFor(string $slug): array { return EventPaymentModuleRegistry::forSlug($slug)?->getOptions() ?? []; } /** * Namen aller Pflicht-Optionen eines Slugs. * * @return array */ public static function requiredOptionKeys(string $slug): array { return EventPaymentModuleRegistry::forSlug($slug)?->requiredOptionKeys() ?? []; } /** * Reduziert eine Konfiguration auf die im Schema definierten Options-Keys des Slugs. * * @param array $config * @return array */ public static function sanitizeConfiguration(string $slug, array $config): array { return EventPaymentModuleRegistry::forSlug($slug)?->sanitizeConfiguration($config) ?? []; } /** * Prüft, ob alle Pflicht-Optionen eines Slugs in der Konfiguration befüllt (non-empty) sind. * Unbekannte Slugs (kein Modul) gelten als vollständig -- kein Modul, keine Pflichtfelder. * * @param array $config */ public static function isConfigurationComplete(string $slug, array $config): bool { return EventPaymentModuleRegistry::forSlug($slug)?->isConfigurationComplete($config) ?? true; } }