news_getx/lib/data/model/news.dart

131 lines
2.5 KiB
Dart

/// 新闻分页 request
class NewsPageListRequest {
String? categoryCode;
String? channelCode;
String? tag;
String? keyword;
int? pageNum;
int? pageSize;
NewsPageListRequest({
this.categoryCode,
this.channelCode,
this.tag,
this.keyword,
this.pageNum,
this.pageSize,
});
Map<String, dynamic> toJson() => {
"categoryCode": categoryCode,
"channelCode": channelCode,
"tag": tag,
"keyword": keyword,
"pageNum": pageNum,
"pageSize": pageSize,
};
}
/// 新闻分页 response
class NewsPageListResponse {
int? counts;
int? pagesize;
int? pages;
int? page;
List<NewsItem>? items;
NewsPageListResponse({
this.counts,
this.pagesize,
this.pages,
this.page,
this.items,
});
factory NewsPageListResponse.fromJson(Map<String, dynamic> json) =>
NewsPageListResponse(
counts: json["counts"],
pagesize: json["pagesize"],
pages: json["pages"],
page: json["page"],
items: json["items"] == null
? []
: List<NewsItem>.from(
json["items"].map((x) => NewsItem.fromJson(x))),
);
Map<String, dynamic> toJson() => {
"counts": counts ?? 0,
"pagesize": pagesize ?? 0,
"pages": pages ?? 0,
"page": page ?? 0,
"items": items == null
? []
: List<dynamic>.from(items!.map((x) => x.toJson())),
};
}
class NewsItem {
String? id;
String? title;
String? category;
String? thumbnail;
String? author;
DateTime? addtime;
String? url;
NewsItem({
this.id,
this.title,
this.category,
this.thumbnail,
this.author,
this.addtime,
this.url,
});
factory NewsItem.fromJson(Map<String, dynamic> json) => NewsItem(
id: json["id"],
title: json["title"],
category: json["category"],
thumbnail: json["thumbnail"],
author: json["author"],
addtime: DateTime.parse(json["addtime"]),
url: json["url"],
);
Map<String, dynamic> toJson() => {
"id": id,
"title": title,
"category": category,
"thumbnail": thumbnail,
"author": author,
"addtime": addtime?.toIso8601String(),
"url": url,
};
}
/// 新闻推荐 request
class NewsRecommendRequest {
String? categoryCode;
String? channelCode;
String? tag;
String? keyword;
NewsRecommendRequest({
this.categoryCode,
this.channelCode,
this.tag,
this.keyword,
});
Map<String, dynamic> toJson() => {
"categoryCode": categoryCode,
"channelCode": channelCode,
"tag": tag,
"keyword": keyword,
};
}