<?php
header('Content-Type: application/json; charset=utf-8');
require_once __DIR__ . '/../config/db.php';

try {
    $pdo = getConnection();
    
    // 1. Asegurar que la presentación id = 9 (MIXTO) exista en la tabla presentaciones
    $checkMixto = $pdo->prepare("SELECT id FROM presentaciones WHERE nombre = 'MIXTO' LIMIT 1");
    $checkMixto->execute();
    $mixto = $checkMixto->fetch();
    
    if (!$mixto) {
        try {
            $pdo->exec("INSERT INTO presentaciones (id, nombre, descripcion) VALUES (9, 'MIXTO', 'Venta en precio mixto')");
        } catch (Exception $e) {
            $pdo->exec("INSERT INTO presentaciones (nombre, descripcion) VALUES ('MIXTO', 'Venta en precio mixto')");
        }
    }

    // 1.1 Asegurar que la presentación id = 10 (OCTAVO) exista en la tabla presentaciones
    $checkOctavo = $pdo->prepare("SELECT id FROM presentaciones WHERE nombre = 'OCTAVO' LIMIT 1");
    $checkOctavo->execute();
    $octavo = $checkOctavo->fetch();
    
    if (!$octavo) {
        try {
            $pdo->exec("INSERT INTO presentaciones (id, nombre, descripcion) VALUES (10, 'OCTAVO', 'Venta por octavo de galón')");
        } catch (Exception $e) {
            $pdo->exec("INSERT INTO presentaciones (nombre, descripcion) VALUES ('OCTAVO', 'Venta por octavo de galón')");
        }
    }

    // Categorías
    $stmtCats = $pdo->query("SELECT id, nombre FROM categorias ORDER BY nombre ASC");
    $categorias = $stmtCats->fetchAll();

    // Lugares de Compra
    $stmtLugares = $pdo->query("SELECT id, nombre FROM lugarcompra ORDER BY nombre ASC");
    $lugares = $stmtLugares->fetchAll();

    // Presentaciones
    $stmtPres = $pdo->query("SELECT id, nombre, descripcion FROM presentaciones ORDER BY id ASC");
    $presentaciones = $stmtPres->fetchAll();

    // Margen de ganancia por defecto
    $stmtMargin = $pdo->query("SELECT margen_ganancia_defecto FROM sucursal_configuracion LIMIT 1");
    $marginRow = $stmtMargin->fetch();
    $defaultMargin = $marginRow ? (float)$marginRow['margen_ganancia_defecto'] : 30.00;

    // Márgenes específicos de laboratorios
    $stmtLabMargins = $pdo->query("SELECT id, laboratorio, margen_ganancia_porcentaje FROM laboratorio_margenes ORDER BY laboratorio ASC");
    $labMargins = $stmtLabMargins->fetchAll();

    echo json_encode([
        'success' => true,
        'categorias' => $categorias,
        'lugares' => $lugares,
        'presentaciones' => $presentaciones,
        'default_margin' => $defaultMargin,
        'lab_margins' => $labMargins
    ]);

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