diff --git a/backend/main.py b/backend/main.py index bb813c5..eed58a4 100644 --- a/backend/main.py +++ b/backend/main.py @@ -408,7 +408,7 @@ async def serve_media(path: str, request: _Request): raise _HE(404, "Nicht gefunden.") return _media_response(filepath) -APP_VER = "971" # muss mit APP_VER in app.js übereinstimmen +APP_VER = "972" # muss mit APP_VER in app.js übereinstimmen @app.get("/.well-known/assetlinks.json") async def assetlinks(): diff --git a/backend/routes/admin.py b/backend/routes/admin.py index 47f363b..86abd4b 100644 --- a/backend/routes/admin.py +++ b/backend/routes/admin.py @@ -1303,7 +1303,7 @@ def _get_discount_info(conn, user_id: int) -> dict: "SELECT is_founder, is_founder_pending FROM users WHERE id=?", (referred_by,) ).fetchone() if referrer and (referrer["is_founder"] or referrer["is_founder_pending"]): - return {"discount_pct": 50, "reason": "referred_by_founder", "referral_count": row["referral_count"]} + return {"discount_pct": 100, "reason": "referred_by_founder", "referral_count": row["referral_count"]} count = row["referral_count"] for threshold, pct in [(50, 50), (20, 30), (10, 20)]: diff --git a/backend/static/js/app.js b/backend/static/js/app.js index f5eac7c..c52569b 100644 --- a/backend/static/js/app.js +++ b/backend/static/js/app.js @@ -3,7 +3,7 @@ Router, State-Management, Navigation, Initialisierung. ============================================================ */ -const APP_VER = '971'; // ← bei jedem Deploy mit Frontend-Änderungen erhöhen +const APP_VER = '972'; // ← bei jedem Deploy mit Frontend-Änderungen erhöhen const APP_VERSION = '1.6.0'; // ← semantische Version, wird bei make release gesetzt const IS_STAGING = location.hostname === 'staging.banyaro.app'; // Cache-Bust-Parameter nach Update-Reload sofort entfernen diff --git a/backend/static/js/pages/admin.js b/backend/static/js/pages/admin.js index d3b5fe3..557dd75 100644 --- a/backend/static/js/pages/admin.js +++ b/backend/static/js/pages/admin.js @@ -3644,7 +3644,7 @@ window.Page_admin = (() => { function _discountNote(reason, count, pct, tierLabel) { const agb = 'Jahresbeitrag gem. AGB. Bei vorzeitiger Kündigung keine anteilige Rückerstattung; Zugang bleibt bis Laufzeitende bestehen.'; if (reason === 'founder') return `Gründer-Sonderkonditionen: ${tierLabel} kostenfrei als Dankeschön für deine Unterstützung als Gründer! ${agb}`; - if (reason === 'referred_by_founder') return `Willkommen in der Gründer-Community! Als persönlich von einem Gründer eingeladenes Mitglied erhältst du dauerhaft ${pct}% Rabatt. ${agb}`; + if (reason === 'referred_by_founder') return `Willkommen in der Gründer-Community! Als persönlich von einem Gründer eingeladenes Mitglied ist dein Jahresabo dauerhaft kostenfrei. ${agb}`; if (reason === 'referral') return `Herzlichen Dank für deine Unterstützung! Für ${count} geworbene Freunde erhältst du ${pct}% Rabatt. ${agb}`; return agb; } diff --git a/backend/static/sw.js b/backend/static/sw.js index 499001b..db77354 100644 --- a/backend/static/sw.js +++ b/backend/static/sw.js @@ -3,7 +3,7 @@ Offline-Cache + Push Notifications + Tile-Cache ============================================================ */ -const CACHE_VERSION = 'by-v971'; +const CACHE_VERSION = 'by-v972'; const CACHE_STATIC = `${CACHE_VERSION}-static`; const CACHE_TILES = 'ban-yaro-tiles-v1'; // bleibt über SW-Updates erhalten const CACHE_API = 'ban-yaro-api-v1'; // API-Response-Cache