from src.api.monitoring.db import get_connection def load_crops_by_area_from_db(): """Charge les cultures disponibles par zone géographique à partir de la base de données. Returns: dict: Un dictionnaire contenant les cultures disponibles pour chaque zone géographique. """ query = """ SELECT area, item FROM country_crop_mapping ORDER BY area, item; """ crops_by_area = {} with get_connection() as conn: with conn.cursor() as cursor: cursor.execute(query) rows = cursor.fetchall() for area, item in rows: crops_by_area.setdefault(item, []).append(area) return crops_by_area def get_available_areas(): """Récupère les zones géographiques disponibles à partir de la base de données. Returns: list: Une liste des zones géographiques disponibles. """ query = """ SELECT DISTINCT area FROM country_crop_mapping ORDER BY area; """ with get_connection() as conn: with conn.cursor() as cursor: cursor.execute(query) rows = cursor.fetchall() return [row[0] for row in rows] def get_available_crops_by_area(area): """Récupère les cultures disponibles pour une zone géographique donnée à partir de la base de données. Args: area (str): La zone géographique pour laquelle récupérer les cultures disponibles. Returns: list: Une liste des cultures disponibles pour la zone géographique donnée. """ query = """ SELECT item FROM country_crop_mapping WHERE area = %s ORDER BY item; """ with get_connection() as conn: with conn.cursor() as cursor: cursor.execute(query, (area,)) rows = cursor.fetchall() return [row[0] for row in rows]