'use client' import { Language } from '@/lib/types' import { t } from '@/lib/i18n' import { useFinancialModel } from '@/lib/hooks/useFinancialModel' import GradientText from '../ui/GradientText' import FadeInView from '../ui/FadeInView' import GlassCard from '../ui/GlassCard' import { ArrowRight, TrendingUp, Target, Repeat, DollarSign, Users, BarChart3 } from 'lucide-react' interface BusinessModelSlideProps { lang: Language products?: unknown[] investorId?: string | null } export default function BusinessModelSlide({ lang, investorId }: BusinessModelSlideProps) { const i = t(lang) const de = lang === 'de' const fm = useFinancialModel(investorId || null) const summary = fm.activeResults?.summary const results = fm.activeResults?.results || [] const lastResult = results[results.length - 1] const finalCustomers = summary?.final_customers || 0 const finalArr = summary?.final_arr || 0 const acv = finalCustomers > 0 ? Math.round(finalArr / finalCustomers) : 0 const tiers = [ { name: 'Starter', target: de ? 'Startups & Kleinstunternehmen' : 'Startups & Micro', employees: '< 10', price: de ? '3.600' : '3,600', period: de ? 'EUR/Jahr' : 'EUR/yr', features: de ? ['Code Security (SAST/DAST)', 'Compliance-Dokumente', 'Consent Management', '1 Anwendung'] : ['Code Security (SAST/DAST)', 'Compliance documents', 'Consent management', '1 application'], highlight: false, }, { name: 'Professional', target: de ? 'KMU & Mittelstand' : 'SME & Mid-Market', employees: '10 – 250', price: de ? '15.000 – 40.000' : '15,000 – 40,000', period: de ? 'EUR/Jahr' : 'EUR/yr', features: de ? ['Alle Module inkl. CE-Bewertung', 'Audit Manager End-to-End', 'AI Act Compliance (UCCA)', 'Unbegrenzte Anwendungen'] : ['All modules incl. CE assessment', 'Audit Manager end-to-end', 'AI Act Compliance (UCCA)', 'Unlimited applications'], highlight: true, }, { name: 'Enterprise', target: de ? 'Konzerne & OEMs' : 'Enterprises & OEMs', employees: '250+', price: de ? 'ab 50.000' : 'from 50,000', period: de ? 'EUR/Jahr' : 'EUR/yr', features: de ? ['Dedizierte Instanz', 'Custom Integrationen (SAP, MES)', 'SLA & Priority Support', 'Tender Matching & RFQ-Prüfung'] : ['Dedicated instance', 'Custom integrations (SAP, MES)', 'SLA & priority support', 'Tender matching & RFQ verification'], highlight: false, }, ] const metrics = [ { icon: DollarSign, color: 'text-indigo-400', label: 'ACV', value: de ? '15 – 50k EUR' : '15 – 50k EUR', sub: de ? 'Durchschnittlicher Vertragswert' : 'Average Contract Value' }, { icon: TrendingUp, color: 'text-emerald-400', label: 'Gross Margin', value: '> 80%', sub: de ? 'Cloud-native, keine Hardware-Kosten' : 'Cloud-native, no hardware costs' }, { icon: Repeat, color: 'text-purple-400', label: 'NRR Ziel', value: '> 120%', sub: de ? 'Upsell: mehr Module, mehr Nutzer' : 'Upsell: more modules, more users' }, { icon: Target, color: 'text-amber-400', label: 'Payback', value: de ? '< 3 Monate' : '< 3 Months', sub: de ? 'Ersparnis übersteigt Kosten ab Q1' : 'Savings exceed costs from Q1' }, ] return (
{de ? 'Mitarbeiterbasiertes SaaS — Kunden sparen mehr als sie zahlen' : 'Employee-based SaaS — customers save more than they pay'}
{tier.target}
{tier.employees} {de ? 'Mitarbeiter' : 'employees'}
{m.sub}
{de ? `${finalCustomers.toLocaleString('de-DE')} Kunden × ${acv.toLocaleString('de-DE')} EUR ACV = ~${(finalArr / 1_000_000).toFixed(1).replace('.', ',')} Mio. EUR ARR (2030)` : `${finalCustomers.toLocaleString('en-US')} customers × EUR ${acv.toLocaleString('en-US')} ACV = ~EUR ${(finalArr / 1_000_000).toFixed(1)}M ARR (2030)`}