feat(kpis): agregar seccion Windsor.ai de blueparrotschool.com debajo de Cruce por canal

This commit is contained in:
Marcos Fargas
2026-10-04 19:58:33 +02:00
parent e84310ec52
commit e07f21c674
4 changed files with 1034 additions and 2 deletions

View File

@@ -37,6 +37,8 @@ import {
import { PageHeader } from '@/components/ui';
import SyncNowButton from '@/components/SyncNowButton';
import { useDateRange } from '@/components/DateRangeContext';
import WindsorAiSection from '@/components/WindsorAiSection';
import { OrganicDailyRow } from '@/lib/organic';
type Card = {
key: keyof MetricTotals;
@@ -162,7 +164,8 @@ function gapClass(gap: number): string {
export default function MetricsDashboard({
label,
portfolioWide,
portfolioWide = false,
tenantId,
month,
week,
deltas,
@@ -171,12 +174,15 @@ export default function MetricsDashboard({
weeklyRows = [],
channelPoints = [],
dailyRows = [],
organicRows = [],
crmLeads = [],
wonDeals = [],
integrations = [],
cohortSource = 'deals',
}: {
label: string;
portfolioWide: boolean;
portfolioWide?: boolean;
tenantId?: string | null;
month: MetricTotals;
week: MetricTotals;
deltas: Record<keyof MetricTotals, Delta>;
@@ -190,8 +196,10 @@ export default function MetricsDashboard({
weeklyRows?: KpiWeeklyRow[];
channelPoints?: ChannelWeekPoint[];
dailyRows?: AdDailyRow[];
organicRows?: OrganicDailyRow[];
crmLeads?: CrmLeadRow[];
wonDeals?: DealWonRow[];
integrations?: any[];
cohortSource?: 'deals' | 'cliente_leads' | 'none';
}) {
const { since, until, label: rangeHint } = useDateRange();
@@ -730,6 +738,18 @@ export default function MetricsDashboard({
Barras compactas por día · periodo del header · detalle en Ads
</p>
</section>
{/* Windsor.ai Data for blueparrotschool.com (Directly below Cruce por canal) */}
<WindsorAiSection
tenantId={tenantId}
label={label}
portfolioWide={portfolioWide}
dailyRows={dailyRows}
organicRows={organicRows}
crmLeads={crmLeads}
wonDeals={wonDeals}
integrations={integrations}
/>
</div>
);
}