Company Models
Models for company-related API responses with inheritance hierarchy.
Base Models
Detailed Models
- class ABConnect.api.models.companies.CompanyDetails(**data)[source]
Bases:
IdentifiedModelCompanyDetails model
Extended company information including addresses and contacts.
Example Response Structure:
{ "companyID": "ed282b80-54fe-4f42-bf1b-69103ce1f76c", "companyName": "Training", "companyCode": "TRAINING", "companyEmail": "training@abconnect.co", "companyPhone": "8009814202", "mainAddress": { "address1": "2534 Vista Dr", "city": "Castle Rock", "state": "CO", "zipCode": "80104" }, "companyInfo": { "isThirdParty": false, "isActive": true } }
-
capabilities:
Optional[CommercialCapabilities]
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
-
capabilities:
Supporting Models
Usage Examples
Working with company hierarchy:
from ABConnect import ABConnectAPI
api = ABConnectAPI()
# Get basic company info
company = api.companies.get("ed282b80-54fe-4f42-bf1b-69103ce1f76c")
print(f"{company.name} ({company.code})")
# Get detailed information
details = api.companies.get_details(company.id)
print(f"Email: {details.companyEmail}")
print(f"Phone: {details.companyPhone}")
print(f"Address: {details.mainAddress.address1}")
# Get full details including pricing
full = api.companies.get_full_details(company.id)
print(f"Base markup: {full.pricing.transportationMarkups.base}")
Searching for companies:
# Get all available companies
companies = api.companies.get_available()
for company in companies:
print(f"{company.name} - {company.code}")
# Check if it has a parent company
if company.parentCompanyId:
parent = api.companies.get(company.parentCompanyId)
print(f" Parent: {parent.name}")
Model Inheritance
The company models use inheritance to avoid duplication:
CompanyBase - Common fields (id, code, name, parentCompanyId)
CompanyBasic - Inherits from CompanyBase, used for simple listings
CompanyDetails - Adds contact info, addresses, and settings
CompanyFullDetails - Adds pricing, insurance, and capabilities
This allows consistent field names across all company endpoints while providing appropriate levels of detail for each use case.
See Also
Contact Models - Contact models associated with companies
Address Models - Address models used in company details
CompanyType- Company type enumeration