using CoreConnect.Commerce.Core;
using CoreConnect.Commerce.Customer;
namespace CoreConnect.Commerce.Orders;
public string? Id { get; set; }
public string? OrderDate { get; set; }
public string? OrderNumber { get; set; }
public long? OrderVersion { get; set; }
public string? Status { get; set; }
public string? AnonymousId { get; set; }
public string? CustomerId { get; set; }
public string? OrderState { get; set; }
public BillingAddress? BillingAddress { get; set; }
public ShippingAddress? ShippingAddress { get; set; }
public Money? TaxTotal { get; set; }
public Money? SubtotalExclTax { get; set; }
public Money? SubtotalInclTax { get; set; }
public Money? ShippingCostExclTax { get; set; }
public Money? ShippingCostInclTax { get; set; }
public Money? TotalInclTax { get; set; }
public Money? TotalExclTax { get; set; }
public IList<OrderLineItem>? LineItems { get; set; }
public string? PaymentState { get; set; }
public string? ShippingMode { get; set; }
public string? ReferenceKey { get; set; }
public string? PaymentLinkUrl { get; set; }
public IList<OrderPackage>? Packages { get; set; }
public IList<OrderReturnRequest>? ReturnRequests { get; set; }
public List<OrderPayments>? Payments { get; set; }
public IEnumerable<CustomField>? CustomFields { get; set; }
public string? ShipmentState { get; set; }
public string? CustomerEmail { get; set; }
public string? StoreKey { get; set; }
public string? Locale { get; set; }
public string? ShippingMethod { get; set; }
public IList<ReturnInfo>? Returns { get; set; }
public Money? DiscountTotal { get; set; }
public IList<ReturnItem>? Items { get; set; }
public required string Id { get; set; }
public string? Key { get; set; }
public required int Quantity { get; set; }
public string? Type { get; set; }
public string? Comment { get; set; }
public string? ShipmentState { get; set; }
public string? PaymentState { get; set; }
public string? LineItemId { get; set; }
public DateTime CreatedAt { get; set; }
public DateTime LastModifiedAt { get; set; }
public record OrderLineItem
public string? Id { get; set; }
public string? ProductId { get; set; }
public string? Sku { get; set; }
public string? Name { get; set; }
public string? NameMerchant { get; set; }
public int Quantity { get; set; }
public Money? PriceExclTax { get; set; }
public Money? PriceInclTax { get; set; }
public Money? CostPriceExTax { get; set; }
public Money? CostPriceInclTax { get; set; }
public Money? OriginalPrice { get; set; }
public Money? OriginalTotal { get; set; }
public Money? SubTotalInclTax { get; set; }
public Money? SaleTotal { get; set; }
public Image? Image { get; set; }
public IList<AppliedDiscounts>? AppliedDiscounts { get; set; }
public IList<OrderLineItem>? SubItems { get; set; }
public IList<ProducOptions>? ProductOptions { get; set; }
public int? ParentOrderProductId { get; set; }
public Money? ProductDiscountTotal { get; set; }
public Dictionary<string, string>? ExtraInfo { get; set; }
public bool? IsSample { get; set; }
public string? Path { get; set; }
public string? LineItemStatus { get; set; }
public bool? IsGift { get; set; }
public OrderPackage? Package { get; set; }
public List<Core.Attribute>? Attributes { get; set; }
public IEnumerable<CustomField>? CustomFields { get; set; }
public string? VariantId { get; set; }
public string? Slug { get; set; }
public class ProducOptions
public string? DisplayValue { get; set; }
public class AppliedDiscounts
public string? Id { get; set; }
public string? Amount { get; set; }
public string? Name { get; set; }
public string? Code { get; set; }
public string? Target { get; set; }
public class OrderPackage
public string? Id { get; set; }
public string? Carrier { get; set; }
public string? DeliveryStatus { get; set; }
public string? MinimumDeliveryDate { get; set; }
public string? MaximumDeliveryDate { get; set; }
public OrderPackageTracking? Tracking { get; set; }
public class OrderPackageTracking
public string? Id { get; set; }
public string? Url { get; set; }
public class OrderReturnRequest
public string? Id { get; set; }
public DateTime? CreatedDate { get; set; }
public IList<OrderReturnRequestItem>? Items { get; set; }
public class OrderReturnRequestItem
public string? OrderLineId { get; set; }
public string? ReasonCode { get; set; }