""" Options: Date: 2025-07-17 23:51:21 Version: 6.40 Tip: To override a DTO option, remove "#" prefix before updating BaseUrl: https://hcbtas-q-albamfs-api.azurewebsites.net #GlobalNamespace: #AddServiceStackTypes: True #AddResponseStatus: False #AddImplicitVersion: #AddDescriptionAsComments: True IncludeTypes: ProjectionsReq.* #ExcludeTypes: #DefaultImports: datetime,decimal,marshmallow.fields:*,servicestack:*,typing:*,dataclasses:dataclass/field,dataclasses_json:dataclass_json/LetterCase/Undefined/config,enum:Enum/IntEnum #DataClass: #DataClassJson: """ import datetime import decimal from marshmallow.fields import * from servicestack import * from typing import * from dataclasses import dataclass, field from dataclasses_json import dataclass_json, LetterCase, Undefined, config from enum import Enum, IntEnum # @Route("/members", "PUT") @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class Member(Member, IReturn["Member"]): id: Optional[str] = None email: Optional[str] = None employee_guid_string: Optional[str] = None ignore_gender: bool = False @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class Member(Entity, IProjectable): user_id: Optional[str] = None system_id: Optional[str] = None scheme_code: Optional[str] = None session_id: Optional[str] = None client_id: Optional[str] = None client_code: Optional[str] = None is_default: bool = False group_id: Optional[str] = None group_name_upper: Optional[str] = None app_name: Optional[str] = None app_name_upper: Optional[str] = None key: Optional[str] = None key_upper: Optional[str] = None country: Optional[str] = None locale: Optional[str] = None ccy: Optional[str] = None cdy: Optional[str] = None status: Optional[str] = None status_code: Optional[str] = None category: Optional[str] = None scheme: Optional[str] = None primary_salary: Optional[str] = None email: Optional[str] = None employer: Optional[Employer] = None roles: Optional[Roles] = None as_at: datetime.datetime = datetime.datetime(1, 1, 1) calc_date: datetime.datetime = datetime.datetime(1, 1, 1) next_e_o_f_y: datetime.datetime = datetime.datetime(1, 1, 1) period_to_next_e_o_f_y: float = 0.0 year: int = 0 has_partner: bool = False include_partner: bool = False include_partner_in_calc: bool = False home_owner: bool = False target_age: int = 0 target_time: int = 0 target_income_r: float = 0.0 target_income_r_freq: float = 0.0 target_income_r_annual: float = 0.0 target_p: float = 0.0 include_s_s: bool = False first_name: Optional[str] = None last_name: Optional[str] = None gender: Optional[Gender] = None dob: datetime.datetime = datetime.datetime(1, 1, 1) salary: float = 0.0 people: Optional[List[Person]] = None assets: Optional[List[Asset]] = None include_annuities: bool = False annuities: Optional[List[Annuity]] = None spending: Optional[Spending] = None investment_properties: Optional[List[InvestmentProperty]] = None income_vectors: Optional[Dict[str, List[float]]] = None config: Optional[AssumptionsConfig] = None indexation: Optional[List[RateSpec]] = None annuity_disc: Optional[List[RateSpec]] = None indexation_rates: Optional[Dict[str, List[float]]] = None annuity_disc_rates: Optional[Dict[str, List[float]]] = None balance: float = 0.0 plan_some_value: Optional[str] = None flag1: bool = False flag2: bool = False is_friendly: bool = False financing_option: Optional[str] = None total_years: int = 0 total_loop_years: int = 0 age: float = 0.0 age_r: float = 0.0 int_age: int = 0 index_type: Optional[str] = None index_type_pre: Optional[str] = None index_type_post: Optional[str] = None deflation_type: Optional[str] = None custom: Optional[Dict[str, str]] = None country_calc_config: Optional[CountryCalculatorConfiguration] = None summary: Optional[MemberSummary] = None last_modified: datetime.datetime = datetime.datetime(1, 1, 1) is_returning_user: bool = False client_country_config_cache_key: Optional[str] = None personal_assets: float = 0.0 results_summary: Optional[Summary] = None total_contribution: Optional[TotalContribution] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class Member(IId, ITimestamp): id: int = 0 employee_guid: Optional[str] = None employee_id: Optional[str] = None client_id: Optional[int] = None configuration_id: Optional[int] = None last_name: Optional[str] = None first_name: Optional[str] = None company_name: Optional[str] = None employee_group: Optional[str] = None title: Optional[str] = None birthdate: datetime.datetime = datetime.datetime(1, 1, 1) email_address: Optional[str] = None marital_status: Optional[MaritalStatuses] = None partner_birth_date: Optional[datetime.datetime] = None gender: Optional[IsoGenders] = None military_month_count: Optional[int] = None annual_salary: Optional[Decimal] = None monthly_salary: Optional[Decimal] = None salary_frequency: Optional[int] = None de_federal_state: Optional[GermanFederalStates] = None de_tax_class: Optional[GermanTaxClasses] = None de_church_tax: Optional[bool] = None de_priv_nursing_insurance: Optional[Decimal] = None pension_financing_option: Optional[str] = None has_priv_health_insurance: Optional[bool] = None priv_health_insurance: Optional[Decimal] = None children_count: Optional[int] = None child1_birth_date: Optional[datetime.datetime] = None child2_birth_date: Optional[datetime.datetime] = None child3_birth_date: Optional[datetime.datetime] = None child4_birth_date: Optional[datetime.datetime] = None child5_birth_date: Optional[datetime.datetime] = None child6_birth_date: Optional[datetime.datetime] = None child7_birth_date: Optional[datetime.datetime] = None child8_birth_date: Optional[datetime.datetime] = None child9_birth_date: Optional[datetime.datetime] = None child10_birth_date: Optional[datetime.datetime] = None auth_id: Optional[str] = None auth_registration_date: Optional[datetime.datetime] = None activation_code: Optional[str] = None activation_expiring_date: Optional[datetime.datetime] = None plan_info_date: Optional[datetime.datetime] = None plan_info_bag: Optional[str] = None inactive: bool = False date_created: datetime.datetime = datetime.datetime(1, 1, 1) remove_request_date: Optional[datetime.datetime] = None timestamp: Optional[bytes] = None client: Optional[Client] = None contribution_data_date: Optional[datetime.datetime] = None beneficiary_first_name: Optional[str] = None beneficiary_last_name: Optional[str] = None beneficiary_title: Optional[str] = None beneficiary_date_of_birth: Optional[datetime.datetime] = None address_line1: Optional[str] = None address_line2: Optional[str] = None address_line3: Optional[str] = None phone_number: Optional[str] = None mobile_number: Optional[str] = None date_commenced_service: Optional[datetime.datetime] = None calculator_data_date: Optional[datetime.datetime] = None calculator_data_bag: Optional[str] = None period_start: Optional[datetime.datetime] = None period_end: Optional[datetime.datetime] = None member_id: Optional[int] = None info_bag: Optional[str] = None projection_info_bag: Optional[str] = None company_plan_info: Optional[str] = None info_provider_reference: Optional[str] = None date_of_hire: Optional[datetime.datetime] = None ssin: Optional[str] = None is_proxy: Optional[bool] = None is_allowed_to_vote: Optional[bool] = None user_id: Optional[str] = None participant_status: Optional[str] = None investment_strategy: Optional[str] = None is_allowed_to_update_plan: Optional[bool] = None pensionable_salary: Optional[Decimal] = None date_of_birth_spouse: Optional[datetime.datetime] = None date_of_birth_youngest_child: Optional[datetime.datetime] = None date_hired_of_plan: Optional[datetime.datetime] = None contract_type: Optional[str] = None investment_risk_profile: Optional[str] = None documents: Optional[List[Document]] = None powens_connection_syncs: Optional[List[PowensConnectionSync]] = None members: Optional[List[Member]] = None group_members: Optional[List[GroupMember]] = None parent: Optional[Member] = None pension_fund_manager: Optional[str] = None proxy_accesses: Optional[List[ProxyAccess]] = None beneficiaries: Optional[List[Beneficiary]] = None current_balances: Optional[List[CurrentBalance]] = None detailed_balances: Optional[List[DetailedBalance]] = None voting_poll_answers: Optional[List[VotingPollAnswer]] = None investment_allocations: Optional[List[InvestmentAllocation]] = None member_contributions: Optional[List[MemberContribution]] = None participant_status_form_answers: Optional[List[ParticipantStatusFormAnswer]] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class Member: member_id: int = 0 employee_id: Optional[str] = None employee_guid: Optional[str] = None email: Optional[str] = None title: Optional[str] = None first_name: Optional[str] = None company_name: Optional[str] = None employee_group: Optional[str] = None last_name: Optional[str] = None date_of_birth: datetime.datetime = datetime.datetime(1, 1, 1) gender: Optional[IsoGenders] = None marital_status: Optional[MaritalStatuses] = None number_of_children: int = 0 children_count: Optional[int] = None monthly_salary: Optional[Decimal] = None annual_salary: Optional[Decimal] = None dk_pension_terms: Optional[DkPensionTerms] = None dk_private_email_address: Optional[str] = None dk_employer_name: Optional[str] = None dk_contact_consent: bool = False dk_personal_mandate: bool = False de_federal_state: Optional[GermanFederalStates] = None de_tax_class: Optional[GermanTaxClasses] = None de_church_tax: Optional[bool] = None has_priv_health_insurance: Optional[bool] = None priv_health_insurance: Optional[Decimal] = None de_priv_nursing_insurance: Optional[Decimal] = None contribution_data_date: Optional[datetime.datetime] = None beneficiary_first_name: Optional[str] = None beneficiary_last_name: Optional[str] = None beneficiary_title: Optional[str] = None beneficiary_date_of_birth: Optional[datetime.datetime] = None address_line1: Optional[str] = None address_line2: Optional[str] = None address_line3: Optional[str] = None phone_number: Optional[str] = None mobile_number: Optional[str] = None date_commenced_service: Optional[datetime.datetime] = None partner_birth_date: Optional[datetime.datetime] = None military_month_count: Optional[int] = None child1_birth_date: Optional[datetime.datetime] = None child2_birth_date: Optional[datetime.datetime] = None child3_birth_date: Optional[datetime.datetime] = None child4_birth_date: Optional[datetime.datetime] = None child5_birth_date: Optional[datetime.datetime] = None child6_birth_date: Optional[datetime.datetime] = None child7_birth_date: Optional[datetime.datetime] = None child8_birth_date: Optional[datetime.datetime] = None child9_birth_date: Optional[datetime.datetime] = None child10_birth_date: Optional[datetime.datetime] = None info_bag: Optional[str] = None projection_info_bag: Optional[str] = None client_id: Optional[int] = None company_plan_info: Optional[str] = None pension_fund_manager: Optional[str] = None date_of_hire: Optional[datetime.datetime] = None powens_connections: Optional[List[PowensConnection]] = None is_private_client: bool = False is_proxy: bool = False beneficiaries: Optional[List[Beneficiary]] = None current_balances: Optional[List[CurrentBalance]] = None detailed_balances: Optional[List[DetailedBalance]] = None beneficiaries_latest_submitted_date: Optional[datetime.datetime] = None user_id: Optional[str] = None participant_status: Optional[str] = None investment_strategy: Optional[str] = None is_allowed_to_update_plan: Optional[bool] = None pensionable_salary: Optional[Decimal] = None date_of_birth_spouse: Optional[datetime.datetime] = None date_of_birth_youngest_child: Optional[datetime.datetime] = None date_hired_of_plan: Optional[datetime.datetime] = None contract_type: Optional[str] = None is_allowed_to_vote: Optional[bool] = None voting_poll_answer: Optional[VotingPollAnswer] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class SiteContext: echo_uri: Optional[str] = None branding: Optional[Branding] = None modules: Optional[List[str]] = None conditional_access: Optional[ConditionalAccess] = None color_scheme: Optional[ColorScheme] = None carriers: Optional[List[ConfigurationVersionCarrier]] = None country: Optional[str] = None default_language: Optional[str] = None available_languages: Optional[List[str]] = None currency: Optional[str] = None employer: Optional[Entity] = None carrier: Optional[CarrierEntity] = None consultant: Optional[Entity] = None member: Optional[Member] = None counselling_options: Optional[CounsellingOptions] = None dk_calculator_configuration: Optional[DkCalculatorConfiguration] = None dk_pensions_info_sso_ticket: Optional[SecurityToken] = None dk_pensions_info: Optional[DkPensionsInfo] = None de_calculator_configuration: Optional[DeCalculatorConfiguration] = None disability_insurance_plan: Optional[DisabilityInsurancePlan] = None critical_illness_insurance_plan: Optional[CriticalIllnessInsurancePlan] = None death_insurance_plan: Optional[DeathInsurancePlan] = None health_insurance_plan: Optional[HealthInsurancePlan] = None accident_insurance_plan: Optional[AccidentInsurancePlan] = None dental_insurance_plan: Optional[DentalInsurancePlan] = None senior_citizen_concept: Optional[SeniorCitizenConcept] = None retirement_plan: Optional[RetirementPlan] = None de_retirement_plans: Optional[DeRetirementPlans] = None preventive_treatment: Optional[PreventiveTreatment] = None is_pension_scheme: bool = False path_finder: Optional[PathFinder] = None financial_well_being: Optional[FinancialWellbeing] = None use_informal_language: Optional[bool] = None uses_s_s_o: Optional[bool] = None authentication_method: Optional[AuthenticationMethod] = None cpr_number_needed: bool = False activation_code_required: bool = False employer_email_domain: Optional[str] = None version: Optional[str] = None tax_pseudocode_u_r_l: Optional[str] = None calculator_configuration: Optional[CalculatorData] = None configuration_ids: Optional[ConfigurationIds] = None document_list: Optional[List[Document]] = None new_document_day_span: Optional[int] = None sas_token_duration_in_seconds: Optional[float] = None data_retention_period_in_years: Optional[int] = None periods: Optional[List[Period]] = None group_config: Optional[ConfigurationVersionGroupConfig] = None member_document_config: Optional[ConfigurationVersionMemberDocumentConfig] = None pension_sight_client: Optional[PensionSightClient] = None user_result_configuration: Optional[List[UserResultConfiguration]] = None user_search_configuration: Optional[List[UserSearchConfiguration]] = None user_result_configuration_admin_proxy: Optional[List[UserResultConfigurationAdminProxy]] = None user_search_configuration_admin_proxy: Optional[List[UserSearchConfigurationAdminProxy]] = None fr_company_plans: Optional[FrCompanyPlans] = None es_retirement_plans: Optional[EsRetirementPlans] = None fr_calculator_configuration: Optional[FrCalculatorConfiguration] = None fr_fund_setups: Optional[List[FrFundSetup]] = None fr_plan_setups: Optional[List[FrPlanSetup]] = None fr_previous_plans_setups: Optional[List[FrPreviousPlansSetup]] = None fr_individual_plan_funds: Optional[List[str]] = None be_retirement_plans: Optional[List[BeRetirementPlans]] = None be_contributions: Optional[BeContributions] = None private_client_products: Optional[List[PrivateClientProduct]] = None contact_us: Optional[ConfigurationVersionEmailSetting] = None email_settings: Optional[List[ConfigurationVersionEmailSetting]] = None form_type_fields_configuration: Optional[List[FormTypeFieldsConfiguration]] = None form_type_lookup_configuration: Optional[List[FormTypeLookupConfiguration]] = None recommendation: Optional[ConfigurationVersionRecommendation] = None recommendation_product: Optional[ConfigurationVersionRecommendationProduct] = None pt_fund_values: Optional[List[FundValue]] = None pt_funds_setups: Optional[List[PtFund]] = None pt_contribution_data: Optional[PtContribution] = None pt_investment_allocations: Optional[List[PtInvestmentAllocation]] = None pt_investment_setup: Optional[PtInvestmentSetup] = None pt_fund_lifecycle_list: Optional[PtFundLifecycleList] = None pt_participant_status_setup: Optional[PtParticipantStatusSetup] = None pt_matching_contribution_list: Optional[List[PtMatchingContribution]] = None voting_poll_setup: Optional[ConfigurationVersionVotingPollSetup] = None voting_poll_config: Optional[List[ConfigurationVersionVotingPollConfig]] = None pt_calculator_configuration: Optional[PtCalculatorConfiguration] = None booking_info: Optional[DkBookingInfo] = None dk_public_contact_us_setup: Optional[ConfigurationVersionPublicContactUsSetup] = None # @Route("/projections") @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class ProjectionsReq: context: Optional[SiteContext] = None members: Optional[Dict[str, Member]] = None