<?php
require_once '../classes/OMIE.php';

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $fecha = $_POST['fecha'] ?? null;

    if (!$fecha) {
        echo '<div class="alert alert-warning mb-0">No se ha indicado una fecha valida.</div>';
        exit;
    }

    $omie = new OMIE();
    $resultado = $omie->getDetallePorDia($fecha);

    $fechaMesAnterior = date('Y-m-d', strtotime('-1 month', strtotime($fecha)));
    $resultadoMesAnterior = $omie->getDetallePorDia($fechaMesAnterior);

    if (empty($resultado)) {
        echo '<div class="alert alert-warning mb-0">No se encontraron datos para la fecha seleccionada.</div>';
        exit;
    }

    $fechaFormateada = date('d/m/Y', strtotime($fecha));

    echo '<div class="detail-header">';
    echo '<div class="detail-badge">Detalle horario</div>';
    echo "<div class=\"detail-title-date\">{$fechaFormateada}</div>";
    echo '</div>';

    echo '<div class="table-responsive detail-table-wrap">';
    echo '<table class="table table-sm table-hover align-middle detail-table">';
    echo '<thead>
            <tr>
                <th>Hora</th>
                <th>Precio</th>
                <th>Mes ant.</th>
                <th>Delta</th>
            </tr>
          </thead>';
    echo '<tbody>';

    foreach ($resultado as $hora => $precio) {
        $horaNumero = (int) str_replace('OMI_H', '', $hora);
        $horaLabel = 'H' . $horaNumero;
        $precioActual = (float) $precio;
        $precioMesAnterior = isset($resultadoMesAnterior[$hora]) ? (float) $resultadoMesAnterior[$hora] : null;
        $delta = $precioMesAnterior !== null ? $precioActual - $precioMesAnterior : null;

        $deltaClass = 'text-muted';
        if ($delta !== null) {
            if ($delta > 0) {
                $deltaClass = 'text-danger';
            } elseif ($delta < 0) {
                $deltaClass = 'text-success';
            }
        }

        $precioActualMwh = $precioActual * 1000;
        $precioMesAnteriorMwh = $precioMesAnterior !== null ? $precioMesAnterior * 1000 : null;
        $deltaMwh = $delta !== null ? $delta * 1000 : null;

        $precioActualFmt = number_format($precioActualMwh, 2, ',', '.') . ' €/MWh';
        $precioMesAnteriorFmt = $precioMesAnteriorMwh !== null
            ? number_format($precioMesAnteriorMwh, 2, ',', '.') . ' €/MWh'
            : 'Sin dato';
        $deltaFmt = $deltaMwh !== null
            ? (($deltaMwh > 0 ? '+' : '') . number_format($deltaMwh, 2, ',', '.') . ' €/MWh')
            : 'Sin dato';

        echo '<tr>';
        echo "<td><span class=\"hour-pill\">{$horaLabel}</span></td>";
        echo "<td>{$precioActualFmt}</td>";
        echo "<td>{$precioMesAnteriorFmt}</td>";
        echo "<td class=\"{$deltaClass}\">{$deltaFmt}</td>";
        echo '</tr>';
    }

    echo '</tbody>';
    echo '</table>';
    echo '</div>';
}
?>
