"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""

from .basesdk import BaseSDK
from .sdkconfiguration import SDKConfiguration
from apideck_unify.activities import Activities
from apideck_unify.companies import Companies
from apideck_unify.contacts import Contacts
from apideck_unify.customobjects import CustomObjects
from apideck_unify.customobjectschemas import CustomObjectSchemas
from apideck_unify.leads import Leads
from apideck_unify.notes import Notes
from apideck_unify.opportunities import Opportunities
from apideck_unify.pipelines import Pipelines
from apideck_unify.users import Users


class Crm(BaseSDK):
    companies: Companies
    contacts: Contacts
    opportunities: Opportunities
    leads: Leads
    pipelines: Pipelines
    notes: Notes
    users: Users
    activities: Activities
    custom_object_schemas: CustomObjectSchemas
    custom_objects: CustomObjects

    def __init__(self, sdk_config: SDKConfiguration) -> None:
        BaseSDK.__init__(self, sdk_config)
        self.sdk_configuration = sdk_config
        self._init_sdks()

    def _init_sdks(self):
        self.companies = Companies(self.sdk_configuration)
        self.contacts = Contacts(self.sdk_configuration)
        self.opportunities = Opportunities(self.sdk_configuration)
        self.leads = Leads(self.sdk_configuration)
        self.pipelines = Pipelines(self.sdk_configuration)
        self.notes = Notes(self.sdk_configuration)
        self.users = Users(self.sdk_configuration)
        self.activities = Activities(self.sdk_configuration)
        self.custom_object_schemas = CustomObjectSchemas(self.sdk_configuration)
        self.custom_objects = CustomObjects(self.sdk_configuration)
