/* Options: Date: 2025-12-07 00:25:30 Version: 8.0 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://api.sfgtec.com //GlobalNamespace: //MakePropertiesOptional: False //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: CreateSubscribeCustomer.* //ExcludeTypes: //DefaultImports: */ export interface IReturn { createResponse(): T; } export interface IPost { } export enum StripeType { unknown = 'unknown', account = 'account', card = 'card', charge = 'charge', coupon = 'coupon', customer = 'customer', discount = 'discount', dispute = 'dispute', event = 'event', invoiceitem = 'invoiceitem', invoice = 'invoice', line_item = 'line_item', plan = 'plan', subscription = 'subscription', token = 'token', transfer = 'transfer', list = 'list', product = 'product', } export class StripeObject { public object?: StripeType; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class StripeId extends StripeObject { public id: string; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export enum StripeCouponDuration { forever = 'forever', once = 'once', repeating = 'repeating', } export class StripeCoupon extends StripeId { public amountOff?: number; public created?: string; public currency: string; public duration: StripeCouponDuration; public durationInMonths?: number; public livemode: boolean; public maxRedemptions?: number; public metadata: { [index: string]: string; }; public percentOff?: number; public redeemBy?: string; public timesRedeemed: number; public valid: boolean; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class StripeDiscount extends StripeId { public customer: string; public coupon: StripeCoupon; public start?: string; public end?: string; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class StripeAddress { public city: string; public country: string; public line1: string; public line2: string; public postalCode: string; public state: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class StripeShipping { public address: StripeAddress; public name: string; public phone: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class StripeCollection extends StripeId { public url: string; public totalCount: number; public hasMore?: boolean; public data: T[]; public constructor(init?: Partial>) { super(init); (Object as any).assign(this, init); } } export enum StripeCvcCheck { Unknown = 'Unknown', Pass = 'Pass', Fail = 'Fail', Unchecked = 'Unchecked', } export class StripeCard extends StripeId { public brand: string; public number: string; public last4: string; public dynamicLast4: string; public expMonth: number; public expYear: number; public cvc: string; public name: string; public addressCity: string; public addressCountry: string; public addressLine1: string; public addressLine2: string; public addressState: string; public addressZip: string; public cvcCheck?: StripeCvcCheck; public addressLine1Check: string; public addressZipCheck: string; public funding: string; public fingerprint: string; public customer: string; public country: string; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export enum StripeSubscriptionStatus { Unknown = 'Unknown', Trialing = 'Trialing', Active = 'Active', PastDue = 'PastDue', Canceled = 'Canceled', Unpaid = 'Unpaid', } export enum StripePlanInterval { month = 'month', year = 'year', } export class StripePlan extends StripeId { public amount: number; public created?: string; public currency: string; public interval: StripePlanInterval; public intervalCount?: number; public livemode: boolean; public metadata: { [index: string]: string; }; public nickname: string; public product: string; public trialPeriodDays?: number; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class StripeSubscription extends StripeId { public currentPeriodEnd?: string; public status: StripeSubscriptionStatus; public plan: StripePlan; public currentPeriodStart?: string; public start?: string; public trialStart?: string; public cancelAtPeriodEnd?: boolean; public trialEnd?: string; public canceledAt?: string; public endedAt?: string; public customer: string; public quantity: number; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class StripeCustomer extends StripeId { public accountBalance: number; public businessVatId: string; public created?: string; public defaultSource: string; public delinquent?: boolean; public description: string; public discount: StripeDiscount; public email: string; public invoicePrefix: string; public livemode: boolean; public metadata: { [index: string]: string; }; public shipping: StripeShipping; public sources: StripeCollection; public subscriptions: StripeCollection; public deleted: boolean; public currency: string; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } // @Route("/create-customer", "POST") export class CreateSubscribeCustomer implements IReturn, IPost { public email: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } public getTypeName() { return 'CreateSubscribeCustomer'; } public getMethod() { return 'POST'; } public createResponse() { return new StripeCustomer(); } }