package Datos;

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

public class CodAsistenciaDB {

    public static CodAsistencia getCodAsistencia(String codAsistencia) {
        ConnectionPool cp = ConnectionPool.getInstance();
        Connection c = cp.getConnection();
        PreparedStatement ps;
        ResultSet rs;
        CodAsistencia cod_asistencia = null;
        String query = "SELECT * FROM COD_ASISTENCIA ca "
                + "WHERE ca.cod_asis = ?";
        try {
            ps = c.prepareStatement(query);
            ps.setString(1, codAsistencia);
            rs = ps.executeQuery();
            rs.next();
            String codC = rs.getString("cod_asis");
            String descripcion_asis = rs.getString("descripcion_asis");
            cod_asistencia = new CodAsistencia(codC, descripcion_asis);
            
        } catch (SQLException e) {
            e.printStackTrace();
        }
        cp.freeConnection(c);
        return cod_asistencia;
    }
    
    public static ArrayList <CodAsistencia> getAsistencias(){
        ConnectionPool cp = ConnectionPool.getInstance();
        Connection c = cp.getConnection();
        PreparedStatement ps;
        ResultSet rs;
        ArrayList <CodAsistencia> asistencias = new ArrayList<>();
        @SuppressWarnings("UnusedAssignment")
        CodAsistencia codAsistencia = null;
        String query = "SELECT * FROM COD_ASISTENCIA cc ";
        try {
            ps = c.prepareStatement(query);
            rs = ps.executeQuery();
            while(rs.next()){
                String cod_asistencia = rs.getString("cod_asis");
                String descripcion_asis = rs.getString("descripcion_asis");
                codAsistencia = new CodAsistencia(cod_asistencia, descripcion_asis);
                asistencias.add(codAsistencia);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        cp.freeConnection(c);
        return asistencias;
    }

    public static boolean addAsistencia(CodAsistencia cod_asistencia) {
        int resultado = 0;
        ConnectionPool cp = ConnectionPool.getInstance();
        Connection c = cp.getConnection();
        PreparedStatement ps;
        String query = "INSERT INTO COD_ASISTENCIA VALUES(?,?)";
        try {
            ps = c.prepareStatement(query);
            ps.setString(1, cod_asistencia.getCod_asistencia());
            ps.setString(2, cod_asistencia.getDescripcion_asis());
            resultado = ps.executeUpdate();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        cp.freeConnection(c);
        return resultado == 1;
    }
    
    public static boolean updateAsistencia(CodAsistencia cod_asistencia) {
        int resultado = 0;
        ConnectionPool cp = ConnectionPool.getInstance();
        Connection c = cp.getConnection();
        PreparedStatement ps;
        String query = "UPDATE COD_ASISTENCIA "+   
                       "SET cod_asis = ? ,"+
                             " descripcion_asis = ? "+
                       "WHERE cod_Asis = ? ";
        try {
            ps = c.prepareStatement(query);
            ps.setString(1, cod_asistencia.getCod_asistencia());
            ps.setString(2, cod_asistencia.getDescripcion_asis());
            ps.setString(3, cod_asistencia.getCod_asistencia());
            resultado = ps.executeUpdate();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        cp.freeConnection(c);
        return resultado == 1;
    }
}
