mirror of
https://github.com/warmbly/warmbly.git
synced 2026-08-26 08:00:42 +00:00
050d09c961
Replace the client-side, 100-row-capped deals board as the default view with a server-driven cross-pipeline table so totals stop lying at scale. - POST /crm/deals/search: faceted filter body (query, status, pipeline, stage, owner, campaign, value range, close-date range), whitelisted sort, offset pagination, and Contact/Stage/campaign hydrated via JOIN. - POST /crm/deals/summary: COUNT + SUM(value) per status and per stage over the same filter, with a mixed-currency guard, so header and board column totals are true server aggregates. - DealsTable: cross-pipeline default view (infinite scroll, server filters/sort, honest summary stats) with a Table|Board toggle; the kanban stays as the single-pipeline working view. - Deal attribution: campaign_id + source_mailbox_id columns + indexes (migration 000022) as groundwork for revenue lineage.