<?php
require_once __DIR__ . '/../app.php';
!class_exists("Permiso") && require_once __DIR__ . '/../Models/permisoModel.php';

header("Content-Type: application/json; charset=utf-8");

$respuesta = (object)[];

App::verificarSesion();

$idUsuarioActual = App::obtenerIdUsuario();

if ($_SERVER['REQUEST_METHOD'] == 'GET') {
    $accion = isset($_GET['accion']) ? $_GET['accion'] : null;

    switch ($accion) {
        case 'obtenerPorContenedor':
            $tipoContenedor = isset($_GET['tipoContenedor']) ? urldecode($_GET['tipoContenedor']) : null;
            $idContenedor = isset($_GET['idContenedor']) ? urldecode($_GET['idContenedor']) : null;

            $respuesta = Permiso::obtenerPorContenedor($tipoContenedor, $idContenedor);
            break;
        default:
            $respuesta->status = 400;
            $respuesta->message = "Acción no válida";
            break;
    }
}

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    $input = json_decode(file_get_contents('php://input'), true);
    !empty($_POST) && $input = $_POST;
    $accion = isset($input['accion']) ? $input['accion'] : null;

    switch ($accion) {
        case 'guardar':
            $permiso = new Permiso();
            $permiso->id = $input['id'];
            $permiso->tipoContenedor = $input['tipoContenedor'];
            $permiso->contenedor = $input['contenedor'];
            $permiso->idTipoAsignacion = $input['idTipoAsignacion'];
            $permiso->idAsignacion = $input['idAsignacion'];
            $permiso->idTipoPermiso = $input['idTipoPermiso'];

            $respuesta = $permiso->guardar($idUsuarioActual);
            break;
        case 'eliminar':
            $permiso = new Permiso();
            $permiso->id = isset($input['id']) ? $input['id'] : 0;

            $respuesta = $permiso->eliminar($idUsuarioActual);
            break;
        default:
            $respuesta->status = 400;
            $respuesta->message = 'Acción no válida';
            break;
    }
}

$httpCode = isset($respuesta->status) ? $respuesta->status : 500;
http_response_code($httpCode);
echo json_encode($respuesta);
