""" Options: Date: 2025-03-15 05:48:01 Version: 8.30 Tip: To override a DTO option, remove "#" prefix before updating BaseUrl: https://api.sanctionssearch.com/v2 #GlobalNamespace: #AddServiceStackTypes: True #AddResponseStatus: False #AddImplicitVersion: #AddDescriptionAsComments: True IncludeTypes: AddCompanyLookup.* #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 @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class Authentication: # @ApiMember(Description="The API User ID provided by us when you signed up to use our API", IsRequired=true, ParameterType="header, body") api_user_id: Optional[str] = None """ The API User ID provided by us when you signed up to use our API """ # @ApiMember(Description="The API User Key provided by us when you signed up to use our API", IsRequired=true, ParameterType="header, body") api_user_key: Optional[str] = None """ The API User Key provided by us when you signed up to use our API """ @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class BaseRequest(IBaseRequest): # @ApiMember(Description="The authentication credentials", IsRequired=true, ParameterType="header, body") authentication: Optional[Authentication] = None """ The authentication credentials """ class IBaseRequest: authentication: Optional[Authentication] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class ArrayOfLists(List[str]): pass @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class LinkedTo: client_id: Optional[int] = None id: Optional[int] = None type: Optional[str] = None subtype: Optional[str] = None status: Optional[str] = None description: Optional[str] = None is_archived: Optional[bool] = None name: Optional[str] = None date: Optional[datetime.datetime] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class ArrayOfLinkedTo(List[LinkedTo]): pass @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class AddCompanyLookupRequest: # @ApiMember(Description="If the search should be saved against a single Sub User account, specify their username here") sub_user_name: Optional[str] = None """ If the search should be saved against a single Sub User account, specify their username here """ company_lookup_id: Optional[int] = None company_registration_number: Optional[str] = None company_name: Optional[str] = None company_address: Optional[str] = None company_country: Optional[str] = None perform_enhanced_search: bool = False selected_lists: Optional[ArrayOfLists] = None # @ApiMember(Description="If the search should be linked to other searches, specify the them here") linked_to: Optional[ArrayOfLinkedTo] = None """ If the search should be linked to other searches, specify the them here """ @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class BaseResponse(IBaseDataResponse, IHasResponseStatus): # @ApiMember(Description="The status of the response") response_status: Optional[ResponseStatus] = None """ The status of the response """ @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class SearchCriteria: name: Optional[str] = None address: Optional[str] = None country: Optional[str] = None date_of_birth: Optional[str] = None nationality: Optional[str] = None reference: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CompanyDirectorOrShareholder: id: int = 0 search_type: Optional[str] = None date_searched: datetime.datetime = datetime.datetime(1, 1, 1) date_updated: datetime.datetime = datetime.datetime(1, 1, 1) num_of_results: int = 0 client_in_results: bool = False client_not_in_results: bool = False affected_by_update: bool = False search_criteria: Optional[SearchCriteria] = None is_director: bool = False is_shareholder: bool = False @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class SearchSource: list_id: Optional[str] = None list_name: Optional[str] = None list_short_name: Optional[str] = None is_affected_by_list_update: Optional[bool] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class SearchListItem: id: int = 0 search_type: Optional[str] = None date_searched: datetime.datetime = datetime.datetime(1, 1, 1) date_updated: datetime.datetime = datetime.datetime(1, 1, 1) date_archived: Optional[datetime.datetime] = None is_archived: bool = False num_of_results: int = 0 client_in_results: bool = False client_not_in_results: bool = False affected_by_update: bool = False search_criteria: Optional[SearchCriteria] = None search_sources: Optional[List[SearchSource]] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CompanyLookupEnhancedLatestAccounts: currency: Optional[str] = None turnover: Optional[Decimal] = None shareholders_equity: Optional[Decimal] = None credit_rating: Optional[int] = None credit_limit: Optional[int] = None credit_rating_description: Optional[str] = None account_ref_day: Optional[int] = None account_ref_month: Optional[int] = None account_next_due_date: Optional[datetime.datetime] = None account_last_made_up_date: Optional[datetime.datetime] = None account_category: Optional[str] = None return_last_made_up_date: Optional[datetime.datetime] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CompanyLookupEnhancedSummary: name: Optional[str] = None country: Optional[str] = None registration_number: Optional[str] = None date_of_incorporation: Optional[str] = None type_of_incorporation: Optional[str] = None company_status: Optional[str] = None address: Optional[str] = None telephone: Optional[str] = None sic_code: Optional[str] = None sic_description: Optional[str] = None principle_activity: Optional[str] = None latest_accounts: Optional[CompanyLookupEnhancedLatestAccounts] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CompanyLookupEnhancedAddress: full_address: Optional[str] = None address1: Optional[str] = None address2: Optional[str] = None address3: Optional[str] = None address4: Optional[str] = None post_code: Optional[str] = None telephone: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CompanyLookupEnhancedWebsite: website: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CompanyLookupEnhancedAdditionalContact: telephone: Optional[str] = None fax_number: Optional[str] = None email_address: Optional[str] = None web_address: Optional[str] = None twitter: Optional[str] = None facebook: Optional[str] = None google_plus: Optional[str] = None linked_in: Optional[str] = None contact_name: Optional[str] = None business_classification: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CompanyLookupEnhancedContactInfo: registered_address: Optional[CompanyLookupEnhancedAddress] = None trading_addresses: Optional[List[CompanyLookupEnhancedAddress]] = None websites: Optional[List[CompanyLookupEnhancedWebsite]] = None additional_contact_info: Optional[CompanyLookupEnhancedAdditionalContact] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CompanyLookupEnhancedSicCode: sic_code2003: Optional[int] = None sic_code2003_description: Optional[str] = None sic_code2007: Optional[int] = None sic_code2007_description: Optional[str] = None status: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CompanyLookupEnhancedPreviousName: date_changed: Optional[datetime.datetime] = None name: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CompanyLookupEnhancedShareholder: title: Optional[str] = None forename: Optional[str] = None surname: Optional[str] = None address1: Optional[str] = None address2: Optional[str] = None address3: Optional[str] = None address4: Optional[str] = None address5: Optional[str] = None post_code: Optional[str] = None share_type: Optional[str] = None number: Optional[Decimal] = None value: Optional[Decimal] = None currency: Optional[str] = None shareholder_type: Optional[str] = None share_class: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CompanyLookupEnhancedShareStructure: issued_share_capital: Optional[Decimal] = None shareholders: Optional[List[CompanyLookupEnhancedShareholder]] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CompanyLookupEnhancedDirector: name: Optional[str] = None address: Optional[str] = None gender: Optional[str] = None appointment_date: Optional[datetime.datetime] = None resignation_date: Optional[datetime.datetime] = None date_of_birth: Optional[datetime.datetime] = None position: Optional[str] = None id_number: Optional[int] = None current_directorships: Optional[int] = None previous_directorships: Optional[int] = None total_directorships: Optional[int] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CompanyLookupEnhancedDirectors: current_directors: Optional[List[CompanyLookupEnhancedDirector]] = None previous_directors: Optional[List[CompanyLookupEnhancedDirector]] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CompanyLookupEnhancedCompany: country: Optional[str] = None company_name: Optional[str] = None company_number: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CompanyLookupEnhancedStructure: parent_companies: Optional[List[CompanyLookupEnhancedCompany]] = None subsidiary_companies: Optional[List[CompanyLookupEnhancedCompany]] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CompanyLookupEnhancedCCJ: date: Optional[datetime.datetime] = None court: Optional[str] = None amount: Optional[Decimal] = None case_number: Optional[str] = None status: Optional[str] = None date_paid: Optional[str] = None incoming_record_details: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CompanyLookupEnhancedCCJs: possible_c_c_js: Optional[List[CompanyLookupEnhancedCCJ]] = None exact_c_c_js: Optional[List[CompanyLookupEnhancedCCJ]] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CompanyLookupEnhancedEvent: date: Optional[datetime.datetime] = None description: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CompanyLookupEnhancedCommentary: text: Optional[str] = None positive_or_negative: Optional[str] = None priority: Optional[int] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CompanyLookupEnhancedCreditLimit: date: Optional[datetime.datetime] = None date_order: Optional[int] = None amount: Optional[int] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CompanyLookupEnhancedCreditRating: date: Optional[datetime.datetime] = None date_order: Optional[int] = None amount: Optional[int] = None short_description: Optional[str] = None description: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CompanyLookupEnhancedCreditAccount: credit_limit_history: Optional[List[CompanyLookupEnhancedCreditLimit]] = None credit_rating_history: Optional[List[CompanyLookupEnhancedCreditRating]] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CompanyLookupFinancialProfit: turnover: Optional[Decimal] = None export: Optional[Decimal] = None cost_of_sales: Optional[Decimal] = None gross_profit: Optional[Decimal] = None wages_and_salaries: Optional[Decimal] = None director_emolument: Optional[Decimal] = None operating_profit: Optional[Decimal] = None depreciation: Optional[Decimal] = None audit_fees: Optional[Decimal] = None interest_payments: Optional[Decimal] = None pretax_profit: Optional[Decimal] = None taxation: Optional[Decimal] = None profit_after_tax: Optional[Decimal] = None dividends_payable: Optional[Decimal] = None retained_profit: Optional[Decimal] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CompanyLookupFinancialBalance: tangible_accounts: Optional[Decimal] = None intangible_assets: Optional[Decimal] = None total_fixed_assets: Optional[Decimal] = None stock: Optional[Decimal] = None trade_debtors: Optional[Decimal] = None cash: Optional[Decimal] = None other_debtors: Optional[Decimal] = None misc_current_assets: Optional[Decimal] = None total_current_assets: Optional[Decimal] = None trade_creditors: Optional[Decimal] = None bank_loans_and_overdrafts: Optional[Decimal] = None other_short_term_finance: Optional[Decimal] = None misc_current_liabilities: Optional[Decimal] = None total_current_liabilities: Optional[Decimal] = None bank_loans_and_overdrafts_and_l_t_l: Optional[Decimal] = None other_long_term_finance: Optional[Decimal] = None total_long_term_finance: Optional[Decimal] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CompanyLookupFinancialCapital: called_up_shared_capital: Optional[Decimal] = None profit_and_loss_account_reserve: Optional[Decimal] = None revaluation_reserve: Optional[Decimal] = None sundry_reserves: Optional[Decimal] = None shareholder_funds: Optional[Decimal] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CompanyLookupFinancialOther: net_worth: Optional[Decimal] = None net_assets: Optional[Decimal] = None working_capital: Optional[Decimal] = None total_assets: Optional[Decimal] = None total_liabilities: Optional[Decimal] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CompanyLookupFinancialCash: net_cash_flow_from_operations: Optional[Decimal] = None net_cash_flow_before_financing: Optional[Decimal] = None net_cash_flow_from_financing: Optional[Decimal] = None increase_in_cash: Optional[Decimal] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CompanyLookupFinancialMisc: contingent_liability: Optional[str] = None capital_employed: Optional[Decimal] = None number_of_employees: Optional[Decimal] = None auditors: Optional[str] = None auditor_comments: Optional[str] = None bankers: Optional[str] = None bank_branch_code: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CompanyLookupFinancialRatios: pre_tax_profit_margin: Optional[Decimal] = None current_ratio: Optional[Decimal] = None sales_networking_capital: Optional[Decimal] = None gearing: Optional[Decimal] = None equity: Optional[Decimal] = None creditor_days: Optional[Decimal] = None debtor_days: Optional[Decimal] = None liquidity_acid_test: Optional[Decimal] = None return_on_capital_employed: Optional[Decimal] = None return_on_net_assets_employed: Optional[Decimal] = None return_on_total_assets_employed: Optional[Decimal] = None current_debt_ratio: Optional[Decimal] = None total_debt_ratio: Optional[Decimal] = None stock_turnover_ratio: Optional[Decimal] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CompanyLookupEnhancedFinancialStatement: year_end_date_order: Optional[int] = None year_end_date: Optional[datetime.datetime] = None summary_number_of_weeks: Optional[int] = None summary_currency: Optional[str] = None summary_consolidated_account: Optional[str] = None profit_and_loss: Optional[CompanyLookupFinancialProfit] = None balance_sheet: Optional[CompanyLookupFinancialBalance] = None capital_and_reserves: Optional[CompanyLookupFinancialCapital] = None other: Optional[CompanyLookupFinancialOther] = None cash: Optional[CompanyLookupFinancialCash] = None misc: Optional[CompanyLookupFinancialMisc] = None ratios: Optional[CompanyLookupFinancialRatios] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CompanyLookupEnhanced: summary: Optional[CompanyLookupEnhancedSummary] = None contact_information: Optional[CompanyLookupEnhancedContactInfo] = None sic_codes: Optional[List[CompanyLookupEnhancedSicCode]] = None previous_names: Optional[List[CompanyLookupEnhancedPreviousName]] = None share_structure: Optional[CompanyLookupEnhancedShareStructure] = None directors: Optional[CompanyLookupEnhancedDirectors] = None group_structure: Optional[CompanyLookupEnhancedStructure] = None county_court_judgements: Optional[CompanyLookupEnhancedCCJs] = None event_history: Optional[List[CompanyLookupEnhancedEvent]] = None commentaries: Optional[List[CompanyLookupEnhancedCommentary]] = None credit_accounts: Optional[CompanyLookupEnhancedCreditAccount] = None financial_statements: Optional[List[CompanyLookupEnhancedFinancialStatement]] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CompanyLookupSearchRecord: id: int = 0 search_criteria: Optional[SearchCriteria] = None selected_lists: Optional[ArrayOfLists] = None date: datetime.datetime = datetime.datetime(1, 1, 1) has_company_id: bool = False has_company_details: bool = False has_started_searches: bool = False has_completed_searches: bool = False company_directors_and_shareholders: Optional[List[CompanyDirectorOrShareholder]] = None company_search_record: Optional[SearchListItem] = None has_enhanced_information: bool = False enhanced_information: Optional[CompanyLookupEnhanced] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class AddCompanyLookupData(BaseResponse, IBaseSearchResponse): linked_to: Optional[ArrayOfLinkedTo] = None search_record: Optional[CompanyLookupSearchRecord] = None class IBaseDataResponse: response_status: Optional[ResponseStatus] = None class IHasResponseStatus: response_status: Optional[ResponseStatus] = None class IBaseSearchResponse(IBaseDataResponse): linked_to: Optional[ArrayOfLinkedTo] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class AddCompanyLookupResponse: data: Optional[AddCompanyLookupData] = None # @Route("/companylookups/create", "POST") @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class AddCompanyLookup(BaseRequest, IReturn[AddCompanyLookupResponse]): request: Optional[AddCompanyLookupRequest] = None