/* Options: Date: 2025-07-19 18:57:29 Version: 6.50 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://www.clubready.com/api/current //GlobalNamespace: //MakePropertiesOptional: False //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: AgreementAddEndpoint.* //ExcludeTypes: //DefaultImports: */ export enum RestrictedResourceType { Store = 'Store', Chain = 'Chain', User = 'User', Undefined = 'Undefined', } export interface IApiDtoBase { ApiKey?: string; StoreId?: number; ChainId?: number; } export interface IRestrictedApiRequest extends IApiKeyEndpoint { RestrictedId?: number; RestrictedResourceType: RestrictedResourceType; } export interface IApiKeyEndpoint { ApiKey: string; } export interface IAddEndpoint extends IApiDtoBase { MemberId: number; PackageId: number; InstallmentId?: number; StartDate?: string; PromoCode?: string; StaffId?: number; } export class ApiResponse2Base { public success: boolean; public message?: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class AddResponse extends ApiResponse2Base { public incompleteAgreementToken?: string; public contractId?: number; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } // @Route("/sales/agreement/add", "POST") // @ApiResponse(Description="", ResponseType="typeof(ClubReady.Web.Api.Sales.Agreement.AddResponse)", StatusCode=200) export class AgreementAddEndpoint implements IReturn, IAddEndpoint, IRestrictedApiRequest { /** * IP address of the end user */ // @ApiMember(Description="IP address of the end user", IsRequired=true, Name="X-Forwarded-For", ParameterType="header") public XForwardedFor: string; /** * Api Authentication Key */ // @ApiMember(Description="Api Authentication Key", IsRequired=true, ParameterType="query") public ApiKey: string; /** * Member Id of the user buying the Package */ // @ApiMember(Description="Member Id of the user buying the Package", IsRequired=true, ParameterType="query") public MemberId: number; public ChainId?: number; /** * Id of the store for the user */ // @ApiMember(Description="Id of the store for the user", IsRequired=true) public StoreId: number; /** * Package Id number of the package being purchased */ // @ApiMember(Description="Package Id number of the package being purchased", IsRequired=true) public PackageId: number; /** * Installment Plan Id being purchased. If empty, the default package will be selected. */ // @ApiMember(Description="Installment Plan Id being purchased. If empty, the default package will be selected.") public InstallmentId?: number; /** * Date contract takes affect */ // @ApiMember(Description="Date contract takes affect") public StartDate?: string; /** * Promo code to apply a discount. */ // @ApiMember(Description="Promo code to apply a discount.") public PromoCode?: string; /** * Staff Id of salesperson who sold the agreement. */ // @ApiMember(Description="Staff Id of salesperson who sold the agreement.") public StaffId?: number; public RestrictedId?: number; public RestrictedResourceType: RestrictedResourceType; public constructor(init?: Partial) { (Object as any).assign(this, init); } public getTypeName() { return 'AgreementAddEndpoint'; } public getMethod() { return 'POST'; } public createResponse() { return new AddResponse(); } }