import type {ApiPlatformDashboardSummary, ApiPlatformSale} from '@/services/api/types'; import type {TodaySummary} from '@/features/floor/types/summary'; import {rupeesToPaise} from '@/services/api/saleMapper'; /** * The platform's summary (footfall) plus today's sales (money) → the card. * * `/api/dashboard/summary` carries no revenue or sales, so those are counted * from the same day's `/api/sales` rows. Summed in integer paise so a day of * ₹0.10s cannot drift, then turned into rupees here, once, so no component * ever divides by 100 itself. * * Enquiries and "on the floor now" have no source on the platform yet and are * `null` — the card shows "—" rather than a 0 that reads as a real answer. */ export function toTodaySummary( s: ApiPlatformDashboardSummary, sales: ApiPlatformSale[], ): TodaySummary { const paise = sales.reduce((sum, sale) => sum + rupeesToPaise(sale.amount), 0); return { date: s.date, revenue: paise / 100, currency: sales[0]?.currency || 'INR', salesCount: sales.length, enquiriesCount: null, onFloorNow: null, visitors: s.visitors ?? 0, }; }