using MediatR;
using System.ComponentModel.DataAnnotations;
using TakeoutSaaS.Application.App.Billings.Dto;

namespace TakeoutSaaS.Application.App.Billings.Commands;

/// <summary>
/// 审核支付命令。
/// </summary>
public sealed record VerifyPaymentCommand : IRequest<PaymentRecordDto>
{
    /// <summary>
    /// 支付记录 ID（雪花算法）。
    /// </summary>
    [Required]
    public long PaymentId { get; init; }

    /// <summary>
    /// 是否通过审核。
    /// </summary>
    public bool Approved { get; init; }

    /// <summary>
    /// 审核备注（可选）。
    /// </summary>
    [MaxLength(512)]
    public string? Notes { get; init; }
}
