namespace Meezi.API.Models.Reports;

public record TopProductSnapshotDto(string ProductId, string Name, int Quantity, decimal Revenue);

public record DailyReportSnapshotDto(
    string Id,
    string CafeId,
    string BranchId,
    string Date,
    decimal TotalRevenue,
    decimal CashRevenue,
    decimal CardRevenue,
    decimal CreditRevenue,
    int TotalOrders,
    decimal AvgOrderValue,
    int TotalVoids,
    decimal VoidAmount,
    decimal TotalExpenses,
    decimal NetIncome,
    IReadOnlyList<TopProductSnapshotDto> TopProducts,
    DateTime GeneratedAt);

public record DailyReportSummaryDto(
    int Days,
    decimal TotalRevenue,
    decimal CashRevenue,
    decimal CardRevenue,
    decimal CreditRevenue,
    int TotalOrders,
    decimal AvgOrderValue,
    int TotalVoids,
    decimal VoidAmount,
    decimal TotalExpenses,
    decimal NetIncome,
    IReadOnlyList<DailyReportSnapshotDto> ByBranch);
