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

from .basesdk import BaseSDK
from .sdkconfiguration import SDKConfiguration
from panora_sdk.addresses import Addresses
from panora_sdk.balancesheets import Balancesheets
from panora_sdk.cashflowstatements import Cashflowstatements
from panora_sdk.companyinfos import Companyinfos
from panora_sdk.creditnotes import Creditnotes
from panora_sdk.expenses import Expenses
from panora_sdk.incomestatements import Incomestatements
from panora_sdk.invoices import Invoices
from panora_sdk.items import Items
from panora_sdk.journalentries import Journalentries
from panora_sdk.panora_accounting_contacts import PanoraAccountingContacts
from panora_sdk.panora_accounts import PanoraAccounts
from panora_sdk.panora_attachments import PanoraAttachments
from panora_sdk.payments import Payments
from panora_sdk.phonenumbers import Phonenumbers
from panora_sdk.purchaseorders import Purchaseorders
from panora_sdk.taxrates import Taxrates
from panora_sdk.trackingcategories import Trackingcategories
from panora_sdk.transactions import Transactions
from panora_sdk.vendorcredits import Vendorcredits


class Accounting(BaseSDK):
    accounts: PanoraAccounts
    addresses: Addresses
    attachments: PanoraAttachments
    balancesheets: Balancesheets
    cashflowstatements: Cashflowstatements
    companyinfos: Companyinfos
    contacts: PanoraAccountingContacts
    creditnotes: Creditnotes
    expenses: Expenses
    incomestatements: Incomestatements
    invoices: Invoices
    items: Items
    journalentries: Journalentries
    payments: Payments
    phonenumbers: Phonenumbers
    purchaseorders: Purchaseorders
    taxrates: Taxrates
    trackingcategories: Trackingcategories
    transactions: Transactions
    vendorcredits: Vendorcredits

    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.accounts = PanoraAccounts(self.sdk_configuration)
        self.addresses = Addresses(self.sdk_configuration)
        self.attachments = PanoraAttachments(self.sdk_configuration)
        self.balancesheets = Balancesheets(self.sdk_configuration)
        self.cashflowstatements = Cashflowstatements(self.sdk_configuration)
        self.companyinfos = Companyinfos(self.sdk_configuration)
        self.contacts = PanoraAccountingContacts(self.sdk_configuration)
        self.creditnotes = Creditnotes(self.sdk_configuration)
        self.expenses = Expenses(self.sdk_configuration)
        self.incomestatements = Incomestatements(self.sdk_configuration)
        self.invoices = Invoices(self.sdk_configuration)
        self.items = Items(self.sdk_configuration)
        self.journalentries = Journalentries(self.sdk_configuration)
        self.payments = Payments(self.sdk_configuration)
        self.phonenumbers = Phonenumbers(self.sdk_configuration)
        self.purchaseorders = Purchaseorders(self.sdk_configuration)
        self.taxrates = Taxrates(self.sdk_configuration)
        self.trackingcategories = Trackingcategories(self.sdk_configuration)
        self.transactions = Transactions(self.sdk_configuration)
        self.vendorcredits = Vendorcredits(self.sdk_configuration)
