<?php

class ControladorPermiso {

    static public function ctrMostrarPermiso( $item, $valor){

        $tabla = "rol_permiso";
        $respuesta = ModeloPermiso::mdlMostrarPermiso($tabla,$item, $valor);
        return $respuesta;
    }

    static public function ctrAccionesPorModulo($moduloId){
        return ModeloPermiso::mdlAccionesPorModulo($moduloId);
    }


    static public function ctrGuardarPermisos(){

        if (isset($_POST['acciones_modulo'])) {
                $accionesModulo = $_POST['acciones_modulo'];

                foreach ($accionesModulo as $moduloId => $accionesSeleccionadas) {

                    // 1) Obtener todas las acciones definidas en la tabla acciones
                    $todasAcciones = ModeloPermiso::mdlObtenerTodasAcciones();

                    foreach ($todasAcciones as $accion) {
                        $accionId = $accion['id'];

                        if (in_array($accionId, $accionesSeleccionadas)) {
                            // Si existe el permiso → activar
                            // Si no existe → insertar nuevo
                            ModeloPermiso::mdlUpsertPermiso($moduloId, $accionId, 1);
                        } else {
                            // Si existe → desactivar
                            ModeloPermiso::mdlUpsertPermiso($moduloId, $accionId, 0);
                        }
                    }
                }

                echo '<script>
                    swal({
                        type: "success",
                        title: "Módulos y Acciones actualizados correctamente",
                        showConfirmButton: true,
                        confirmButtonText: "Cerrar"
                    }).then(function(result){
                        if(result.value){ window.location = "permisos"; }
                    });
                </script>';
            }

    
    }

    static public function ctrGuardarPermisosPorRol(){
        if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['id_rol'])) {
            $idRol = (int)$_POST['id_rol'];
            $permisosSeleccionados = $_POST['permisos'] ?? [];

            $resultado = ModeloPermiso::mdlGuardarPermisosPorRol($idRol, $permisosSeleccionados);

            if ($resultado === "ok") {
                echo json_encode([
                    "status" => "ok",
                    "message" => "Permisos guardados correctamente"
                ]);
            } else {
                echo json_encode([
                    "status" => "error",
                    "message" => $resultado
                ]);
            }
            exit; // 🔑 evita que se imprima nada más
        }
    }



    }




