/** * Zentraler Abgleich Vereins-Kontingente nach API-Responses. * * Backend-Standard: Jeder Endpoint mit Verbrauch liefert ``feature_usage`` * (siehe club_features.consume_club_feature_with_usage). ``request()`` in * client.js ruft syncFeatureUsageFromApiResponse() — UI-Komponenten müssen * nichts Einzelnes tun. */ let usageHandler = null export function registerFeatureUsageSyncHandler(handler) { usageHandler = typeof handler === 'function' ? handler : null } export function unregisterFeatureUsageSyncHandler() { usageHandler = null } /** Wird von request() nach jedem erfolgreichen JSON-Response aufgerufen. */ export function syncFeatureUsageFromApiResponse(data) { if (!data || typeof data !== 'object' || !data.feature_usage) return if (typeof usageHandler === 'function') { usageHandler(data) } }