"""country_carveout model.""" from sqlalchemy import bindparam, text from sqlalchemy.exc import NoResultFound from carveouts.connectors.mysql import db_connector def get_country_ids(country_codes: list[str]) -> list[int]: """Get country_id for country_codes.""" with db_connector.db_session() as session: result = session.execute( text( """ SELECT c.id AS country_id FROM country c WHERE c.country_code in :country_codes ORDER BY c.id """ ).bindparams(bindparam("country_codes", expanding=True)), {"country_codes": country_codes}, ) try: rows = result.mappings().all() return [row.country_id for row in rows] except NoResultFound: return []