73 lines
1.8 KiB
C#
73 lines
1.8 KiB
C#
using MediatR;
|
||
using TakeoutSaaS.Application.App.Billings.Dto;
|
||
using TakeoutSaaS.Domain.Tenants.Enums;
|
||
using TakeoutSaaS.Shared.Abstractions.Results;
|
||
|
||
namespace TakeoutSaaS.Application.App.Billings.Queries;
|
||
|
||
/// <summary>
|
||
/// 分页查询账单列表。
|
||
/// </summary>
|
||
public sealed record GetBillingListQuery : IRequest<PagedResult<BillingListDto>>
|
||
{
|
||
/// <summary>
|
||
/// 租户 ID(可选,默认当前租户;禁止跨租户)。
|
||
/// </summary>
|
||
public long? TenantId { get; init; }
|
||
|
||
/// <summary>
|
||
/// 账单状态筛选。
|
||
/// </summary>
|
||
public TenantBillingStatus? Status { get; init; }
|
||
|
||
/// <summary>
|
||
/// 账单类型筛选。
|
||
/// </summary>
|
||
public BillingType? BillingType { get; init; }
|
||
|
||
/// <summary>
|
||
/// 账单起始时间(UTC)筛选。
|
||
/// </summary>
|
||
public DateTime? StartDate { get; init; }
|
||
|
||
/// <summary>
|
||
/// 账单结束时间(UTC)筛选。
|
||
/// </summary>
|
||
public DateTime? EndDate { get; init; }
|
||
|
||
/// <summary>
|
||
/// 关键词搜索(账单编号)。
|
||
/// </summary>
|
||
public string? Keyword { get; init; }
|
||
|
||
/// <summary>
|
||
/// 最小应付金额筛选(包含)。
|
||
/// </summary>
|
||
public decimal? MinAmount { get; init; }
|
||
|
||
/// <summary>
|
||
/// 最大应付金额筛选(包含)。
|
||
/// </summary>
|
||
public decimal? MaxAmount { get; init; }
|
||
|
||
/// <summary>
|
||
/// 页码(从 1 开始)。
|
||
/// </summary>
|
||
public int PageNumber { get; init; } = 1;
|
||
|
||
/// <summary>
|
||
/// 每页条数。
|
||
/// </summary>
|
||
public int PageSize { get; init; } = 20;
|
||
|
||
/// <summary>
|
||
/// 排序字段(DueDate/CreatedAt/AmountDue)。
|
||
/// </summary>
|
||
public string? SortBy { get; init; }
|
||
|
||
/// <summary>
|
||
/// 是否降序排序。
|
||
/// </summary>
|
||
public bool SortDesc { get; init; }
|
||
}
|