/* Options: Date: 2025-03-15 05:39:35 SwiftVersion: 5.0 Version: 8.30 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://api.sanctionssearch.com/v2 //BaseClass: //AddModelExtensions: True //AddServiceStackTypes: True IncludeTypes: GetCompanyLookup.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: True //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack // @Route("/companylookups/get", "POST") // @DataContract public class GetCompanyLookup : BaseRequest, IReturn { public typealias Return = GetCompanyLookupResponse // @DataMember public var request:GetCompanyLookupRequest required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case request } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) request = try container.decodeIfPresent(GetCompanyLookupRequest.self, forKey: .request) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if request != nil { try container.encode(request, forKey: .request) } } } // @DataContract public class GetCompanyLookupResponse : Codable { // @DataMember public var data:GetCompanyLookupData required public init(){} } // @DataContract public class Authentication : Codable { /** * The API User ID provided by us when you signed up to use our API */ // @DataMember // @ApiMember(Description="The API User ID provided by us when you signed up to use our API", IsRequired=true, ParameterType="header, body") public var apiUserId:String /** * The API User Key provided by us when you signed up to use our API */ // @DataMember // @ApiMember(Description="The API User Key provided by us when you signed up to use our API", IsRequired=true, ParameterType="header, body") public var apiUserKey:String required public init(){} } // @DataContract public class BaseRequest : IBaseRequest, Codable { /** * The authentication credentials */ // @DataMember // @ApiMember(Description="The authentication credentials", IsRequired=true, ParameterType="header, body") public var authentication:Authentication required public init(){} } public protocol IBaseRequest { var authentication:Authentication { get set } } public class GetCompanyLookupRequest : Codable { /** * If the search is being accessed by a sub user, specify their username here to validate they have permissions to view it */ // @ApiMember(Description="If the search is being accessed by a sub user, specify their username here to validate they have permissions to view it") public var subUserName:String public var id:Int required public init(){} } public class GetCompanyLookupData : BaseResponse, IBaseSearchResponse { public var linkedTo:ArrayOfLinkedTo public var searchRecord:CompanyLookupSearchRecord required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case linkedTo case searchRecord } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) linkedTo = try container.decodeIfPresent(ArrayOfLinkedTo.self, forKey: .linkedTo) searchRecord = try container.decodeIfPresent(CompanyLookupSearchRecord.self, forKey: .searchRecord) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if linkedTo != nil { try container.encode(linkedTo, forKey: .linkedTo) } if searchRecord != nil { try container.encode(searchRecord, forKey: .searchRecord) } } } public class ArrayOfLinkedTo : List { required public init(){ super.init() } required public init(from decoder: Decoder) throws { try super.init(from: decoder) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) } } public class ArrayOfLists : List { required public init(){ super.init() } required public init(from decoder: Decoder) throws { try super.init(from: decoder) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) } } public class BaseResponse : IBaseDataResponse, IHasResponseStatus, Codable { /** * The status of the response */ // @ApiMember(Description="The status of the response") public var responseStatus:ResponseStatus required public init(){} } public protocol IBaseDataResponse { var responseStatus:ResponseStatus { get set } } public protocol IHasResponseStatus { var responseStatus:ResponseStatus { get set } } public protocol IBaseSearchResponse : IBaseDataResponse { var linkedTo:ArrayOfLinkedTo { get set } } public class CompanyLookupSearchRecord : Codable { public var id:Int public var searchCriteria:SearchCriteria public var selectedLists:ArrayOfLists public var date:Date public var hasCompanyId:Bool public var hasCompanyDetails:Bool public var hasStartedSearches:Bool public var hasCompletedSearches:Bool public var companyDirectorsAndShareholders:[CompanyDirectorOrShareholder] = [] public var companySearchRecord:SearchListItem public var hasEnhancedInformation:Bool public var enhancedInformation:CompanyLookupEnhanced required public init(){} } public class LinkedTo : Codable { public var clientId:Int? public var id:Int? public var type:String public var subtype:String public var status:String public var Description:String public var isArchived:Bool? public var name:String public var date:Date? required public init(){} } public class ArrayOfResponseError : List { required public init(){ super.init() } required public init(from decoder: Decoder) throws { try super.init(from: decoder) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) } } public class SearchCriteria : Codable { public var name:String public var address:String public var country:String public var dateOfBirth:String public var nationality:String public var reference:String required public init(){} } public class CompanyDirectorOrShareholder : Codable { public var id:Int public var searchType:String public var dateSearched:Date public var dateUpdated:Date public var numOfResults:Int public var clientInResults:Bool public var clientNotInResults:Bool public var affectedByUpdate:Bool public var searchCriteria:SearchCriteria public var isDirector:Bool public var isShareholder:Bool required public init(){} } public class SearchListItem : Codable { public var id:Int public var searchType:String public var dateSearched:Date public var dateUpdated:Date public var dateArchived:Date? public var isArchived:Bool public var numOfResults:Int public var clientInResults:Bool public var clientNotInResults:Bool public var affectedByUpdate:Bool public var searchCriteria:SearchCriteria public var searchSources:[SearchSource] = [] required public init(){} } public class CompanyLookupEnhanced : Codable { public var summary:CompanyLookupEnhancedSummary public var contactInformation:CompanyLookupEnhancedContactInfo public var sicCodes:[CompanyLookupEnhancedSicCode] = [] public var previousNames:[CompanyLookupEnhancedPreviousName] = [] public var shareStructure:CompanyLookupEnhancedShareStructure public var directors:CompanyLookupEnhancedDirectors public var groupStructure:CompanyLookupEnhancedStructure public var countyCourtJudgements:CompanyLookupEnhancedCCJs public var eventHistory:[CompanyLookupEnhancedEvent] = [] public var commentaries:[CompanyLookupEnhancedCommentary] = [] public var creditAccounts:CompanyLookupEnhancedCreditAccount public var financialStatements:[CompanyLookupEnhancedFinancialStatement] = [] required public init(){} } public class SearchSource : Codable { public var listId:String public var listName:String public var listShortName:String public var isAffectedByListUpdate:Bool? required public init(){} } public class CompanyLookupEnhancedSummary : Codable { public var name:String public var country:String public var registrationNumber:String public var dateOfIncorporation:String public var typeOfIncorporation:String public var companyStatus:String public var address:String public var telephone:String public var sicCode:String public var sicDescription:String public var principleActivity:String public var latestAccounts:CompanyLookupEnhancedLatestAccounts required public init(){} } public class CompanyLookupEnhancedContactInfo : Codable { public var registeredAddress:CompanyLookupEnhancedAddress public var tradingAddresses:[CompanyLookupEnhancedAddress] = [] public var websites:[CompanyLookupEnhancedWebsite] = [] public var additionalContactInfo:CompanyLookupEnhancedAdditionalContact required public init(){} } public class CompanyLookupEnhancedSicCode : Codable { public var sicCode2003:Int? public var sicCode2003Description:String public var sicCode2007:Int? public var sicCode2007Description:String public var status:String required public init(){} } public class CompanyLookupEnhancedPreviousName : Codable { public var dateChanged:Date? public var name:String required public init(){} } public class CompanyLookupEnhancedShareStructure : Codable { public var issuedShareCapital:Double? public var shareholders:[CompanyLookupEnhancedShareholder] = [] required public init(){} } public class CompanyLookupEnhancedDirectors : Codable { public var currentDirectors:[CompanyLookupEnhancedDirector] = [] public var previousDirectors:[CompanyLookupEnhancedDirector] = [] required public init(){} } public class CompanyLookupEnhancedStructure : Codable { public var parentCompanies:[CompanyLookupEnhancedCompany] = [] public var subsidiaryCompanies:[CompanyLookupEnhancedCompany] = [] required public init(){} } public class CompanyLookupEnhancedCCJs : Codable { public var possibleCCJs:[CompanyLookupEnhancedCCJ] = [] public var exactCCJs:[CompanyLookupEnhancedCCJ] = [] required public init(){} } public class CompanyLookupEnhancedEvent : Codable { public var date:Date? public var Description:String required public init(){} } public class CompanyLookupEnhancedCommentary : Codable { public var text:String public var positiveOrNegative:String public var priority:Int? required public init(){} } public class CompanyLookupEnhancedCreditAccount : Codable { public var creditLimitHistory:[CompanyLookupEnhancedCreditLimit] = [] public var creditRatingHistory:[CompanyLookupEnhancedCreditRating] = [] required public init(){} } public class CompanyLookupEnhancedFinancialStatement : Codable { public var yearEndDateOrder:Int? public var yearEndDate:Date? public var summaryNumberOfWeeks:Int? public var summaryCurrency:String public var summaryConsolidatedAccount:String public var profitAndLoss:CompanyLookupFinancialProfit public var balanceSheet:CompanyLookupFinancialBalance public var capitalAndReserves:CompanyLookupFinancialCapital public var other:CompanyLookupFinancialOther public var cash:CompanyLookupFinancialCash public var misc:CompanyLookupFinancialMisc public var ratios:CompanyLookupFinancialRatios required public init(){} } public class CompanyLookupEnhancedLatestAccounts : Codable { public var currency:String public var turnover:Double? public var shareholdersEquity:Double? public var creditRating:Int? public var creditLimit:Int? public var creditRatingDescription:String public var accountRefDay:Int? public var accountRefMonth:Int? public var accountNextDueDate:Date? public var accountLastMadeUpDate:Date? public var accountCategory:String public var returnLastMadeUpDate:Date? required public init(){} } public class CompanyLookupEnhancedAddress : Codable { public var fullAddress:String public var address1:String public var address2:String public var address3:String public var address4:String public var postCode:String public var telephone:String required public init(){} } public class CompanyLookupEnhancedWebsite : Codable { public var website:String required public init(){} } public class CompanyLookupEnhancedAdditionalContact : Codable { public var telephone:String public var faxNumber:String public var emailAddress:String public var webAddress:String public var twitter:String public var facebook:String public var googlePlus:String public var linkedIn:String public var contactName:String public var businessClassification:String required public init(){} } public class CompanyLookupEnhancedShareholder : Codable { public var title:String public var forename:String public var surname:String public var address1:String public var address2:String public var address3:String public var address4:String public var address5:String public var postCode:String public var shareType:String public var number:Double? public var value:Double? public var currency:String public var shareholderType:String public var shareClass:String required public init(){} } public class CompanyLookupEnhancedDirector : Codable { public var name:String public var address:String public var gender:String public var appointmentDate:Date? public var resignationDate:Date? public var dateOfBirth:Date? public var position:String public var idNumber:Int? public var currentDirectorships:Int? public var previousDirectorships:Int? public var totalDirectorships:Int? required public init(){} } public class CompanyLookupEnhancedCompany : Codable { public var country:String public var companyName:String public var companyNumber:String required public init(){} } public class CompanyLookupEnhancedCCJ : Codable { public var date:Date? public var court:String public var amount:Double? public var caseNumber:String public var status:String public var datePaid:String public var incomingRecordDetails:String required public init(){} } public class CompanyLookupEnhancedCreditLimit : Codable { public var date:Date? public var dateOrder:Int? public var amount:Int? required public init(){} } public class CompanyLookupEnhancedCreditRating : Codable { public var date:Date? public var dateOrder:Int? public var amount:Int? public var shortDescription:String public var Description:String required public init(){} } public class CompanyLookupFinancialProfit : Codable { public var turnover:Double? public var export:Double? public var costOfSales:Double? public var grossProfit:Double? public var wagesAndSalaries:Double? public var directorEmolument:Double? public var operatingProfit:Double? public var depreciation:Double? public var auditFees:Double? public var interestPayments:Double? public var pretaxProfit:Double? public var taxation:Double? public var profitAfterTax:Double? public var dividendsPayable:Double? public var retainedProfit:Double? required public init(){} } public class CompanyLookupFinancialBalance : Codable { public var tangibleAccounts:Double? public var intangibleAssets:Double? public var totalFixedAssets:Double? public var stock:Double? public var tradeDebtors:Double? public var cash:Double? public var otherDebtors:Double? public var miscCurrentAssets:Double? public var totalCurrentAssets:Double? public var tradeCreditors:Double? public var bankLoansAndOverdrafts:Double? public var otherShortTermFinance:Double? public var miscCurrentLiabilities:Double? public var totalCurrentLiabilities:Double? public var bankLoansAndOverdraftsAndLTL:Double? public var otherLongTermFinance:Double? public var totalLongTermFinance:Double? required public init(){} } public class CompanyLookupFinancialCapital : Codable { public var calledUpSharedCapital:Double? public var profitAndLossAccountReserve:Double? public var revaluationReserve:Double? public var sundryReserves:Double? public var shareholderFunds:Double? required public init(){} } public class CompanyLookupFinancialOther : Codable { public var netWorth:Double? public var netAssets:Double? public var workingCapital:Double? public var totalAssets:Double? public var totalLiabilities:Double? required public init(){} } public class CompanyLookupFinancialCash : Codable { public var netCashFlowFromOperations:Double? public var netCashFlowBeforeFinancing:Double? public var netCashFlowFromFinancing:Double? public var increaseInCash:Double? required public init(){} } public class CompanyLookupFinancialMisc : Codable { public var contingentLiability:String public var capitalEmployed:Double? public var numberOfEmployees:Double? public var auditors:String public var auditorComments:String public var bankers:String public var bankBranchCode:String required public init(){} } public class CompanyLookupFinancialRatios : Codable { public var preTaxProfitMargin:Double? public var currentRatio:Double? public var salesNetworkingCapital:Double? public var gearing:Double? public var equity:Double? public var creditorDays:Double? public var debtorDays:Double? public var liquidityAcidTest:Double? public var returnOnCapitalEmployed:Double? public var returnOnNetAssetsEmployed:Double? public var returnOnTotalAssetsEmployed:Double? public var currentDebtRatio:Double? public var totalDebtRatio:Double? public var stockTurnoverRatio:Double? required public init(){} }