/* Options: Date: 2025-09-07 08:21:43 Version: 8.81 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://account.servicestack.net //Package: //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: CreateCustomer.* //ExcludeTypes: //InitializeCollections: False //TreatTypesAsStrings: //DefaultImports: java.math.*,java.util.*,java.io.InputStream,net.servicestack.client.* */ import java.math.* import java.util.* import java.io.InputStream import net.servicestack.client.* @Route(Path="/CreateCustomer", Verbs="POST") @ValidateRequest(Validator="IsAdmin") open class CreateCustomer : IReturn, IPost { open var firstName:String? = null open var lastName:String? = null open var email:String? = null open var password:String? = null open var company:String? = null open var phoneNumber:String? = null open var addressLine1:String? = null open var addressLine2:String? = null open var addressCity:String? = null open var addressZip:String? = null open var addressState:String? = null open var addressCountry:String? = null open var createdDate:Date? = null companion object { private val responseType = Customer::class.java } override fun getResponseType(): Any? = CreateCustomer.responseType } @Route(Path="/Customer") // @Route(Path="/Customer/{Id}") open class Customer : IAddress { open var id:Int? = null open var email:String? = null open var displayName:String? = null open var firstName:String? = null open var lastName:String? = null open var company:String? = null open var phoneNumber:String? = null override var addressLine1:String? = null override var addressLine2:String? = null override var addressCity:String? = null override var addressZip:String? = null override var addressState:String? = null override var addressCountry:String? = null open var stripeCustomerId:String? = null open var stripeCouponId:String? = null open var plan:String? = null open var createdDate:Date? = null open var isReferrer:Boolean? = null open var orders:ArrayList? = null open var subscriptions:ArrayList? = null } interface IAddress { var addressLine1:String? var addressLine2:String? var addressCity:String? var addressZip:String? var addressState:String? var addressCountry:String? } open class Order : IAddress { open var id:Int? = null open var customerId:Int? = null open var productName:String? = null open var firstName:String? = null open var lastName:String? = null open var email:String? = null open var company:String? = null open var phoneNumber:String? = null override var addressLine1:String? = null override var addressLine2:String? = null override var addressCity:String? = null override var addressZip:String? = null override var addressState:String? = null override var addressCountry:String? = null open var agreeTerms:Boolean? = null open var notes:String? = null open var last4:String? = null open var subTotal:Int? = null open var couponId:String? = null open var discount:Int? = null open var tax:Int? = null open var total:Int? = null open var itemQuantity:Int? = null open var authorizedQuantity:Int? = null open var subscriptionId:Int? = null open var licenseRef:String? = null open var paymentId:Int? = null open var emailId:Int? = null open var paid:Boolean? = null open var createdDate:Date? = null open var modifiedDate:Date? = null open var modifiedBy:String? = null open var cancelledDate:Date? = null open var cancelledReason:String? = null open var ipAddress:String? = null open var orderDetails:ArrayList? = null } open class Subscription { open var id:Int? = null open var customerId:Int? = null open var email:String? = null open var skuId:Int? = null open var skuName:String? = null open var skuType:SkuType? = null open var code:String? = null open var quantity:Int? = null open var supportQuantity:Int? = null open var total:Int? = null open var isPlan:Boolean? = null open var isRenewal:Boolean? = null open var subscriptionDurationDays:Int? = null open var renewalDate:Date? = null open var licenseRef:String? = null open var licenseName:String? = null open var licenseAddress:String? = null open var licenseType:LicenseType? = null open var expiryDate:Date? = null open var licenseKey:LicenseKey? = null open var licenseKeyText:String? = null open var createdDate:Date? = null open var modifiedDate:Date? = null open var cancelledDate:Date? = null open var stripeSubscriptionId:String? = null open var emailId:Int? = null open var emailRenewalId:Int? = null open var emailExpiredId:Int? = null open var renewalSubscriptionId:Int? = null open var externalRef:String? = null open var notes:String? = null open var error:String? = null }