ulmus-api-weather/src/Entity/ForecastHour.php
2026-07-01 14:37:46 -04:00

119 lines
3.8 KiB
PHP

<?php
namespace Ulmus\Api\Weather\Entity;
use Psr\Http\Message\ServerRequestInterface;
use Ulmus\{Api\Attribute\Property\Entity,
Attribute\Property\Field,
Entity\EntityInterface,
Entity\Field\Date,
Entity\Field\Datetime,
EntityTrait,
SearchRequest\SearchRequestInterface,
SearchRequest\SearchRequestPaginationTrait};
use Ulmus\Api\Attribute\Obj\Api;
use Ulmus\Api\Weather\Attribute;
# An hourly weather forecast object.
#[Api(adapter: "api-weather")]
#[Attribute\Obj\Api\Collection(url: "/points/{latitude},{longitude}/hours")]
class ForecastHour implements EntityInterface, \JsonSerializable
{
use EntityTrait;
const API_BASE_URL = "forecast";
# Cloud Cover as a percent value.
#[Field(name: "cldCvr")]
public ? int $cloudCover;
# Dew Point in Degrees Fahrenheit (imperial), Celsius (metric), or Kelvin (si).
#[Field(name: "dewPt")]
public ? float $dewPoint;
#[Field]
public ? float $feelsLike;
#[Field]
public ? float $heatIndex;
# Mean Sea Level Pressure in millibars.
#[Field(name: "mslPres")]
public ? float $meanSeaLevelPressure;
# Total precipitation in inches (imperial) or centimeters (metric, si).
#[Field(name: "precip")]
public ? float $precipitation;
# Probability of precipitation as a percent value.
#[Field(name: "precipProb")]
public ? float $precipitationProbability;
# Average Solar Radiation in watts per square meter.
#[Field(name: "radSolar")]
public ? float $solarRadiation;
# Average Relative humidity as a percent value.
#[Field(name: "relHum")]
public ? float $relativeHumidity;
# Average Surface pressure in millibars.
#[Field(name: "sfcPres")]
public ? float $surfacePressure;
# Total snowfall in inches (imperial) or centimeters (metric, si).
#[Field]
public ? float $snowfall;
# Probability of snowfall as a percent value.
#[Field(name: "snowfallProb")]
public ? float $snowfallProbability;
# Specific humidity in grams per kilograms.
#[Field(name: "spcHum")]
public ? float $specificHumidity;
# Temperature in Degrees Fahrenheit (imperial), Celsius (metric), or Kelvin (si).
#[Field(name: "temp")]
public ? float $temperature;
# The model initialization timestamp formatted as an RFC3339 date-time value.
#[Field(name: "timestampInit")]
public ? Datetime $timestampInitialization;
# The model initialization timestamp formatted as an RFC3339 date-time value.
#[Field]
public Datetime $timestamp;
# Wet Bulb Temperature in Degrees Fahrenheit (imperial), Celsius (metric), or Kelvin (si).
#[Field(name: "wetBulb")]
public ? float $wetBulbe;
# Wind Chill in Degrees Fahrenheit (imperial), Celsius (metric), or Kelvin (si).
#[Field]
public ? float $windChill;
# Wind direction at 10 meters in Degrees (0 or 360 = North, 90 = East, South = 180, West = 270).
#[Field(name: "windDir")]
public ? float $windDirection;
# Average Wind direction at 80 meters in Degrees (0 or 360 = North, 90 = East, South = 180, West = 270).
#[Field(name: "windDir80m")]
public ? float $windDirection80m;
# Average Wind direction at 80 meters in Degrees (0 or 360 = North, 90 = East, South = 180, West = 270).
#[Field(name: "windDir100m")]
public ? float $windDirection100m;
# Average Wind speed at 10 meters in miles per hour (imperial) or km/hour (metric, si).
#[Field(name: "windSpd")]
public ? float $windSpeed;
# Average Wind speed at 80 meters in miles per hour (imperial) or km/hour (metric, si).
#[Field(name: "windSpd80m")]
public ? float $windSpeed80m;
# Average Wind speed at 100 meters in miles per hour (imperial) or km/hour (metric, si).
#[Field(name: "windSpd100m")]
public ? float $windSpeed100m;
}