feat(sprint-6): Phase 3 — Stripe integration (SEPA + PayPal + Card)
- V7 migration: subscriptions table with plan tiers - Subscription entity + PlanTier/SubscriptionStatus enums - StripeService: customer creation, checkout, portal, webhook handling - SubscriptionController: /api/v1/billing endpoints - Webhook handler: invoice.paid, payment_failed, subscription.deleted/updated - Plan enforcement: member limit interceptor, trial expiry check - Frontend: /settings/billing page (plan card, usage, upgrade, portal link) - Trial expired banner on all admin pages - React Query hooks (useSubscriptionQuery, checkout/portal mutations) - Stripe Java SDK 28.2.0 - Full i18n (de/en) for billing namespace
This commit is contained in:
@@ -370,5 +370,34 @@
|
||||
"deleteButton": "Permanently delete account",
|
||||
"deleteConfirm": "Are you sure? This action cannot be undone.",
|
||||
"deleteSuccess": "Your account has been deleted. You will now be logged out."
|
||||
},
|
||||
"billing": {
|
||||
"title": "Plan & Billing",
|
||||
"currentPlan": "Current Plan",
|
||||
"trial": "Free Trial",
|
||||
"starter": "Starter",
|
||||
"pro": "Pro",
|
||||
"enterprise": "Enterprise",
|
||||
"trialEnds": "Trial ends on {date}",
|
||||
"trialExpired": "Your trial has expired. Choose a plan to continue.",
|
||||
"trialDaysLeft": "{days} days remaining",
|
||||
"memberLimit": "Member limit",
|
||||
"membersUsed": "{used} / {limit} members",
|
||||
"price": "{price}/month",
|
||||
"nextBilling": "Next billing date",
|
||||
"upgrade": "Upgrade plan",
|
||||
"manageBilling": "Manage payment details",
|
||||
"invoices": "Invoices",
|
||||
"noInvoices": "No invoices yet.",
|
||||
"starterDesc": "For small clubs up to 30 members",
|
||||
"proDesc": "For growing clubs up to 100 members",
|
||||
"enterpriseDesc": "For large clubs — unlimited members",
|
||||
"starterPrice": "€19",
|
||||
"proPrice": "€49",
|
||||
"enterprisePrice": "On request",
|
||||
"selectPlan": "Select plan",
|
||||
"active": "Active",
|
||||
"pastDue": "Past due",
|
||||
"canceled": "Canceled"
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user