class WeatherData { String? cod; int? message; int? cnt; List? list; City? city; WeatherData({this.cod, this.message, this.cnt, this.list, this.city}); factory WeatherData.fromJson(Map json) { return WeatherData( cod: json['cod'], message: json['message'], cnt: json['cnt'], list: (json['list'] as List?)?.map((item) => WeatherForecast.fromJson(item)).toList(), city: json['city'] != null ? City.fromJson(json['city']) : null, ); } } class WeatherForecast { int? dt; MainWeatherData? main; List? weather; Clouds? clouds; Wind? wind; int? visibility; dynamic pop; Rain? rain; Sys? sys; String? dtTxt; WeatherForecast({ this.dt, this.main, this.weather, this.clouds, this.wind, this.visibility, this.pop, this.rain, this.sys, this.dtTxt, }); factory WeatherForecast.fromJson(Map json) { return WeatherForecast( dt: json['dt'], main: json['main'] != null ? MainWeatherData.fromJson(json['main']) : null, weather: (json['weather'] as List?)?.map((item) => Weather.fromJson(item)).toList(), clouds: json['clouds'] != null ? Clouds.fromJson(json['clouds']) : null, wind: json['wind'] != null ? Wind.fromJson(json['wind']) : null, visibility: json['visibility'], pop: json['pop'], rain: json['rain'] != null ? Rain.fromJson(json['rain']) : null, sys: json['sys'] != null ? Sys.fromJson(json['sys']) : null, dtTxt: json['dt_txt'], ); } } class MainWeatherData { double? temp; double? feelsLike; double? tempMin; double? tempMax; int? pressure; int? seaLevel; int? grndLevel; int? humidity; double? tempKf; MainWeatherData({ this.temp, this.feelsLike, this.tempMin, this.tempMax, this.pressure, this.seaLevel, this.grndLevel, this.humidity, this.tempKf, }); factory MainWeatherData.fromJson(Map json) { return MainWeatherData( temp: json['temp']?.toDouble(), feelsLike: json['feels_like']?.toDouble(), tempMin: json['temp_min']?.toDouble(), tempMax: json['temp_max']?.toDouble(), pressure: json['pressure'], seaLevel: json['sea_level'], grndLevel: json['grnd_level'], humidity: json['humidity'], tempKf: json['temp_kf']?.toDouble(), ); } } class Weather { int? id; String? main; String? description; String? icon; Weather({this.id, this.main, this.description, this.icon}); factory Weather.fromJson(Map json) { return Weather( id: json['id'], main: json['main'], description: json['description'], icon: json['icon'], ); } } class Clouds { int? all; Clouds({this.all}); factory Clouds.fromJson(Map json) { return Clouds( all: json['all'], ); } } class Wind { double? speed; int? deg; double? gust; Wind({this.speed, this.deg, this.gust}); factory Wind.fromJson(Map json) { return Wind( speed: json['speed']?.toDouble(), deg: json['deg'], gust: json['gust']?.toDouble(), ); } } class Rain { double? h3; Rain({this.h3}); factory Rain.fromJson(Map json) { return Rain( h3: json['3h']?.toDouble(), ); } } class Sys { String? pod; Sys({this.pod}); factory Sys.fromJson(Map json) { return Sys( pod: json['pod'], ); } } class City { int? id; String? name; Coord? coord; String? country; int? population; int? timezone; int? sunrise; int? sunset; City({ this.id, this.name, this.coord, this.country, this.population, this.timezone, this.sunrise, this.sunset, }); factory City.fromJson(Map json) { return City( id: json['id'], name: json['name'], coord: json['coord'] != null ? Coord.fromJson(json['coord']) : null, country: json['country'], population: json['population'], timezone: json['timezone'], sunrise: json['sunrise'], sunset: json['sunset'], ); } } class Coord { double? lat; double? lon; Coord({this.lat, this.lon}); factory Coord.fromJson(Map json) { return Coord( lat: json['lat']?.toDouble(), lon: json['lon']?.toDouble(), ); } }