import 'package:json_annotation/json_annotation.dart'; part 'pokemon_dto.g.dart'; @JsonSerializable(createToJson: false) class PokemonDto { final List? results; final int? count; final String? next; final String? previous; const PokemonDto({ this.results, this.count, this.next, this.previous, }); factory PokemonDto.fromJson(Map json) => _$PokemonDtoFromJson(json); } @JsonSerializable(createToJson: false) class PokemonDataDto { final String? name; final String? url; final String? imageUrl; final PokemonDetailsDto? details; const PokemonDataDto({ this.name, this.url, this.imageUrl, this.details, }); factory PokemonDataDto.fromJson(Map json) => _$PokemonDataDtoFromJson(json); } @JsonSerializable(createToJson: false) class PokemonDetailsDto { final int? height; final int? weight; final List? abilities; const PokemonDetailsDto({ this.height, this.weight, this.abilities, }); factory PokemonDetailsDto.fromJson(Map json) => _$PokemonDetailsDtoFromJson(json); } @JsonSerializable(createToJson: false) class AbilityDto { final AbilityDetailDto? ability; const AbilityDto({this.ability}); factory AbilityDto.fromJson(Map json) => _$AbilityDtoFromJson(json); } @JsonSerializable(createToJson: false) class AbilityDetailDto { final String? name; const AbilityDetailDto({this.name}); factory AbilityDetailDto.fromJson(Map json) => _$AbilityDetailDtoFromJson(json); }