import 'dart:convert'; import 'package:get/get.dart'; T? asT(dynamic value) { if (value is T) { return value; } return null; } class UserSubscribeComicItemModel { UserSubscribeComicItemModel({ required this.id, required this.title, required this.cover, required this.subReaded, required this.lastUpdateChapterId, required this.lastUpdateChapterName, required this.comicPy, required this.status, required this.readingRecord, required this.hasNew, }); factory UserSubscribeComicItemModel.fromJson(Map json) => UserSubscribeComicItemModel( id: asT(json['id'])!, title: asT(json['title'])!, cover: asT(json['cover'])!, subReaded: asT(json['sub_readed'])!, lastUpdateChapterId: asT(json['last_update_chapter_id'])!, lastUpdateChapterName: asT(json['last_update_chapter_name'])!, comicPy: asT(json['comic_py'])!, status: asT(json['status'])!, readingRecord: ReadingRecord.fromJson( asT>(json['readingRecord'])!), hasNew: (asT(json['sub_readed']) == 0).obs, ); int id; String title; String cover; int subReaded; int lastUpdateChapterId; String lastUpdateChapterName; String comicPy; String status; ReadingRecord readingRecord; var isChecked = false.obs; var hasNew = false.obs; @override String toString() { return jsonEncode(this); } Map toJson() => { 'id': id, 'title': title, 'cover': cover, 'sub_readed': subReaded, 'last_update_chapter_id': lastUpdateChapterId, 'last_update_chapter_name': lastUpdateChapterName, 'comic_py': comicPy, 'status': status, 'readingRecord': readingRecord, }; } class ReadingRecord { ReadingRecord({ required this.typeName, required this.uid, required this.source, required this.bizId, required this.chapterId, required this.viewingTime, required this.record, required this.volumeId, required this.totalNum, required this.chapterName, required this.volumeName, }); factory ReadingRecord.fromJson(Map json) => ReadingRecord( typeName: asT(json['type_name'])!, uid: asT(json['uid'])!, source: asT(json['source'])!, bizId: asT(json['biz_id'])!, chapterId: asT(json['chapter_id'])!, viewingTime: asT(json['viewing_time'])!, record: asT(json['record'])!, volumeId: asT(json['volume_id'])!, totalNum: asT(json['total_num'])!, chapterName: asT(json['chapter_name'])!, volumeName: asT(json['volume_name'])!, ); String typeName; int uid; int source; int bizId; int chapterId; int viewingTime; int record; int volumeId; int totalNum; String chapterName; String volumeName; @override String toString() { return jsonEncode(this); } Map toJson() => { 'type_name': typeName, 'uid': uid, 'source': source, 'biz_id': bizId, 'chapter_id': chapterId, 'viewing_time': viewingTime, 'record': record, 'volume_id': volumeId, 'total_num': totalNum, 'chapter_name': chapterName, 'volume_name': volumeName, }; }