namespace Distribution.Features.DashboardReport; public record DashboardFilter(DateTime From, DateTime To, Guid? RegionId, Guid? CategoryId, Guid? WarehouseId); public record SalesTotals(decimal GrossSales, decimal ReturnValue, decimal Discounts, int Orders, decimal CostedSales, decimal CostOfSales); public record SalesKpis( decimal GrossSales, decimal ReturnValue, decimal Discounts, decimal NetSales, int Orders, decimal AverageOrderValue, decimal GrossProfit, decimal? GrossProfitMarginPercent); public record SalesKpiComparison(SalesKpis Current, SalesKpis Previous, DateTime PreviousFrom, DateTime PreviousTo); public record ReceivablesTotals(decimal Collected, decimal Outstanding, decimal Overdue); public record CashKpis(decimal Collected, decimal Outstanding, decimal Overdue, decimal? CollectionRatePercent); public record CashKpiComparison(CashKpis Current, CashKpis Previous); public record TrendPoint(string Period, decimal Sales, decimal Returns); public record NamedAmount(Guid? Id, string Name, decimal Amount); public record SalesSummaryResponse( DateTime From, DateTime To, string Granularity, SalesKpiComparison Kpis, CashKpiComparison Cash, List Trend, List ByCategory, List ByRegion, List ByRep); public record PeriodAmount(DateTime Date, decimal Amount); public record MovementPoint(string Period, decimal Received, decimal Issued, decimal Net); public record WarehouseStockRow(Guid WarehouseId, string Name, decimal Quantity, decimal Value); public record CategoryValueRow(string Category, decimal Quantity, decimal Value); public record InventorySummaryResponse( DateTime From, DateTime To, string Granularity, List ValueByCategory, List ByWarehouse, List MovementTrend);