/* Options: Date: 2025-12-06 11:43:48 Version: 8.0 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://sfgboxapi.dev.scadsoftware.com //Package: //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: CreateSubscribeCustomer.* //ExcludeTypes: //InitializeCollections: True //TreatTypesAsStrings: //DefaultImports: java.math.*,java.util.*,net.servicestack.client.*,com.google.gson.annotations.*,com.google.gson.reflect.* */ import java.math.* import java.util.* import net.servicestack.client.* import com.google.gson.annotations.* import com.google.gson.reflect.* @Route(Path="/create-customer", Verbs="POST") open class CreateSubscribeCustomer : IReturn, IPost { var email:String? = null companion object { private val responseType = StripeCustomer::class.java } override fun getResponseType(): Any? = CreateSubscribeCustomer.responseType } open class StripeCustomer : StripeId() { var accountBalance:Int? = null var businessVatId:String? = null var created:Date? = null var defaultSource:String? = null var delinquent:Boolean? = null var description:String? = null var discount:StripeDiscount? = null var email:String? = null var invoicePrefix:String? = null var livemode:Boolean? = null var metadata:HashMap = HashMap() var shipping:StripeShipping? = null var sources:StripeCollection? = null var subscriptions:StripeCollection? = null var deleted:Boolean? = null var currency:String? = null } open class StripeDiscount : StripeId() { var customer:String? = null var coupon:StripeCoupon? = null var start:Date? = null var end:Date? = null } open class StripeShipping { var address:StripeAddress? = null var name:String? = null var phone:String? = null } open class StripeCollection : StripeId() { var url:String? = null var totalCount:Int? = null var hasMore:Boolean? = null @SerializedName("data") var Data:ArrayList = ArrayList() } open class StripeCard : StripeId() { var brand:String? = null var number:String? = null var last4:String? = null var dynamicLast4:String? = null var expMonth:Int? = null var expYear:Int? = null var cvc:String? = null var name:String? = null var addressCity:String? = null var addressCountry:String? = null var addressLine1:String? = null var addressLine2:String? = null var addressState:String? = null var addressZip:String? = null var cvcCheck:StripeCvcCheck? = null var addressLine1Check:String? = null var addressZipCheck:String? = null var funding:String? = null var fingerprint:String? = null var customer:String? = null var country:String? = null } open class StripeSubscription : StripeId() { var currentPeriodEnd:Date? = null var status:StripeSubscriptionStatus? = null var plan:StripePlan? = null var currentPeriodStart:Date? = null var start:Date? = null var trialStart:Date? = null var cancelAtPeriodEnd:Boolean? = null var trialEnd:Date? = null var canceledAt:Date? = null var endedAt:Date? = null var customer:String? = null var quantity:Int? = null } enum class StripeType { Unknown, Account, Card, Charge, Coupon, Customer, Discount, Dispute, Event, Invoiceitem, Invoice, LineItem, Plan, Subscription, Token, Transfer, List, Product, } open class StripeId : StripeObject() { var id:String? = null } open class StripeCoupon : StripeId() { var amountOff:Int? = null var created:Date? = null var currency:String? = null var duration:StripeCouponDuration? = null var durationInMonths:Int? = null var livemode:Boolean? = null var maxRedemptions:Int? = null var metadata:HashMap = HashMap() var percentOff:Int? = null var redeemBy:Date? = null var timesRedeemed:Int? = null var valid:Boolean? = null } open class StripeAddress { var city:String? = null var country:String? = null var line1:String? = null var line2:String? = null var postalCode:String? = null var state:String? = null } enum class StripeCvcCheck { Unknown, Pass, Fail, Unchecked, } enum class StripeSubscriptionStatus { Unknown, Trialing, Active, PastDue, Canceled, Unpaid, } open class StripePlan : StripeId() { var amount:Int? = null var created:Date? = null var currency:String? = null var interval:StripePlanInterval? = null var intervalCount:Int? = null var livemode:Boolean? = null var metadata:HashMap = HashMap() var nickname:String? = null var product:String? = null var trialPeriodDays:Int? = null } open class StripeObject { @SerializedName("object") var Object:StripeType? = null } enum class StripeCouponDuration { Forever, Once, Repeating, } enum class StripePlanInterval { Month, Year, }