<?php
/**
 * API: Obtener Stock de Producto
 * Retorna el stock disponible de un producto en una sucursal específica
 */

header('Access-Control-Allow-Origin: *');
header('Content-Type: application/json; charset=utf-8');

require_once __DIR__ . '/../config/database.php';
require_once __DIR__ . '/../config/branch.php';

try {
    $pdo = getDBConnection();
    
    $producto_id = isset($_GET['producto_id']) ? intval($_GET['producto_id']) : 0;
    $sucursal_id = getCurrentBranchId();
    
    if ($producto_id <= 0 || $sucursal_id <= 0) {
        sendJSON(['success' => false, 'error' => 'Parámetros inválidos'], 400);
    }
    
    $sql = "SELECT 
                pres.nombre as presentacion,
                inv.stock_total as stock_unidades,
                COALESCE(l.fechavencimiento, '2029-12-31') as fechavencimiento,
                COALESCE(l.codigo_lote, 'S/L') as codigo_lote
            FROM inventario_sucursal inv
            JOIN producto_presentaciones pp ON pp.producto_id = inv.producto_id AND pp.activo = 1
            JOIN presentaciones pres ON pres.id = pp.presentacion_id
            LEFT JOIN (
                SELECT producto_id, MIN(fechavencimiento) as fechavencimiento, MAX(codigo_lote) as codigo_lote 
                FROM lote 
                WHERE fechavencimiento >= CURDATE() OR fechavencimiento IS NULL
                GROUP BY producto_id
            ) l ON l.producto_id = inv.producto_id
            WHERE inv.producto_id = :producto_id 
              AND inv.sucursal_id = :sucursal_id
              AND inv.stock_total > 0
            GROUP BY pres.nombre";
    
    $stmt = $pdo->prepare($sql);
    $stmt->execute([
        ':producto_id' => $producto_id,
        ':sucursal_id' => $sucursal_id
    ]);
    
    $stock = $stmt->fetchAll();
    
    sendJSON([
        'success' => true,
        'data' => $stock
    ]);
    
} catch (PDOException $e) {
    error_log("Error al obtener stock: " . $e->getMessage());
    sendJSON(['success' => false, 'error' => 'Error al obtener stock'], 500);
}
