/* Options: Date: 2025-04-04 17:57:32 Version: 5.140 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://api.clubmanagercentral.com //Package: //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: Command.AddMembershipCommandRequest.* //ExcludeTypes: //InitializeCollections: True //TreatTypesAsStrings: //DefaultImports: java.math.*,java.util.*,net.servicestack.client.* */ import java.math.* import java.util.* import net.servicestack.client.* @Route(Path="/api/Command/AddMembershipCommand", Verbs="POST") open class AddMembershipCommandRequest : IReturn { var MemberId:Int? = null var UserId:Int? = null var MembershipTypeId:Int? = null var StartDate:Date? = null var PreviousMembershipAction:PreviousMembershipAction? = null var ExternallyCreated:Boolean? = null var IsOnlineJoining:Boolean? = null var MembershipType:MembershipType? = null var CreateRecurringPaymentsOnly:Boolean? = null var MembershipReviewAttributes:ArrayList = ArrayList() var RegistrationAttributes:ArrayList = ArrayList() var FeeRecurrenceDisabled:Boolean? = null var Expired:Boolean? = null var EndDate:Date? = null var RefererMemberId:Int? = null var PromotionId:Int? = null var RecurringAmount:BigDecimal? = null var RecurringStartDate:Date? = null var PaymentMethodId:Int? = null var BookingId:Int? = null companion object { private val responseType = AddMembershipResult::class.java } override fun getResponseType(): Any? = AddMembershipCommandRequest.responseType } open class AddMembershipResult : ICommandResult { var MembershipId:Int? = null var RecurrenceId:Int? = null var HasRecurringPayments:Boolean? = null } open class CustomAttributeValue { var CustomAttributeId:Int? = null var CustomAttributeValueId:Int? = null var InstanceId:Int? = null var StoredValue:String? = null var TypeName:String? = null var ReadOnly:Boolean? = null } enum class PreviousMembershipAction { Nothing, Renewal, Replaces, Additional, Delete, } open class MembershipType { var BranchId:Int? = null var StartDate:Date? = null var EndDate:Date? = null var Length:Int? = null var LengthPeriod:OffsetPeriod? = null var Payments:ArrayList = ArrayList() var AddToBalance:BigDecimal? = null var SessionsRemaining:Int? = null var ClassesRemaining:Int? = null var LicensesRemaining:Int? = null var MultiSiteAccess:Boolean? = null var MemberLimit:Int? = null var Definition:String? = null var BookingAccessOnly:Boolean? = null } open interface ICommandResult { } enum class OffsetPeriod { Day, Week, Month, Year, } open class MembershipPayment { var Name:String? = null var PaymentType:PaymentType? = null var Amount:BigDecimal? = null var PaymentPeriod:PaymentPeriod? = null var DirectDebitPeriod:DirectDebitPeriod? = null var Recurring:Int? = null var StartingOffset:Int? = null var StartingOffsetPeriod:OffsetPeriod? = null var StartDate:Date? = null var PaymentMethod:PaymentMethod? = null var AutoRecur:Boolean? = null var ProRata:Boolean? = null var ProRataAmount:BigDecimal? = null var ProRataStartDate:Date? = null var ProRataPaymentMethod:PaymentMethod? = null var ProRataAddToFirstPayment:Boolean? = null var ChargePerLicense:Boolean? = null } enum class PaymentType(val value:Int) { Deposit(1), MemberPayment(2), Recurring(3), Purchase(4), } enum class PaymentPeriod { Single, Recurring, } enum class DirectDebitPeriod(val value:Int) { Daily(0), Monthly(1), Quarterly(2), Yearly(3), Weekly(4), SixMonthly(5), TwoWeekly(6), EveryFourWeeks(7), None(-1), } enum class PaymentMethod(val value:Int) { Unpaid(1), Cash(2), Card(3), Cheque(4), Recurring(5), Failed(6), Bacs(7), Account(8), }