Contact Models

Contacts models for ABConnect API.

class ABConnect.api.models.contacts.BaseContactDetails(**data)[source]

Bases: CompanyRelatedModel

BaseContactDetails model

contact_display_id: Optional[str]
contact_name: Optional[str]
job_title: Optional[str]
co_name: Optional[str]
bol_note: Optional[str]
contact_tax_id: Optional[str]
company_display_id: Optional[str]
company_type: Optional[str]
company_inductry: Optional[str]
company_tax_id: Optional[str]
company_payer_name: Optional[str]
company_address1: Optional[str]
company_address2: Optional[str]
company_city: Optional[str]
company_state: Optional[str]
company_country: Optional[str]
company_zip_code: Optional[str]
company_latitude: Optional[float]
company_longitude: Optional[float]
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].

class ABConnect.api.models.contacts.CalendarContact(**data)[source]

Bases: IdentifiedModel

CalendarContact model

contact_display_id: Optional[str]
company_id: Optional[str]
company_name: Optional[str]
bol_notes: Optional[str]
full_name: Optional[str]
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].

class ABConnect.api.models.contacts.Contact(**data)[source]

Bases: TimestampedModel

Contact model

company_id: Optional[str]
address_id: Optional[str]
address1: Optional[str]
address2: Optional[str]
city: Optional[str]
state: Optional[str]
state_code: Optional[str]
country_name: Optional[str]
country_code: Optional[str]
country_id: Optional[str]
zip_code: Optional[str]
is_active: Optional[bool]
latitude: Optional[str]
longitude: Optional[str]
result: Optional[str]
address_mapping_id: Optional[str]
contact_id: Optional[str]
primary_customer_name: Optional[str]
contact_info: Optional[Contact]
address: Optional[str]
parent_company_id: Optional[str]
user_id: Optional[str]
payer_id: Optional[str]
cust_companyid: Optional[str]
pu_business_status: Optional[str]
del_business_status: Optional[str]
pu_zone: Optional[float]
new_contact_id: Optional[int]
contact_is_business: Optional[bool]
contact_first_name: Optional[str]
contact_last_name: Optional[str]
contact_full_name: Optional[str]
contact_phone: Optional[str]
contact_fax: Optional[str]
customer_cell: Optional[str]
contact_email_id: Optional[str]
contact_type_id: Optional[int]
refer_id: Optional[str]
referred_name: Optional[str]
contact_dept: Optional[str]
contact_assistant: Optional[str]
contact_assistant_phone: Optional[str]
contact_home_phone: Optional[str]
contact_birth_date: Optional[datetime]
is_primary: Optional[bool]
is_prefered: Optional[bool]
referred_by: Optional[str]
is_payer: Optional[bool]
payer_name: Optional[str]
other_referral: Optional[str]
master_constant_id: Optional[str]
company_name: Optional[str]
parent_company_name: Optional[str]
company_code: Optional[str]
master_constant_value: Optional[str]
total_record: Optional[int]
industry_type: Optional[str]
contact_address: Optional[Address]
contact_user: Optional[Users]
total_items: Optional[int]
contact_web_site: Optional[str]
is_global: Optional[bool]
user_name: Optional[str]
is_access: Optional[str]
contact_display_id: Optional[str]
company_display_id: Optional[str]
franchisee_name: Optional[str]
contact_type: Optional[str]
created_user: Optional[str]
mapping_locations: Optional[str]
location_count: Optional[str]
base_parent: Optional[str]
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].

class ABConnect.api.models.contacts.ContactAddressDetails(**data)[source]

Bases: IdentifiedModel

ContactAddressDetails model

is_active: Optional[bool]
deactivated_reason: Optional[str]
meta_data: Optional[str]
address: Optional[AddressDetails]
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].

class ABConnect.api.models.contacts.ContactAddressEditDetails(**data)[source]

Bases: ContactAddressDetails

ContactAddressEditDetails model - extends ContactAddressDetails with edit metadata.

editable: Optional[bool]
detail_hash: Optional[str]
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].

class ABConnect.api.models.contacts.ContactDetailedInfo(**data)[source]

Bases: IdentifiedModel

ContactDetailedInfo model

contact_display_id: Optional[str]
full_name: Optional[str]
contact_type_id: Optional[int]
care_of: Optional[str]
bol_notes: Optional[str]
tax_id: Optional[str]
is_business: Optional[bool]
is_payer: Optional[bool]
is_prefered: Optional[bool]
is_private: Optional[bool]
is_active: Optional[bool]
company_id: Optional[str]
root_contact_id: Optional[int]
owner_franchisee_id: Optional[str]
company: Optional[Company]
legacy_guid: Optional[str]
is_primary: Optional[bool]
assistant: Optional[str]
department: Optional[str]
web_site: Optional[str]
birth_date: Optional[datetime]
job_title_id: Optional[int]
job_title: Optional[str]
emails_list: Optional[List[ContactEmailEditDetails]]
phones_list: Optional[List[ContactPhoneEditDetails]]
addresses_list: Optional[List[ContactAddressEditDetails]]
fax: Optional[str]
primary_phone_detail: Optional[PhoneDetails]
primary_phone: Optional[str]
primary_email_detail: Optional[EmailDetails]
primary_email: Optional[str]
primary_address_detail: Optional[AddressDetails]
editable: Optional[bool]
contact_details_company_info: Optional[ContactDetailsCompanyInfo]
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].

class ABConnect.api.models.contacts.ContactDetails(**data)[source]

Bases: IdentifiedModel

ContactDetails model

contact_display_id: Optional[str]
full_name: Optional[str]
contact_type_id: Optional[int]
care_of: Optional[str]
bol_notes: Optional[str]
tax_id: Optional[str]
is_business: Optional[bool]
is_payer: Optional[bool]
is_prefered: Optional[bool]
is_private: Optional[bool]
is_active: Optional[bool]
company_id: Optional[str]
root_contact_id: Optional[int]
owner_franchisee_id: Optional[str]
company: Optional[Company]
legacy_guid: Optional[str]
is_primary: Optional[bool]
assistant: Optional[str]
department: Optional[str]
web_site: Optional[str]
birth_date: Optional[datetime]
job_title_id: Optional[int]
job_title: Optional[str]
emails_list: Optional[List[ContactEmailDetails]]
phones_list: Optional[List[ContactPhoneDetails]]
addresses_list: Optional[List[ContactAddressDetails]]
fax: Optional[str]
primary_phone_detail: Optional[PhoneDetails]
primary_phone: Optional[str]
primary_email_detail: Optional[EmailDetails]
primary_email: Optional[str]
primary_address_detail: Optional[AddressDetails]
editable: Optional[bool]
is_empty: Optional[bool]
full_name_update_required: Optional[bool]
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].

class ABConnect.api.models.contacts.ContactEmailDetails(**data)[source]

Bases: IdentifiedModel

ContactEmailDetails model

is_active: Optional[bool]
deactivated_reason: Optional[str]
meta_data: Optional[str]
email: Optional[EmailDetails]
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].

class ABConnect.api.models.contacts.ContactEmailEditDetails(**data)[source]

Bases: ContactEmailDetails

ContactEmailEditDetails model - extends ContactEmailDetails with edit metadata.

editable: Optional[bool]
detail_hash: Optional[str]
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].

class ABConnect.api.models.contacts.ContactHistoryPricePerPound(**data)[source]

Bases: ABConnectBaseModel

ContactHistoryPricePerPound model

weight: Optional[float]
amount: Optional[float]
job_type: Optional[int]
booked_or_completed: Optional[bool]
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].

class ABConnect.api.models.contacts.ContactHistoryRevenueSum(**data)[source]

Bases: TimestampedModel

ContactHistoryRevenueSum model

created_date_str_internal: Optional[str]
booked_completed_revenue: Optional[float]
quoted_estimate_revenue: Optional[float]
booked_completed_job_count: Optional[int]
quoted_estimate_job_count: Optional[int]
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].

class ABConnect.api.models.contacts.ContactPhoneDetails(**data)[source]

Bases: IdentifiedModel

ContactPhoneDetails model

is_active: Optional[bool]
deactivated_reason: Optional[str]
meta_data: Optional[str]
phone: Optional[PhoneDetails]
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].

class ABConnect.api.models.contacts.ContactPhoneEditDetails(**data)[source]

Bases: ContactPhoneDetails

ContactPhoneEditDetails model - extends ContactPhoneDetails with edit metadata.

editable: Optional[bool]
detail_hash: Optional[str]
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].

class ABConnect.api.models.contacts.ContactPrimaryDetails(**data)[source]

Bases: CompanyRelatedModel

ContactPrimaryDetails model

full_name: Optional[str]
email: Optional[str]
phone: Optional[str]
cell_phone: Optional[str]
fax: Optional[str]
address: Optional[AddressDetails]
company: Optional[Company]
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].

class ABConnect.api.models.contacts.ContactUser(**data)[source]

Bases: ABConnectBaseModel

ContactUser model for GET /contacts/user response.

full_name: Optional[str]
company_id: Optional[str]
company_name: Optional[str]
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].

class ABConnect.api.models.contacts.MergeContactsSearchRequestModel(**data)[source]

Bases: ABConnectBaseModel

MergeContactsSearchRequestModel model

main_search_request: MergeContactsSearchRequestParameters
load_options: PageOrderedRequestModel
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].

class ABConnect.api.models.contacts.MergeContactsSearchRequestParameters(**data)[source]

Bases: CompanyRelatedModel

MergeContactsSearchRequestParameters model

contact_display_id: Optional[int]
full_name: Optional[str]
company_code: Optional[str]
email: Optional[str]
phone: Optional[str]
company_display_id: Optional[int]
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].

class ABConnect.api.models.contacts.PlannerContact(**data)[source]

Bases: IdentifiedModel

PlannerContact model

full_name: Optional[str]
company_name: Optional[str]
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].

class ABConnect.api.models.contacts.SearchContactEntityResult(**data)[source]

Bases: CompanyRelatedModel

SearchContactEntityResult model

contact_id: Optional[int]
customer_cell: Optional[str]
contact_display_id: Optional[str]
contact_full_name: Optional[str]
contact_phone: Optional[str]
contact_home_phone: Optional[str]
contact_email: Optional[str]
master_constant_value: Optional[str]
contact_dept: Optional[str]
address1: Optional[str]
address2: Optional[str]
city: Optional[str]
state: Optional[str]
zip_code: Optional[str]
country_name: Optional[str]
company_code: Optional[str]
company_display_id: Optional[str]
is_prefered: Optional[bool]
industry_type: Optional[str]
total_records: Optional[int]
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].

class ABConnect.api.models.contacts.SearchContactRequest(**data)[source]

Bases: CompanyRelatedModel

SearchContactRequest model

page_index: Optional[int]
page_size: Optional[int]
total_count: Optional[int]
sorting_by: Optional[str]
sorting_direction: Optional[ListSortDirection]
full_name: Optional[str]
company_display_id: Optional[str]
contact_display_id: Optional[str]
company_code: Optional[str]
email: Optional[str]
phone: Optional[str]
city: Optional[str]
state: Optional[str]
zip_code: Optional[str]
user_id: Optional[str]
type: Optional[str]
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].

class ABConnect.api.models.contacts.ShipmentContactAddressDetails(**data)[source]

Bases: CompanyRelatedModel

ShipmentContactAddressDetails model

contact_name: Optional[str]
phone_number: Optional[str]
email_address: Optional[str]
address: Optional[AddressDetails]
tax_ids: Optional[List[AutoCompleteValue]]
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].

class ABConnect.api.models.contacts.ShipmentContactDetails(**data)[source]

Bases: CompanyRelatedModel

ShipmentContactDetails model

contact_name: Optional[str]
phone_number: Optional[str]
email_address: Optional[str]
tax_id: Optional[str]
address: Optional[FreightRateRequestAddressDetails]
is_empty: Optional[bool]
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].