<?php
/**
 * API: Historial de importaciones FEL
 * GET: lista importaciones recientes
 * GET ?id=X: detalle de una importación específica
 */
header('Content-Type: application/json; charset=utf-8');
header('Access-Control-Allow-Origin: *');

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

try {
    $pdo = getConnection();

    // Detalle de una importación específica
    if (isset($_GET['id'])) {
        $id = intval($_GET['id']);

        $stmt = $pdo->prepare("SELECT * FROM fel_importaciones WHERE id = :id");
        $stmt->execute([':id' => $id]);
        $importacion = $stmt->fetch();

        if (!$importacion) {
            http_response_code(404);
            echo json_encode(['success' => false, 'error' => 'Importación no encontrada']);
            exit;
        }

        $stmtDet = $pdo->prepare("
            SELECT d.*, lc.nombre as lugar_nombre, 
                   m.producto_id, p.CodigoInterno, p.NombreComercial as maestro_nombre,
                   COALESCE(pp_blister.factor_conversion, 1) as FactorBlister,
                   COALESCE(pp_caja.factor_conversion, 1) as FactorCaja, 
                   COALESCE(pp_unidad.precio_venta, 0) as PrecioVentaUnidad,
                   COALESCE(pp_blister.precio_venta, 0) as PrecioVentaBlister,
                   COALESCE(pp_caja.precio_venta, 0) as PrecioVentaMayor,
                   0 as PrecioVentaMixto
            FROM fel_importacion_detalle d
            LEFT JOIN lugarcompra lc ON d.lugar_compra_id = lc.id
            LEFT JOIN fel_producto_mapping m ON d.descripcion = m.descripcion_factura
            LEFT JOIN productos p ON m.producto_id = p.id
            LEFT JOIN producto_presentaciones pp_unidad ON p.id = pp_unidad.producto_id AND pp_unidad.presentacion_id = 1 AND pp_unidad.activo = 1
            LEFT JOIN producto_presentaciones pp_blister ON p.id = pp_blister.producto_id AND pp_blister.presentacion_id = 2 AND pp_blister.activo = 1
            LEFT JOIN producto_presentaciones pp_caja ON p.id = pp_caja.producto_id AND pp_caja.presentacion_id = 3 AND pp_caja.activo = 1
            WHERE d.importacion_id = :id
            ORDER BY d.proveedor_nombre ASC, d.fecha_factura ASC
        ");
        $stmtDet->execute([':id' => $id]);
        $importacion['productos'] = $stmtDet->fetchAll();

        echo json_encode(['success' => true, 'data' => $importacion]);
        exit;
    }

    // Lista de importaciones recientes
    $limit = min(intval($_GET['limit'] ?? 20), 100);

    $stmt = $pdo->prepare("
        SELECT id, fecha_importacion, total_facturas, total_productos,
               total_bonificaciones, total_invertido, observaciones
        FROM fel_importaciones
        ORDER BY fecha_importacion DESC
        LIMIT :limit
    ");
    $stmt->bindValue(':limit', $limit, PDO::PARAM_INT);
    $stmt->execute();
    $importaciones = $stmt->fetchAll();

    echo json_encode(['success' => true, 'data' => $importaciones]);

} catch (Exception $e) {
    http_response_code(500);
    echo json_encode(['success' => false, 'error' => $e->getMessage()]);
}
