class ExtendedWeather extends Weather {

	@Override
	public boolean equals(Object o) {
		if (this == o) return true;
		if (!(o instanceof ExtendedWeather)) return false;
		if (!super.equals(o)) return false;
		ExtendedWeather that = (ExtendedWeather) o;
		return cloudCoverInPercent == that.cloudCoverInPercent &&
			Objects.equals(precipitationDuration, that.precipitationDuration) &&
			Objects.equals(precipitationHeight, that.precipitationHeight) &&
			Objects.equals(sunshineDuration, that.sunshineDuration) &&
			Objects.equals(windSpeed, that.windSpeed) &&
			Objects.equals(windDirection, that.windDirection) &&
			Objects.equals(totalSolarRadiation, that.totalSolarRadiation);
	}

	@JsonCreator public  ExtendedWeather(
		@JsonProperty("stationId") String stationId,
		@JsonProperty("temperature") Temperature temperature,
		@JsonProperty("pressure") Pressure pressure,
		@JsonProperty("humidityInPercent") int humidityInPercent,
		@JsonProperty("precipitationDuration") PrecipitationDuration precipitationDuration,
		@JsonProperty("precipitationHeight") PrecipitationHeight precipitationHeight,
		@JsonProperty("sunshineDuration") SunshineDuration sunshineDuration,
		@JsonProperty("windSpeed") WindSpeed windSpeed,
		@JsonProperty("windDirection") WindDirection windDirection,
		@JsonProperty("cloudCoverInPercent") int cloudCoverInPercent,
		@JsonProperty("totalSolarRadiation") TotalSolarRadiation totalSolarRadiation,
		@JsonProperty("timestamp") Instant timestamp,
		@JsonProperty("location") Location location);

}