using MediatR;
using TakeoutSaaS.Application.App.Subscriptions.Dto;
using TakeoutSaaS.Domain.Tenants.Enums;
using TakeoutSaaS.Shared.Abstractions.Results;
namespace TakeoutSaaS.Application.App.Subscriptions.Queries;
///
/// 订阅分页查询。
///
public sealed record GetSubscriptionListQuery : IRequest>
{
///
/// 订阅状态(精确匹配)。
///
public SubscriptionStatus? Status { get; init; }
///
/// 套餐 ID(精确匹配)。
///
public long? TenantPackageId { get; init; }
///
/// 租户 ID(精确匹配)。
///
public long? TenantId { get; init; }
///
/// 租户关键词(名称或编码模糊匹配)。
///
public string? TenantKeyword { get; init; }
///
/// 到期时间筛选:未来 N 天内到期。
///
public int? ExpiringWithinDays { get; init; }
///
/// 是否自动续费筛选。
///
public bool? AutoRenew { get; init; }
///
/// 页码(从 1 开始)。
///
public int Page { get; init; } = 1;
///
/// 每页大小。
///
public int PageSize { get; init; } = 20;
}