<?php
require_once dirname(__FILE__) . '/../config.php';

if ($_SERVER['REQUEST_METHOD'] !== 'GET') { jsonErr(405, 'Metodo no permitido.'); }
auth(); // Requiere token valido

try {
    $db = getDB();

    // URL base de las imagenes de productos
    $baseUrl = 'https://api.sistemarrb.com/app-api/catalog/';

    // Productos disponibles para venta al publico (puv=1)
    // tipoprod=1 -> Productos de linea
    // tipoprod=2 -> Inscripciones
    $stmtProd = $db->prepare(
        'SELECT id_prod, nombreProd, precio, puntos, tipoprod, presentacion
         FROM productos
         WHERE activo = \'SI\'
           AND tipoprod IN (1, 2)
         ORDER BY tipoprod ASC, nombreProd ASC'
    );
    $stmtProd->execute();
    $rows = $stmtProd->fetchAll(PDO::FETCH_ASSOC);

    $linea         = [];
    $inscripciones = [];

    foreach ($rows as $r) {
        $idProd = (int)$r['id_prod'];
        $imgUrl = $baseUrl . $idProd . '.png';

        $item = [
            'id_prod'      => $idProd,
            'nombre'       => $r['nombreProd'],
            'precio'       => (float)$r['precio'],
            'puntos'       => (float)$r['puntos'],
            'presentacion' => $r['presentacion'] ?? '',
            'tipoprod'     => (int)$r['tipoprod'],
            'imagen'       => $imgUrl,
        ];

        if ((int)$r['tipoprod'] === 2) {
            $inscripciones[] = $item;
        } else {
            $linea[] = $item;
        }
    }

    // Promociones activas (tipo_promo=7 y activa=1)
    $promociones = [];
    try {
        $stmtPromo = $db->prepare(
            'SELECT id_promo, promodesc, precio, puntos
             FROM promod
             WHERE tipo_promo = 7 AND activa = 1
             ORDER BY promodesc ASC'
        );
        $stmtPromo->execute();
        $rowsPromo = $stmtPromo->fetchAll(PDO::FETCH_ASSOC);

        foreach ($rowsPromo as $p) {
            $idPromo = (int)$p['id_promo'];
            $promociones[] = [
                'idpromod' => $idPromo,
                'nombre'   => $p['promodesc'],
                'precio'   => (float)$p['precio'],
                'puntos'   => (float)$p['puntos'],
                'imagen'   => $baseUrl . 'promo_' . $idPromo . '.png',
            ];
        }
    } catch (Exception $ePromo) {
        // Si la tabla promod no existe o falla, continuamos sin promociones
        $promociones = [];
    }

    // Bancos para la pantalla de nueva compra
    $bancos = [];
    try {
        $stmtBancos = $db->prepare('SELECT idbanco, nombre FROM banco ORDER BY nombre');
        $stmtBancos->execute();
        $bancos = $stmtBancos->fetchAll(PDO::FETCH_ASSOC);
    } catch (Exception $eBanco) {
        $bancos = [];
    }

    jsonOk([
        'linea'         => $linea,
        'inscripciones' => $inscripciones,
        'promociones'   => $promociones,
        'total'         => count($rows),
        'bancos'        => $bancos,
    ]);

} catch (Exception $e) {
    jsonErr(500, 'Error en productos: ' . $e->getMessage());
}
