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

$pdo = getConnection();

try {
    $activo = isset($_GET['activo']) ? $_GET['activo'] : null;
    $where = ''; $params = [];

    if ($activo !== null) {
        $where = 'WHERE p.activo = ?';
        $params[] = (int)$activo;
    }

    $sql = "SELECT p.id, p.nombre, p.descripcion, p.tipo_descuento, p.fecha_inicio, p.fecha_fin, p.activo,
                   (SELECT COUNT(*) FROM promocion_productos pp WHERE pp.promocion_id = p.id) as total_productos
            FROM promociones p $where ORDER BY p.fecha_inicio DESC, p.id DESC";
    $st = $pdo->prepare($sql); $st->execute($params);
    $promociones = $st->fetchAll(PDO::FETCH_ASSOC);

    $hoy = date('Y-m-d');
    foreach ($promociones as &$pr) {
        if (!$pr['activo']) $pr['estado'] = 'inactiva';
        elseif ($pr['fecha_fin'] && $pr['fecha_fin'] < $hoy) $pr['estado'] = 'vencida';
        elseif ($pr['fecha_inicio'] > $hoy) $pr['estado'] = 'programada';
        else $pr['estado'] = 'activa';
    }

    json_success($promociones);
} catch (Exception $e) {
    json_error("Error: " . $e->getMessage());
}
