using Distribution.Models; namespace Distribution.Features.Invoice; public record CreateInvoiceRequest(Guid OrderId); public record FinalizeInvoiceItemRequest(Guid OrderItemId, decimal DeliveredQuantity, decimal FreeQuantity); public record FinalizeInvoiceReturnRequest(Guid ItemId, decimal Quantity, ReturnReasonCode ReasonCode); public record FinalizeInvoiceDiscountRequest(DiscountType Type, decimal Value, string? Reason); public record FinalizeInvoiceRequest( List Items, List? Returns, FinalizeInvoiceDiscountRequest? Discount); public record InvoiceResponse( Guid Id, Guid OrderId, InvoiceStatus Status, Guid CreatedByUserId, DateTime? PrintedAt, Guid? PrintedByUserId, DateTime? FinalizedAt, Guid? FinalizedByUserId, decimal TotalAmount, bool IsActive, DateTime CreatedAt);