from services.db import get_connection


def get_epci():
    """
    Récupère la liste des EPCI disponibles dans la base.

    Retour :
        Liste de chaînes de caractères contenant les noms d'EPCI
    """

    conn = get_connection()
    cur = conn.cursor()

    try:

        query = """
            SELECT DISTINCT nom_epci
            FROM eau_poc.prelevements_aeap_aula
            WHERE nom_epci IN ('CA de Béthune-Bruay, Artois-Lys Romane','CC du Ternois', 'CC des Sept Vallées')
            ORDER BY nom_epci
        """

        cur.execute(query)

        rows = cur.fetchall()

        # transformation en liste simple
        epci_list = [row[0] for row in rows]

        return epci_list

    finally:

        cur.close()
        conn.close()



def get_communes(epci=None):
    """
    Récupère la liste des communes.

    Paramètres :
        epci (str | None) : filtre optionnel sur un EPCI

    Retour :
        Liste de noms de communes
    """

    conn = get_connection()
    cur = conn.cursor()

    try:

        query = """
            SELECT DISTINCT nom
            FROM eau_poc.prelevements_aeap_aula
            WHERE nom_epci IN ('CA de Béthune-Bruay, Artois-Lys Romane','CC du Ternois', 'CC des Sept Vallées')
        """

        params = []

        # filtre EPCI si fourni
        if epci:
            query += " AND nom_epci = %s"
            params.append(epci)

        query += """
            ORDER BY nom
        """

        cur.execute(query, params)

        rows = cur.fetchall()

        communes = [row[0] for row in rows]

        return communes

    finally:

        cur.close()
        conn.close()