using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;
namespace gehGassi.Klarna.Checkout
{
public class ShippingOption
{
///
/// id
///
/// id
[Required]
[JsonProperty("id")]
public string Id { get; set; }
///
/// Name.
///
/// Name.
[Required]
[StringLength(255, MinimumLength = 1)]
[JsonProperty("name")]
public string Name { get; set; }
///
/// Description.
///
/// Description.
[JsonProperty("description")]
public string Description { get; set; }
///
/// Promotion name. To be used if this shipping option is promotional.
///
/// Promotion name. To be used if this shipping option is promotional.
[JsonProperty("promo")]
public string Promo { get; set; }
///
/// Price including tax.
///
/// Price including tax.
[Required]
[JsonProperty("price")]
public long? Price { get; set; }
///
/// If true, this option will be preselected when checkout loads. Default: false
///
/// If true, this option will be preselected when checkout loads. Default: false
[JsonProperty("preselected")]
public bool? Preselected { get; set; }
///
/// Tax amount.
///
/// Tax amount.
[Required]
[JsonProperty("tax_amount")]
public long? TaxAmount { get; set; }
///
/// Non-negative. In percent, two implicit decimals. I.e 2500 = 25%.
///
/// Non-negative. In percent, two implicit decimals. I.e 2500 = 25%.
[Required]
[JsonProperty("tax_rate")]
public long? TaxRate { get; set; }
///
/// Shipping method. Possible values:<ul><li>PickUpStore</li><li>Home</li><li>BoxReg</li><li>BoxUnreg</li><li>PickUpPoint</li><li>Own</li><li>Postal</li><li>DHLPackstation</li><li>Digital</li></ul> If DHLPackstation is selected the correct form will be displayed.
///
/// Shipping method. Possible values:<ul><li>PickUpStore</li><li>Home</li><li>BoxReg</li><li>BoxUnreg</li><li>PickUpPoint</li><li>Own</li><li>Postal</li><li>DHLPackstation</li><li>Digital</li></ul> If DHLPackstation is selected the correct form will be displayed.
[JsonProperty("shipping_method")]
public string ShippingMethod { get; set; }
///
/// Gets or Sets DeliveryDetails
///
[JsonProperty("delivery_details")]
public DeliveryDetailsV1 DeliveryDetails { get; set; }
///
/// TMS reference. Required to map completed orders to shipments reserved in TMS.
///
/// TMS reference. Required to map completed orders to shipments reserved in TMS.
[JsonProperty("tms_reference")]
public string TmsReference { get; set; }
///
/// Gets or Sets SelectedAddons
///
[JsonProperty("selected_addons")]
public List SelectedAddons { get; set; }
}
}