<?php
require_once __DIR__ . '/../config/database.php';
require_once __DIR__ . '/../includes/helpers.php';

$pdo = getConnection();

try {
    $filtro = $_GET['filtro'] ?? 'todos';

    $where = "p.estado=1";
    $params = [];

    if ($filtro === 'controlado') {
        $where .= " AND (p.receta_controlada = 1 OR p.receta_requerida = 1 OR p.requiere_receta = 1)";
    } elseif ($filtro === 'no_controlado') {
        $where .= " AND p.receta_controlada = 0 AND p.receta_requerida = 0 AND p.requiere_receta = 0";
    }

    $sql = "SELECT p.id, p.NombreComercial as producto, p.CodigoInterno as codigo, p.laboratorio,
                   p.receta_controlada, p.receta_requerida, p.requiere_receta,
                   (SELECT COUNT(*) FROM ventas_recetas vr WHERE vr.producto_id = p.id) as dispensaciones
            FROM productos p
            WHERE $where
            ORDER BY p.NombreComercial";
    $st = $pdo->prepare($sql);
    $st->execute($params);
    $productos = $st->fetchAll(PDO::FETCH_ASSOC);

    $total = count($productos);
    $st2 = $pdo->query("SELECT COUNT(*) FROM ventas_recetas");
    $total_dispensaciones = (int)$st2->fetchColumn();

    json_success([
        'productos' => $productos,
        'total' => $total,
        'total_dispensaciones' => $total_dispensaciones
    ]);
} catch (Exception $e) {
    json_error("Error: " . $e->getMessage());
}
