package database.migration.etape1.depotEtFermeture;

import java.io.FileNotFoundException;
import java.io.IOException;
import java.sql.Connection;
import java.sql.Date;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

import tool.regEx.DataNormalizer;
import database.dataset.Employe;
import database.dataset.Fermeture;
import database.dataset.Utilisateur;
import database.migration.SqlFactory;

public class ReadFermeture {
	Utilisateur utilisateur;
	Employe employe;
	Fermeture fermeture;
	
	
	public ReadFermeture(Utilisateur utilisateur, Employe employe, Fermeture fermeture) {
		super();
		this.utilisateur = utilisateur;
		this.employe = employe;
		this.fermeture = fermeture;
	}

	public static List<ReadFermeture> from(Connection connection) throws SQLException{
		System.out.println("import fermeture");
		List<ReadFermeture> lst = new ArrayList<ReadFermeture>();
		Statement stm = connection.createStatement();
		ResultSet rs = stm.executeQuery("SELECT * FROM fermeture");
		int id_emp = 1;
		while(rs.next()){
			int ID = rs.getInt("ID"),
			    ID_depots = rs.getInt("ID_depots");
			Date date = rs.getDate("date");
			String employe_nom = DataNormalizer.normalize(rs.getString("employe"));
			
			Utilisateur utilisateur = new Utilisateur(id_emp, 
													  employe_nom, 
					                                  "",
					                                  true,
					                                  3);
			Employe employe = new Employe(id_emp, 
										  "", 
					                      employe_nom, 
					                      "", 
					                      id_emp);
			Fermeture fermeture = new Fermeture(ID, 
					                            date, 
					                            id_emp, 
					                            ID_depots, 
					                            "");
			id_emp = id_emp+1;
			
			lst.add(new ReadFermeture(utilisateur, employe, fermeture));
		}
		return lst;
	}
	
	public Utilisateur getUtilisateur() {
		return utilisateur;
	}

	public Employe getEmploye() {
		return employe;
	}

	public Fermeture getFermeture() {
		return fermeture;
	}

	/**
	 * @param args
	 * @throws IOException 
	 * @throws SQLException 
	 * @throws FileNotFoundException 
	 */
	public static void main(String[] args) throws FileNotFoundException, SQLException, IOException {
		Connection connection = SqlFactory.connect(SqlFactory.loadProperties("hotel_orford_import.xml"));
		
		List<ReadFermeture> r = from(connection);
		for (ReadFermeture rf : r){
			System.out.println(rf.fermeture.toString());
			System.out.println(rf.employe.toString());
			System.out.println(rf.utilisateur.toString());
		}
		
		System.out.println("bonne journée");
	}
}
