/** * Copyright 2020 Colin Doig. Distributed under the MIT license. */ import JsonMember from '../JsonMember'; export interface IApplicationSubscriptionOptions { subscriptionToken: string; expiryDateTime?: Date | string; expiredDateTime?: Date | string; createdDateTime?: Date | string; activationDateTime?: Date | string; cancellationDateTime?: Date | string; subscriptionStatus?: string; clientReference?: string; vendorClientId?: string; } export default class ApplicationSubscription extends JsonMember { private subscriptionToken: string; private expiryDateTime?: Date; private expiredDateTime?: Date; private createdDateTime?: Date; private activationDateTime?: Date; private cancellationDateTime?: Date; private subscriptionStatus?: string; private clientReference?: string; private vendorClientId?: string; constructor(options: IApplicationSubscriptionOptions) { super(); this.subscriptionToken = options.subscriptionToken; if (options.expiryDateTime) { this.expiryDateTime = this.fromJson(options.expiryDateTime, Date); } if (options.expiredDateTime) { this.expiredDateTime = this.fromJson(options.expiredDateTime, Date); } if (options.createdDateTime) { this.createdDateTime = this.fromJson(options.createdDateTime, Date); } if (options.activationDateTime) { this.activationDateTime = this.fromJson(options.activationDateTime, Date); } if (options.cancellationDateTime) { this.cancellationDateTime = this.fromJson(options.cancellationDateTime, Date); } this.subscriptionStatus = options.subscriptionStatus; this.clientReference = options.clientReference; this.vendorClientId = options.vendorClientId; } public toJson(): IApplicationSubscriptionOptions { const json: IApplicationSubscriptionOptions = { subscriptionToken: this.subscriptionToken, }; if (typeof this.expiryDateTime !== 'undefined') { json.expiryDateTime = this.expiryDateTime.toISOString(); } if (typeof this.expiredDateTime !== 'undefined') { json.expiredDateTime = this.expiredDateTime.toISOString(); } if (typeof this.createdDateTime !== 'undefined') { json.createdDateTime = this.createdDateTime.toISOString(); } if (typeof this.activationDateTime !== 'undefined') { json.activationDateTime = this.activationDateTime.toISOString(); } if (typeof this.cancellationDateTime !== 'undefined') { json.cancellationDateTime = this.cancellationDateTime.toISOString(); } if (typeof this.subscriptionStatus !== 'undefined') { json.subscriptionStatus = this.subscriptionStatus; } if (typeof this.clientReference !== 'undefined') { json.clientReference = this.clientReference; } if (typeof this.vendorClientId !== 'undefined') { json.vendorClientId = this.vendorClientId; } return json; } public getSubscriptionToken(): string { return this.subscriptionToken; } public setSubscriptionToken(subscriptionToken: string): void { this.subscriptionToken = subscriptionToken; } public getExpiryDateTime(): Date | undefined { return this.expiryDateTime; } public setExpiryDateTime(expiryDateTime: Date): void { this.expiryDateTime = expiryDateTime; } public getExpiredDateTime(): Date | undefined { return this.expiredDateTime; } public setExpiredDateTime(expiredDateTime: Date): void { this.expiredDateTime = expiredDateTime; } public getCreatedDateTime(): Date | undefined { return this.createdDateTime; } public setCreatedDateTime(createdDateTime: Date): void { this.createdDateTime = createdDateTime; } public getActivationDateTime(): Date | undefined { return this.activationDateTime; } public setActivationDateTime(activationDateTime: Date): void { this.activationDateTime = activationDateTime; } public getCancellationDateTime(): Date | undefined { return this.cancellationDateTime; } public setCancellationDateTime(cancellationDateTime: Date): void { this.cancellationDateTime = cancellationDateTime; } public getSubscriptionStatus(): string | undefined { return this.subscriptionStatus; } public setSubscriptionStatus(subscriptionStatus: string): void { this.subscriptionStatus = subscriptionStatus; } public getClientReference(): string | undefined { return this.clientReference; } public setClientReference(clientReference: string): void { this.clientReference = clientReference; } public getVendorClientId(): string | undefined { return this.vendorClientId; } public setVendorClientId(vendorClientId: string): void { this.vendorClientId = vendorClientId; } }