using MediatR;
using TakeoutSaaS.Application.App.Finance.Settlement.Dto;
using TakeoutSaaS.Domain.Payments.Enums;

namespace TakeoutSaaS.Application.App.Finance.Settlement.Queries;

/// <summary>
/// 查询到账汇总分页。
/// </summary>
public sealed class SearchFinanceSettlementListQuery : IRequest<FinanceSettlementListResultDto>
{
    /// <summary>
    /// 门店标识。
    /// </summary>
    public long StoreId { get; init; }

    /// <summary>
    /// 开始时间（UTC，闭区间）。
    /// </summary>
    public DateTime? StartAt { get; init; }

    /// <summary>
    /// 结束时间（UTC，开区间）。
    /// </summary>
    public DateTime? EndAt { get; init; }

    /// <summary>
    /// 支付方式筛选。
    /// </summary>
    public PaymentMethod? PaymentMethod { get; init; }

    /// <summary>
    /// 页码。
    /// </summary>
    public int Page { get; init; } = 1;

    /// <summary>
    /// 每页条数。
    /// </summary>
    public int PageSize { get; init; } = 20;
}
