package Servlet;

import Datos.EntrenamientoDB;
import Datos.EquipoDB;
import Datos.JornadaDB;
import Modelo.CodClub;
import Modelo.Equipo;
import Modelo.Jornada;
import Modelo.Partido;
import java.io.IOException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import Modelo.Usuario;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;

public class PrincipalServlet extends HttpServlet {

    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        String encoding = request.getCharacterEncoding();
        if (encoding == null) {
            request.setCharacterEncoding("UTF-8");
        }

        String url;
        HttpSession sesion = request.getSession();
        Usuario usuario = (Usuario) sesion.getAttribute("usuario");
        CodClub cc = (CodClub) sesion.getAttribute("club");
        if (!usuario.getTipo_usuario().equals("A")){
            Equipo equipo = (Equipo) sesion.getAttribute("equipo");
            String usuario_id = usuario.getId_usuario();
            String id_equipo = "";
            if(equipo != null){
                id_equipo = equipo.getId_equipo();
            }
            ArrayList<String> fechas = new ArrayList<>();
            ArrayList<ArrayList<String>> lista_entrenamientos = EntrenamientoDB.getEntrenamientos(usuario_id,id_equipo);
            for(int i = 0; i < lista_entrenamientos.size(); i++){
                ArrayList<String> aux = lista_entrenamientos.get(i);
                String fecha = aux.get(1);
                SimpleDateFormat formato = new SimpleDateFormat("yyyy-MM-dd");
                Date fecha_entrenamiento = null;
                try{
                    fecha_entrenamiento = formato.parse(fecha);
                }catch(ParseException ex){
                      ex.printStackTrace();
                }
                String fecha_final = fecha_entrenamiento.getDate()+"/"+(fecha_entrenamiento.getMonth()+1)+"/"+(fecha_entrenamiento.getYear()+1900);
                fechas.add(fecha_final);
            }
            request.setAttribute("lista_entrenamientos", lista_entrenamientos);
            request.setAttribute("fechas", fechas);
        }
        
        if(!usuario.getTipo_usuario().equals("E")){
                Date fecha_actual = new Date();
                Jornada ultima_jornada = JornadaDB.getUltimaJornada(fecha_actual,cc.getId_club());
                ArrayList<Partido> lista_partidos = JornadaDB.getPartidosJornada(ultima_jornada, cc);
                request.setAttribute("lista_partidos",lista_partidos);
        }
        
        if(usuario.getTipo_usuario().equals("A")){
            ArrayList<Equipo> lista_equipos = EquipoDB.getEquiposClub(cc);
            request.setAttribute("lista_equipos",lista_equipos);
        }

        url = "/includes/principal.jsp";
        RequestDispatcher dispatcher = getServletContext().getRequestDispatcher(url);
        dispatcher.forward(request, response);
    }

    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
    /**
     * Handles the HTTP <code>GET</code> method.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    /**
     * Handles the HTTP <code>POST</code> method.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }
}
