<?php
require_once 'config.php';

header('Content-Type: application/json; charset=utf-8');

$accion = $_GET['accion'] ?? '';
$db     = getDB();

// ?accion=listar — todos los negocios activos
if ($accion === 'listar') {
    $stmt = $db->query(
        'SELECT id, nombre, slug, categoria, direccion, latitud, longitud,
                telefono, whatsapp, logo_url, es_miembro
         FROM negocios
         WHERE activo = 1
         ORDER BY nombre ASC'
    );
    jsonResponse($stmt->fetchAll());
}

// ?accion=perfil&slug=X — perfil completo
if ($accion === 'perfil') {
    $slug = trim($_GET['slug'] ?? '');
    if (!$slug) jsonResponse(['error' => 'Parámetro slug requerido'], 400);

    $stmt = $db->prepare(
        'SELECT id, nombre, slug, categoria, direccion, latitud, longitud,
                telefono, whatsapp, logo_url, imagen_portada, es_miembro,
                descripcion, descripcion_en, facebook, instagram, youtube, tiktok
         FROM negocios
         WHERE slug = ? AND activo = 1'
    );
    $stmt->execute([$slug]);
    $negocio = $stmt->fetch();

    if (!$negocio) jsonResponse(['error' => 'Negocio no encontrado'], 404);

    $nid = $negocio['id'];

    $stmt = $db->prepare(
        'SELECT url, orden FROM fotos WHERE negocio_id = ? ORDER BY orden ASC, id ASC'
    );
    $stmt->execute([$nid]);
    $negocio['fotos'] = $stmt->fetchAll();

    $stmt = $db->prepare(
        'SELECT dia_semana, hora_apertura, hora_cierre, cerrado
         FROM horarios WHERE negocio_id = ? ORDER BY dia_semana ASC'
    );
    $stmt->execute([$nid]);
    $negocio['horarios'] = $stmt->fetchAll();

    $stmt = $db->prepare(
        'SELECT titulo, descripcion, imagen_url, fecha_inicio, fecha_fin
         FROM promociones
         WHERE negocio_id = ?
           AND activo = 1
           AND fecha_inicio <= CURDATE()
           AND fecha_fin   >= CURDATE()
         ORDER BY fecha_inicio ASC'
    );
    $stmt->execute([$nid]);
    $negocio['promociones'] = $stmt->fetchAll();

    $stmt = $db->prepare(
        'SELECT imagen_url, link_destino, fecha_inicio, fecha_fin
         FROM banners
         WHERE negocio_id = ?
           AND fecha_inicio <= CURDATE()
           AND fecha_fin   >= CURDATE()
         ORDER BY fecha_inicio ASC'
    );
    $stmt->execute([$nid]);
    $negocio['banners'] = $stmt->fetchAll();

    $stmt = $db->prepare('SELECT keyword FROM keywords WHERE negocio_id = ?');
    $stmt->execute([$nid]);
    $negocio['keywords'] = array_column($stmt->fetchAll(), 'keyword');

    jsonResponse($negocio);
}

jsonResponse(['error' => 'Acción no válida. Use ?accion=listar o ?accion=perfil&slug=X'], 400);
