using MediatR;
using TakeoutSaaS.Application.App.Tenants.Dto;
using TakeoutSaaS.Domain.Tenants.Enums;

namespace TakeoutSaaS.Application.App.Tenants.Commands;

/// <summary>
/// 校验并消费租户配额命令。
/// </summary>
public sealed record CheckTenantQuotaCommand : IRequest<QuotaCheckResultDto>
{
    /// <summary>
    /// 目标租户 ID。
    /// </summary>
    public long TenantId { get; init; }

    /// <summary>
    /// 配额类型。
    /// </summary>
    public TenantQuotaType QuotaType { get; init; }

    /// <summary>
    /// 本次申请使用量。
    /// </summary>
    public decimal Delta { get; init; } = 1;
}
