package database.migration.etape1.depotEtFermeture;

import java.io.FileNotFoundException;
import java.io.IOException;
import java.math.BigDecimal;
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.Depot;
import database.dataset.Employe;
import database.dataset.Utilisateur;
import database.migration.SqlFactory;

public class ReadDepot {
	Utilisateur utilisateur;
	Employe employe;
	Depot depot;
	
	
	public ReadDepot(Utilisateur utilisateur, Employe employe, Depot depot) {
		super();
		this.utilisateur = utilisateur;
		this.employe = employe;
		this.depot = depot;
	}

	public static List<ReadDepot> from(Connection connection) throws SQLException{
		System.out.println("import depot");
		List<ReadDepot> lst = new ArrayList<ReadDepot>();
		Statement stm = connection.createStatement();
		ResultSet rs = stm.executeQuery("SELECT * FROM depots");
		int id_emp = 10000;
		while(rs.next()){
			int ID = rs.getInt("ID");
			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);
			
			Depot depot = new Depot(ID, 
					                date, 
					                id_emp, 
					                BigDecimal.valueOf(0)); 
			id_emp = id_emp+1;
			
			lst.add(new ReadDepot(utilisateur, employe, depot));
		}
		return lst;
	}
	
	public Utilisateur getUtilisateur() {
		return utilisateur;
	}

	public Employe getEmploye() {
		return employe;
	}

	public Depot getDepot() {
		return depot;
	}

	/**
	 * @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<ReadDepot> r = from(connection);
		for (ReadDepot rf : r){
			System.out.println(rf.depot.toString());
			System.out.println(rf.employe.toString());
			System.out.println(rf.utilisateur.toString());
		}
		
		System.out.println("bonne journée");
	}

}
