from sqlalchemy import cast, Integer from sqlalchemy.future import select from utils.db import AsyncSessionLocal from utils.db.regions import Region async def get_sorted_regions(): """ Получает отсортированный список активных регионов из базы данных. :return: Список кортежей с идентификаторами и названиями регионов """ async with AsyncSessionLocal() as session: async with session.begin(): # Формируем запрос для получения активных регионов stmt = select(Region.region_id, Region.region_name).where(Region.active == True).order_by(cast(Region.region_id, Integer)) # Выполняем запрос и получаем результат result = await session.execute(stmt) regions = result.fetchall() # Получаем все записи как список кортежей regions = "\n".join(f"{region_id}: {region_name}" for region_id, region_name in regions) return regions