/* Options: Date: 2025-09-08 01:42:09 Version: 8.81 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://account.servicestack.net //GlobalNamespace: //MakePropertiesOptional: False //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: CreateCustomer.* //ExcludeTypes: //DefaultImports: */ export interface IReturn { createResponse(): T; } export interface IPost { } export interface IAddress { addressLine1: string; addressLine2: string; addressCity: string; addressZip: string; addressState: string; addressCountry: string; } export class Order implements IAddress { public id: number; public customerId: number; public productName: string; public firstName: string; public lastName: string; public email: string; public company: string; public phoneNumber: string; public addressLine1: string; public addressLine2: string; public addressCity: string; public addressZip: string; public addressState: string; public addressCountry: string; public agreeTerms: boolean; public notes: string; public last4: string; public subTotal: number; public couponId: string; public discount: number; public tax: number; public total: number; public itemQuantity: number; public authorizedQuantity?: number; public subscriptionId?: number; public licenseRef: string; public paymentId?: number; public emailId?: number; public paid: boolean; public createdDate: string; public modifiedDate: string; public modifiedBy: string; public cancelledDate?: string; public cancelledReason: string; public ipAddress: string; public orderDetails: OrderDetail[]; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class Subscription { public id: number; public customerId: number; public email: string; public skuId: number; public skuName: string; public skuType: SkuType; public code: string; public quantity: number; public supportQuantity: number; public total: number; public isPlan: boolean; public isRenewal: boolean; public subscriptionDurationDays: number; public renewalDate?: string; public licenseRef: string; public licenseName: string; public licenseAddress: string; public licenseType: LicenseType; public expiryDate: string; public licenseKey: LicenseKey; public licenseKeyText: string; public createdDate: string; public modifiedDate: string; public cancelledDate?: string; public stripeSubscriptionId: string; public emailId?: number; public emailRenewalId?: number; public emailExpiredId?: number; public renewalSubscriptionId?: number; public externalRef: string; public notes: string; public error: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } // @Route("/Customer") // @Route("/Customer/{Id}") export class Customer implements IAddress { public id: number; public email: string; public displayName: string; public firstName: string; public lastName: string; public company: string; public phoneNumber: string; public addressLine1: string; public addressLine2: string; public addressCity: string; public addressZip: string; public addressState: string; public addressCountry: string; public stripeCustomerId: string; public stripeCouponId: string; public plan: string; public createdDate: string; public isReferrer: boolean; public orders: Order[]; public subscriptions: Subscription[]; public constructor(init?: Partial) { (Object as any).assign(this, init); } public getTypeName() { return 'Customer'; } public getMethod() { return 'POST'; } public createResponse() {} } // @Route("/CreateCustomer", "POST") // @ValidateRequest(Validator="IsAdmin") export class CreateCustomer implements IReturn, IPost { public firstName: string; public lastName: string; public email: string; public password: string; public company: string; public phoneNumber: string; public addressLine1: string; public addressLine2: string; public addressCity: string; public addressZip: string; public addressState: string; public addressCountry: string; public createdDate?: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } public getTypeName() { return 'CreateCustomer'; } public getMethod() { return 'POST'; } public createResponse() { return new Customer(); } }