import 'package:equatable/equatable.dart'; import 'package:json_annotation/json_annotation.dart'; part 'discovery_model.g.dart'; @JsonSerializable() class DiscoveryModel extends Equatable { @JsonKey(name: 'itemList') final List discoveryList; @JsonKey(name: 'count') final int count; @JsonKey(name: 'total') final int total; @JsonKey(name: 'nextPageUrl') final String nextPageUrl; @JsonKey(name: 'adExist') final bool adExist; DiscoveryModel(this.discoveryList, this.count, this.total, this.nextPageUrl, this.adExist); factory DiscoveryModel.fromJson(Map srcJson) => _$DiscoveryModelFromJson(srcJson); Map toJson() => _$DiscoveryModelToJson(this); @override List get props => [discoveryList, count, total, nextPageUrl, adExist]; } @JsonSerializable() class Discovery extends Equatable { @JsonKey(name: 'type') final String type; @JsonKey(name: 'data') final DiscoveryData data; @JsonKey(name: 'tag') final String tag; @JsonKey(name: 'id') final int id; @JsonKey(name: 'adIndex') final int adIndex; Discovery(this.type, this.data, this.tag, this.id, this.adIndex); factory Discovery.fromJson(Map srcJson) { try { return _$DiscoveryFromJson(srcJson); } catch (e) { print('$e'); } } Map toJson() => _$DiscoveryToJson(this); @override List get props => [type, data, tag, id, adIndex]; } @JsonSerializable() class DiscoveryData extends Equatable { @JsonKey(name: 'dataType') final String dataType; @JsonKey(name: 'itemList') final List discoveryList; @JsonKey(name: 'header') final DiscoveryData header; @JsonKey(name: 'id') final int id; @JsonKey(name: 'type') final String type; @JsonKey(name: 'text') final String text; @JsonKey(name: 'title') final String title; @JsonKey(name: 'subTitle') final String subTitle; @JsonKey(name: 'icon') final String icon; @JsonKey(name: 'iconType') final String iconType; @JsonKey(name: 'actionUrl') final String actionUrl; @JsonKey(name: 'description') final String description; @JsonKey(name: 'image') final String image; DiscoveryData( this.dataType, this.discoveryList, this.header, this.id, this.type, this.text, this.title, this.subTitle, this.icon, this.iconType, this.actionUrl, this.description, this.image); @override List get props => [ dataType, discoveryList, header, id, type, text, title, subTitle, icon, iconType, actionUrl, description, image ]; factory DiscoveryData.fromJson(Map srcJson) { try { return _$DiscoveryDataFromJson(srcJson); } catch (e) { print('$e'); } } Map toJson() => _$DiscoveryDataToJson(this); }