<?php
session_start();
include_once '../config/database.php';

// Configurar zona horaria de Lima
date_default_timezone_set('America/Lima');

// Verificar sesión
if (!isset($_SESSION['user'])) {
    echo json_encode(['success' => false, 'message' => 'No autorizado']);
    exit;
}

// Verificar que se recibieron los datos
if (!isset($_POST['ids']) || !isset($_POST['estado'])) {
    echo json_encode(['success' => false, 'message' => 'Datos incompletos']);
    exit;
}

try {
    $database = new Database();
    $conn = $database->getConnection();
    
    // Decodificar IDs
    $ids = json_decode($_POST['ids'], true);
    $estado = trim($_POST['estado']);
    
    if (empty($ids) || !is_array($ids)) {
        echo json_encode(['success' => false, 'message' => 'No se proporcionaron IDs válidos']);
        exit;
    }
    
    if (empty($estado)) {
        echo json_encode(['success' => false, 'message' => 'Estado no puede estar vacío']);
        exit;
    }
    
    // Validar estados permitidos
    $estadosPermitidos = ['ACTIVO', 'BAJA'];
    if (!in_array($estado, $estadosPermitidos)) {
        echo json_encode(['success' => false, 'message' => 'Estado no válido']);
        exit;
    }
    
    // Obtener la empresa del usuario logueado para seguridad
    $codempresaUsuario = null;
    $stmt_empresa = $conn->prepare("SELECT codempresa FROM templeado WHERE codempleado = ?");
    $stmt_empresa->execute([$_SESSION['user']['codempleado']]);
    $resultado_empresa = $stmt_empresa->fetch(PDO::FETCH_ASSOC);
    if ($resultado_empresa) {
        $codempresaUsuario = $resultado_empresa['codempresa'];
    }
    
    // Obtener la fecha actual de Lima en formato Y-m-d
    $fecha_edicion = date('Y-m-d');
    
    // Preparar la consulta de actualización
    $placeholders = implode(',', array_fill(0, count($ids), '?'));
    $query = "UPDATE timportequipos 
              SET estado = ?, 
                  fecha_edicion = ? 
              WHERE id IN ($placeholders)";
    
    // Agregar filtro de empresa si existe
    if ($codempresaUsuario) {
        $query .= " AND codempresa = ?";
    }
    
    $stmt = $conn->prepare($query);
    
    // Bind parameters: estado, fecha_edicion, luego los IDs, y finalmente codempresa si existe
    $params = array_merge([$estado, $fecha_edicion], $ids);
    if ($codempresaUsuario) {
        $params[] = $codempresaUsuario;
    }
    
    $stmt->execute($params);
    $updated_count = $stmt->rowCount();
    
    echo json_encode([
        'success' => true, 
        'message' => 'Estados actualizados correctamente',
        'updated_count' => $updated_count,
        'fecha_edicion' => $fecha_edicion
    ]);
    
} catch(PDOException $e) {
    echo json_encode([
        'success' => false, 
        'message' => 'Error al actualizar estados: ' . $e->getMessage()
    ]);
}
?>

