<?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 = '';
            $idiomas = array();
            $stmt = $pdo->prepare('SELECT * FROM alu_fs_idioma(:Usuario_id, null)');
            $stmt->bindParam(':Usuario_id', $_SESSION['usuario_id']);
            if(!$stmt->execute()){
                $error = 'No fue posible obtener los idiomas';
                print_r($stmt->errorInfo());

            } else
                $idiomas = $stmt->fetchAll();
            $stmt->closeCursor();
            $stmt = null;
            if(count($idiomas) > 0 && empty($error)){
                $return['html'] = generaIdiomas($idiomas);
            } 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">ningún</span>idioma capturado</div>
                        </div>
                    </div>';
                }
            }
            break;
        case 2: //Add
            $_POST['idioma'] = filter_var($_POST['idioma'], FILTER_SANITIZE_STRING);
            $_POST['nivel'] = filter_var($_POST['nivel'], FILTER_SANITIZE_NUMBER_INT);
            $stmt = $pdo->prepare('SELECT * FROM alu_fi_idioma(:Usuario_id, :Idioma_nombre, :Idioma_nivel)');
            $stmt->bindParam(':Idioma_nombre', $_POST['idioma']);
            $stmt->bindParam(':Idioma_nivel', $_POST['nivel']);
            $stmt->bindParam(':Usuario_id', $_SESSION['usuario_id']);
            if(!$stmt->execute()){
                print_r($stmt->errorInfo());
                $return['error'] = 'No fue posible agregar el idioma <span class="text-azul1">' . $_POST['idioma'] . '</span>';
            }
            else
                $return['ok'] = 'Se agregó correctamente el idioma <span class="text-azul1">' . $_POST['idioma'] . '</span>';
            $stmt->closeCursor();
            $stmt = null;
            break;
        case 3: //Update
            $_POST['idioma'] = filter_var($_POST['idioma'], FILTER_SANITIZE_STRING);
            $_POST['nivel'] = filter_var($_POST['nivel'], FILTER_SANITIZE_NUMBER_INT);
            $stmt = $pdo->prepare('SELECT * FROM alu_fu_idioma(:Usuario_id, :Idioma_id, :Idioma_nombre, :Idioma_nivel)');
            $stmt->bindParam(':Idioma_nombre', $_POST['idioma']);
            $stmt->bindParam(':Idioma_nivel', $_POST['nivel']);
            $stmt->bindParam(':Idioma_id', $_POST['id']);
            $stmt->bindParam(':Usuario_id', $_SESSION['usuario_id']);
            if(!$stmt->execute()){
                print_r($stmt->errorInfo());
                $return['error'] = 'No fue posible editar el idioma <span class="text-azul1">' . $_POST['idioma'] . '</span>';
            }
            else
                $return['ok'] = 'Se editó correctamente el idioma <span class="text-azul1">' . $_POST['idioma'] . '</span>';
            $stmt->closeCursor();
            $stmt = null;
            break;
        case 4: //Delete
            $stmt = $pdo->prepare('SELECT * FROM alu_fd_idioma(:Idioma_id, :Usuario_id)');
            $stmt->bindParam(':Idioma_id', $_POST['id']);
            $stmt->bindParam(':Usuario_id', $_SESSION['usuario_id']);
            if(!$stmt->execute()){
                print_r($stmt->errorInfo());
                $return['error'] = 'No fue posible eliminar el idioma';
            }
            else
                $return['ok'] = 'Se eliminó de manera exitosa el idioma';
            $stmt->closeCursor();
            $stmt = null;
            break;
        case 5: //Select One
            $idioma = array();
            $stmt = $pdo->prepare('SELECT * FROM alu_fs_idioma(:Usuario_id, :Idioma_id)');
            $stmt->bindParam(':Usuario_id', $_SESSION['usuario_id']);
            $stmt->bindParam(':Idioma_id', $_POST['id']);
            if(!$stmt->execute()){
                $return['error'] = 'No fue posible obtener los datos del idioma ';
                print_r($stmt->errorInfo());

            } else {
                $idioma = $stmt->fetch();
                $return['idioma'] = $idioma['Idioma_nombre'];
                $return['nivel'] = $idioma['Idioma_nivel'];
            }
            $stmt->closeCursor();
            $stmt = null;
            break;
    }
}
$return['json'] = json_encode($return);
echo json_encode($return);

function generaIdiomas($idiomas){
    $html = '';
    $texto = '';
    $tipo = '';
    foreach ($idiomas as $idioma){
        switch ($idioma['Idioma_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="' . $idioma['Idioma_id'] . '"></span>
                                    <span class="ing-basura iconAcciones text-danger" data-id="' . $idioma['Idioma_id'] . '"></span>
                                </div>
                                <i class="display-3 ing-estrella1 ' . $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">' . $idioma['Idioma_nombre'] . '</div>
                            </div>';
    }
    return $html;
}