/* Options: Date: 2024-05-18 14:50:54 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: CalculatePaymentPlanRequest.* //ExcludeTypes: //DefaultImports: */ export enum RestrictedResourceType { Store = 'Store', Chain = 'Chain', User = 'User', Undefined = 'Undefined', } export interface IRestrictedApiRequest extends IApiKeyEndpoint { RestrictedId?: number; RestrictedResourceType: RestrictedResourceType; } export interface IApiKeyEndpoint { ApiKey: string; } export class ApiDtoBase { public ApiKey: string; public StoreId?: number; public ChainId?: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class CalculatePaymentPlanRequestDto extends ApiDtoBase { public InstallmentPlanId: number; public PackageId: number; public StartDate?: string; public PromoCode: string; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class PaymentPlanInstallment { public PayToday: boolean; public Amount: number; public Taxed: boolean; public TaxRate?: number; public TaxAmount?: number; public FeeName: string; public DueDate: string; public Total: string; public SetupFeeId?: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class CalculatePaymentPlanResultDto { public PlanTotal: string; public SubTotal: string; public TaxRate?: number; public EnhancementFee: string; public EnhancementFeeTaxAmount: string; public TaxEnhFee: boolean; public Tax: string; public TotalDueToday: string; public Payments: PaymentPlanInstallment[]; public Fees: PaymentPlanInstallment[]; public IsEvergreen: boolean; public RequirePaymentProfile: boolean; public constructor(init?: Partial) { (Object as any).assign(this, init); } } // @Route("/sales/packages/{PackageId}/installments/calculate/{InstallmentPlanId}", "GET") export class CalculatePaymentPlanRequest extends CalculatePaymentPlanRequestDto implements IReturn, IRestrictedApiRequest { /** * Api Key - grants access to resources */ // @ApiMember(DataType="string", Description="Api Key - grants access to resources", IsRequired=true, Name="ApiKey", ParameterType="query") public ApiKey: string; /** * ID # of store to calculate plan for */ // @ApiMember(DataType="integer", Description="ID # of store to calculate plan for", IsRequired=true, Name="StoreId", ParameterType="query") public StoreId: number; /** * Installment Plan to calculate a scheduel for */ // @ApiMember(DataType="integer", Description="Installment Plan to calculate a scheduel for", IsRequired=true, Name="InstallmentPlanId", ParameterType="path") public InstallmentPlanId: number; /** * The package to calculate for */ // @ApiMember(DataType="integer", Description="The package to calculate for", IsRequired=true, Name="PackageId", ParameterType="path") public PackageId: number; /** * Date to calculate schedule from. If not provided, will use today. */ // @ApiMember(DataType="datetime", Description="Date to calculate schedule from. If not provided, will use today.", Name="StartDate", ParameterType="query") public StartDate?: string; /** * Promo code to apply a discount. */ // @ApiMember(DataType="string", Description="Promo code to apply a discount.", Name="PromoCode", ParameterType="query") public PromoCode: string; public RestrictedId?: number; public RestrictedResourceType: RestrictedResourceType; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } public getTypeName() { return 'CalculatePaymentPlanRequest'; } public getMethod() { return 'GET'; } public createResponse() { return new CalculatePaymentPlanResultDto(); } }