package donnee;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

import modele.Chocolat;

public class ChocolatDAO {
	public static String URI = "jdbc:postgresql://localhost:5432/confiserie";
	public static String USAGER = "postgres";
	public static String MOT_DE_PASSE = "testtest";
	
	public List<Chocolat> listerChocolats()
	{		
		List<Chocolat> chocolats = new ArrayList<Chocolat>();
		
		try {
			Class.forName("org.postgresql.Driver");
			Connection basededonnees = DriverManager.getConnection(URI, USAGER, MOT_DE_PASSE);
			System.out.println("Connexion réussie");
			
			Statement requete = basededonnees.createStatement();
			ResultSet curseur = requete.executeQuery("SELECT * FROM chocolat");
			
			String nom;
			float cacao;
			
			while(curseur.next())
			{
				nom = curseur.getString("nom");			
				cacao = curseur.getFloat("cacao");			
				System.out.println("Le chocolat " + nom + " a " + cacao + "% de cacao");	
				
				Chocolat chocolat = new Chocolat();
				chocolat.setNom(nom);
				chocolat.setCacao(cacao);
				
				chocolats.add(chocolat);
			}
		} catch (ClassNotFoundException | SQLException e) {
			e.printStackTrace();
		}
		return chocolats;
	}
	
	public void ajouterChocolat(Chocolat chocolat)
	{
		System.out.println("ChocolatDAO.ajouterChocolat()");
		System.out.println(chocolat.getNom());
		
		try {
			Class.forName("org.postgresql.Driver");
			Connection basededonnees = DriverManager.getConnection(URI, USAGER, MOT_DE_PASSE);
			System.out.println("Connexion réussie");
		
			//requete.execute("INSERT into chocolat(nom) VALUES('test java')");
			//requete.execute("INSERT into chocolat(nom) VALUES('"+chocolat.getNom()+"')");
			String SQL = "INSERT into chocolat(nom, description, cacao) VALUES('"+chocolat.getNom()+"','"+chocolat.getDescription()+"','"+chocolat.getCacao()+"')";
			System.out.println(SQL);
			Statement requete = basededonnees.createStatement();
			requete.execute(SQL);			
			
		} catch (ClassNotFoundException | SQLException e) {
			e.printStackTrace();
		}
	}
	
	public void editerChocolat(Chocolat chocolat)
	{
		System.out.println("ChocolatDAO.modifierChocolat()");
		try {
			Class.forName("org.postgresql.Driver");
			Connection basededonnees = DriverManager.getConnection(URI, USAGER, MOT_DE_PASSE);
			System.out.println("Connexion réussie");
			
			//String SQL = "UPDATE chocolat SET nom = 'test3' WHERE id = 10";
			//String SQL = "UPDATE chocolat SET nom = '"+chocolat.getNom()+"' WHERE id = " + chocolat.getId();
			String SQL = "UPDATE chocolat SET nom = '"+chocolat.getNom()+"',description='"+chocolat.getDescription()+"', cacao='"+chocolat.getCacao()
							+"' WHERE id = " + chocolat.getId();
			System.out.println(SQL);
			Statement requete = basededonnees.createStatement();
			requete.execute(SQL);			
			
		} catch (ClassNotFoundException | SQLException e) {
			e.printStackTrace();
		}
		
	}

}
