package br.dsc.upe.poli.mvc;


import java.io.IOException;
import java.sql.SQLException;
import java.util.ArrayList;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import br.dsc.upe.poli.basicas.Aluno;
import br.dsc.upe.poli.basicas.Atividade;
import br.dsc.upe.poli.basicas.Perfil;
import br.dsc.upe.poli.dao.AlunoDAO;
import br.dsc.upe.poli.dao.AtividadeDAO;
import br.dsc.upe.poli.dao.PerfilDAO;


/**
 * Servlet implementation class CadastraAluno
 */
public class CadastraAluno extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public CadastraAluno() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		String operacao = request.getParameter("operacao");
		if(operacao.equals("adicionaAtividade")||operacao=="adicionaAtividade"){
			
			try {
				String nomeAtividade = request.getParameter("nomeAtividade");
				String login = request.getParameter("logado");
				AtividadeDAO atividadeDAO;
				atividadeDAO = new AtividadeDAO();
				Atividade atividade = atividadeDAO.buscarAtividadePorNome(nomeAtividade);
				if(!atividadeDAO.existeAtividade(login, nomeAtividade)){
					atividadeDAO.associarAtividade(login, nomeAtividade);
				}
				
				
			} catch (ClassNotFoundException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		
		}else{
		Aluno aluno = new Aluno();
		String nome = request.getParameter("alunoNome");
		String idade =  request.getParameter("alunoIdade");
		String turma = request.getParameter("alunoTurma");
		String identidade = request.getParameter("alunoIdentidade");
		String login = request.getParameter("alunoLogin");
		String senha = request.getParameter("alunoSenha");
		String habitacao = request.getParameter("checkHabitacao");
		String meioAmbiente =  request.getParameter("checkMeioAmbiente");
		String impostos = request.getParameter("checkImpostos");
		String saude = request.getParameter("checkSaude");
		String emprego = request.getParameter("checkEmprego");
		String globalizacao = request.getParameter("checkGlobalizacao");
		String educacao = request.getParameter("checkEducacao");
		String violencia = request.getParameter("checkViolencia");
		String economia = request.getParameter("checkEconomia");
		
		Perfil perfil = new Perfil(login, meioAmbiente,habitacao,emprego,impostos,globalizacao,educacao, saude, violencia,economia);
		
		
		
		aluno.setNome(nome);
		aluno.setIdade(idade);
		aluno.setTurma(turma);
		aluno.setSenha(senha);
		aluno.setLogin(login);
		aluno.setIdentidade(identidade);
		
		try {
			PerfilDAO perfilDAO = new PerfilDAO();
			AlunoDAO dao = new AlunoDAO();
			AtividadeDAO atividadeDAO = new AtividadeDAO();
			dao.cadastrar(aluno);
			perfilDAO.cadastrar(perfil);
			ArrayList<String> assuntos =  perfilDAO.buscarInteresses(login);
			atividadeDAO.cadastraAtividadeInicial(aluno.getLogin(), assuntos);
			ArrayList<String> atividades_nomes = atividadeDAO.listarAtividadesPorLogin(aluno.getLogin());
			
			
			
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
			throw new ServletException(e);
		}
		
		//RequestDispatcher requestDispatcher = request.getRequestDispatcher("index.jsp");
		//requestDispatcher.forward(request, response);

		response.setStatus(200);
		response.getWriter().flush();  
	}}

	
	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
	}

}
