<?php
session_start();
header('Content-Type: application/json; charset=UTF-8');

require_once __DIR__ . '/../config/database.php';

function json_response($data, $code = 200) {
    http_response_code($code);
    echo json_encode($data, JSON_UNESCAPED_UNICODE);
    exit;
}

try {
    if (!isset($_SESSION['user']['codempleado'])) {
        json_response(['success' => false, 'message' => 'No autorizado'], 401);
    }

    $database = new Database();
    $conn = $database->getConnection();

    // Obtener empresa del usuario
    $stmtEmpresa = $conn->prepare("SELECT codempresa FROM templeado WHERE codempleado = ?");
    $stmtEmpresa->execute([$_SESSION['user']['codempleado']]);
    $empresa = $stmtEmpresa->fetch(PDO::FETCH_ASSOC);
    if (!$empresa || !$empresa['codempresa']) {
        json_response(['success' => false, 'message' => 'No se encontró empresa del usuario'], 403);
    }
    $codempresaUsuario = $empresa['codempresa'];

    // Verificar si existe el campo codempresa en tmensaje
    try {
        $stmt = $conn->query("SHOW COLUMNS FROM tmensaje LIKE 'codempresa'");
        $columnExists = $stmt->rowCount() > 0;
        
        if (!$columnExists) {
            // Agregar el campo codempresa a la tabla tmensaje
            try {
                $conn->exec("ALTER TABLE tmensaje ADD COLUMN codempresa INT(11) DEFAULT NULL AFTER mensaje");
                $conn->exec("ALTER TABLE tmensaje ADD INDEX idx_codempresa (codempresa)");
            } catch(PDOException $e) {
                // Si hay error, probablemente el campo ya existe
            }
        }
    } catch(PDOException $e) {
        // Continuar sin interrumpir
    }

    // Obtener mensajes de la empresa
    $query = "SELECT codmensaje, mensaje 
              FROM tmensaje 
              WHERE codempresa = ? 
              ORDER BY mensaje ASC";
    
    $stmt = $conn->prepare($query);
    $stmt->execute([$codempresaUsuario]);
    $mensajes = $stmt->fetchAll(PDO::FETCH_ASSOC);

    json_response([
        'success' => true,
        'mensajes' => $mensajes
    ]);

} catch (Throwable $e) {
    json_response(['success' => false, 'message' => 'Error del servidor: ' . $e->getMessage()], 500);
}
?>

