/* Options: Date: 2025-07-17 23:58:16 SwiftVersion: 5.0 Version: 6.40 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://hcbtas-q-albamfs-api.azurewebsites.net //BaseClass: //AddModelExtensions: True //AddServiceStackTypes: True IncludeTypes: AdminAppReq.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: True //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack // @Route("/admin/app") // @Route("/admin/app/{Country}") // @Route("/admin/app/{Country}/{Lang}") public class AdminAppReq : IReturn, Codable { public typealias Return = AdminAppData public var country:String? public var lang:String? required public init(){} } // @Route("/content", "POST,PUT") public class Content : Entity, IReturn { public typealias Return = Content public var section:String? public var itemId:String? public var itemCode:String? public var country:String? public var lang:String? public var app:String? public var companyId:String? public var company:String? public var elements:[String:String] = [:] required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case section case itemId case itemCode case country case lang case app case companyId case company case elements } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) section = try container.decodeIfPresent(String.self, forKey: .section) itemId = try container.decodeIfPresent(String.self, forKey: .itemId) itemCode = try container.decodeIfPresent(String.self, forKey: .itemCode) country = try container.decodeIfPresent(String.self, forKey: .country) lang = try container.decodeIfPresent(String.self, forKey: .lang) app = try container.decodeIfPresent(String.self, forKey: .app) companyId = try container.decodeIfPresent(String.self, forKey: .companyId) company = try container.decodeIfPresent(String.self, forKey: .company) elements = try container.decodeIfPresent([String:String].self, forKey: .elements) ?? [:] } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if section != nil { try container.encode(section, forKey: .section) } if itemId != nil { try container.encode(itemId, forKey: .itemId) } if itemCode != nil { try container.encode(itemCode, forKey: .itemCode) } if country != nil { try container.encode(country, forKey: .country) } if lang != nil { try container.encode(lang, forKey: .lang) } if app != nil { try container.encode(app, forKey: .app) } if companyId != nil { try container.encode(companyId, forKey: .companyId) } if company != nil { try container.encode(company, forKey: .company) } if elements.count > 0 { try container.encode(elements, forKey: .elements) } } } // @Route("/faq", "POST,PUT,DELETE") public class ListItem : Entity, IReturn { public typealias Return = ListItem public var listId:String? public var country:String? public var relatedId:String? public var code:String? public var custom:String? required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case listId case country case relatedId case code case custom } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) listId = try container.decodeIfPresent(String.self, forKey: .listId) country = try container.decodeIfPresent(String.self, forKey: .country) relatedId = try container.decodeIfPresent(String.self, forKey: .relatedId) code = try container.decodeIfPresent(String.self, forKey: .code) custom = try container.decodeIfPresent(String.self, forKey: .custom) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if listId != nil { try container.encode(listId, forKey: .listId) } if country != nil { try container.encode(country, forKey: .country) } if relatedId != nil { try container.encode(relatedId, forKey: .relatedId) } if code != nil { try container.encode(code, forKey: .code) } if custom != nil { try container.encode(custom, forKey: .custom) } } } // @Route("/members", "PUT") public class Member : Member, IReturn { public typealias Return = Member public var id:String? public var email:String? public var employeeGuidString:String? public var ignoreGender:Bool? required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case id case email case employeeGuidString case ignoreGender } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) id = try container.decodeIfPresent(String.self, forKey: .id) email = try container.decodeIfPresent(String.self, forKey: .email) employeeGuidString = try container.decodeIfPresent(String.self, forKey: .employeeGuidString) ignoreGender = try container.decodeIfPresent(Bool.self, forKey: .ignoreGender) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if id != nil { try container.encode(id, forKey: .id) } if email != nil { try container.encode(email, forKey: .email) } if employeeGuidString != nil { try container.encode(employeeGuidString, forKey: .employeeGuidString) } if ignoreGender != nil { try container.encode(ignoreGender, forKey: .ignoreGender) } } } public class AdminAppData : Codable { public var siteStructure:[String:SiteSection] = [:] public var sectionElements:[String:[String]] = [:] public var listRelationships:[String:String] = [:] public var listItems:[ListItem] = [] public var countries:[String:Country] = [:] public var content:[Content] = [] public var user:User? public var scriptTrackerRecords:[ScriptTracker] = [] public var configurations:[Configuration] = [] required public init(){} } public class Country : Codable { public var name:String? public var languages:[String:String] = [:] required public init(){} } public class SiteSection : Codable { public var route:String? public var `public`:Bool? public var parent:String? public var roles:Int? public var hideFrom:[String] = [] public var order:Int? required public init(){} } public class Member : Entity, IProjectable { public var userId:String? public var systemId:String? public var schemeCode:String? public var sessionId:String? public var clientId:String? public var clientCode:String? public var isDefault:Bool? public var groupId:String? public var groupNameUpper:String? public var appName:String? public var appNameUpper:String? public var key:String? public var keyUpper:String? public var country:String? public var locale:String? public var ccy:String? public var cdy:String? public var status:String? public var statusCode:String? public var category:String? public var scheme:String? public var primarySalary:String? public var email:String? public var employer:Employer? public var roles:Roles? public var asAt:Date? public var calcDate:Date? public var nextEOFY:Date? public var periodToNextEOFY:Double? public var year:Int? public var hasPartner:Bool? public var includePartner:Bool? public var includePartnerInCalc:Bool? public var homeOwner:Bool? public var targetAge:Int? public var targetTime:Int? public var targetIncomeR:Double? public var targetIncomeRFreq:Double? public var targetIncomeRAnnual:Double? public var targetP:Double? public var includeSS:Bool? public var firstName:String? public var lastName:String? public var gender:Gender? public var dob:Date? public var salary:Double? public var people:[Person] = [] public var assets:[Asset] = [] public var includeAnnuities:Bool? public var annuities:[Annuity] = [] public var spending:Spending? public var investmentProperties:[InvestmentProperty] = [] public var incomeVectors:[String:[Double]] = [:] public var config:AssumptionsConfig? public var indexation:[RateSpec] = [] public var annuityDisc:[RateSpec] = [] public var indexationRates:[String:[Double]] = [:] public var annuityDiscRates:[String:[Double]] = [:] public var balance:Double? public var planSomeValue:String? public var flag1:Bool? public var flag2:Bool? public var isFriendly:Bool? public var financingOption:String? public var totalYears:Int? public var totalLoopYears:Int? public var age:Double? public var ageR:Double? public var intAge:Int? public var indexType:String? public var indexTypePre:String? public var indexTypePost:String? public var deflationType:String? public var custom:[String:String] = [:] public var countryCalcConfig:CountryCalculatorConfiguration? public var summary:MemberSummary? public var lastModified:Date? public var isReturningUser:Bool? public var clientCountryConfigCacheKey:String? public var personalAssets:Double? public var resultsSummary:Summary? public var totalContribution:TotalContribution? required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case userId case systemId case schemeCode case sessionId case clientId case clientCode case isDefault case groupId case groupNameUpper case appName case appNameUpper case key case keyUpper case country case locale case ccy case cdy case status case statusCode case category case scheme case primarySalary case email case employer case roles case asAt case calcDate case nextEOFY case periodToNextEOFY case year case hasPartner case includePartner case includePartnerInCalc case homeOwner case targetAge case targetTime case targetIncomeR case targetIncomeRFreq case targetIncomeRAnnual case targetP case includeSS case firstName case lastName case gender case dob case salary case people case assets case includeAnnuities case annuities case spending case investmentProperties case incomeVectors case config case indexation case annuityDisc case indexationRates case annuityDiscRates case balance case planSomeValue case flag1 case flag2 case isFriendly case financingOption case totalYears case totalLoopYears case age case ageR case intAge case indexType case indexTypePre case indexTypePost case deflationType case custom case countryCalcConfig case summary case lastModified case isReturningUser case clientCountryConfigCacheKey case personalAssets case resultsSummary case totalContribution } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) userId = try container.decodeIfPresent(String.self, forKey: .userId) systemId = try container.decodeIfPresent(String.self, forKey: .systemId) schemeCode = try container.decodeIfPresent(String.self, forKey: .schemeCode) sessionId = try container.decodeIfPresent(String.self, forKey: .sessionId) clientId = try container.decodeIfPresent(String.self, forKey: .clientId) clientCode = try container.decodeIfPresent(String.self, forKey: .clientCode) isDefault = try container.decodeIfPresent(Bool.self, forKey: .isDefault) groupId = try container.decodeIfPresent(String.self, forKey: .groupId) groupNameUpper = try container.decodeIfPresent(String.self, forKey: .groupNameUpper) appName = try container.decodeIfPresent(String.self, forKey: .appName) appNameUpper = try container.decodeIfPresent(String.self, forKey: .appNameUpper) key = try container.decodeIfPresent(String.self, forKey: .key) keyUpper = try container.decodeIfPresent(String.self, forKey: .keyUpper) country = try container.decodeIfPresent(String.self, forKey: .country) locale = try container.decodeIfPresent(String.self, forKey: .locale) ccy = try container.decodeIfPresent(String.self, forKey: .ccy) cdy = try container.decodeIfPresent(String.self, forKey: .cdy) status = try container.decodeIfPresent(String.self, forKey: .status) statusCode = try container.decodeIfPresent(String.self, forKey: .statusCode) category = try container.decodeIfPresent(String.self, forKey: .category) scheme = try container.decodeIfPresent(String.self, forKey: .scheme) primarySalary = try container.decodeIfPresent(String.self, forKey: .primarySalary) email = try container.decodeIfPresent(String.self, forKey: .email) employer = try container.decodeIfPresent(Employer.self, forKey: .employer) roles = try container.decodeIfPresent(Roles.self, forKey: .roles) asAt = try container.decodeIfPresent(Date.self, forKey: .asAt) calcDate = try container.decodeIfPresent(Date.self, forKey: .calcDate) nextEOFY = try container.decodeIfPresent(Date.self, forKey: .nextEOFY) periodToNextEOFY = try container.decodeIfPresent(Double.self, forKey: .periodToNextEOFY) year = try container.decodeIfPresent(Int.self, forKey: .year) hasPartner = try container.decodeIfPresent(Bool.self, forKey: .hasPartner) includePartner = try container.decodeIfPresent(Bool.self, forKey: .includePartner) includePartnerInCalc = try container.decodeIfPresent(Bool.self, forKey: .includePartnerInCalc) homeOwner = try container.decodeIfPresent(Bool.self, forKey: .homeOwner) targetAge = try container.decodeIfPresent(Int.self, forKey: .targetAge) targetTime = try container.decodeIfPresent(Int.self, forKey: .targetTime) targetIncomeR = try container.decodeIfPresent(Double.self, forKey: .targetIncomeR) targetIncomeRFreq = try container.decodeIfPresent(Double.self, forKey: .targetIncomeRFreq) targetIncomeRAnnual = try container.decodeIfPresent(Double.self, forKey: .targetIncomeRAnnual) targetP = try container.decodeIfPresent(Double.self, forKey: .targetP) includeSS = try container.decodeIfPresent(Bool.self, forKey: .includeSS) firstName = try container.decodeIfPresent(String.self, forKey: .firstName) lastName = try container.decodeIfPresent(String.self, forKey: .lastName) gender = try container.decodeIfPresent(Gender.self, forKey: .gender) dob = try container.decodeIfPresent(Date.self, forKey: .dob) salary = try container.decodeIfPresent(Double.self, forKey: .salary) people = try container.decodeIfPresent([Person].self, forKey: .people) ?? [] assets = try container.decodeIfPresent([Asset].self, forKey: .assets) ?? [] includeAnnuities = try container.decodeIfPresent(Bool.self, forKey: .includeAnnuities) annuities = try container.decodeIfPresent([Annuity].self, forKey: .annuities) ?? [] spending = try container.decodeIfPresent(Spending.self, forKey: .spending) investmentProperties = try container.decodeIfPresent([InvestmentProperty].self, forKey: .investmentProperties) ?? [] incomeVectors = try container.decodeIfPresent([String:[Double]].self, forKey: .incomeVectors) ?? [:] config = try container.decodeIfPresent(AssumptionsConfig.self, forKey: .config) indexation = try container.decodeIfPresent([RateSpec].self, forKey: .indexation) ?? [] annuityDisc = try container.decodeIfPresent([RateSpec].self, forKey: .annuityDisc) ?? [] indexationRates = try container.decodeIfPresent([String:[Double]].self, forKey: .indexationRates) ?? [:] annuityDiscRates = try container.decodeIfPresent([String:[Double]].self, forKey: .annuityDiscRates) ?? [:] balance = try container.decodeIfPresent(Double.self, forKey: .balance) planSomeValue = try container.decodeIfPresent(String.self, forKey: .planSomeValue) flag1 = try container.decodeIfPresent(Bool.self, forKey: .flag1) flag2 = try container.decodeIfPresent(Bool.self, forKey: .flag2) isFriendly = try container.decodeIfPresent(Bool.self, forKey: .isFriendly) financingOption = try container.decodeIfPresent(String.self, forKey: .financingOption) totalYears = try container.decodeIfPresent(Int.self, forKey: .totalYears) totalLoopYears = try container.decodeIfPresent(Int.self, forKey: .totalLoopYears) age = try container.decodeIfPresent(Double.self, forKey: .age) ageR = try container.decodeIfPresent(Double.self, forKey: .ageR) intAge = try container.decodeIfPresent(Int.self, forKey: .intAge) indexType = try container.decodeIfPresent(String.self, forKey: .indexType) indexTypePre = try container.decodeIfPresent(String.self, forKey: .indexTypePre) indexTypePost = try container.decodeIfPresent(String.self, forKey: .indexTypePost) deflationType = try container.decodeIfPresent(String.self, forKey: .deflationType) custom = try container.decodeIfPresent([String:String].self, forKey: .custom) ?? [:] countryCalcConfig = try container.decodeIfPresent(CountryCalculatorConfiguration.self, forKey: .countryCalcConfig) summary = try container.decodeIfPresent(MemberSummary.self, forKey: .summary) lastModified = try container.decodeIfPresent(Date.self, forKey: .lastModified) isReturningUser = try container.decodeIfPresent(Bool.self, forKey: .isReturningUser) clientCountryConfigCacheKey = try container.decodeIfPresent(String.self, forKey: .clientCountryConfigCacheKey) personalAssets = try container.decodeIfPresent(Double.self, forKey: .personalAssets) resultsSummary = try container.decodeIfPresent(Summary.self, forKey: .resultsSummary) totalContribution = try container.decodeIfPresent(TotalContribution.self, forKey: .totalContribution) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if userId != nil { try container.encode(userId, forKey: .userId) } if systemId != nil { try container.encode(systemId, forKey: .systemId) } if schemeCode != nil { try container.encode(schemeCode, forKey: .schemeCode) } if sessionId != nil { try container.encode(sessionId, forKey: .sessionId) } if clientId != nil { try container.encode(clientId, forKey: .clientId) } if clientCode != nil { try container.encode(clientCode, forKey: .clientCode) } if isDefault != nil { try container.encode(isDefault, forKey: .isDefault) } if groupId != nil { try container.encode(groupId, forKey: .groupId) } if groupNameUpper != nil { try container.encode(groupNameUpper, forKey: .groupNameUpper) } if appName != nil { try container.encode(appName, forKey: .appName) } if appNameUpper != nil { try container.encode(appNameUpper, forKey: .appNameUpper) } if key != nil { try container.encode(key, forKey: .key) } if keyUpper != nil { try container.encode(keyUpper, forKey: .keyUpper) } if country != nil { try container.encode(country, forKey: .country) } if locale != nil { try container.encode(locale, forKey: .locale) } if ccy != nil { try container.encode(ccy, forKey: .ccy) } if cdy != nil { try container.encode(cdy, forKey: .cdy) } if status != nil { try container.encode(status, forKey: .status) } if statusCode != nil { try container.encode(statusCode, forKey: .statusCode) } if category != nil { try container.encode(category, forKey: .category) } if scheme != nil { try container.encode(scheme, forKey: .scheme) } if primarySalary != nil { try container.encode(primarySalary, forKey: .primarySalary) } if email != nil { try container.encode(email, forKey: .email) } if employer != nil { try container.encode(employer, forKey: .employer) } if roles != nil { try container.encode(roles, forKey: .roles) } if asAt != nil { try container.encode(asAt, forKey: .asAt) } if calcDate != nil { try container.encode(calcDate, forKey: .calcDate) } if nextEOFY != nil { try container.encode(nextEOFY, forKey: .nextEOFY) } if periodToNextEOFY != nil { try container.encode(periodToNextEOFY, forKey: .periodToNextEOFY) } if year != nil { try container.encode(year, forKey: .year) } if hasPartner != nil { try container.encode(hasPartner, forKey: .hasPartner) } if includePartner != nil { try container.encode(includePartner, forKey: .includePartner) } if includePartnerInCalc != nil { try container.encode(includePartnerInCalc, forKey: .includePartnerInCalc) } if homeOwner != nil { try container.encode(homeOwner, forKey: .homeOwner) } if targetAge != nil { try container.encode(targetAge, forKey: .targetAge) } if targetTime != nil { try container.encode(targetTime, forKey: .targetTime) } if targetIncomeR != nil { try container.encode(targetIncomeR, forKey: .targetIncomeR) } if targetIncomeRFreq != nil { try container.encode(targetIncomeRFreq, forKey: .targetIncomeRFreq) } if targetIncomeRAnnual != nil { try container.encode(targetIncomeRAnnual, forKey: .targetIncomeRAnnual) } if targetP != nil { try container.encode(targetP, forKey: .targetP) } if includeSS != nil { try container.encode(includeSS, forKey: .includeSS) } if firstName != nil { try container.encode(firstName, forKey: .firstName) } if lastName != nil { try container.encode(lastName, forKey: .lastName) } if gender != nil { try container.encode(gender, forKey: .gender) } if dob != nil { try container.encode(dob, forKey: .dob) } if salary != nil { try container.encode(salary, forKey: .salary) } if people.count > 0 { try container.encode(people, forKey: .people) } if assets.count > 0 { try container.encode(assets, forKey: .assets) } if includeAnnuities != nil { try container.encode(includeAnnuities, forKey: .includeAnnuities) } if annuities.count > 0 { try container.encode(annuities, forKey: .annuities) } if spending != nil { try container.encode(spending, forKey: .spending) } if investmentProperties.count > 0 { try container.encode(investmentProperties, forKey: .investmentProperties) } if incomeVectors.count > 0 { try container.encode(incomeVectors, forKey: .incomeVectors) } if config != nil { try container.encode(config, forKey: .config) } if indexation.count > 0 { try container.encode(indexation, forKey: .indexation) } if annuityDisc.count > 0 { try container.encode(annuityDisc, forKey: .annuityDisc) } if indexationRates.count > 0 { try container.encode(indexationRates, forKey: .indexationRates) } if annuityDiscRates.count > 0 { try container.encode(annuityDiscRates, forKey: .annuityDiscRates) } if balance != nil { try container.encode(balance, forKey: .balance) } if planSomeValue != nil { try container.encode(planSomeValue, forKey: .planSomeValue) } if flag1 != nil { try container.encode(flag1, forKey: .flag1) } if flag2 != nil { try container.encode(flag2, forKey: .flag2) } if isFriendly != nil { try container.encode(isFriendly, forKey: .isFriendly) } if financingOption != nil { try container.encode(financingOption, forKey: .financingOption) } if totalYears != nil { try container.encode(totalYears, forKey: .totalYears) } if totalLoopYears != nil { try container.encode(totalLoopYears, forKey: .totalLoopYears) } if age != nil { try container.encode(age, forKey: .age) } if ageR != nil { try container.encode(ageR, forKey: .ageR) } if intAge != nil { try container.encode(intAge, forKey: .intAge) } if indexType != nil { try container.encode(indexType, forKey: .indexType) } if indexTypePre != nil { try container.encode(indexTypePre, forKey: .indexTypePre) } if indexTypePost != nil { try container.encode(indexTypePost, forKey: .indexTypePost) } if deflationType != nil { try container.encode(deflationType, forKey: .deflationType) } if custom.count > 0 { try container.encode(custom, forKey: .custom) } if countryCalcConfig != nil { try container.encode(countryCalcConfig, forKey: .countryCalcConfig) } if summary != nil { try container.encode(summary, forKey: .summary) } if lastModified != nil { try container.encode(lastModified, forKey: .lastModified) } if isReturningUser != nil { try container.encode(isReturningUser, forKey: .isReturningUser) } if clientCountryConfigCacheKey != nil { try container.encode(clientCountryConfigCacheKey, forKey: .clientCountryConfigCacheKey) } if personalAssets != nil { try container.encode(personalAssets, forKey: .personalAssets) } if resultsSummary != nil { try container.encode(resultsSummary, forKey: .resultsSummary) } if totalContribution != nil { try container.encode(totalContribution, forKey: .totalContribution) } } } public class User : Codable { public var roles:Roles? required public init(){} } public class Member : IId, ITimestamp, Codable { public var id:Int? public var employeeGuid:String? public var employeeId:String? public var clientId:Int? public var configurationId:Int? public var lastName:String? public var firstName:String? public var companyName:String? public var employeeGroup:String? public var title:String? public var birthdate:Date? public var emailAddress:String? public var maritalStatus:MaritalStatuses? public var partnerBirthDate:Date? public var gender:IsoGenders? public var militaryMonthCount:Int16? public var annualSalary:Double? public var monthlySalary:Double? public var salaryFrequency:Int? public var deFederalState:GermanFederalStates? public var deTaxClass:GermanTaxClasses? public var deChurchTax:Bool? public var dePrivNursingInsurance:Double? public var pensionFinancingOption:String? public var hasPrivHealthInsurance:Bool? public var privHealthInsurance:Double? public var childrenCount:Int16? public var child1BirthDate:Date? public var child2BirthDate:Date? public var child3BirthDate:Date? public var child4BirthDate:Date? public var child5BirthDate:Date? public var child6BirthDate:Date? public var child7BirthDate:Date? public var child8BirthDate:Date? public var child9BirthDate:Date? public var child10BirthDate:Date? public var authId:String? public var authRegistrationDate:Date? public var activationCode:String? public var activationExpiringDate:Date? public var planInfoDate:Date? public var planInfoBag:String? public var inactive:Bool? public var dateCreated:Date? public var removeRequestDate:Date? public var timestamp:[UInt8] = [] public var client:Client? public var contributionDataDate:Date? public var beneficiaryFirstName:String? public var beneficiaryLastName:String? public var beneficiaryTitle:String? public var beneficiaryDateOfBirth:Date? public var addressLine1:String? public var addressLine2:String? public var addressLine3:String? public var phoneNumber:String? public var mobileNumber:String? public var dateCommencedService:Date? public var calculatorDataDate:Date? public var calculatorDataBag:String? public var periodStart:Date? public var periodEnd:Date? public var memberId:Int? public var infoBag:String? public var projectionInfoBag:String? public var companyPlanInfo:String? public var infoProviderReference:String? public var dateOfHire:Date? public var ssin:String? public var isProxy:Bool? public var isAllowedToVote:Bool? public var userId:String? public var participantStatus:String? public var investmentStrategy:String? public var isAllowedToUpdatePlan:Bool? public var pensionableSalary:Double? public var dateOfBirthSpouse:Date? public var dateOfBirthYoungestChild:Date? public var dateHiredOfPlan:Date? public var contractType:String? public var investmentRiskProfile:String? public var documents:[Document] = [] public var powensConnectionSyncs:[PowensConnectionSync] = [] public var members:[Member] = [] public var groupMembers:[GroupMember] = [] public var parent:Member? public var pensionFundManager:String? public var proxyAccesses:[ProxyAccess] = [] public var beneficiaries:[Beneficiary] = [] public var currentBalances:[CurrentBalance] = [] public var detailedBalances:[DetailedBalance] = [] public var votingPollAnswers:[VotingPollAnswer] = [] public var investmentAllocations:[InvestmentAllocation] = [] public var memberContributions:[MemberContribution] = [] public var participantStatusFormAnswers:[ParticipantStatusFormAnswer] = [] required public init(){} } public class Member : Codable { public var memberId:Int? public var employeeId:String? public var employeeGuid:String? public var email:String? public var title:String? public var firstName:String? public var companyName:String? public var employeeGroup:String? public var lastName:String? public var dateOfBirth:Date? public var gender:IsoGenders? public var maritalStatus:MaritalStatuses? public var numberOfChildren:Int? public var childrenCount:Int? public var monthlySalary:Double? public var annualSalary:Double? public var dkPensionTerms:DkPensionTerms? public var dkPrivateEmailAddress:String? public var dkEmployerName:String? public var dkContactConsent:Bool? public var dkPersonalMandate:Bool? public var deFederalState:GermanFederalStates? public var deTaxClass:GermanTaxClasses? public var deChurchTax:Bool? public var hasPrivHealthInsurance:Bool? public var privHealthInsurance:Double? public var dePrivNursingInsurance:Double? public var contributionDataDate:Date? public var beneficiaryFirstName:String? public var beneficiaryLastName:String? public var beneficiaryTitle:String? public var beneficiaryDateOfBirth:Date? public var addressLine1:String? public var addressLine2:String? public var addressLine3:String? public var phoneNumber:String? public var mobileNumber:String? public var dateCommencedService:Date? public var partnerBirthDate:Date? public var militaryMonthCount:Int16? public var child1BirthDate:Date? public var child2BirthDate:Date? public var child3BirthDate:Date? public var child4BirthDate:Date? public var child5BirthDate:Date? public var child6BirthDate:Date? public var child7BirthDate:Date? public var child8BirthDate:Date? public var child9BirthDate:Date? public var child10BirthDate:Date? public var infoBag:String? public var projectionInfoBag:String? public var clientId:Int? public var companyPlanInfo:String? public var pensionFundManager:String? public var dateOfHire:Date? public var powensConnections:[PowensConnection] = [] public var isPrivateClient:Bool? public var isProxy:Bool? public var beneficiaries:[Beneficiary] = [] public var currentBalances:[CurrentBalance] = [] public var detailedBalances:[DetailedBalance] = [] public var beneficiariesLatestSubmittedDate:Date? public var userId:String? public var participantStatus:String? public var investmentStrategy:String? public var isAllowedToUpdatePlan:Bool? public var pensionableSalary:Double? public var dateOfBirthSpouse:Date? public var dateOfBirthYoungestChild:Date? public var dateHiredOfPlan:Date? public var contractType:String? public var isAllowedToVote:Bool? public var votingPollAnswer:VotingPollAnswer? required public init(){} } public class Document : Codable { public var tags:String? public var subTag:String? public var size:Int? public var dateCreated:Date? public var isNew:Bool? public var reference:String? public var filename:String? public var languageIsoCode:String? required public init(){} } public class FundValue : IId, ITimestamp, Codable { public var id:Int? public var fundId:String? public var clientId:Int? public var informationDate:Date? public var investmentReturnTwelveMonths:Double? public var investmentReturnThreeYears:Double? public var investmentReturnFiveYears:Double? public var currentAnnualPensionFee:Double? public var dateCreated:Date? public var dateUpdated:Date? public var createdBy:String? public var updatedBy:String? public var timestamp:[UInt8] = [] required public init(){} } public class ProxyAccess : Codable { public var wtwUsername:String? public var cpr:String? public var accessGranted:Bool? public var message:String? public var timeStamp:Date? required public init(){} } public class Client : IId, ITimestamp, Codable { public var id:Int? public var code:String? public var name:String? public var countryId:Int? public var configurationId:Int? public var uri:String? public var languageDefault:String? public var emailDomains:String? public var dkKappCode:String? public var offboardingURL:String? public var dateMarkedForOffboarding:Date? public var dataRetentionPeriodInYears:Int? public var retentionEndDate:Date? public var saClientId:String? public var inactive:Bool? public var timestamp:[UInt8] = [] public var country:Country? public var configuration:Configuration? public var members:[Member] = [] public var importJobs:[ImportJob] = [] public var documents:[Document] = [] public var proxyAccesses:[ProxyAccess] = [] public var fundValues:[FundValue] = [] required public init(){} } public class Document : IId, ITimestamp, Codable { public var id:Int? public var reference:String? public var Description:String? public var tags:String? public var countryId:Int? public var clientId:Int? public var memberId:Int? public var group:String? public var subTag:String? public var languageIsoCode:String? public var benefitEffectiveDate:Date? public var bulkName:String? public var size:Int? public var dateCreated:Date? public var inactive:Bool? public var timestamp:[UInt8] = [] public var client:Client? public var country:Country? public var member:Member? public var documentGroups:[DocumentGroup] = [] public var blobName:String? public var contentType:String? public var filename:String? required public init(){} } public class ProxyAccess : IId, ITimestamp, Codable { public var id:Int? public var memberId:Int? public var clientId:Int? public var dateCreated:Date? public var createdBy:Int? public var dateUpdated:Date? public var updatedBy:Int? public var timestamp:[UInt8] = [] public var member:Member? public var client:Client? public var createdByUser:User? required public init(){} } public protocol IId { } public protocol ITimestamp { var timestamp:[UInt8] { get set } } public class Country : IId, ITimestamp, Codable { public var id:Int? public var name:String? public var isoCode:String? public var configurationId:Int? public var cultureInfos:String? public var excelTemplateId:String? public var saClientId:String? public var inactive:Bool? public var timestamp:[UInt8] = [] public var configuration:Configuration? public var clients:[Client] = [] public var plans:[Plan] = [] public var documents:[Document] = [] public var importJobs:[ImportJob] = [] required public init(){} } public class Configuration : IId, ITimestamp, Codable { public var id:Int? public var guid:String? public var system:Bool? public var timestamp:[UInt8] = [] public var country:Country? public var client:Client? public var configurationVersions:[ConfigurationVersion] = [] required public init(){} } public class ImportJob : IId, ITimestamp, Codable { public var id:Int? public var type:JobTypes? public var clientId:Int? public var countryId:Int? public var user:String? public var filename:String? public var startDateTime:Date? public var status:JobStatuses? public var created:Int? public var updated:Int? public var deleted:Int? public var log:String? public var timestamp:[UInt8] = [] public var client:Client? public var country:Country? required public init(){} } public class User : IId, ITimestamp, Codable { public var id:Int? public var upn:String? public var name:String? public var email:String? public var inactive:Bool? public var timestamp:[UInt8] = [] public var permissionsGranter:[Permission] = [] public var permissionsUser:[Permission] = [] public var planParametersApprover:[PlanParameters] = [] public var planParametersAuthor:[PlanParameters] = [] public var configurationVersionsApprover:[ConfigurationVersion] = [] public var configurationVersionsAuthor:[ConfigurationVersion] = [] public var proxyAccesses:[ProxyAccess] = [] required public init(){} } public class ConfigurationVersion : IId, ITimestamp, Codable { public var id:Int? public var configurationId:Int? public var configurationBag:String? public var dateEffective:Date? public var authorId:Int? public var approverId:Int? public var status:WorkflowStatuses? public var inactive:Bool? public var timestamp:[UInt8] = [] public var configurationVersionReferences:[ConfigurationVersionReference] = [] public var configuration:Configuration? public var author:User? public var approver:User? required public init(){} } public enum JobTypes : String, Codable { case ImportMembers case ImportAdmins case ExportActivationCodes case DocumentBulkIndexing } public enum JobStatuses : String, Codable { case Started case Failed case Succeeded case Completed } public enum WorkflowStatuses : Int, Codable { case Created = 0 case Submitted = 1 case Rejected = 8 case Approved = 9 } public class ConfigurationVersionReference : IId, ITimestamp, Codable { public var id:Int? public var propertyBag:String? public var referenceKey:String? public var configurationVersionID:Int? public var timestamp:[UInt8] = [] public var dateUploaded:Date? required public init(){} } public class ScriptTracker : Entity { public var sprint:String? public var country:String? public var language:String? public var section:String? public var itemCode:String? public var element:String? public var value:String? public var isFromMerge:Bool? required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case sprint case country case language case section case itemCode case element case value case isFromMerge } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) sprint = try container.decodeIfPresent(String.self, forKey: .sprint) country = try container.decodeIfPresent(String.self, forKey: .country) language = try container.decodeIfPresent(String.self, forKey: .language) section = try container.decodeIfPresent(String.self, forKey: .section) itemCode = try container.decodeIfPresent(String.self, forKey: .itemCode) element = try container.decodeIfPresent(String.self, forKey: .element) value = try container.decodeIfPresent(String.self, forKey: .value) isFromMerge = try container.decodeIfPresent(Bool.self, forKey: .isFromMerge) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if sprint != nil { try container.encode(sprint, forKey: .sprint) } if country != nil { try container.encode(country, forKey: .country) } if language != nil { try container.encode(language, forKey: .language) } if section != nil { try container.encode(section, forKey: .section) } if itemCode != nil { try container.encode(itemCode, forKey: .itemCode) } if element != nil { try container.encode(element, forKey: .element) } if value != nil { try container.encode(value, forKey: .value) } if isFromMerge != nil { try container.encode(isFromMerge, forKey: .isFromMerge) } } }