/** * MyEasyCMS Billing Configuration * * Four tiers based on club/organization size: * Starter — 29 €/mo (up to 250 members) * Pro — 59 €/mo (up to 1.000 members) * Verband — 199 €/mo (up to 10.000 members, multi-level hierarchy) * Enterprise — 349 €/mo (unlimited, dedicated support) * * Yearly plans get ~2 months free (billed annually). */ import { BillingProviderSchema, createBillingSchema } from '@kit/billing'; const provider = BillingProviderSchema.parse( process.env.NEXT_PUBLIC_BILLING_PROVIDER, ); export default createBillingSchema({ provider, products: [ // ── Starter ────────────────────────────────────────────── { id: 'starter', name: 'Starter', description: 'Für kleine Vereine bis 250 Mitglieder', currency: 'EUR', badge: 'Einstieg', plans: [ { name: 'Starter Monatlich', id: 'starter-monthly', paymentType: 'recurring', interval: 'month', lineItems: [ { id: 'price_starter_monthly', name: 'Starter', cost: 29, type: 'flat' as const, }, ], }, { name: 'Starter Jährlich', id: 'starter-yearly', paymentType: 'recurring', interval: 'year', lineItems: [ { id: 'price_starter_yearly', name: 'Starter', cost: 290, type: 'flat' as const, }, ], }, ], features: [ 'Bis zu 250 Mitglieder', 'Mitgliederverwaltung', 'SEPA-Lastschrifteinzug', 'Veranstaltungsmanagement', 'Vereins-Website (Baukasten)', 'Newsletter-Versand', 'Dokumenten-Generator', 'E-Mail-Support', ], }, // ── Pro ─────────────────────────────────────────────────── { id: 'pro', name: 'Pro', badge: 'Beliebt', highlighted: true, description: 'Für aktive Vereine bis 1.000 Mitglieder', currency: 'EUR', plans: [ { name: 'Pro Monatlich', id: 'pro-monthly', paymentType: 'recurring', interval: 'month', lineItems: [ { id: 'price_pro_monthly', name: 'Pro', cost: 59, type: 'flat' as const, }, ], }, { name: 'Pro Jährlich', id: 'pro-yearly', paymentType: 'recurring', interval: 'year', lineItems: [ { id: 'price_pro_yearly', name: 'Pro', cost: 590, type: 'flat' as const, }, ], }, ], features: [ 'Bis zu 1.000 Mitglieder', 'Alles aus Starter', 'Kursverwaltung (VHS-Modus)', 'Buchungssystem (Räume & Gäste)', 'Rechnungswesen & Mahnungen', 'Unbegrenzte Benutzer', 'Benutzerdefinierte Module', 'Telefon-Support', ], }, // ── Verband ────────────────────────────────────────────── { id: 'verband', name: 'Verband', badge: 'Verbände', description: 'Für Verbände und Dachorganisationen', currency: 'EUR', plans: [ { name: 'Verband Monatlich', id: 'verband-monthly', paymentType: 'recurring', interval: 'month', lineItems: [ { id: 'price_verband_monthly', name: 'Verband', cost: 199, type: 'flat' as const, }, ], }, { name: 'Verband Jährlich', id: 'verband-yearly', paymentType: 'recurring', interval: 'year', lineItems: [ { id: 'price_verband_yearly', name: 'Verband', cost: 1990, type: 'flat' as const, }, ], }, ], features: [ 'Bis zu 10.000 Mitglieder', 'Alles aus Pro', 'Mehrebenen-Verbandshierarchie', 'Verbandsweite Mitgliedersuche', 'Geteilte Vorlagen & Events', 'Verbands-Berichtswesen', 'Fischerei-Modul (optional)', 'Sitzungsprotokolle (optional)', 'Prioritäts-Support', ], }, // ── Enterprise ─────────────────────────────────────────── { id: 'enterprise', name: 'Enterprise', description: 'Für große Organisationen mit individuellen Anforderungen', currency: 'EUR', plans: [ { name: 'Enterprise Monatlich', id: 'enterprise-monthly', paymentType: 'recurring', interval: 'month', lineItems: [ { id: 'price_enterprise_monthly', name: 'Enterprise', cost: 349, type: 'flat' as const, }, ], }, { name: 'Enterprise Jährlich', id: 'enterprise-yearly', paymentType: 'recurring', interval: 'year', lineItems: [ { id: 'price_enterprise_yearly', name: 'Enterprise', cost: 3490, type: 'flat' as const, }, ], }, ], features: [ 'Unbegrenzte Mitglieder', 'Alles aus Verband', 'Dedizierte Infrastruktur', 'Individuelle Modulentwicklung', 'SLA & Uptime-Garantie', 'Persönlicher Account-Manager', 'Onboarding & Schulung', 'API-Zugang', 'Datenmigration inklusive', ], }, ], });