<?php
// admin/actualizar_carta.php
require '../db.php';

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $id = intval($_POST['id_editar']);
    $fecha = $_POST['fecha_editar'];
    $descripcion = $_POST['descripcion_editar'];
    $tipo = $_POST['tipo_carta_editar']; // 'enviada' o 'recibida'
    
    // Identificar si editamos remitente o destinatario
    $id_empresa = intval($_POST['empresa_editar']);
    $columna_empresa = ($tipo === 'enviada') ? 'id_destinatario' : 'id_remitente';
    $columna_espejo = ($tipo === 'enviada') ? 'id_remitente' : 'id_destinatario';

    // 1. Validar si el usuario subió un NUEVO archivo PDF
    if (isset($_FILES['pdf_editar']) && $_FILES['pdf_editar']['error'] === UPLOAD_ERR_OK) {
    
        // Borramos el PDF viejo de la carpeta para no acumular basura
        $busqueda = $conn->query("SELECT archivo FROM cartas WHERE id = $id");
        if ($reg = $busqueda->fetch_assoc()) {
            $archivo_viejo = "../uploads/cartas/" . $reg['archivo'];
            if (file_exists($archivo_viejo) && !empty($reg['archivo'])) {
                unlink($archivo_viejo); 
            }
        }
    
        // 🔥 NUEVA LÓGICA: Capturamos el nombre original del nuevo archivo
        $nombre_original_edit = $_FILES['pdf_editar']['name'];
        
        // Reemplazamos espacios por guiones bajos para evitar errores de URL
        $nuevo_nombre_archivo = str_replace(' ', '_', $nombre_original_edit);
        
        $ruta_destino = "../uploads/cartas/" . $nuevo_nombre_archivo;
        move_uploaded_file($_FILES['pdf_editar']['tmp_name'], $ruta_destino);
    
        // Consulta SQL actualizando datos con el nuevo nombre real
        $stmt = $conn->prepare("UPDATE cartas SET $columna_empresa = ?, $columna_espejo = NULL, fecha_recepcion = ?, descripcion = ?, archivo = ? WHERE id = ?");
        $stmt->bind_param("isssi", $id_empresa, $fecha, $descripcion, $nuevo_nombre_archivo, $id);
    } else {
        // 2. Si NO subió PDF, solo actualizamos los textos y mantenemos el archivo actual
        $stmt = $conn->prepare("UPDATE cartas SET $columna_empresa = ?, $columna_espejo = NULL, fecha_recepcion = ?, descripcion = ? WHERE id = ?");
        $stmt->bind_param("isssi", $id_empresa, $fecha, $descripcion, $id);
    }

    if ($stmt->execute()) {
        header("Location: panel.php?msg=editado");
    } else {
        echo "Error al actualizar la carta: " . $conn->error;
    }
    $stmt->close();
}
?>