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 MerchantUrls
{
///
/// URL for the terms and conditions page of the merchant. The URL will be displayed inside the Klarna Checkout iFrame.(max 2000 characters) Example: \"https://merchant.com/terms\"
///
/// URL for the terms and conditions page of the merchant. The URL will be displayed inside the Klarna Checkout iFrame.(max 2000 characters) Example: \"https://merchant.com/terms\"
[Required]
[StringLength(2000, MinimumLength = 0)]
[JsonProperty("terms")]
public string Terms { get; set; }
///
/// URL for the checkout page of the merchant. (max 2000 characters) Example: \"https://merchant.com/checkout\"
///
/// URL for the checkout page of the merchant. (max 2000 characters) Example: \"https://merchant.com/checkout\"
[Required]
[StringLength(2000, MinimumLength = 0)]
[JsonProperty("checkout")]
public string Checkout { get; set; }
///
/// URL of the merchant confirmation page. The consumer will be redirected back to the confirmation page if the authorization is successful after the customer clicks on the ‘Place Order’ button inside checkout. The special characters of the confirmation URL should be encoded, e.g. the \"space\" character should be written as \"%20\". Then, on top of that, the whole confirmation URL should be encoded. E.g. the \"space\" character should become \"%2520\". (max 2000 characters) Example: \"https://merchant.com/confirmation\"
///
/// URL of the merchant confirmation page. The consumer will be redirected back to the confirmation page if the authorization is successful after the customer clicks on the ‘Place Order’ button inside checkout. The special characters of the confirmation URL should be encoded, e.g. the \"space\" character should be written as \"%20\". Then, on top of that, the whole confirmation URL should be encoded. E.g. the \"space\" character should become \"%2520\". (max 2000 characters) Example: \"https://merchant.com/confirmation\"
[Required]
[StringLength(2000, MinimumLength = 0)]
[JsonProperty("confirmation")]
public string Confirmation { get; set; }
///
/// URL that will be used for push notification when an order is completed. Should be different than checkout and confirmation URLs. (max 2000 characters) Example: \"https://merchant.com/push\"
///
/// URL that will be used for push notification when an order is completed. Should be different than checkout and confirmation URLs. (max 2000 characters) Example: \"https://merchant.com/push\"
[Required]
[StringLength(2000, MinimumLength = 0)]
[JsonProperty("push")]
public string Push { get; set; }
///
/// URL that will be requested for final merchant validation. (must be https, max 2000 characters) Example: \"https://merchant.com/validation\"
///
/// URL that will be requested for final merchant validation. (must be https, max 2000 characters) Example: \"https://merchant.com/validation\"
[StringLength(2000, MinimumLength = 0)]
[JsonProperty("validation")]
public string Validation { get; set; }
///
/// URL for notifications on pending orders. (max 2000 characters) Example: \"https://merchant.com/notification/{checkout.order.id}\"
///
/// URL for notifications on pending orders. (max 2000 characters) Example: \"https://merchant.com/notification/{checkout.order.id}\"
[StringLength(2000, MinimumLength = 0)]
[JsonProperty("notification")]
public string Notification { get; set; }
///
/// URL for the cancellation terms page of the merchant. The URL will be displayed in the email that is sent to the customer after the order is captured.(max 2000 characters) Example: \"https://merchant.com/terms/cancelation\"
///
/// URL for the cancellation terms page of the merchant. The URL will be displayed in the email that is sent to the customer after the order is captured.(max 2000 characters) Example: \"https://merchant.com/terms/cancelation\"
[StringLength(2000, MinimumLength = 0)]
[JsonProperty("cancellation_terms")]
public string CancellationTerms { get; set; }
///
/// URL for shipping option update. (must be https, max 2000 characters) Example: \"https://merchant.com/shippingoptionupdate\"
///
/// URL for shipping option update. (must be https, max 2000 characters) Example: \"https://merchant.com/shippingoptionupdate\"
[StringLength(2000, MinimumLength = 0)]
[JsonProperty("shipping_option_update")]
public string ShippingOptionUpdate { get; set; }
///
/// URL for shipping, tax and purchase currency updates. Will be called on address changes. (must be https, max 2000 characters) Example: \"https://merchant.com/addressupdate\"
///
/// URL for shipping, tax and purchase currency updates. Will be called on address changes. (must be https, max 2000 characters) Example: \"https://merchant.com/addressupdate\"
[StringLength(2000, MinimumLength = 0)]
[JsonProperty("address_update")]
public string AddressUpdate { get; set; }
///
/// URL for shipping, tax and purchase currency updates. Will be called on billing or shipping country changes. (must be https, max 2000 characters) Example: \"https://merchant.com/countrychange\"
///
/// URL for shipping, tax and purchase currency updates. Will be called on billing or shipping country changes. (must be https, max 2000 characters) Example: \"https://merchant.com/countrychange\"
[StringLength(2000, MinimumLength = 0)]
[JsonProperty("country_change")]
public string CountryChange { get; set; }
}
}