<?php
class MostrarGaloneras
{
    /** @var mixed $conexion - Instancia de tu wrapper/Conexion_BD que expone prepare()/executeQuery() */
    private $conexion;

    public function __construct($conn)
    {
        $this->conexion = $conn;
    }

    /**
     * Lista todas las galoneras con el NOMBRE de combustible desde tipocombustible_galonera
     * @return array
     */
    public function ObtenerTodasLasGaloneras(): array
    {
        $sql = "
            SELECT 
                g.id,
                g.codigo,
                g.capacidad_litros,
                g.tipo_combustible_id,
                tg.nombre AS tipo_combustible_nombre,   -- nombre desde la nueva tabla
                g.estado,
                g.fecha_estado_desde,
                g.motivo_estado
            FROM galoneras g
            LEFT JOIN tipocombustible_galonera tg
                   ON tg.id = g.tipo_combustible_id
            ORDER BY g.codigo ASC
        ";

        $result = $this->conexion->executeQuery($sql);

        $rows = [];
        if ($result && $result->num_rows > 0) {
            while ($r = $result->fetch_assoc()) {
                $rows[] = $r;
            }
        }
        return $rows;
    }

    /**
     * Obtiene una galonera por id con su nombre de combustible
     * @param int $id
     * @return array|null
     */
    public function ObtenerGaloneraPorId(int $id): ?array
    {
        $sql = "
            SELECT 
                g.id,
                g.codigo,
                g.capacidad_litros,
                g.tipo_combustible_id,
                tg.nombre AS tipo_combustible_nombre,   -- nombre desde la nueva tabla
                g.estado,
                g.fecha_estado_desde,
                g.motivo_estado
            FROM galoneras g
            LEFT JOIN tipocombustible_galonera tg
                   ON tg.id = g.tipo_combustible_id
            WHERE g.id = ?
            LIMIT 1
        ";

        // Usa prepare/bind/execute para evitar inyección
        $stmt = $this->conexion->prepare($sql);
        if (!$stmt) {
            return null; // o lanza excepción según tu manejo de errores
        }

        $stmt->bind_param("i", $id);
        $stmt->execute();
        $res = $stmt->get_result();
        $row = ($res && $res->num_rows > 0) ? $res->fetch_assoc() : null;
        $stmt->close();

        return $row;
    }
}
