<?php

namespace App\Services\Prediction\Signals;

use App\Enums\FuelType;

/**
 * Inputs required to evaluate a prediction signal. Individual signals may
 * ignore fields they don't need — for example OilSignal doesn't use fuelType,
 * RegionalMomentumSignal requires lat/lng to be non-null.
 */
final readonly class SignalContext
{
    public function __construct(
        public FuelType $fuelType,
        public ?float $lat = null,
        public ?float $lng = null,
    ) {}

    public function hasCoordinates(): bool
    {
        return $this->lat !== null && $this->lng !== null;
    }
}
