/* Options: Date: 2024-11-21 11:37:23 SwiftVersion: 5.0 Version: 8.23 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://api.bokamera.se //BaseClass: //AddModelExtensions: True //AddServiceStackTypes: True IncludeTypes: PaysonV1CreateCheckout.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: True //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack // @Route("/payment/payson/v1/checkout", "POST") public class PaysonV1CreateCheckout : IReturn, ICompany, Codable { public typealias Return = PaysonCheckoutV2Response /** * The company id. */ // @ApiMember(Description="The company id.", IsRequired=true) public var companyId:String? /** * Internal reference id (Could be booking, could be Article..) */ // @ApiMember(Description="Internal reference id (Could be booking, could be Article..)") public var internalReferenceId:String /** * The booking id. */ // @ApiMember(Description="The booking id.", IsRequired=true) public var bookingId:Int /** * Optional to set the checkout url. This url will be redirected to if payment is interupted for some reason. */ // @ApiMember(Description="Optional to set the checkout url. This url will be redirected to if payment is interupted for some reason.") public var checkoutUrl:Uri /** * Optional to set your own confirmation url after payment completed. */ // @ApiMember(Description="Optional to set your own confirmation url after payment completed.") public var confirmationUrl:Uri /** * The payment origin id. HomePage = 0, Embedded = 1, Admin = 2, Apps = 3, 4 = HomePageNew */ // @ApiMember(Description="The payment origin id. HomePage = 0, Embedded = 1, Admin = 2, Apps = 3, 4 = HomePageNew", IsRequired=true) public var paymentOrigin:PaymentOrigin /** * If you want to have another language (sv, fi, dk, no, en) than the default language in system settings, specify it here. Leave empty if default language should be used. */ // @ApiMember(Description="If you want to have another language (sv, fi, dk, no, en) than the default language in system settings, specify it here. Leave empty if default language should be used.", IsRequired=true) public var language:String /** * Articles (Could be Service, rebate code types, etc.. */ // @ApiMember(Description="Articles (Could be Service, rebate code types, etc..", IsRequired=true) public var articles:[ArticleToCreate] = [] /** * Determins if it's a test call */ // @ApiMember(Description="Determins if it's a test call") public var testMode:String required public init(){} } public class PaysonCheckoutV2Response : Codable { /** * The checkout id */ // @ApiMember(Description="The checkout id") public var id:String /** * The code snippet to for checkout module */ // @ApiMember(Description="The code snippet to for checkout module") public var snippet:String /** * The checkout status */ // @ApiMember(Description="The checkout status") public var status:Payson2CheckoutStatus required public init(){} } public protocol ICompany { var companyId:String? { get set } } public enum PaymentOrigin : String, Codable { case HomePage case Embedded case Admin case Apps case HomePageNew } public enum Payson2CheckoutStatus : String, Codable { case None case Created case FormsFilled case ReadyToPay case ProcessingPayment case ReadyToShip case Shipped case PaidToAccount case Canceled case Credited case Expired case Denied }