<?php
require 'db1.php'; // Incluye el archivo de conexión a la base de datos


date_default_timezone_set('America/Guayaquil');
header("Cache-Control: no-cache, no-store, must-revalidate");
header("Pragma: no-cache");
header("Expires: 0");

// Endpoint para obtener datos de la tabla usuario
if ($_SERVER['REQUEST_METHOD'] === 'GET') {
    if (isset($_GET['rol_id'])) {
        $rolId = $_GET['rol_id'];

        $query = "SELECT * FROM rol WHERE rol_id = ?";
        $stmt = $conn->prepare($query);
        $stmt->execute([$rolId]);

        $data = $stmt->fetch(PDO::FETCH_ASSOC);

        if ($data) {
            echo json_encode($data);
        } else {
            echo json_encode(array("message" => "No se encontró ningún Rol"));
        }
    } else {
        $query = "SELECT * FROM rol";
        $stmt = $conn->prepare($query);
        $stmt->execute();

        $data = $stmt->fetchAll(PDO::FETCH_ASSOC);

        echo json_encode($data);
    }
}


// Endpoint para insertar datos en la tabla usuario
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    try {
        $data = json_decode(file_get_contents('php://input'), true);

        $rol_nombre = $data['rol_nombre'];
        $rol_fecha_creacion = date('Y-m-d H:i:s');
        $rol_fecha_modificacion = date('Y-m-d H:i:s');
        $rol_estado = 1;

        $query = "INSERT INTO rol (
            rol_nombre,
            rol_fecha_creacion,
            rol_fecha_modificacion,
            rol_estado
        ) VALUES (?, ?, ?, ?)";

        $stmt = $conn->prepare($query);
        $stmt->execute([
            $rol_nombre,
            $rol_fecha_creacion,
            $rol_fecha_modificacion,
            $rol_estado
        ]);

        $insertedId = $conn->lastInsertId();
        echo json_encode(array("message" => "Registro insertado con ID: $insertedId", "insertedId" => $insertedId));
    } catch (PDOException $e) {
        if ($e->getCode() == 23000) {
            echo json_encode(array("message" => "Error: Se intentó ingresar un rol ya existente"));
        } else {
            echo json_encode(array("message" => "Error: " . $e->getMessage()));
        }
    }
}


// Endpoint para actualizar datos en la tabla persona
if ($_SERVER['REQUEST_METHOD'] === 'PUT') {
    $data = json_decode(file_get_contents('php://input'), true);

    $rol_id = $data['rol_id']; // ID del rol a actualizar

    $rol_nombre = $data['rol_nombre'];
    $rol_fecha_modificacion = date('Y-m-d H:i:s');
    $rol_estado = $data['rol_estado'];

    $query = "UPDATE rol SET
        rol_nombre = ?,
        rol_fecha_modificacion = ?,
        rol_estado = ?
    WHERE rol_id = ?";

    $stmt = $conn->prepare($query);
    $stmt->execute([
        $rol_nombre,
        $rol_fecha_modificacion,
        $rol_estado,
        $rol_id
    ]);

    if ($stmt) {
        echo json_encode(array("message" => "Actualización exitosa para el ID: $rol_id"));
    } else {
        echo json_encode(array("message" => "Error en la actualización"));
    }
}


// Endpoint para eliminar un registro de la tabla persona
if ($_SERVER['REQUEST_METHOD'] === 'DELETE') {
    $data = json_decode(file_get_contents('php://input'), true);

    $rol_id = $data['rol_id']; // ID del rol a eliminar

    $query = "DELETE FROM rol WHERE rol_id = ?";

    $stmt = $conn->prepare($query);
    if ($stmt->execute([$rol_id])) {
        echo json_encode(array("message" => "Eliminación exitosa para el ID: $rol_id"));
    } else {
        echo json_encode(array("message" => "Error en la eliminación"));
    }
}

$conn = null;
?>