package Test;

import API.*;
import MNP.*;
import java.util.ArrayList;

public class TestTexteMNP {
    public static void main(String[] args) {
        /**
         * Objet de la base de donnee contenant des methodes utile a notre developpement
         * */
        BDatabase bd = new BDatabase();

        /**
         * Chargement des eleves
         * */
        ArrayList<Etudiant> listEtu = new ArrayList<>();
        ArrayList<String> studPrenom = bd.fetchAll("SELECT prenom FROM fi_eleves");
        ArrayList<String> studNom = bd.fetchAll("SELECT nom FROM fi_eleves");
        ArrayList<String> studGroupe = bd.fetchAll("SELECT groupe FROM fi_eleves");

        for(int i = 0; i <= studPrenom.size()-1; i++) {
            if(studPrenom.get(i) != null && studNom.get(i) != null && studGroupe.get(i) != null) {
                try {
                    listEtu.add(
                        new EtudiantNP(
                            studNom.get(i),
                            studPrenom.get(i),
                            Integer.parseInt(studGroupe.get(i), 10)
                        )
                    );
                } catch(NumberFormatException ignore) {
                    listEtu.add(
                            new EtudiantNP(
                                    studNom.get(i),
                                    studPrenom.get(i),
                                    -1
                            )
                    );
                }
            } else {
                System.out.println("[!] Erreur lors du chargement de la liste des etudiants.");
                System.exit(-1);
            }
        }

        System.out.println("[+] Liste des etudiants chargees.");

        /**
         * Chargement des groupes
         * */
        ArrayList<Groupe> listGroupe = new ArrayList<>();
        ArrayList<String> groupeId = bd.fetchAll("SELECT id FROM fi_groupe");
        ArrayList<String> groupeNom = bd.fetchAll("SELECT nom FROM fi_groupe");
        ArrayList<String> groupeMin = bd.fetchAll("SELECT min FROM fi_groupe");
        ArrayList<String> groupeMax = bd.fetchAll("SELECT max FROM fi_groupe");

        for(int i = 0; i <= groupeNom.size()-1; i++) {
            if(groupeId.get(i) != null && groupeNom.get(i) != null && groupeMin.get(i) != null && groupeMax.get(i) != null) {
                listGroupe.add(
                        new GroupeNP(
                                Integer.parseInt(groupeId.get(i), 10),
                                groupeNom.get(i),
                                Integer.parseInt(groupeMin.get(i), 10),
                                Integer.parseInt(groupeMax.get(i), 10)
                        )
                );
            } else {
                System.out.println("[!] Erreur lors du chargement de la liste des groupes.");
                System.exit(-1);
            }
        }

        System.out.println("[+] Liste des groupes chargees.");

        /**
         * Demarrage de l'appli
         * */
        Controller listener = new Controller(listEtu, listGroupe);
    }
}
