/*
 * PompierMysql.java
 */
package bdd;

import com.test.beans.Pompier;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author Clément B
 */
public class PompierMysql {

    private Connection theConnection;
    private Pompier unClient;

    /**
     * Constructeur
     */
    public PompierMysql() {
        theConnection = Connexion.getConnect("localhost", //s erveur
                "sdis29", // base de données
                "adminBDsdis",// user
                "mdpBDsdis"); // mot de passe PompierMysql() {
    }
    
    /**
     * Recherche de tous les clients
     * @return collection de clients
     */
    public ArrayList<Pompier> readAll() {
        ArrayList<Pompier> lesPompiers = new ArrayList<>();

//        try {
//            Statement stmt = theConnection.createStatement();
//            ResultSet resultQ = null;
//            resultQ = stmt.executeQuery("SELECT * FROM client");   SELECT * FROM pompier WHERE pseudo AND mdp
//            while (resultQ.next()) {
//                unPompier = new Pompier(resultQ.getInt("id"),
//                        resultQ.getInt("idCaserne"),
//                        resultQ.getString("nom"),
//                        resultQ.getString("prenom"),
//                        resultQ.getInt("statut"),
//                        resultQ.getInt("typePers"),
//                        resultQ.getString("mail"),
//                        resultQ.getString("login"),
//                        resultQ.getString("mdp"),
//                        resultQ.getString("adresse"),
//                        resultQ.getString("cp"),
//                        resultQ.getString("ville"),
//                        resultQ.getInt("bip"),
//                        resultQ.getInt("nbGardes"),
//                        resultQ.getInt("grade"),
//                        resultQ.getString("commentaire"),
//                        resultQ.getString("dateEnreg"),
//                        resultQ.getString("dateModif"),
//                        resultQ.getInt("idEquipe"));
//
//            }
//            lesPompiers.add(unPompier);
//            resultQ.close();
//            stmt.close();
//            //theConnection.close();
//        } catch (SQLException ex) {
//            System.out.println("SQLException : " + ex.getMessage());
//            System.out.println("SQLState : " + ex.getSQLState());
//            System.out.println("Code erreur : " + ex.getErrorCode());
//        }
//        
//        return lesPompiers;
//    }
//    
//    /**
//     * Creation du client passé en paramètre dans la table Pompier
//     * Requête non préparée
//     * @param c objet de type Pompier (sans identifiant)
//     * @return int : id du Pompier créé
//     */
//    public int create(Pompier c) {
//        int id = -1;
//        try {           
//            Statement stmt = theConnection.createStatement();
//            int status = stmt.executeUpdate(
//                "INSERT INTO pompier (id, idCaserne ,nom, prenom,statut, typePersonne,login ,mail, mdp, adresse, cp, ville, bip, nbGardes, grade, commentaire', dateEnreg, dateModif, idEquipe) "
//                + "VALUES ('" + c.getId() + "', '" 
//                                +c.getIdCaserne()+"', '"
//                                + c.getNom() + "', '"
//                                + c.getPrenom() + "', '"
//                                + c.getStatut() + "', " 
//                                + c.getTypePers()+ ", '"
//                                + c.getLogin()+ "', '"
//                                + c.getMail()+ "', '" 
//                                + c.getMdp()+ "', '" 
//                                + c.getAdresse()+ "', '" 
//                                + c.getCp()+ "', '"
//                                + c.getVille() + "', '"
//                                +c.getBip()+"', '"
//                                +c.getNbGardes()+"', '"
//                                +c.getGrade()+"', '"
//                                +c.getCommentaire()+"', '"
//                                +c.getDateEnreg()+"', '"
//                                +c.getDateModif()+"', '"
//                                +c.getIdEquipe() + "');",
//                Statement.RETURN_GENERATED_KEYS);
//            
//            // Recherche de l'identifiant du client créé            
//            if (status > 0) {
//                ResultSet result = stmt.getGeneratedKeys();
//                if (result.first()) {
//                    id = result.getInt(1);                    
//                }
//            }               
//        } catch (SQLException ex) {
//            System.out.println("SQLException : " + ex.getMessage());
//            System.out.println("SQLState : " + ex.getSQLState());
//            System.out.println("Code erreur : " + ex.getErrorCode());
//        }        
        return new ArrayList();
    }
    
    /**
     * Creation du client passé en paramètre dans la table client
     * Requête préparée
     * @param c objet de type Pompier (sans identifiant)
     * @return int : id du client créé
     */
    public int createRP(Pompier c) {
        int id = -1;
        try {           
            PreparedStatement stmt = null;
            String sql =  "INSERT INTO client (id, idCaserne ,nom, prenom,statut, typePersonne,login ,mail, mdp, adresse, cp, ville, bip, nbGardes, grade, commentaire', dateEnreg, dateModif, idEquipe) "
                + "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? , ? , ? , ? ,?, ?, ?);";
            stmt = theConnection.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
            stmt.setInt(1, c.getId());
            stmt.setInt(2, c.getIdCaserne());
            stmt.setString(3, c.getNom());
            stmt.setString(4, c.getPrenom());
            stmt.setString(5, c.getStatut());
            stmt.setInt(6, c.getTypePers());
            stmt.setString(7, c.getLogin());
            stmt.setString(8, c.getMdp());
            stmt.setString(9, c.getAdresse());
            stmt.setString(10, c.getCp());
            stmt.setString(11, c.getVille());
            stmt.setInt(12, c.getBip());
            stmt.setInt(13, c.getNbGardes());
            stmt.setInt(14, c.getGrade());
            stmt.setString(15, c.getCommentaire());
            stmt.setString(16, c.getDateEnreg());
            stmt.setString(17, c.getDateModif());
            stmt.setInt(18, c.getIdEquipe());
            System.out.println("Requête : " + stmt.toString());
            int status = stmt.executeUpdate();
               
            
            // Recherche de l'identifiant du client créé            
            if (status > 0) {
                ResultSet result = stmt.getGeneratedKeys();
                if (result.first()) {
                    id = result.getInt(1);                    
                }
            }               
        } catch (SQLException ex) {
            System.out.println("SQLException : " + ex.getMessage());
            System.out.println("SQLState : " + ex.getSQLState());
            System.out.println("Code erreur : " + ex.getErrorCode());
        }        
        return id;
    }
}
