discovery_model.dart 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. import 'package:equatable/equatable.dart';
  2. import 'package:json_annotation/json_annotation.dart';
  3. part 'discovery_model.g.dart';
  4. @JsonSerializable()
  5. class DiscoveryModel extends Equatable {
  6. @JsonKey(name: 'itemList')
  7. final List<Discovery> discoveryList;
  8. @JsonKey(name: 'count')
  9. final int count;
  10. @JsonKey(name: 'total')
  11. final int total;
  12. @JsonKey(name: 'nextPageUrl')
  13. final String nextPageUrl;
  14. @JsonKey(name: 'adExist')
  15. final bool adExist;
  16. DiscoveryModel(this.discoveryList, this.count, this.total, this.nextPageUrl,
  17. this.adExist);
  18. factory DiscoveryModel.fromJson(Map<String, dynamic> srcJson) =>
  19. _$DiscoveryModelFromJson(srcJson);
  20. Map<String, dynamic> toJson() => _$DiscoveryModelToJson(this);
  21. @override
  22. List<Object> get props => [discoveryList, count, total, nextPageUrl, adExist];
  23. }
  24. @JsonSerializable()
  25. class Discovery extends Equatable {
  26. @JsonKey(name: 'type')
  27. final String type;
  28. @JsonKey(name: 'data')
  29. final DiscoveryData data;
  30. @JsonKey(name: 'tag')
  31. final String tag;
  32. @JsonKey(name: 'id')
  33. final int id;
  34. @JsonKey(name: 'adIndex')
  35. final int adIndex;
  36. Discovery(this.type, this.data, this.tag, this.id, this.adIndex);
  37. factory Discovery.fromJson(Map<String, dynamic> srcJson) {
  38. try {
  39. return _$DiscoveryFromJson(srcJson);
  40. } catch (e) {
  41. print('$e');
  42. }
  43. }
  44. Map<String, dynamic> toJson() => _$DiscoveryToJson(this);
  45. @override
  46. List<Object> get props => [type, data, tag, id, adIndex];
  47. }
  48. @JsonSerializable()
  49. class DiscoveryData extends Equatable {
  50. @JsonKey(name: 'dataType')
  51. final String dataType;
  52. @JsonKey(name: 'itemList')
  53. final List<Discovery> discoveryList;
  54. @JsonKey(name: 'header')
  55. final DiscoveryData header;
  56. @JsonKey(name: 'id')
  57. final int id;
  58. @JsonKey(name: 'type')
  59. final String type;
  60. @JsonKey(name: 'text')
  61. final String text;
  62. @JsonKey(name: 'title')
  63. final String title;
  64. @JsonKey(name: 'subTitle')
  65. final String subTitle;
  66. @JsonKey(name: 'icon')
  67. final String icon;
  68. @JsonKey(name: 'iconType')
  69. final String iconType;
  70. @JsonKey(name: 'actionUrl')
  71. final String actionUrl;
  72. @JsonKey(name: 'description')
  73. final String description;
  74. @JsonKey(name: 'image')
  75. final String image;
  76. DiscoveryData(
  77. this.dataType,
  78. this.discoveryList,
  79. this.header,
  80. this.id,
  81. this.type,
  82. this.text,
  83. this.title,
  84. this.subTitle,
  85. this.icon,
  86. this.iconType,
  87. this.actionUrl,
  88. this.description,
  89. this.image);
  90. @override
  91. List<Object> get props => [
  92. dataType,
  93. discoveryList,
  94. header,
  95. id,
  96. type,
  97. text,
  98. title,
  99. subTitle,
  100. icon,
  101. iconType,
  102. actionUrl,
  103. description,
  104. image
  105. ];
  106. factory DiscoveryData.fromJson(Map<String, dynamic> srcJson) {
  107. try {
  108. return _$DiscoveryDataFromJson(srcJson);
  109. } catch (e) {
  110. print('$e');
  111. }
  112. }
  113. Map<String, dynamic> toJson() => _$DiscoveryDataToJson(this);
  114. }