package Datos;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import Modelo.CodTipoEjercicio;
import java.util.ArrayList;

public class CodTipoEjercicioDB {

    public static CodTipoEjercicio getCodTipoEjercicio(String codTipoEjercicio) {
        ConnectionPool cp = ConnectionPool.getInstance();
        Connection c = cp.getConnection();
        PreparedStatement ps;
        ResultSet rs;
        CodTipoEjercicio cod_tipo_ejercicio = null;
        String query = "SELECT * FROM COD_TIPO_EJERCICIO cte "
                + "WHERE cte.cod_tipo_ejer = ?";
        try {
            ps = c.prepareStatement(query);
            ps.setString(1, codTipoEjercicio);
            rs = ps.executeQuery();
            rs.next();
            String descripcion_tipo_ejercicio = rs.getString("descripcion_tipo_ejer");
            cod_tipo_ejercicio = new CodTipoEjercicio(codTipoEjercicio, descripcion_tipo_ejercicio);
            
        } catch (SQLException e) {
            e.printStackTrace();
        }
        cp.freeConnection(c);
        return cod_tipo_ejercicio;
    }
    
    public static ArrayList <CodTipoEjercicio> getTipos(){
        ConnectionPool cp = ConnectionPool.getInstance();
        Connection c = cp.getConnection();
        PreparedStatement ps;
        ResultSet rs;
        ArrayList <CodTipoEjercicio> tipos = new ArrayList<>();
        CodTipoEjercicio codTipoEjercicio = null;
        String query = "SELECT * FROM COD_TIPO_EJERCICIO cte ";
        try {
            ps = c.prepareStatement(query);
            rs = ps.executeQuery();
            while(rs.next()){
                String cod_tipo_ejercicio = rs.getString("cod_tipo_ejer");
                String descripcion_tipo_ejercicio = rs.getString("descripcion_tipo_ejer");
                codTipoEjercicio = new CodTipoEjercicio(cod_tipo_ejercicio, descripcion_tipo_ejercicio);
                tipos.add(codTipoEjercicio);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        cp.freeConnection(c);
        return tipos;
    }

    public static boolean addConcepto(CodTipoEjercicio cod_categoria_ejercicio) {
        int resultado = 0;
        ConnectionPool cp = ConnectionPool.getInstance();
        Connection c = cp.getConnection();
        PreparedStatement ps;
        String query = "INSERT INTO COD_TIPO_EJERCICIO VALUES(?,?)";
        try {
            ps = c.prepareStatement(query);
            ps.setString(1, cod_categoria_ejercicio.getCod_tipo_ejer());
            ps.setString(2, cod_categoria_ejercicio.getDescripcion_tipo_ejer());
            resultado = ps.executeUpdate();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        cp.freeConnection(c);
        return resultado == 1;
    }
    
    public static boolean updateConcepto(CodTipoEjercicio cod_tipo_ejercicio) {
        int resultado = 0;
        ConnectionPool cp = ConnectionPool.getInstance();
        Connection c = cp.getConnection();
        PreparedStatement ps;
        String query = "UPDATE COD_TIPO_EJERCICIO "+   
                       "SET cod_tipo_ejer = ? ,"+
                             " descripcion_tipo_ejer = ? "+
                       "WHERE cod_tipo_ejer = ?";
        try {
            ps = c.prepareStatement(query);
            ps.setString(1, cod_tipo_ejercicio.getCod_tipo_ejer());
            ps.setString(2, cod_tipo_ejercicio.getDescripcion_tipo_ejer());
            ps.setString(3, cod_tipo_ejercicio.getCod_tipo_ejer());
            resultado = ps.executeUpdate();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        cp.freeConnection(c);
        return resultado == 1;
    }
}
