using EventFlow.Aggregates;

namespace Books.Api.Domain.Orders.Events;

/// <summary>
/// Raised when an order line is updated.
/// </summary>
public class OrderLineUpdatedEvent(
    int lineNumber,
    string description,
    decimal quantity,
    string? unit,
    decimal unitPrice,
    decimal discountPercent,
    string vatCode,
    string? accountId,
    string? productId) : AggregateEvent<OrderAggregate, OrderId>
{
    public int LineNumber { get; } = lineNumber;
    public string Description { get; } = description;
    public decimal Quantity { get; } = quantity;
    public string? Unit { get; } = unit;
    public decimal UnitPrice { get; } = unitPrice;
    public decimal DiscountPercent { get; } = discountPercent;
    public string VatCode { get; } = vatCode;
    public string? AccountId { get; } = accountId;
    public string? ProductId { get; } = productId;
}
