community_model.dart 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228
  1. import 'package:equatable/equatable.dart';
  2. import 'package:json_annotation/json_annotation.dart';
  3. part 'community_model.g.dart';
  4. @JsonSerializable()
  5. class CommunityModel extends Equatable {
  6. @JsonKey(name: 'itemList')
  7. final List<Community> communityList;
  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. CommunityModel(this.communityList, this.count, this.total, this.nextPageUrl);
  15. @override
  16. List<Object> get props => [communityList, count, total, nextPageUrl];
  17. factory CommunityModel.fromJson(Map<String, dynamic> srcJson) =>
  18. _$CommunityModelFromJson(srcJson);
  19. Map<String, dynamic> toJson() => _$CommunityModelToJson(this);
  20. }
  21. @JsonSerializable()
  22. class Community extends Equatable {
  23. @JsonKey(name: 'type')
  24. final String type;
  25. @JsonKey(name: 'data')
  26. final CommunityData data;
  27. @JsonKey(name: 'tag')
  28. final String tag;
  29. @JsonKey(name: 'id')
  30. final int id;
  31. @JsonKey(name: 'adIndex')
  32. final int adIndex;
  33. Community(this.type, this.data, this.tag, this.id, this.adIndex);
  34. factory Community.fromJson(Map<String, dynamic> srcJson) {
  35. try {
  36. return _$CommunityFromJson(srcJson);
  37. } catch (e) {
  38. print('$e');
  39. }
  40. }
  41. Map<String, dynamic> toJson() => _$CommunityToJson(this);
  42. @override
  43. List<Object> get props => [type, data, tag, id, adIndex];
  44. }
  45. @JsonSerializable()
  46. class CommunityData extends Equatable {
  47. @JsonKey(name: 'dataType')
  48. final String dataType;
  49. @JsonKey(name: 'itemList')
  50. final List<Community> communityList;
  51. @JsonKey(name: 'count')
  52. final int count;
  53. @JsonKey(name: 'header')
  54. final HeaderData header;
  55. @JsonKey(name: 'content')
  56. final Community content;
  57. @JsonKey(name: 'consumption')
  58. final Consumption consumption;
  59. @JsonKey(name: 'tags')
  60. final List<Tag> tags;
  61. @JsonKey(name: 'releaseTime')
  62. final int releaseTime;
  63. @JsonKey(name: 'urls')
  64. final List<String> urls;
  65. @JsonKey(name: 'city')
  66. final String city;
  67. @JsonKey(name: 'longitude')
  68. final double longitude;
  69. @JsonKey(name: 'latitude')
  70. final double latitude;
  71. @JsonKey(name: 'image')
  72. final String image;
  73. @JsonKey(name: 'description')
  74. final String description;
  75. CommunityData(
  76. this.dataType,
  77. this.communityList,
  78. this.count,
  79. this.header,
  80. this.content,
  81. this.consumption,
  82. this.tags,
  83. this.releaseTime,
  84. this.urls,
  85. this.city,
  86. this.longitude,
  87. this.latitude,
  88. this.image,
  89. this.description);
  90. factory CommunityData.fromJson(Map<String, dynamic> srcJson) {
  91. try {
  92. return _$CommunityDataFromJson(srcJson);
  93. } catch (e) {
  94. print('$e');
  95. }
  96. }
  97. Map<String, dynamic> toJson() => _$CommunityDataToJson(this);
  98. @override
  99. List<Object> get props => [
  100. dataType,
  101. communityList,
  102. count,
  103. header,
  104. content,
  105. consumption,
  106. tags,
  107. releaseTime,
  108. urls,
  109. city,
  110. longitude,
  111. latitude,
  112. image,
  113. description
  114. ];
  115. }
  116. @JsonSerializable()
  117. class Tag extends Equatable {
  118. @JsonKey(name: 'name')
  119. final String name;
  120. Tag(this.name);
  121. factory Tag.fromJson(Map<String, dynamic> srcJson) {
  122. try {
  123. return _$TagFromJson(srcJson);
  124. } catch (e) {
  125. print('$e');
  126. }
  127. }
  128. Map<String, dynamic> toJson() => _$TagToJson(this);
  129. @override
  130. List<Object> get props => [name];
  131. }
  132. @JsonSerializable()
  133. class Consumption extends Equatable {
  134. @JsonKey(name: 'collectionCount')
  135. final int collectionCount;
  136. @JsonKey(name: 'replyCount')
  137. final int replyCount;
  138. @JsonKey(name: 'shareCount')
  139. final int shareCount;
  140. @JsonKey(name: 'realCollectionCount')
  141. final int realCollectionCount;
  142. Consumption(this.collectionCount, this.replyCount, this.shareCount,
  143. this.realCollectionCount);
  144. @override
  145. List<Object> get props =>
  146. [collectionCount, replyCount, shareCount, realCollectionCount];
  147. factory Consumption.fromJson(Map<String, dynamic> srcJson) {
  148. try {
  149. return _$ConsumptionFromJson(srcJson);
  150. } catch (e) {
  151. print('$e');
  152. }
  153. }
  154. Map<String, dynamic> toJson() => _$ConsumptionToJson(this);
  155. }
  156. @JsonSerializable()
  157. class HeaderData extends Equatable {
  158. @JsonKey(name: 'icon')
  159. final String icon;
  160. @JsonKey(name: 'issuerName')
  161. final String issuerName;
  162. HeaderData(this.icon, this.issuerName);
  163. factory HeaderData.fromJson(Map<String, dynamic> srcJson) {
  164. try {
  165. return _$HeaderDataFromJson(srcJson);
  166. } catch (e) {
  167. print('$e');
  168. }
  169. }
  170. Map<String, dynamic> toJson() => _$HeaderDataToJson(this);
  171. @override
  172. List<Object> get props => [icon, issuerName];
  173. }