package fr.iutfbleau.projetIHM2021FI2.Model;

import fr.iutfbleau.projetIHM2021FI2.API.*;
import java.util.*;
import java.sql.*;

/**
 * La classe RecupClient permet de récupérer et traiter les clients grâce à la base de données.
 *  
 * @version 1.0
 * @author Anice TAJGALT, Gianni MANZARI, Alban DUMAS
 */

public class RecupClient implements Client {
    private int id;
    private String nom;
    private String prenom;

    public RecupClient(int id, String prenom, String nom){
        Objects.requireNonNull(nom,"nom est null.");
        Objects.requireNonNull(prenom,"prenom est null.");
        this.id=id;
        this.nom=nom;
        this.prenom=prenom;
    }
    

    public int getId(){
        return this.id;
    }


    public String getNom(){
        return this.nom;
    }


    public String getPrenom(){
        return this.prenom;
    }


    static public RecupClient byId(int id) {
		RecupClient customer = null;

        try {
			PreparedStatement pst = ConnexionBDD.getSQLco().prepareStatement(
			"SELECT * FROM Client WHERE id = ?");

			pst.setInt(1, id);
			pst.executeUpdate();

			ResultSet rs = pst.executeQuery();
			rs.next();

			customer = new RecupClient(rs.getInt("id"), rs.getString("prenom"), rs.getString("nom"));

			rs.close();
			pst.close();
		}
		catch(SQLException e) {
			System.err.println("Erreur lors de la recherche.");
        }
		return customer;
    }


    static public String nom(int id) {
		String customer = null;
        try {
			PreparedStatement pst = ConnexionBDD.getSQLco().prepareStatement(
			"SELECT * FROM Client WHERE id = ?");

			pst.setInt(1, id);
			pst.executeUpdate();
			ResultSet rs = pst.executeQuery();
			rs.next();

			customer = rs.getString("nom");

			rs.close();
			pst.close();

		}
		catch(SQLException e) {
			System.err.println("Problème lors de la recherche");
		}
		return customer;
    }
}
