using Microsoft.AspNetCore.Http; using Newtonsoft.Json; using Nop.Plugin.Payments.PayPalCommerce.Services.Api.Models; namespace Nop.Plugin.Payments.PayPalCommerce.Services.Api.Orders; /// /// Represents the request to add tracking information for an order /// public class CreateTrackingRequest : IAuthorizedRequest { #region Properties /// /// Gets or sets the ID of the order that the tracking information is associated with. /// [JsonIgnore] public string OrderId { get; set; } /// /// Gets or sets the tracking number for the shipment. This property supports Unicode. /// [JsonProperty(PropertyName = "tracking_number")] public string TrackingNumber { get; set; } /// /// Gets or sets the carrier for the shipment. /// [JsonProperty(PropertyName = "carrier")] public string Carrier { get; set; } /// /// Gets or sets the name of the carrier for the shipment. Provide this value only if the carrier parameter is OTHER. /// [JsonProperty(PropertyName = "carrier_name_other")] public string CarrierNameOther { get; set; } /// /// Gets or sets the PayPal capture ID. /// [JsonProperty(PropertyName = "capture_id")] public string CaptureId { get; set; } /// /// Gets or sets a value indicating whether to send an email notification to the payer of the PayPal transaction. /// [JsonProperty(PropertyName = "notify_payer")] public bool NotifyPayer { get; set; } /// /// Gets or sets the array of details of items in the shipment. /// [JsonProperty(PropertyName = "items")] public List Items { get; set; } /// /// Gets the request path /// [JsonIgnore] public string Path => $"v2/checkout/orders/{Uri.EscapeDataString(OrderId)}/track?"; /// /// Gets the request method /// [JsonIgnore] public string Method => HttpMethods.Post; #endregion }