# app/bot/utils/regions.py
from typing import List, Dict

from app.models import Regions

def get_sorted_regions():
    """
    Получить отсортированный список регионов (из базы, например).
    """
    # Здесь предполагается, что вызывающий код находится в контексте Flask (app.app_context())
    return Regions.query.filter(Regions.active == True).order_by(Regions.region_id).all()

def get_sorted_regions_plain() -> List[Dict[str, str]]:
    regions = Regions.query.filter(Regions.active == True).order_by(Regions.region_id).all()
    return [{"id": r.region_id, "name": r.region_name} for r in regions]

def format_regions_list(regions):
    """
    Форматировать список регионов в удобочитаемый текст
    """
    lines = []
    for region in regions:
        lines.append(f"✅ {region.region_id}: {region.region_name}")
    return "\n".join(lines)

def format_regions_list_marked(regions, subscribed_region_ids):
    lines = []
    for region in regions:
        mark = "✅" if region.region_id in subscribed_region_ids else "❌"
        lines.append(f"{mark} {region.region_id}: {region.region_name}")
    return "\n".join(lines)