<?php
session_start();
require_once '../include/bd_pdo.php';

if(!isset($_POST['tipo'])){
    $return['error'] = 'Error! No se recibieron los datos.';
} else {
    switch ($_POST['tipo']) {        
        case 1: //Select All
            $error = '';
            $habilidades = array();
            $stmt = $pdo->prepare('SELECT * FROM alu_fs_habilidad(:Usuario_id, null)');
            $stmt->bindParam(':Usuario_id', $_SESSION['usuario_id']);
            if(!$stmt->execute()){
                $error = 'No fue posible obtener las habilidades';
                print_r($stmt->errorInfo());

            } else
                $habilidades = $stmt->fetchAll();
            $stmt->closeCursor();
            $stmt = null;
            if(count($habilidades) > 0 && empty($error)){
                $return['html'] = generaHabilidades($habilidades);
            } else {
                if (!empty($error))
                    $return['error'] = $error;
                else{
                    $return['html'] = '<div class="msgBox d-flex flex-row justify-content-center align-items-center mt-5">
                        <img src="img/triangulos.svg" class="imgBoxIzq" />
                        <img src="img/triangulos.svg" class="imgBoxDer" />
                        <hr class="hrArriba">
                        <hr class="hrAbajo">
                        <div class="d-flex flex-column justify-content-center align-items-center display-5 text-center p-4">
                            <div>Aún no tienes<span class="text-azul1 mx-1">ninguna</span>habilidad capturada</div>
                        </div>
                    </div>';
                }
            }
            break;
        case 2: //Add
            $_POST['habilidad'] = filter_var($_POST['habilidad'], FILTER_SANITIZE_STRING);
            $_POST['nivel'] = filter_var($_POST['nivel'], FILTER_SANITIZE_NUMBER_INT);
            $stmt = $pdo->prepare('SELECT * FROM alu_fi_habilidad(:Usuario_id, :Habilidad_nombre, :Habilidad_nivel)');
            $stmt->bindParam(':Habilidad_nombre', $_POST['habilidad']);
            $stmt->bindParam(':Habilidad_nivel', $_POST['nivel']);
            $stmt->bindParam(':Usuario_id', $_SESSION['usuario_id']);
            if(!$stmt->execute()){
                print_r($stmt->errorInfo());
                $return['error'] = 'No fue posible agregar la habilidad <span class="text-azul1">' . $_POST['habilidad'] . '</span>';
            }
            else
                $return['ok'] = 'Se agregó correctamente la habilidad <span class="text-azul1">' . $_POST['habilidad'] . '</span>';
            $stmt->closeCursor();
            $stmt = null;
            break;
        case 3: //Update
            $_POST['habilidad'] = filter_var($_POST['habilidad'], FILTER_SANITIZE_STRING);
            $_POST['nivel'] = filter_var($_POST['nivel'], FILTER_SANITIZE_NUMBER_INT);
            $stmt = $pdo->prepare('SELECT * FROM alu_fu_habilidad(:Usuario_id, :Habilidad_id, :Habilidad_nombre, :Habilidad_nivel)');
            $stmt->bindParam(':Habilidad_nombre', $_POST['habilidad']);
            $stmt->bindParam(':Habilidad_nivel', $_POST['nivel']);
            $stmt->bindParam(':Habilidad_id', $_POST['id']);
            $stmt->bindParam(':Usuario_id', $_SESSION['usuario_id']);
            if(!$stmt->execute()){
                print_r($stmt->errorInfo());
                $return['error'] = 'No fue posible editar la habilidad <span class="text-azul1">' . $_POST['habilidad'] . '</span>';
            }
            else
                $return['ok'] = 'Se editó correctamente la habilidad <span class="text-azul1">' . $_POST['habilidad'] . '</span>';
            $stmt->closeCursor();
            $stmt = null;
            break;
        case 4: //Delete
            $stmt = $pdo->prepare('SELECT * FROM alu_fd_habilidad(:Habilidad_id, :Usuario_id)');
            $stmt->bindParam(':Habilidad_id', $_POST['id']);
            $stmt->bindParam(':Usuario_id', $_SESSION['usuario_id']);
            if(!$stmt->execute()){
                print_r($stmt->errorInfo());
                $return['error'] = 'No fue posible eliminar la habilidad';
            }
            else
                $return['ok'] = 'Se eliminó de manera exitosa la habilidad';
            $stmt->closeCursor();
            $stmt = null;
            break;
        case 5: //Select One
            $habilidad = array();
            $stmt = $pdo->prepare('SELECT * FROM alu_fs_habilidad(:Usuario_id, :Habilidad_id)');
            $stmt->bindParam(':Usuario_id', $_SESSION['usuario_id']);
            $stmt->bindParam(':Habilidad_id', $_POST['id']);
            if(!$stmt->execute()){
                $return['error'] = 'No fue posible obtener los datos de la habilidad';
                print_r($stmt->errorInfo());

            } else {
                $habilidad = $stmt->fetch();
                $return['habilidad'] = $habilidad['HabilidadTecnica_nombre'];
                $return['nivel'] = $habilidad['HabilidadTecnica_nivel'];
            }
            $stmt->closeCursor();
            $stmt = null;
            break;
    }
}
$return['json'] = json_encode($return);
echo json_encode($return);

function generaHabilidades($habilidades){
    $html = '';
    $texto = '';
    $tipo = '';
    foreach ($habilidades as $habilidad){
        switch ($habilidad['HabilidadTecnica_nivel']){
            case 1: $texto = 'Básico'; $tipo = 'empty'; break;
            case 2: $texto= 'Intermedio'; $tipo = 'half'; break;
            case 3: $texto= 'Avanzado'; $tipo = 'full'; break;
            default: $texto = ''; $tipo = ''; break;
        }
        $html .= '<div class="tarjeta p-3 d-flex flex-column justify-content-start align-items-center">
                                <div class="align-self-end">
                                    <span class="ing-editar iconAcciones text-azul2" data-id="' . $habilidad['HabilidadTecnica_id'] . '"></span>
                                    <span class="ing-basura iconAcciones text-danger" data-id="' . $habilidad['HabilidadTecnica_id'] . '"></span>
                                </div>
                                <i class="display-3 ing-insignia3 ' . $tipo . ' mb-2"></i>
                                <label>' . $texto . '</label>
                                <div class="display-6 text-center text-primary flex-grow-1 d-flex flex-row justify-content-center align-items-center">' . $habilidad['HabilidadTecnica_nombre'] . '</div>
                            </div>';
    }
    return $html;
}