using MediatR;
using TakeoutSaaS.Application.App.Customers.Dto;

namespace TakeoutSaaS.Application.App.Customers.Queries;

/// <summary>
/// 客户列表统计查询。
/// </summary>
public sealed class GetCustomerListStatsQuery : IRequest<CustomerListStatsDto>
{
    /// <summary>
    /// 可见门店 ID 集合。
    /// </summary>
    public IReadOnlyCollection<long> VisibleStoreIds { get; init; } = [];

    /// <summary>
    /// 关键词（姓名/手机号）。
    /// </summary>
    public string? Keyword { get; init; }

    /// <summary>
    /// 客户标签筛选。
    /// </summary>
    public string? Tag { get; init; }

    /// <summary>
    /// 下单次数区间。
    /// </summary>
    public string? OrderCountRange { get; init; }

    /// <summary>
    /// 注册周期天数（7/30/90）。
    /// </summary>
    public int? RegisterPeriodDays { get; init; }
}
