/* Options: Date: 2025-07-17 23:36:05 Version: 6.40 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://hcbtas-q-albamfs-api.azurewebsites.net //GlobalNamespace: //MakePropertiesOptional: False //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: ProjectionReq.* //ExcludeTypes: //DefaultImports: */ export interface IReturn { createResponse(): T; } export enum Gender { Female = 'Female', Male = 'Male', Other = 'Other', } // @Route("/members", "PUT") export class Member extends Member implements IReturn { public id: string; public email: string; public employeeGuidString: string; public ignoreGender: boolean; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } public getTypeName() { return 'Member'; } public getMethod() { return 'PUT'; } public createResponse() { return new Member(); } } export class Member extends Entity implements IProjectable { public userId: string; public systemId: string; public schemeCode: string; public sessionId: string; public clientId: string; public clientCode: string; public isDefault: boolean; public groupId: string; public groupNameUpper: string; public appName: string; public appNameUpper: string; public key: string; public keyUpper: string; public country: string; public locale: string; public ccy: string; public cdy: string; public status: string; public statusCode: string; public category: string; public scheme: string; public primarySalary: string; public email: string; public employer: Employer; public roles: Roles; public asAt: string; public calcDate: string; public nextEOFY: string; public periodToNextEOFY: number; public year: number; public hasPartner: boolean; public includePartner: boolean; public includePartnerInCalc: boolean; public homeOwner: boolean; public targetAge: number; public targetTime: number; public targetIncomeR: number; public targetIncomeRFreq: number; public targetIncomeRAnnual: number; public targetP: number; public includeSS: boolean; public firstName: string; public lastName: string; public gender: Gender; public dob: string; public salary: number; public people: Person[]; public assets: Asset[]; public includeAnnuities: boolean; public annuities: Annuity[]; public spending: Spending; public investmentProperties: InvestmentProperty[]; public incomeVectors: { [index: string]: number[]; }; public config: AssumptionsConfig; public indexation: RateSpec[]; public annuityDisc: RateSpec[]; public indexationRates: { [index: string]: number[]; }; public annuityDiscRates: { [index: string]: number[]; }; public balance: number; public planSomeValue: string; public flag1: boolean; public flag2: boolean; public isFriendly: boolean; public financingOption: string; public totalYears: number; public totalLoopYears: number; public age: number; public ageR: number; public intAge: number; public indexType: string; public indexTypePre: string; public indexTypePost: string; public deflationType: string; public custom: { [index: string]: string; }; public countryCalcConfig: CountryCalculatorConfiguration; public summary: MemberSummary; public lastModified: string; public isReturningUser: boolean; public clientCountryConfigCacheKey: string; public personalAssets: number; public resultsSummary: Summary; public totalContribution: TotalContribution; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class Member implements IId, ITimestamp { public id: number; public employeeGuid: string; public employeeId: string; public clientId?: number; public configurationId?: number; public lastName: string; public firstName: string; public companyName: string; public employeeGroup: string; public title: string; public birthdate: string; public emailAddress: string; public maritalStatus: MaritalStatuses; public partnerBirthDate?: string; public gender?: IsoGenders; public militaryMonthCount?: number; public annualSalary?: number; public monthlySalary?: number; public salaryFrequency?: number; public deFederalState?: GermanFederalStates; public deTaxClass?: GermanTaxClasses; public deChurchTax?: boolean; public dePrivNursingInsurance?: number; public pensionFinancingOption: string; public hasPrivHealthInsurance?: boolean; public privHealthInsurance?: number; public childrenCount?: number; public child1BirthDate?: string; public child2BirthDate?: string; public child3BirthDate?: string; public child4BirthDate?: string; public child5BirthDate?: string; public child6BirthDate?: string; public child7BirthDate?: string; public child8BirthDate?: string; public child9BirthDate?: string; public child10BirthDate?: string; public authId: string; public authRegistrationDate?: string; public activationCode: string; public activationExpiringDate?: string; public planInfoDate?: string; public planInfoBag: string; public inactive: boolean; public dateCreated: string; public removeRequestDate?: string; public timestamp: string; public client: Client; public contributionDataDate?: string; public beneficiaryFirstName: string; public beneficiaryLastName: string; public beneficiaryTitle: string; public beneficiaryDateOfBirth?: string; public addressLine1: string; public addressLine2: string; public addressLine3: string; public phoneNumber: string; public mobileNumber: string; public dateCommencedService?: string; public calculatorDataDate?: string; public calculatorDataBag: string; public periodStart?: string; public periodEnd?: string; public memberId?: number; public infoBag: string; public projectionInfoBag: string; public companyPlanInfo: string; public infoProviderReference: string; public dateOfHire?: string; public ssin: string; public isProxy?: boolean; public isAllowedToVote?: boolean; public userId: string; public participantStatus: string; public investmentStrategy: string; public isAllowedToUpdatePlan?: boolean; public pensionableSalary?: number; public dateOfBirthSpouse?: string; public dateOfBirthYoungestChild?: string; public dateHiredOfPlan?: string; public contractType: string; public investmentRiskProfile: string; public documents: Document[]; public powensConnectionSyncs: PowensConnectionSync[]; public members: Member[]; public groupMembers: GroupMember[]; public parent: Member; public pensionFundManager: string; public proxyAccesses: ProxyAccess[]; public beneficiaries: Beneficiary[]; public currentBalances: CurrentBalance[]; public detailedBalances: DetailedBalance[]; public votingPollAnswers: VotingPollAnswer[]; public investmentAllocations: InvestmentAllocation[]; public memberContributions: MemberContribution[]; public participantStatusFormAnswers: ParticipantStatusFormAnswer[]; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class Member { public memberId: number; public employeeId: string; public employeeGuid: string; public email: string; public title: string; public firstName: string; public companyName: string; public employeeGroup: string; public lastName: string; public dateOfBirth: string; public gender: IsoGenders; public maritalStatus: MaritalStatuses; public numberOfChildren: number; public childrenCount?: number; public monthlySalary?: number; public annualSalary?: number; public dkPensionTerms: DkPensionTerms; public dkPrivateEmailAddress: string; public dkEmployerName: string; public dkContactConsent: boolean; public dkPersonalMandate: boolean; public deFederalState?: GermanFederalStates; public deTaxClass?: GermanTaxClasses; public deChurchTax?: boolean; public hasPrivHealthInsurance?: boolean; public privHealthInsurance?: number; public dePrivNursingInsurance?: number; public contributionDataDate?: string; public beneficiaryFirstName: string; public beneficiaryLastName: string; public beneficiaryTitle: string; public beneficiaryDateOfBirth?: string; public addressLine1: string; public addressLine2: string; public addressLine3: string; public phoneNumber: string; public mobileNumber: string; public dateCommencedService?: string; public partnerBirthDate?: string; public militaryMonthCount?: number; public child1BirthDate?: string; public child2BirthDate?: string; public child3BirthDate?: string; public child4BirthDate?: string; public child5BirthDate?: string; public child6BirthDate?: string; public child7BirthDate?: string; public child8BirthDate?: string; public child9BirthDate?: string; public child10BirthDate?: string; public infoBag: string; public projectionInfoBag: string; public clientId?: number; public companyPlanInfo: string; public pensionFundManager: string; public dateOfHire?: string; public powensConnections: PowensConnection[]; public isPrivateClient: boolean; public isProxy: boolean; public beneficiaries: Beneficiary[]; public currentBalances: CurrentBalance[]; public detailedBalances: DetailedBalance[]; public beneficiariesLatestSubmittedDate?: string; public userId: string; public participantStatus: string; public investmentStrategy: string; public isAllowedToUpdatePlan?: boolean; public pensionableSalary?: number; public dateOfBirthSpouse?: string; public dateOfBirthYoungestChild?: string; public dateHiredOfPlan?: string; public contractType: string; public isAllowedToVote?: boolean; public votingPollAnswer: VotingPollAnswer; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export enum DataSource { Db = 'Db', Cache = 'Cache', Parameter = 'Parameter', NA = 'NA', } export class DataSourceResult { public d: DataSource; public t: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export enum SolveTarget { NA = 'NA', RunOutAge = 'RunOutAge', Income = 'Income', AgeR = 'AgeR', Contributions = 'Contributions', } export class SolvePathEntry { public v: number; public p: number; public r: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class ProjectionPointDto { public t: number; public globalPeriod?: number; public year: number; public age: number; public intAge: number; public indexation?: number; public avgGrowthIndexation?: number; public priceInflation?: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class MemberPointDto extends ProjectionPointDto { public period: number; public bothAreRetired: boolean; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class ProjectableDto { public asAt?: string; public age?: number; public intAge: number; public year: number; public periodToNextEOFY?: number; public indexType: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export enum PersonType { Primary = 'Primary', Partner = 'Partner', } export enum SalaryType { Gross = 'Gross', Net = 'Net', } export class SalaryChangeDto { public fromAge: number; public amount: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class SalaryDto { public type: SalaryType; public ccy: string; public amount: number; public freq: number; public annualAmount: number; public indexType: string; public salaryChanges: SalaryChangeDto[]; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export enum OtherIncomeType { Pension = 'Pension', Investments = 'Investments', Income = 'Income', } export class IncomeStreamDto { public name: string; public indexType: string; public type: OtherIncomeType; public amount: number; public fromAge: number; public toAge: number; public isTaxable: boolean; public custom: { [index: string]: string; }; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class SocialSecurityDto extends ProjectableDto { public owner: PersonType; public includeSS: boolean; public isMarried: boolean; public homeOwner: boolean; public personalAssets: number; public numPeople: number; public dob: string; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class CareerBreakDto { public fromAge: number; public toAge: number; public workingRate?: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class CareerBreaksDto { public willTake: boolean; public breaks: CareerBreakDto[]; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class PersonDto extends ProjectableDto { public type: PersonType; public index: number; public firstName: string; public lastName: string; public gender: Gender; public isAgeInput: boolean; public dob: string; public ageAtLast30June: number; public privateHealthInsurance: boolean; public serviceDate: string; public service: number; public intService: number; public ageR: number; public ageRMonths: number; public email: string; public salaries: { [index: string]: SalaryDto; }; public salaryChangeSeries: number[]; public hasOtherIncome: boolean; public otherIncome: IncomeStreamDto[]; public socialSecurity: SocialSecurityDto; public taxableDeductions: number; public nonTaxableDeductions: number; public careerChanges: CareerBreaksDto; public custom: { [index: string]: string; }; public salaryKey: string; public annualProjectibleSalary: number; public projectionBreakdownCode: string; public salary: number; public salaryFreq: number; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class PersonPointDto extends ProjectionPointDto { public isRetired: boolean; public service: number; public contPeriod: number; public annualProjectibleSalary: number; public salaryPV: number; public salary: number; public salaryMOY: number; public preTaxDeductions: number; public otherTaxableIncome: number; public totalOtherTaxableIncome: number; public taxableIncome: number; public taxableIncomeWithConts: number; public taxableIncomeNoConts: number; public totalIncomeTax: number; public incomeTaxWithConts: number; public incomeTaxNoConts: number; public afterTaxEarnings: number; public afterTaxEarningsWithConts: number; public afterTaxEarningsNoConts: number; public postTaxDeductions: number; public totalAfterTaxDrawdown: number; public otherTaxFreeIncome: number; public afterTaxDeductions: number; public afterTaxDeductionsWithConts: number; public afterTaxDeductionsNoConts: number; public drawdowns: number; public totalAfterTax: number; public totalAfterTaxWithConts: number; public totalAfterTaxNoConts: number; public netIncome: number; public taxRatio: number; public pvFactorBOY: number; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class IncomeStreamPointDto extends ProjectionPointDto { public incomePV: number; public income: number; public taxableAmount: number; public nonTaxableAmount: number; public taxableAmountPV: number; public nonTaxableAmountPV: number; public netIncome: number; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class IncomeStreamProjectionDto { public item: IncomeStreamDto; public count: number; public projection: IncomeStreamPointDto[]; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class SocialSecurityPointDto extends ProjectionPointDto { public personalAssets: number; public assessableAssets: number; public fullPensionPP: number; public assetThreshold: number; public minPension: number; public assetMeansTest: number; public deemedIncomeThreshold: number; public deemedReturn: number; public actualIncome: number; public totalIncome: number; public incomeThreshold: number; public incomeTest: number; public totalSocialSecurity: number; public income: number; public fullPensionIndexation: number; public minPensionIndexation: number; public assetThresholdIndexation: number; public incomeThresholdIndexation: number; public deemedIncomeThresholdIndexation: number; public personalAssetsIndexation: number; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class SocialSecurityProjectionDto { public item: SocialSecurityDto; public projection: SocialSecurityPointDto[]; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class PersonProjectionDto { public item: PersonDto; public count: number; public projection: PersonPointDto[]; public otherIncomeProjections: IncomeStreamProjectionDto[]; public socialSecurityProjection: SocialSecurityProjectionDto; public dob: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export enum AssetType { FinAsset = 'FinAsset', AUSuper = 'AUSuper', AUABP = 'AUABP', } export enum MinSpendRule { NoMinimum = 'NoMinimum', FullValue = 'FullValue', AuAbpMin = 'AuAbpMin', } export enum MaxSpendRule { NoMaximum = 'NoMaximum', AuSuper = 'AuSuper', } export enum SocialSecurityTreatment { Exempt = 'Exempt', Deemed = 'Deemed', Actual = 'Actual', } export enum ContributionType { Fixed = 'Fixed', Time = 'Time', Lookup = 'Lookup', Match = 'Match', } export class ContributionDto extends ProjectableDto { public code: string; public index: number; public name: string; public ccy: string; public contTable: string; public lookupKey: string; public isEmployeeCont: boolean; public employerFlag: boolean; public type: ContributionType; public sourceRate: string; public isTaxable: boolean; public amount: number; public coreAmount: number; public freq: number; public rate: number; public coreRate: number; public fromAge: number; public toAge?: number; public salary: number; public annualAmount: number; public annualCoreAmount: number; public isAlwaysOneOff: boolean; public isOneOff: boolean; public custom: { [index: string]: string; }; public memberRateLookup: { [index: number]: number; }; public isFromSalary: boolean; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class FeeDto extends ProjectableDto { public name: string; public ccy: string; public amount: number; public freq: number; public annualAmount: number; public rate: number; public isTaxable: boolean; public fromAge: number; public toAge: number; public custom: { [index: string]: string; }; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class FeeCapArrangementDto extends ProjectableDto { public name: string; public amount: number; public indexationRateSeries: number; public rate: number; public feesIncluded: number[]; public fromTime: number; public toTime: number; public custom: { [index: string]: string; }; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class ProductAllocationMappingDto { public current: { [index: string]: number; }; public future: { [index: string]: number; }; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class ProductAllocationDto { public name: string; public fromAge: number; public optAlloc: ProductAllocationMappingDto; public totalAlloc: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export enum RatesSource { DB = 'DB', Member = 'Member', MemberRates = 'MemberRates', ClientRates = 'ClientRates', } export class AssetDto extends ProjectableDto { public type: AssetType; public owner: PersonType; public code: string; public name: string; public ccy: string; public value: number; public change: number; public transferTo: number; public transferAge: number; public willSpend: boolean; public minRule: MinSpendRule; public maxRule: MaxSpendRule; public ssTreatment: SocialSecurityTreatment; public spendOnAnnuity: boolean; public contTaxRate: number; public totalConts: number; public totalContsFreq: number; public totalLumpSumConts: number; public rebalance: boolean; public retLumpSum: boolean; public contributions: ContributionDto[]; public fees: FeeDto[]; public feeCapArrangements: FeeCapArrangementDto[]; public alloc: ProductAllocationDto[]; public ratesSource: RatesSource; public custom: { [index: string]: string; }; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class AssetPointDto extends ProjectionPointDto { public period: number; public assetSwitchFlag: boolean; public contReturn: number; public balCashFlowReturn: number; public balBOY: number; public balBOYPV: number; public balBOYPostTransfers: number; public balBOYPostTransfersPV: number; public balBOYPostTransfersSimple: number; public balBOYPostTransfersWOLS: number; public transfersOut: number; public transfersOutWithLS: number; public lumpSumAtRet: number; public drawdownEligibility: number; public minDrawdown: number; public intermediateMinDrawdown: number; public drawdownReturns: number; public contReturnPow: number; public balCashFlowReturnPow: number; public balPreDrawdown: number; public proportionOfAsset: number; public additionalDrawdown: number; public totalIntermediateDrawdown: number; public totalDrawdowns: number; public totalDrawdownsPV: number; public totalTaxableFees: number; public totalNonTaxableFees: number; public returnsForFees: number; public balanceForFees: number; public taxDeductions: number; public returns: number; public balEOY: number; public assetBalPurchase: number; public balBOYPostAnnuityPurchase: number; public balBOYPostAnnuityPurchasePerson: number; public ssBalBOYPostAnnuityPurchase: number; public totalCashflowBOY: number; public totalCashflowMOY: number; public totalContributionsMOY: number; public remainingDrawdownRequired: number; public totalDrawdownRequired: number; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class FeePointDto extends ProjectionPointDto { public yearsSinceFromAge: number; public period: number; public amount: number; public rateAmount: number; public totalTaxDeductible: number; public totalNonTaxDeductible: number; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class FeeProjectionDto { public item: FeeDto; public projection: FeePointDto[]; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class FeeCapPointDto extends ProjectionPointDto { public period: number; public totalFeeCap: number; public taxDeductibleFees: number; public nonTaxDeductibleFees: number; public offsetTaxDeductible: number; public offsetNonTaxDeductible: number; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class FeeCapProjectionDto { public item: FeeCapArrangementDto; public count: number; public projection: FeeCapPointDto[]; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class TotalContributionDto extends ProjectableDto { public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class TotalContributionPointDto extends ProjectionPointDto { public contIndexation: number; public totalMemberNonTaxableSalaryCont: number; public totalMemberNonTaxableNonSalaryCont: number; public threshold: number; public coContAmt: number; public contCapsTotalEmployer: number; public transferBalanceCap: number; public contCapsTotalMemberTaxable: number; public contCapsTotalMemberNonTaxableSalary: number; public contCapsTotalMemberNonTaxableNonSalary: number; public cappedContTotalEmployer: number; public cappedContTotalMemberTaxable: number; public cappedContTotalMemberNonTaxableSalaryCont: number; public cappedContTotalMemberNonTaxableNonSalaryCont: number; public auLowIncomeSuperTaxOffset: number; public contTax: number; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class ContributionPointDto extends ProjectionPointDto { public period: number; public salary: number; public rateLookupValue: string; public linkedContRate: number; public rate: number; public amount: number; public rateAmount: number; public contAmount: number; public totalMemberTaxable: number; public totalMemberNonTaxable: number; public totalMemberNonTaxableSalary: number; public totalMemberNonTaxableNonSalary: number; public totalEmployer: number; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class ContributionProjectionDto { public item: ContributionDto; public projection: ContributionPointDto[]; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class TotalContributionProjectionDto { public item: TotalContributionDto; public projection: TotalContributionPointDto[]; public contributionProjections: ContributionProjectionDto[]; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class AssetProjectionDto { public item: AssetDto; public projection: AssetPointDto[]; public dob: string; public assetIndex: number; public feeProjections: FeeProjectionDto[]; public feeCapProjections: FeeCapProjectionDto[]; public totalContributionProjection: TotalContributionProjectionDto; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export enum AnnuityPriceType { Calc = 'Calc', Table = 'Table', } export enum AnnuityType { Deferred = 'Deferred', Immediate = 'Immediate', TheOtherType = 'TheOtherType', } export enum AnnuityPurchaseType { Perc = 'Perc', Income = 'Income', Amount = 'Amount', } export class AnnuityDto extends ProjectableDto { public priceType?: AnnuityPriceType; public price?: number; public owner: PersonType; public gender: Gender; public ownerAge: number; public spouseAge?: number; public type: AnnuityType; public purchaseType: AnnuityPurchaseType; public purchaseAmount: number; public percBalanceSpent?: number; public amountSpent?: number; public incomePurchased?: number; public purchaseAge: number; public deferralPeriod?: number; public indexationName: string; public drStochastic: string; public impliedInflationStochasticSeries: string; public reversion?: number; public guarantee?: number; public timing?: number; public scaleQx?: number; public scaleImpr?: number; public ageRating?: number; public spouseAgeRating?: number; public custom: { [index: string]: string; }; public tableName: string; public imprFactorTableName: string; public spouseAgeAtPurchase: number; public expense?: number; public cacheKey: string; public targetTpx?: number; public paymentTerm: number; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class AnnuitiesPointDto extends ProjectionPointDto { public purchaseYear: number; public discountRate: number; public stochAnnuityRateIndex: number; public inflation: number; public purchase: boolean; public pensionPaymentPeriod: boolean; public assetBalPurchaseTotal: number; public annuityIndexation: number; public purchasePrice: number; public purchaseAmount: number; public purchaseAmountPV: number; public annuityIncome: number; public annuityIncomePeriod: number; public annuityIncomePV: number; public annuityAssessableAsset: number; public annuityAssessableIncome: number; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class AnnuitiesProjectionDto { public item: AnnuityDto; public count: number; public projection: AnnuitiesPointDto[]; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class SpendingGoalDto extends ProjectableDto { public name: string; public amount: number; public freq: number; public effectiveFreq?: number; public excludeFromProjection: boolean; public fromAge: number; public toAge: number; public selectedPersonalised: string; public tag: string; public custom: { [index: string]: string; }; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class SpendingGoalPointDto extends ProjectionPointDto { public freq: number; public yearsSinceFromAge: number; public period: number; public amount: number; public amountPV: number; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class SpendingGoalProjectionDto { public item: SpendingGoalDto; public count: number; public projection: SpendingGoalPointDto[]; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class InvestmentPropertyDto extends ProjectableDto { public owner: PersonType; public value: number; public rentYield: number; public expense: number; public downsize: number; public downsizeAge: number; public downsizeToAsset: number; public rates: number; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class InvestmentPropertyPointDto extends ProjectionPointDto { public capitalGrowthRate: number; public valueBeforeDownsize: number; public downsize: number; public valueAfterDownsize: number; public rent: number; public expenses: number; public valueBeforeDownsizePV: number; public income: number; public netRent: number; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class InvestmentPropertyProjectionDto { public item: InvestmentPropertyDto; public projection: InvestmentPropertyPointDto[]; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class SummaryDto extends ProjectableDto { public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class SummaryPointDto extends ProjectionPointDto { public period: number; public deflatorBOY?: number; public deflatorMOY?: number; public incomeNeeds: number; public incomeYou: number; public incomePartner: number; public socialSecurity: number; public incomeAssets: number; public totalIncome: number; public gap: number; public balanceAssets: number; public balanceProperty: number; public incomeAnnuities: number; public incomeProperty: number; public lumpSumSpend: number; public retPeriod: number; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class SummaryProjectionDto { public item: SummaryDto; public count: number; public projection: SummaryPointDto[]; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class MemberProjectionDto { public count: number; public projection: MemberPointDto[]; public people: PersonProjectionDto[]; public assets: AssetProjectionDto[]; public annuities: AnnuitiesProjectionDto[]; public spending: SpendingGoalProjectionDto[]; public investmentProperties: InvestmentPropertyProjectionDto[]; public summary: SummaryProjectionDto; public incomeR: number; public incomeRBreakdown: { [index: string]: number; }; public balR: number; public balRFV: number; public balanceRunOutAge: number; public incomeGapFlag: boolean; public residualBalance: boolean; public lumpSumRet: number; public incomeVectors: { [index: string]: number[]; }; public projections: { [index: string]: ProjectionBreakdownDto[]; }; public inheritance: number; public inheritanceGoal: number; public balanceRunOutTime: number; public timeBothRetired: number; public yearsInRetirement: number; public annuityPurchaseAmount: number; public costToYou: number; public taxRelief: number; public employerMatch: number; public extraAmount: number; public youPay: number; public totalInvested: number; public solvePath: SolvePathEntry[]; public solverCount: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class SimulationResultDto { public id: number; public targetIncome: number; public targetAge: number; public netIncome: number; public contributionsOutOfPocket: number; public incomeR: number; public incomeRBreakdown: { [index: string]: number; }; public runOutAge: number; public firstBalanceZeroAge: number; public ageR: number; public balR: number; public inheritanceGoal: number; public inheritance: number; public residualBal: number; public year1Pension: number; public projection: MemberProjectionDto; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export enum CallType { Sync = 'Sync', Async = 'Async', } export class StochasticProjectionDiagnostics { public dataSources: { [index: string]: DataSourceResult; }; public runTime: string; public runDuration: number; public projectionSvcDuration: number; public remoteProjectionSvcDuration: number; public webApiDuration: number; public remoteStochProjCallType: CallType; public clientStochProjCallType: CallType; public simCount: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class StochasticProjectionDto { public member: Member; public userId: string; public key: string; public invOption: string; public invOptionR: string; public stochasticDataKey: string; public assumeSteadyIncome: boolean; public solveTarget: SolveTarget; public targetAge: number; public targetIncome: number; public targetP: number; public netIncome: number; public bal: number; public contributionsOutOfPocket: number; public pTarget: number; public countTarget: number; public incomeR: number; public avgIncomeRBreakdown: { [index: string]: number; }; public avgLumpSumSpend: number; public avgTaxableLumpSum: number; public avgLumpSumTax: number; public avgLumpSumNet: number; public ageR: number; public runOutAge: number; public savings: number; public balR: number; public residualBal: number; public balRFV: number; public solverCount: number; public solved: boolean; public solvePath: SolvePathEntry[]; public incomeRBreakdown: { [index: string]: number; }; public firstBalanceZeroAge: number; public simulationResults: SimulationResultDto[]; public balRs: number[]; public projections: { [index: string]: ProjectionBreakdownDto[]; }; public diagnostics: StochasticProjectionDiagnostics; public avgAnnuityPurchaseAmount: number; public yearsInRetirement: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class AlbaDiagnostics { public setupDuration: number; public stochDuration: number; public detDuration: number; public memberSaveDuration: number; public webApiDuration: number; public preProjectionPipeDuration: number; public postProjectionPipeDuration: number; public preProjectionStepsDuration: { [index: string]: number; }; public postProjectionStepsDuration: { [index: string]: number; }; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export enum ContributionType { Employer = 'Employer', Employee = 'Employee', EmployerMatching = 'EmployerMatching', } export class SiteContext { public echoUri: string; public branding: Branding; public modules: string[]; public conditionalAccess: ConditionalAccess; public colorScheme: ColorScheme; public carriers: ConfigurationVersionCarrier[]; public country: string; public defaultLanguage: string; public availableLanguages: string[]; public currency: string; public employer: Entity; public carrier: CarrierEntity; public consultant: Entity; public member: Member; public counsellingOptions: CounsellingOptions; public dkCalculatorConfiguration: DkCalculatorConfiguration; public dkPensionsInfoSsoTicket: SecurityToken; public dkPensionsInfo: DkPensionsInfo; public deCalculatorConfiguration: DeCalculatorConfiguration; public disabilityInsurancePlan: DisabilityInsurancePlan; public criticalIllnessInsurancePlan: CriticalIllnessInsurancePlan; public deathInsurancePlan: DeathInsurancePlan; public healthInsurancePlan: HealthInsurancePlan; public accidentInsurancePlan: AccidentInsurancePlan; public dentalInsurancePlan: DentalInsurancePlan; public seniorCitizenConcept: SeniorCitizenConcept; public retirementPlan: RetirementPlan; public deRetirementPlans: DeRetirementPlans; public preventiveTreatment: PreventiveTreatment; public isPensionScheme: boolean; public pathFinder: PathFinder; public financialWellBeing: FinancialWellbeing; public useInformalLanguage?: boolean; public usesSSO?: boolean; public authenticationMethod: AuthenticationMethod; public cprNumberNeeded: boolean; public activationCodeRequired: boolean; public employerEmailDomain: string; public version: string; public taxPseudocodeURL: string; public calculatorConfiguration: CalculatorData; public configurationIds: ConfigurationIds; public documentList: Document[]; public newDocumentDaySpan?: number; public sasTokenDurationInSeconds?: number; public dataRetentionPeriodInYears?: number; public periods: Period[]; public groupConfig: ConfigurationVersionGroupConfig; public memberDocumentConfig: ConfigurationVersionMemberDocumentConfig; public pensionSightClient: PensionSightClient; public userResultConfiguration: UserResultConfiguration[]; public userSearchConfiguration: UserSearchConfiguration[]; public userResultConfigurationAdminProxy: UserResultConfigurationAdminProxy[]; public userSearchConfigurationAdminProxy: UserSearchConfigurationAdminProxy[]; public frCompanyPlans: FrCompanyPlans; public esRetirementPlans: EsRetirementPlans; public frCalculatorConfiguration: FrCalculatorConfiguration; public frFundSetups: FrFundSetup[]; public frPlanSetups: FrPlanSetup[]; public frPreviousPlansSetups: FrPreviousPlansSetup[]; public frIndividualPlanFunds: string[]; public beRetirementPlans: BeRetirementPlans[]; public beContributions: BeContributions; public privateClientProducts: PrivateClientProduct[]; public contactUs: ConfigurationVersionEmailSetting; public emailSettings: ConfigurationVersionEmailSetting[]; public formTypeFieldsConfiguration: FormTypeFieldsConfiguration[]; public formTypeLookupConfiguration: FormTypeLookupConfiguration[]; public recommendation: ConfigurationVersionRecommendation; public recommendationProduct: ConfigurationVersionRecommendationProduct; public ptFundValues: FundValue[]; public ptFundsSetups: PtFund[]; public ptContributionData: PtContribution; public ptInvestmentAllocations: PtInvestmentAllocation[]; public ptInvestmentSetup: PtInvestmentSetup; public ptFundLifecycleList: PtFundLifecycleList; public ptParticipantStatusSetup: PtParticipantStatusSetup; public ptMatchingContributionList: PtMatchingContribution[]; public votingPollSetup: ConfigurationVersionVotingPollSetup; public votingPollConfig: ConfigurationVersionVotingPollConfig[]; public ptCalculatorConfiguration: PtCalculatorConfiguration; public bookingInfo: DkBookingInfo; public dkPublicContactUsSetup: ConfigurationVersionPublicContactUsSetup; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class AlbaProjection { public stochastic: StochasticProjectionDto; public deterministic: MemberProjectionDto; public member: Member; public diagnostics: AlbaDiagnostics; public parameterBag: { [index: string]: Object; }; public constructor(init?: Partial) { (Object as any).assign(this, init); } } // @Route("/projection") export class ProjectionReq implements IReturn { public context: SiteContext; public member: Member; public constructor(init?: Partial) { (Object as any).assign(this, init); } public getTypeName() { return 'ProjectionReq'; } public getMethod() { return 'POST'; } public createResponse() { return new AlbaProjection(); } }