/* Options: Date: 2025-04-04 18:03:51 Version: 5.140 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://api.clubmanagercentral.com //GlobalNamespace: //MakePropertiesOptional: False //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: Command.AddMembershipCommandRequest.* //ExcludeTypes: //DefaultImports: */ export interface IReturn { createResponse(): T; } export class CustomAttributeValue { public CustomAttributeId: number; public CustomAttributeValueId?: number; public InstanceId?: number; public StoredValue: string; public TypeName: string; public ReadOnly: boolean; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export enum PreviousMembershipAction { Nothing = 'Nothing', Renewal = 'Renewal', Replaces = 'Replaces', Additional = 'Additional', Delete = 'Delete', } export enum OffsetPeriod { Day = 'Day', Week = 'Week', Month = 'Month', Year = 'Year', } export enum PaymentType { Deposit = 1, MemberPayment = 2, Recurring = 3, Purchase = 4, } export enum PaymentPeriod { Single = 'Single', Recurring = 'Recurring', } export enum DirectDebitPeriod { Daily = 0, Monthly = 1, Quarterly = 2, Yearly = 3, Weekly = 4, SixMonthly = 5, TwoWeekly = 6, EveryFourWeeks = 7, None = -1, } export enum PaymentMethod { Unpaid = 1, Cash = 2, Card = 3, Cheque = 4, Recurring = 5, Failed = 6, Bacs = 7, Account = 8, } export class MembershipPayment { public Name: string; public PaymentType: PaymentType; public Amount: number; public PaymentPeriod: PaymentPeriod; public DirectDebitPeriod: DirectDebitPeriod; public Recurring: number; public StartingOffset: number; public StartingOffsetPeriod: OffsetPeriod; public StartDate?: string; public PaymentMethod?: PaymentMethod; public AutoRecur?: boolean; public ProRata?: boolean; public ProRataAmount: number; public ProRataStartDate: string; public ProRataPaymentMethod?: PaymentMethod; public ProRataAddToFirstPayment?: boolean; public ChargePerLicense: boolean; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class MembershipType { public BranchId?: number; public StartDate?: string; public EndDate?: string; public Length: number; public LengthPeriod: OffsetPeriod; public Payments: MembershipPayment[]; public AddToBalance?: number; public SessionsRemaining?: number; public ClassesRemaining?: number; public LicensesRemaining?: number; public MultiSiteAccess: boolean; public MemberLimit: number; public Definition: string; public BookingAccessOnly: boolean; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export interface ICommandResult { } export class AddMembershipResult implements ICommandResult { public MembershipId: number; public RecurrenceId?: number; public HasRecurringPayments: boolean; public constructor(init?: Partial) { (Object as any).assign(this, init); } } // @Route("/api/Command/AddMembershipCommand", "POST") export class AddMembershipCommandRequest implements IReturn { public MemberId: number; public UserId: number; public MembershipTypeId: number; public StartDate: string; public PreviousMembershipAction: PreviousMembershipAction; public ExternallyCreated: boolean; public IsOnlineJoining: boolean; public MembershipType: MembershipType; public CreateRecurringPaymentsOnly: boolean; public MembershipReviewAttributes: CustomAttributeValue[]; public RegistrationAttributes: CustomAttributeValue[]; public FeeRecurrenceDisabled: boolean; public Expired: boolean; public EndDate?: string; public RefererMemberId?: number; public PromotionId?: number; public RecurringAmount?: number; public RecurringStartDate?: string; public PaymentMethodId?: number; public BookingId?: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } public getTypeName() { return 'Command.AddMembershipCommandRequest'; } public getMethod() { return 'POST'; } public createResponse() { return new AddMembershipResult(); } }