<?php
/**
 * API - Actualizar usuario administrador
 * Fecha: 3 de febrero de 2026
 */

require_once '../config/config.php';

// Verificar autenticación
requireAuthentication();

header('Content-Type: application/json; charset=utf-8');
header('Cache-Control: no-cache, no-store, must-revalidate');

try {
    $db = Database::getInstance();
    
    // Leer datos del request
    $input = json_decode(file_get_contents('php://input'), true);
    $userId = $input['user_id'] ?? null;
    $username = trim($input['username'] ?? '');
    $fullName = trim($input['full_name'] ?? '');
    $email = trim($input['email'] ?? '');
    
    if (!$userId) {
        throw new Exception('ID de usuario requerido');
    }
    
    if (empty($username)) {
        throw new Exception('El nombre de usuario es requerido');
    }
    
    // Verificar si el username ya existe (excepto para el usuario actual)
    $existing = $db->fetch(
        "SELECT id FROM admin_users WHERE username = ? AND id != ?",
        [$username, $userId]
    );
    
    if ($existing) {
        throw new Exception('El nombre de usuario ya está en uso');
    }
    
    // Actualizar usuario
    $db->execute(
        "UPDATE admin_users SET username = ?, full_name = ?, email = ? WHERE id = ?",
        [$username, $fullName, $email, $userId]
    );
    
    echo json_encode([
        'success' => true,
        'message' => 'Usuario actualizado correctamente'
    ]);
    
} catch (Exception $e) {
    error_log('Error updating admin user: ' . $e->getMessage());
    http_response_code(500);
    echo json_encode([
        'success' => false,
        'error' => $e->getMessage()
    ]);
}
