namespace TakeoutSaaS.Application.App.Statistics.Dto;

/// <summary>
/// 收入统计。
/// </summary>
public record RevenueStatisticsDto
{
    /// <summary>
    /// 总收入。
    /// </summary>
    public decimal TotalRevenue { get; init; }

    /// <summary>
    /// 本月收入。
    /// </summary>
    public decimal MonthlyRevenue { get; init; }

    /// <summary>
    /// 本季度收入。
    /// </summary>
    public decimal QuarterlyRevenue { get; init; }

    /// <summary>
    /// 月度收入明细。
    /// </summary>
    public IReadOnlyList<MonthlyRevenueItem> MonthlyDetails { get; init; } = Array.Empty<MonthlyRevenueItem>();
}

/// <summary>
/// 月度收入项。
/// </summary>
public record MonthlyRevenueItem
{
    /// <summary>
    /// 年份。
    /// </summary>
    public int Year { get; init; }

    /// <summary>
    /// 月份。
    /// </summary>
    public int Month { get; init; }

    /// <summary>
    /// 收入金额。
    /// </summary>
    public decimal Amount { get; init; }

    /// <summary>
    /// 账单数量。
    /// </summary>
    public int BillCount { get; init; }
}
