"""Vendor model.""" from sqlalchemy import text from sqlalchemy.exc import MultipleResultsFound, NoResultFound from carveouts.connectors.mysql import db_connector from carveouts.exceptions import VendorInvalid def get_vendor_id(vendor_id: int) -> int: """Get subaccount_id and vendor_id for given subaccount.""" with db_connector.db_session() as session: result = session.execute( text( """ SELECT v.vendor_id FROM vendor v WHERE v.vendor_id = :vendor_id """ ), {"vendor_id": vendor_id}, ) try: return int(result.scalar_one()) except (NoResultFound, MultipleResultsFound): raise VendorInvalid(f"Vendor ID {vendor_id} is invalid") from None