class PokemonListData {
int ? count ;
String ? next ;
String ? previous ;
List < PokemonListResult > ? results ;
PokemonListData ({ this . count , this . next , this . previous , this . results}) ;
PokemonListData . fromJson ( Map < String , dynamic > json) {
count = json[ 'count' ] ;
next = json[ 'next' ] ;
previous = json[ 'previous' ] ;
if (json[ 'results' ] != null ) {
results = < PokemonListResult > [] ;
json[ 'results' ] . forEach ((v) {
results ! . add ( PokemonListResult . fromJson (v)) ;
}) ;
}
}
Map < String , dynamic > toJson () {
final Map < String , dynamic > data = < String , dynamic > {} ;
data[ 'count' ] = count ;
data[ 'next' ] = next ;
data[ 'previous' ] = previous ;
if (results != null ) {
data[ 'results' ] = results ! . map ((v) => v . toJson ()) . toList () ;
}
return data ;
}
PokemonListData copyWith ({
int ? count ,
String ? next ,
String ? previous ,
List < PokemonListResult > ? results ,
}) {
return PokemonListData (
count : count ?? this . count ,
next : next ?? this . next ,
previous : previous ?? this . previous ,
results : results ?? this . results ,
) ;
}
}
class PokemonListResult {
String ? name ;
String ? url ;
PokemonListResult ({ this . name , this . url}) ;
PokemonListResult . fromJson ( Map < String , dynamic > json) {
name = json[ 'name' ] ;
url = json[ 'url' ] ;
}
Map < String , dynamic > toJson () {
final Map < String , dynamic > data = < String , dynamic > {} ;
data[ 'name' ] = name ;
data[ 'url' ] = url ;
return data ;
}
}
class Pokemon {
List < Abilities > ? abilities ;
int ? height ;
int ? id ;
List < Moves > ? moves ;
String ? name ;
Ability ? species ;
Sprites ? sprites ;
List < Stats > ? stats ;
int ? weight ;
Pokemon (
{ this . abilities ,
this . height ,
this . id ,
this . moves ,
this . name ,
this . species ,
this . sprites ,
this . stats ,
this . weight}) ;
Pokemon . fromJson ( Map < String , dynamic > json) {
if (json[ 'abilities' ] != null ) {
abilities = < Abilities > [] ;
json[ 'abilities' ] . forEach ((v) {
abilities ! . add ( Abilities . fromJson (v)) ;
}) ;
}
height = json[ 'height' ] ;
id = json[ 'id' ] ;
if (json[ 'moves' ] != null ) {
moves = < Moves > [] ;
json[ 'moves' ] . forEach ((v) {
moves ! . add ( Moves . fromJson (v)) ;
}) ;
}
name = json[ 'name' ] ;
species =
json[ 'species' ] != null ? Ability . fromJson (json[ 'species' ]) : null;
sprites =
json[ 'sprites' ] != null ? Sprites . fromJson (json[ 'sprites' ]) : null;
if (json[ 'stats' ] != null ) {
stats = < Stats > [] ;
json[ 'stats' ] . forEach ((v) {
stats ! . add ( Stats . fromJson (v)) ;
}) ;
}
weight = json[ 'weight' ] ;
}
Map < String , dynamic > toJson () {
final Map < String , dynamic > data = < String , dynamic > {} ;
if (abilities != null ) {
data[ 'abilities' ] = abilities ! . map ((v) => v . toJson ()) . toList () ;
}
data[ 'height' ] = height ;
data[ 'id' ] = id ;
if (moves != null ) {
data[ 'moves' ] = moves ! . map ((v) => v . toJson ()) . toList () ;
}
data[ 'name' ] = name ;
if (species != null ) {
data[ 'species' ] = species ! . toJson () ;
}
if (sprites != null ) {
data[ 'sprites' ] = sprites ! . toJson () ;
}
if (stats != null ) {
data[ 'stats' ] = stats ! . map ((v) => v . toJson ()) . toList () ;
}
data[ 'weight' ] = weight ;
return data ;
}
}
class Abilities {
Ability ? ability ;
bool ? isHidden ;
int ? slot ;
Abilities ({ this . ability , this . isHidden , this . slot}) ;
Abilities . fromJson ( Map < String , dynamic > json) {
ability =
json[ 'ability' ] != null ? Ability . fromJson (json[ 'ability' ]) : null;
isHidden = json[ 'is_hidden' ] ;
slot = json[ 'slot' ] ;
}
Map < String , dynamic > toJson () {
final Map < String , dynamic > data = < String , dynamic > {} ;
if (ability != null ) {
data[ 'ability' ] = ability ! . toJson () ;
}
data[ 'is_hidden' ] = isHidden ;
data[ 'slot' ] = slot ;
return data ;
}
}
class Moves {
Ability ? move ;
Moves ({ this . move}) ;
Moves . fromJson ( Map < String , dynamic > json) {
move = json[ 'move' ] != null ? Ability . fromJson (json[ 'move' ]) : null;
}
Map < String , dynamic > toJson () {
final Map < String , dynamic > data = < String , dynamic > {} ;
if (move != null ) {
data[ 'move' ] = move ! . toJson () ;
}
return data ;
}
}
class Ability {
String ? name ;
String ? url ;
Ability ({ this . name , this . url}) ;
Ability . fromJson ( Map < String , dynamic > json) {
name = json[ 'name' ] ;
url = json[ 'url' ] ;
}
Map < String , dynamic > toJson () {
final Map < String , dynamic > data = < String , dynamic > {} ;
data[ 'name' ] = name ;
data[ 'url' ] = url ;
return data ;
}
}
class Sprites {
String ? backDefault ;
String ? backFemale ;
String ? backShiny ;
String ? backShinyFemale ;
String ? frontDefault ;
String ? frontFemale ;
String ? frontShiny ;
String ? frontShinyFemale ;
Sprites ({
this . backDefault ,
this . backFemale ,
this . backShiny ,
this . backShinyFemale ,
this . frontDefault ,
this . frontFemale ,
this . frontShiny ,
this . frontShinyFemale ,
}) ;
Sprites . fromJson ( Map < String , dynamic > json) {
backDefault = json[ 'back_default' ] ;
backFemale = json[ 'back_female' ] ;
backShiny = json[ 'back_shiny' ] ;
backShinyFemale = json[ 'back_shiny_female' ] ;
frontDefault = json[ 'front_default' ] ;
frontFemale = json[ 'front_female' ] ;
frontShiny = json[ 'front_shiny' ] ;
frontShinyFemale = json[ 'front_shiny_female' ] ;
}
Map < String , dynamic > toJson () {
final Map < String , dynamic > data = < String , dynamic > {} ;
data[ 'back_default' ] = backDefault ;
data[ 'back_female' ] = backFemale ;
data[ 'back_shiny' ] = backShiny ;
data[ 'back_shiny_female' ] = backShinyFemale ;
data[ 'front_default' ] = frontDefault ;
data[ 'front_female' ] = frontFemale ;
data[ 'front_shiny' ] = frontShiny ;
data[ 'front_shiny_female' ] = frontShinyFemale ;
return data ;
}
}
class Stats {
int ? baseStat ;
int ? effort ;
Ability ? stat ;
Stats ({ this . baseStat , this . effort , this . stat}) ;
Stats . fromJson ( Map < String , dynamic > json) {
baseStat = json[ 'base_stat' ] ;
effort = json[ 'effort' ] ;
stat = json[ 'stat' ] != null ? Ability . fromJson (json[ 'stat' ]) : null;
}
Map < String , dynamic > toJson () {
final Map < String , dynamic > data = < String , dynamic > {} ;
data[ 'base_stat' ] = baseStat ;
data[ 'effort' ] = effort ;
if (stat != null ) {
data[ 'stat' ] = stat ! . toJson () ;
}
return data ;
}
}