using EventFlow.Aggregates;

namespace Books.Api.Domain.Orders.Events;

/// <summary>
/// Raised when an order is confirmed and ready for fulfillment/invoicing.
/// After confirmation, lines cannot be modified.
/// </summary>
public class OrderConfirmedEvent(
    string confirmedBy,
    DateTimeOffset confirmedAt,
    decimal amountExVat,
    decimal amountVat,
    decimal amountTotal) : AggregateEvent<OrderAggregate, OrderId>
{
    public string ConfirmedBy { get; } = confirmedBy;
    public DateTimeOffset ConfirmedAt { get; } = confirmedAt;
    public decimal AmountExVat { get; } = amountExVat;
    public decimal AmountVat { get; } = amountVat;
    public decimal AmountTotal { get; } = amountTotal;
}
