pikapika/lib/basic/Entities.dart

1015 lines
27 KiB
Dart
Raw Normal View History

2021-10-21 04:08:51 +00:00
/// 图片
2021-11-12 05:41:26 +00:00
class RemoteImageInfo {
2021-09-29 23:57:09 +00:00
late String originalName;
late String path;
late String fileServer;
2021-11-12 05:41:26 +00:00
RemoteImageInfo.fromJson(Map<String, dynamic> json) {
2021-09-29 23:57:09 +00:00
this.originalName = json["originalName"];
this.path = json["path"];
this.fileServer = json["fileServer"];
}
}
2021-10-21 04:08:51 +00:00
/// 用户基本信息
2021-09-29 23:57:09 +00:00
class BasicUser {
late String id;
late String gender;
late String name;
late String title;
late bool verified;
late int exp;
late int level;
late List<String> characters;
2021-11-12 05:41:26 +00:00
late RemoteImageInfo avatar;
2022-02-24 16:08:18 +00:00
late String? slogan;
2021-09-29 23:57:09 +00:00
BasicUser.fromJson(Map<String, dynamic> json) {
this.id = json["_id"];
this.gender = json["gender"];
this.name = json["name"];
this.title = json["title"];
this.verified = json["verified"];
this.exp = json["exp"];
this.level = json["level"];
2021-10-25 02:36:05 +00:00
this.characters = json["characters"] == null
? []
: List.of(json["characters"]).map((e) => "$e").toList();
2021-11-12 05:41:26 +00:00
this.avatar =
RemoteImageInfo.fromJson(Map<String, dynamic>.of(json["avatar"]));
2022-02-24 16:08:18 +00:00
this.slogan = json["slogan"];
2021-09-29 23:57:09 +00:00
}
}
2021-10-21 04:08:51 +00:00
/// 用户自己的信息
2021-09-29 23:57:09 +00:00
class UserProfile extends BasicUser {
late String birthday;
late String email;
late String createdAt;
late bool isPunched;
UserProfile.fromJson(Map<String, dynamic> json) : super.fromJson(json) {
this.birthday = json["birthday"];
this.email = json["email"];
this.createdAt = json["created_at"];
this.isPunched = json["isPunched"];
}
}
2021-10-21 04:08:51 +00:00
/// 分页
2021-09-29 23:57:09 +00:00
class Page {
late int total;
late int limit;
late int page;
late int pages;
Page.fromJson(Map<String, dynamic> json) {
this.total = json["total"];
this.limit = json["limit"];
this.page = json["page"];
this.pages = json["pages"];
}
2021-11-09 21:57:44 +00:00
Page.of(this.total, this.limit, this.page, this.pages);
2021-09-29 23:57:09 +00:00
}
2021-10-21 04:08:51 +00:00
/// 分类
2021-09-29 23:57:09 +00:00
class Category {
late String id;
late String title;
late String description;
2021-11-12 05:41:26 +00:00
late RemoteImageInfo thumb;
2021-09-29 23:57:09 +00:00
late bool isWeb;
late bool active;
late String link;
Category.fromJson(Map<String, dynamic> json) {
this.id = json["_id"];
this.title = json["title"];
this.description = json["description"];
2021-11-12 05:41:26 +00:00
this.thumb = RemoteImageInfo.fromJson(json["thumb"]);
2021-09-29 23:57:09 +00:00
this.isWeb = json["isWeb"];
this.active = json["active"];
this.link = json["link"];
}
}
2021-10-21 04:08:51 +00:00
/// 漫画分页
2021-09-29 23:57:09 +00:00
class ComicsPage extends Page {
late List<ComicSimple> docs;
ComicsPage.fromJson(Map<String, dynamic> json) : super.fromJson(json) {
this.docs = List.from(json["docs"])
.map((e) => Map<String, dynamic>.from(e))
.map((e) => ComicSimple.fromJson(e))
.toList();
}
}
2021-10-21 04:08:51 +00:00
/// 漫画基本信息
2021-09-29 23:57:09 +00:00
class ComicSimple {
late String id;
late String title;
late String author;
late int pagesCount;
late int epsCount;
late bool finished;
late List<String> categories;
2021-11-12 05:41:26 +00:00
late RemoteImageInfo thumb;
2021-09-29 23:57:09 +00:00
late int likesCount;
ComicSimple.fromJson(Map<String, dynamic> json) {
this.id = json["_id"];
this.title = json["title"];
this.author = json["author"];
this.pagesCount = json["pagesCount"];
this.epsCount = json["epsCount"];
this.finished = json["finished"];
this.categories = List<String>.from(json["categories"]);
2021-11-12 05:41:26 +00:00
this.thumb = RemoteImageInfo.fromJson(json["thumb"]);
2021-09-29 23:57:09 +00:00
this.likesCount = json["likesCount"];
}
}
2021-10-21 04:08:51 +00:00
/// 漫画详情
2021-09-29 23:57:09 +00:00
class ComicInfo extends ComicSimple {
late String description;
late String chineseTeam;
late List<String> tags;
late String updatedAt;
late String createdAt;
late bool allowDownload;
late int viewsCount;
late bool isFavourite;
late bool isLiked;
late int commentsCount;
late Creator creator;
ComicInfo.fromJson(Map<String, dynamic> json) : super.fromJson(json) {
this.description = json["description"];
this.chineseTeam = json["chineseTeam"];
this.tags = List<String>.from(json["tags"]);
this.updatedAt = (json["updated_at"]);
this.createdAt = (json["created_at"]);
this.allowDownload = json["allowDownload"];
this.viewsCount = json["viewsCount"];
this.isFavourite = json["isFavourite"];
this.isLiked = json["isLiked"];
this.commentsCount = json["commentsCount"];
this.creator = Creator.fromJson(Map<String, dynamic>.of(json["_creator"]));
}
}
2021-10-21 04:08:51 +00:00
/// 漫画创建人信息
2021-09-29 23:57:09 +00:00
class Creator extends BasicUser {
late String role;
late String character;
Creator.fromJson(Map<String, dynamic> json) : super.fromJson(json) {
this.role = json["role"];
this.character = json["character"];
}
}
2021-10-21 04:08:51 +00:00
/// 漫画章节
2021-09-29 23:57:09 +00:00
class Ep {
late String id;
late String title;
late int order;
late String updatedAt;
Ep.fromJson(Map<String, dynamic> json) {
this.id = json["_id"];
this.title = json["title"];
this.order = json["order"];
this.updatedAt = (json["updated_at"]);
}
}
2021-10-21 04:08:51 +00:00
/// 漫画章节分页
2021-09-29 23:57:09 +00:00
class EpPage extends Page {
late List<Ep> docs;
EpPage.fromJson(Map<String, dynamic> json) : super.fromJson(json) {
this.docs = List.from(json["docs"])
.map((e) => Map<String, dynamic>.from(e))
.map((e) => Ep.fromJson(e))
.toList();
}
}
2021-10-21 04:08:51 +00:00
/// 漫画图片分页
2021-09-29 23:57:09 +00:00
class PicturePage extends Page {
late List<Picture> docs;
PicturePage.fromJson(Map<String, dynamic> json) : super.fromJson(json) {
this.docs = List.from(json["docs"])
.map((e) => Map<String, dynamic>.from(e))
.map((e) => Picture.fromJson(e))
.toList();
}
}
2021-10-21 04:08:51 +00:00
/// 漫画图片信息
2021-09-29 23:57:09 +00:00
class Picture {
late String id;
2021-11-12 05:41:26 +00:00
late RemoteImageInfo media;
2021-09-29 23:57:09 +00:00
Picture.fromJson(Map<String, dynamic> json) {
this.id = json["_id"];
2021-11-12 05:41:26 +00:00
this.media = RemoteImageInfo.fromJson(json["media"]);
2021-09-29 23:57:09 +00:00
}
}
2021-10-21 04:08:51 +00:00
/// 显示图片数据
2021-09-29 23:57:09 +00:00
class RemoteImageData {
late int fileSize;
late String format;
late int width;
late int height;
late String finalPath;
RemoteImageData.forData(
this.fileSize,
this.format,
this.width,
this.height,
this.finalPath,
);
RemoteImageData.fromJson(Map<String, dynamic> json) {
this.fileSize = json["fileSize"];
this.format = json["format"];
this.width = json["width"];
this.height = json["height"];
this.finalPath = json["finalPath"];
}
}
2021-10-21 04:08:51 +00:00
/// 漫画评论分页
2021-09-29 23:57:09 +00:00
class CommentPage extends Page {
late List<Comment> docs;
CommentPage.fromJson(Map<String, dynamic> json) : super.fromJson(json) {
this.docs = List.from(json["docs"])
.map((e) => Map<String, dynamic>.from(e))
.map((e) => Comment.fromJson(e))
.toList();
}
}
2021-11-09 21:57:44 +00:00
class CommentBase {
2021-09-29 23:57:09 +00:00
late String id;
late String content;
late CommentUser user;
late bool isTop;
late bool hide;
late String createdAt;
late int likesCount;
late int commentsCount;
late bool isLiked;
2021-11-09 21:57:44 +00:00
CommentBase.fromJson(Map<String, dynamic> json) {
2021-09-29 23:57:09 +00:00
this.id = json["_id"];
this.content = json["content"];
this.user = CommentUser.fromJson(Map<String, dynamic>.of(json["_user"]));
this.isTop = json["isTop"];
this.hide = json["hide"];
this.createdAt = json["created_at"];
this.likesCount = json["likesCount"];
this.commentsCount = json["commentsCount"];
this.isLiked = json["isLiked"];
}
}
2021-11-09 21:57:44 +00:00
/// 子评论
2021-11-16 08:44:15 +00:00
class ChildOfComment extends CommentBase {
2021-11-09 21:57:44 +00:00
late String parent;
ChildOfComment.fromJson(Map<String, dynamic> json) : super.fromJson(json) {
this.parent = json["_parent"];
}
}
/// 漫画评论详情
class Comment extends CommentBase {
late String comic;
Comment.fromJson(Map<String, dynamic> json) : super.fromJson(json) {
this.comic = json["_comic"];
}
}
2021-10-21 04:08:51 +00:00
/// 评论的用户信息
2021-09-29 23:57:09 +00:00
class CommentUser extends BasicUser {
late String role;
CommentUser.fromJson(Map<String, dynamic> json) : super.fromJson(json) {
this.role = json["role"];
}
}
2021-10-21 04:08:51 +00:00
/// 已下载图片的信息
2021-09-29 23:57:09 +00:00
class DownloadPicture {
late int rankInEp;
late String fileServer;
late String path;
late String localPath;
late int width;
late int height;
late String format;
late int fileSize;
DownloadPicture.fromJson(Map<String, dynamic> json) {
this.rankInEp = json["rankInEp"];
this.fileServer = json["fileServer"];
this.path = json["path"];
this.localPath = json["localPath"];
this.width = json["width"];
this.height = json["height"];
this.format = json["format"];
this.fileSize = json["fileSize"];
}
}
2021-10-21 04:08:51 +00:00
/// 浏览历史记录
2021-09-29 23:57:09 +00:00
class ViewLog {
late String id;
late String title;
late String author;
late int pagesCount;
late int epsCount;
late bool finished;
late String categories;
late String thumbOriginalName;
late String thumbFileServer;
late String thumbPath;
late String description;
late String chineseTeam;
late String tags;
late String lastViewTime;
late int lastViewEpOrder;
late String lastViewEpTitle;
late int lastViewPictureRank;
ViewLog.fromJson(Map<String, dynamic> json) {
this.id = json["id"];
this.title = json["title"];
this.author = json["author"];
this.pagesCount = json["pagesCount"];
this.epsCount = json["epsCount"];
this.finished = json["finished"];
this.categories = json["categories"];
this.thumbOriginalName = json["thumbOriginalName"];
this.thumbFileServer = json["thumbFileServer"];
this.thumbPath = json["thumbPath"];
this.description = json["description"];
this.chineseTeam = json["chineseTeam"];
this.tags = json["tags"];
this.lastViewTime = json["lastViewTime"];
this.lastViewEpOrder = json["lastViewEpOrder"];
this.lastViewEpTitle = json["lastViewEpTitle"];
this.lastViewPictureRank = json["lastViewPictureRank"];
}
}
2021-10-21 04:08:51 +00:00
/// 已下载漫画的信息
2021-09-29 23:57:09 +00:00
class DownloadComic {
late String id;
late String createdAt;
late String updatedAt;
late String title;
late String author;
late int pagesCount;
late int epsCount;
late bool finished;
late String categories;
late String thumbOriginalName;
late String thumbFileServer;
late String thumbPath;
late String thumbLocalPath;
late String description;
late String chineseTeam;
late String tags;
late int selectedEpCount;
late int selectedPictureCount;
late int downloadEpCount;
late int downloadPictureCount;
late bool downloadFinished;
late String downloadFinishedTime;
late bool downloadFailed;
late bool deleting;
void copy(DownloadComic other) {
this.id = other.id;
this.createdAt = other.createdAt;
this.updatedAt = other.updatedAt;
this.title = other.title;
this.author = other.author;
this.pagesCount = other.pagesCount;
this.epsCount = other.epsCount;
this.finished = other.finished;
this.categories = other.categories;
this.thumbOriginalName = other.thumbOriginalName;
this.thumbFileServer = other.thumbFileServer;
this.thumbPath = other.thumbPath;
this.description = other.description;
this.chineseTeam = other.chineseTeam;
this.tags = other.tags;
this.selectedEpCount = other.selectedEpCount;
this.selectedPictureCount = other.selectedPictureCount;
this.downloadEpCount = other.downloadEpCount;
this.downloadPictureCount = other.downloadPictureCount;
this.downloadFinished = other.downloadFinished;
this.downloadFinishedTime = other.downloadFinishedTime;
this.downloadFailed = other.downloadFailed;
this.thumbLocalPath = other.thumbLocalPath;
// this.deleting = other.deleting;
}
DownloadComic.fromJson(Map<String, dynamic> json) {
this.id = json["id"];
this.createdAt = (json["createdAt"]);
this.updatedAt = (json["updatedAt"]);
this.title = json["title"];
this.author = json["author"];
this.pagesCount = json["pagesCount"];
this.epsCount = json["epsCount"];
this.finished = json["finished"];
this.categories = json["categories"];
this.thumbOriginalName = json["thumbOriginalName"];
this.thumbFileServer = json["thumbFileServer"];
this.thumbPath = json["thumbPath"];
this.description = json["description"];
this.chineseTeam = json["chineseTeam"];
this.tags = json["tags"];
this.selectedEpCount = json["selectedEpCount"];
this.selectedPictureCount = json["selectedPictureCount"];
this.downloadEpCount = json["downloadEpCount"];
this.downloadPictureCount = json["downloadPictureCount"];
this.downloadFinished = json["downloadFinished"];
this.downloadFinishedTime = json["downloadFinishedTime"];
this.downloadFailed = json["downloadFailed"];
this.deleting = json["deleting"];
this.thumbLocalPath = json["thumbLocalPath"];
}
}
2021-10-21 04:08:51 +00:00
/// 已下载的章节信息
2021-09-29 23:57:09 +00:00
class DownloadEp {
late String comicId;
late String id;
late String updatedAt;
late int epOrder;
late String title;
late bool fetchedPictures;
late int selectedPictureCount;
late int downloadPictureCount;
late bool downloadFinish;
late String downloadFinishTime;
late bool downloadFailed;
DownloadEp.fromJson(Map<String, dynamic> json) {
this.comicId = json["comicId"];
this.id = json["id"];
this.epOrder = json["epOrder"];
this.title = json["title"];
this.fetchedPictures = json["fetchedPictures"];
this.selectedPictureCount = json["selectedPictureCount"];
this.downloadPictureCount = json["downloadPictureCount"];
this.downloadFinish = json["downloadFinish"];
this.downloadFinishTime = json["downloadFinishTime"];
this.downloadFailed = json["downloadFailed"];
}
}
2021-10-21 04:08:51 +00:00
/// 游戏的分页
2021-09-29 23:57:09 +00:00
class GamePage extends Page {
late List<GameSimple> docs;
GamePage.fromJson(Map<String, dynamic> json) : super.fromJson(json) {
this.docs = List.of(json["docs"])
.map((e) => Map<String, dynamic>.of(e))
.map((e) => GameSimple.fromJson(e))
.toList();
}
}
2021-10-21 04:08:51 +00:00
/// 游戏的简要信息
2021-09-29 23:57:09 +00:00
class GameSimple {
late String id;
late String title;
late String version;
2021-11-12 05:41:26 +00:00
late RemoteImageInfo icon;
2021-09-29 23:57:09 +00:00
late String publisher;
late bool adult;
late bool suggest;
late int likesCount;
late bool android;
late bool ios;
GameSimple.fromJson(Map<String, dynamic> json) {
this.id = json["_id"];
this.title = json["title"];
this.version = json["version"];
2021-11-12 05:41:26 +00:00
this.icon = RemoteImageInfo.fromJson(json["icon"]);
2021-09-29 23:57:09 +00:00
this.publisher = json["publisher"];
this.adult = json["adult"];
this.suggest = json["suggest"];
this.likesCount = json["likesCount"];
this.android = json["android"];
this.ios = json["ios"];
}
}
2021-10-21 04:08:51 +00:00
/// 游戏详情
2021-09-29 23:57:09 +00:00
class GameInfo extends GameSimple {
late String description;
late String updateContent;
late String videoLink;
2021-11-12 05:41:26 +00:00
late List<RemoteImageInfo> screenshots;
2021-09-29 23:57:09 +00:00
late int commentsCount;
late int downloadsCount;
late bool isLiked;
late List<String> androidLinks;
late double androidSize;
late List<String> iosLinks;
late double iosSize;
late String updatedAt;
late String createdAt;
GameInfo.fromJson(Map<String, dynamic> json) : super.fromJson(json) {
this.description = json["description"];
this.updateContent = json["updateContent"];
this.videoLink = json["videoLink"];
this.screenshots = List.of(json["screenshots"])
.map((e) => Map<String, dynamic>.of(e))
2021-11-12 05:41:26 +00:00
.map((e) => RemoteImageInfo.fromJson(e))
2021-09-29 23:57:09 +00:00
.toList();
this.commentsCount = json["commentsCount"];
this.downloadsCount = json["downloadsCount"];
this.isLiked = json["isLiked"];
this.androidLinks = List.of(json["androidLinks"]).map((e) => "$e").toList();
this.androidSize = double.parse(json["androidSize"].toString());
this.iosLinks = List.of(json["iosLinks"]).map((e) => "$e").toList();
this.iosSize = double.parse(json["iosSize"].toString());
this.updatedAt = json["updated_at"];
this.createdAt = json["created_at"];
}
}
2021-10-21 04:08:51 +00:00
/// 我的评论页面分页
2021-09-29 23:57:09 +00:00
class MyCommentsPage extends Page {
late List<MyComment> docs;
MyCommentsPage.fromJson(Map<String, dynamic> json) : super.fromJson(json) {
this.docs =
List.of(json["docs"]).map((e) => MyComment.fromJson(e)).toList();
}
}
2021-10-21 04:08:51 +00:00
/// 我的评论
2021-09-29 23:57:09 +00:00
class MyComment {
late String id;
late String content;
late bool hide;
late String createdAt;
late int likesCount;
late int commentsCount;
late bool isLiked;
late MyCommentComic comic;
MyComment.fromJson(Map<String, dynamic> json) {
this.id = json["_id"];
this.content = json["content"];
this.hide = json["hide"];
this.createdAt = json["created_at"];
this.likesCount = json["likesCount"];
this.commentsCount = json["commentsCount"];
this.isLiked = json["isLiked"];
this.comic = MyCommentComic.fromJson(json["_comic"]);
}
}
2021-10-21 04:08:51 +00:00
/// 我的评论漫画简要信息
2021-09-29 23:57:09 +00:00
class MyCommentComic {
late String id;
late String title;
MyCommentComic.fromJson(Map<String, dynamic> json) {
this.id = json["_id"];
this.title = json["title"];
}
}
2021-10-21 04:08:51 +00:00
/// 子评论分页
2021-09-29 23:57:09 +00:00
class CommentChildrenPage extends Page {
late List<CommentChild> docs;
CommentChildrenPage.fromJson(Map<String, dynamic> json)
: super.fromJson(json) {
this.docs = [];
if (json["docs"] != null) {
docs.addAll(
List.of(json["docs"]).map((e) => CommentChild.fromJson(e)).toList());
}
}
}
2021-10-21 04:08:51 +00:00
/// 子评论
2021-11-09 21:57:44 +00:00
class CommentChild extends ChildOfComment {
late String comic;
2021-09-29 23:57:09 +00:00
CommentChild.fromJson(Map<String, dynamic> json) : super.fromJson(json) {
2021-11-09 21:57:44 +00:00
this.comic = json["_comic"];
}
}
/// 漫画评论分页
class GameCommentPage extends Page {
late List<GameComment> docs;
GameCommentPage.fromJson(Map<String, dynamic> json) : super.fromJson(json) {
this.docs = List.from(json["docs"])
.map((e) => Map<String, dynamic>.from(e))
.map((e) => GameComment.fromJson(e))
.toList();
}
}
/// 游戏评论
class GameComment extends CommentBase {
late String game;
GameComment.fromJson(Map<String, dynamic> json) : super.fromJson(json) {
this.game = json["_game"];
}
}
/// 子评论分页
class GameCommentChildrenPage extends Page {
late List<GameCommentChild> docs;
GameCommentChildrenPage.fromJson(Map<String, dynamic> json)
: super.fromJson(json) {
this.docs = [];
if (json["docs"] != null) {
2021-11-12 05:41:26 +00:00
docs.addAll(List.of(json["docs"])
.map((e) => GameCommentChild.fromJson(e))
.toList());
2021-11-09 21:57:44 +00:00
}
}
}
/// 子评论
class GameCommentChild extends ChildOfComment {
late String game;
GameCommentChild.fromJson(Map<String, dynamic> json) : super.fromJson(json) {
this.game = json["_game"];
2021-09-29 23:57:09 +00:00
}
}
2022-04-15 16:53:37 +00:00
class Collection {
late String title;
late List<ComicSimple> comics;
Collection.fromJson(Map<String, dynamic> json) {
this.title = json["title"];
this.comics = List.from(json["comics"])
.map((e) => Map<String, dynamic>.from(e))
.map((e) => ComicSimple.fromJson(e))
.toList();
}
}
2022-06-29 19:02:01 +00:00
class PkzArchive {
PkzArchive({
required this.coverPath,
required this.authorAvatarPath,
required this.comics,
required this.comicCount,
required this.volumesCount,
required this.chapterCount,
required this.pictureCount,
});
late final String coverPath;
late final String authorAvatarPath;
late final List<PkzComic> comics;
late final int comicCount;
late final int volumesCount;
late final int chapterCount;
late final int pictureCount;
PkzArchive.fromJson(Map<String, dynamic> json) {
coverPath = json['cover_path'];
authorAvatarPath = json['author_avatar_path'];
comics =
List.from(json['comics']).map((e) => PkzComic.fromJson(e)).toList();
comicCount = json['comic_count'];
volumesCount = json['volumes_count'];
chapterCount = json['chapter_count'];
pictureCount = json['picture_count'];
}
Map<String, dynamic> toJson() {
final _data = <String, dynamic>{};
_data['cover_path'] = coverPath;
_data['author_avatar_path'] = authorAvatarPath;
_data['comics'] = comics.map((e) => e.toJson()).toList();
_data['comic_count'] = comicCount;
_data['volumes_count'] = volumesCount;
_data['chapter_count'] = chapterCount;
_data['picture_count'] = pictureCount;
return _data;
}
}
class PkzComic {
PkzComic({
required this.id,
required this.title,
required this.categories,
required this.tags,
required this.updatedAt,
required this.createdAt,
required this.description,
required this.chineseTeam,
required this.finished,
required this.coverPath,
required this.authorAvatarPath,
required this.volumes,
required this.volumesCount,
required this.chapterCount,
required this.pictureCount,
required this.idx,
});
late final String id;
late final String title;
late final List<String> categories;
late final List<String> tags;
late final int updatedAt;
late final int createdAt;
late final String description;
late final String chineseTeam;
late final bool finished;
late final String coverPath;
late final String authorAvatarPath;
late final List<PkzVolume> volumes;
late final int volumesCount;
late final int chapterCount;
late final int pictureCount;
late final int idx;
late final String author;
late final String authorId;
PkzComic.fromJson(Map<String, dynamic> json) {
id = json['id'];
title = json['title'];
categories = List.castFrom<dynamic, String>(json['categories']);
tags = List.castFrom<dynamic, String>(json['tags']);
updatedAt = json['updated_at'];
createdAt = json['created_at'];
description = json['description'];
chineseTeam = json['chinese_team'];
finished = json['finished'];
coverPath = json['cover_path'];
authorAvatarPath = json['author_avatar_path'];
volumes =
List.from(json['volumes']).map((e) => PkzVolume.fromJson(e)).toList();
volumesCount = json['volumes_count'];
chapterCount = json['chapter_count'];
pictureCount = json['picture_count'];
idx = json['idx'];
author = json['author'];
authorId = json['author_id'];
}
Map<String, dynamic> toJson() {
final _data = <String, dynamic>{};
_data['id'] = id;
_data['title'] = title;
_data['categories'] = categories;
_data['tags'] = tags;
_data['updated_at'] = updatedAt;
_data['created_at'] = createdAt;
_data['description'] = description;
_data['chinese_team'] = chineseTeam;
_data['finished'] = finished;
_data['cover_path'] = coverPath;
_data['author_avatar_path'] = authorAvatarPath;
_data['volumes'] = volumes.map((e) => e.toJson()).toList();
_data['volumes_count'] = volumesCount;
_data['chapter_count'] = chapterCount;
_data['picture_count'] = pictureCount;
_data['idx'] = idx;
_data['author'] = author;
_data['author_id'] = authorId;
return _data;
}
}
class PkzVolume {
PkzVolume({
required this.id,
required this.title,
required this.updatedAt,
required this.createdAt,
required this.coverPath,
required this.chapters,
required this.chapterCount,
required this.pictureCount,
required this.idx,
});
late final String id;
late final String title;
late final int updatedAt;
late final int createdAt;
late final String coverPath;
late final List<PkzChapter> chapters;
late final int chapterCount;
late final int pictureCount;
late final int idx;
PkzVolume.fromJson(Map<String, dynamic> json) {
id = json['id'];
title = json['title'];
updatedAt = json['updated_at'];
createdAt = json['created_at'];
coverPath = json['cover_path'];
chapters =
List.from(json['chapters']).map((e) => PkzChapter.fromJson(e)).toList();
chapterCount = json['chapter_count'];
pictureCount = json['picture_count'];
idx = json['idx'];
}
Map<String, dynamic> toJson() {
final _data = <String, dynamic>{};
_data['id'] = id;
_data['title'] = title;
_data['updated_at'] = updatedAt;
_data['created_at'] = createdAt;
_data['cover_path'] = coverPath;
_data['chapters'] = chapters.map((e) => e.toJson()).toList();
_data['chapter_count'] = chapterCount;
_data['picture_count'] = pictureCount;
_data['idx'] = idx;
return _data;
}
}
class PkzChapter {
PkzChapter({
required this.id,
required this.title,
required this.updatedAt,
required this.createdAt,
required this.coverPath,
required this.pictures,
required this.pictureCount,
required this.idx,
});
late final String id;
late final String title;
late final int updatedAt;
late final int createdAt;
late final String coverPath;
late final List<PkzPicture> pictures;
late final int pictureCount;
late final int idx;
PkzChapter.fromJson(Map<String, dynamic> json) {
id = json['id'];
title = json['title'];
updatedAt = json['updated_at'];
createdAt = json['created_at'];
coverPath = json['cover_path'];
pictures =
List.from(json['pictures']).map((e) => PkzPicture.fromJson(e)).toList();
pictureCount = json['picture_count'];
idx = json['idx'];
}
Map<String, dynamic> toJson() {
final _data = <String, dynamic>{};
_data['id'] = id;
_data['title'] = title;
_data['updated_at'] = updatedAt;
_data['created_at'] = createdAt;
_data['cover_path'] = coverPath;
_data['pictures'] = pictures.map((e) => e.toJson()).toList();
_data['picture_count'] = pictureCount;
_data['idx'] = idx;
return _data;
}
}
class PkzPicture {
PkzPicture({
required this.id,
required this.title,
required this.width,
required this.height,
required this.format,
required this.picturePath,
required this.idx,
});
late final String id;
late final String title;
late final int width;
late final int height;
late final String format;
late final String picturePath;
late final int idx;
PkzPicture.fromJson(Map<String, dynamic> json) {
id = json['id'];
title = json['title'];
width = json['width'];
height = json['height'];
format = json['format'];
picturePath = json['picture_path'];
idx = json['idx'];
}
Map<String, dynamic> toJson() {
final _data = <String, dynamic>{};
_data['id'] = id;
_data['title'] = title;
_data['width'] = width;
_data['height'] = height;
_data['format'] = format;
_data['picture_path'] = picturePath;
_data['idx'] = idx;
return _data;
}
}
class Knight extends BasicUser {
late final String role;
late final String character;
late final int comicsUploaded;
Knight.fromJson(Map<String, dynamic> json) : super.fromJson(json) {
role = json['role'];
character = json['character'];
comicsUploaded = json['comicsUploaded'];
}
}
class PkzComicViewLog {
PkzComicViewLog({
required this.fileName,
required this.lastViewComicId,
required this.filePath,
required this.lastViewComicTitle,
required this.lastViewEpId,
required this.lastViewEpName,
required this.lastViewPictureRank,
required this.lastViewTime,
});
late final String fileName;
late final String lastViewComicId;
late final String filePath;
late final String lastViewComicTitle;
late final String lastViewEpId;
late final String lastViewEpName;
late final int lastViewPictureRank;
late final String lastViewTime;
PkzComicViewLog.fromJson(Map<String, dynamic> json){
fileName = json['fileName'];
lastViewComicId = json['lastViewComicId'];
filePath = json['filePath'];
lastViewComicTitle = json['lastViewComicTitle'];
lastViewEpId = json['lastViewEpId'];
lastViewEpName = json['lastViewEpName'];
lastViewPictureRank = json['lastViewPictureRank'];
lastViewTime = json['lastViewTime'];
}
Map<String, dynamic> toJson() {
final _data = <String, dynamic>{};
_data['fileName'] = fileName;
_data['lastViewComicId'] = lastViewComicId;
_data['filePath'] = filePath;
_data['lastViewComicTitle'] = lastViewComicTitle;
_data['lastViewEpId'] = lastViewEpId;
_data['lastViewEpName'] = lastViewEpName;
_data['lastViewPictureRank'] = lastViewPictureRank;
_data['lastViewTime'] = lastViewTime;
return _data;
}
}