<?php
require_once __DIR__ . '/../../../code/app.php';
!class_exists("CodigoObservacionPlanillaUnica") && require_once __DIR__ . '/../Models/codigoObservacionPlanillaUnicaModel.php';

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

$respuesta = (object)[];

$permisos = App::verificarAcceso();

$idUsuarioActual = App::obtenerIdUsuario();

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

    switch ($accion) {
        case 'obtenerTodos':
            $respuesta = CodigoObservacionPlanillaUnica::obtenerTodos();
            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":
            $id = intval($input["id"]);
            $codigo = $input["codigo"];
            $concepto = $input["concepto"];
            $aplicaPersonaNatural = $input["aplicaPersonaNatural"] == true ? 1 : 0;
            $aplicaPersonaJuridica = $input["aplicaPersonaJuridica"] == true ? 1 : 0;
            $validaciones = $input["validaciones"];

            $codigoObservacion = new CodigoObservacionPlanillaUnica();
            $codigoObservacion->id = $id;
            $codigoObservacion->codigo = $codigo;
            $codigoObservacion->concepto = $concepto;
            $codigoObservacion->aplicaPersonaNatural = $aplicaPersonaNatural;
            $codigoObservacion->aplicaPersonaJuridica = $aplicaPersonaJuridica;
            $codigoObservacion->validaciones = $validaciones;

            $respuesta = $codigoObservacion->guardar($idUsuarioActual);
            break;
        case "eliminar":
            $codigo = new CodigoObservacionPlanillaUnica();
            $codigo->id = $input["id"];

            $respuesta = $codigo->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);
