diff --git a/pitch-deck/components/slides/ExecutiveSummarySlide.tsx b/pitch-deck/components/slides/ExecutiveSummarySlide.tsx index d94c37a..5f7bc6d 100644 --- a/pitch-deck/components/slides/ExecutiveSummarySlide.tsx +++ b/pitch-deck/components/slides/ExecutiveSummarySlide.tsx @@ -1,6 +1,6 @@ 'use client' -import { useCallback } from 'react' +import { useCallback, useEffect, useState } from 'react' import { Language, PitchData } from '@/lib/types' import { t, formatEur } from '@/lib/i18n' import { useFpKPIs } from '@/lib/hooks/useFpKPIs' @@ -25,6 +25,12 @@ export default function ExecutiveSummarySlide({ lang, data, investorId, preferre // Unternehmensentwicklung from fp_* tables (source of truth) const { kpis: fpKPIs } = useFpKPIs(isWandeldarlehen) + // Pipeline stats from DB + const [pipelineStats, setPipelineStats] = useState>({}) + useEffect(() => { + fetch('/api/pipeline-stats', { cache: 'no-store' }).then(r => r.json()).then(setPipelineStats).catch(() => {}) + }, []) + const funding = data.funding const amount = funding?.amount_eur || 0 const amountLabel = amount >= 1_000_000 @@ -382,8 +388,8 @@ export default function ExecutiveSummarySlide({ lang, data, investorId, preferre
{[ - { value: '25.000+', label: es.controls, icon: Shield, color: '#6366f1' }, - { value: '110', label: es.regulations, icon: Brain, color: '#60a5fa' }, + { value: pipelineStats.unique_controls ? `${Math.round(pipelineStats.unique_controls.value / 1000)}k+` : '25k+', label: es.controls, icon: Shield, color: '#6366f1' }, + { value: pipelineStats.legal_sources ? `${pipelineStats.legal_sources.value}+` : '380+', label: es.regulations, icon: Brain, color: '#60a5fa' }, { value: '10', label: es.industries, icon: Target, color: '#34d399' }, { value: '500K+', label: es.linesOfCode, icon: Cpu, color: '#fbbf24' }, { value: '80%', label: de ? 'Zeitersparnis bei\nCompliance-Prüfungen' : 'Time saved on\ncompliance checks', icon: TrendingUp, color: '#10b981' }, diff --git a/pitch-deck/components/slides/SolutionSlide.tsx b/pitch-deck/components/slides/SolutionSlide.tsx index b0b8f4b..2946155 100644 --- a/pitch-deck/components/slides/SolutionSlide.tsx +++ b/pitch-deck/components/slides/SolutionSlide.tsx @@ -52,6 +52,27 @@ export default function SolutionSlide({ lang }: SolutionSlideProps) { ) })}
+ + {/* Compliance Optimizer MOAT */} + +
+
+
+ +
+
+

+ {de ? 'Compliance Optimizer — Nicht nur „erlaubt/verboten"' : 'Compliance Optimizer — Not just "allowed/forbidden"'} +

+

+ {de + ? 'Unsere Plattform zeigt die maximal zulässige Ausgestaltung jedes KI-Use-Cases. Statt Einschränkung: optimale Ausnutzung des regulatorischen Raums — deterministisch, automatisiert und auditierbar.' + : 'Our platform shows the maximum permissible configuration of every AI use case. Instead of restriction: optimal utilization of the regulatory space — deterministic, automated and auditable.'} +

+
+
+
+
) } diff --git a/pitch-deck/components/slides/USPSlide.tsx b/pitch-deck/components/slides/USPSlide.tsx index 57bdd67..767e5e9 100644 --- a/pitch-deck/components/slides/USPSlide.tsx +++ b/pitch-deck/components/slides/USPSlide.tsx @@ -214,7 +214,7 @@ export default function USPSlide({ lang }: USPSlideProps) {

{de - ? '„Jeder kann sagen, was verboten ist. Kaum jemand kann sagen, wie du maximal weit gehen kannst, ohne es zu brechen. Das ist unser Produkt."' + ? '„Jeder kann sagen, was verboten ist. Kaum jemand kann sagen, wie weit du maximal gehen kannst, ohne es zu brechen. Das ist unser Produkt."' : '"Everyone can say what is forbidden. Almost no one can say how far you can go without breaking it. That is our product."'}