import 'dart:convert'; T? asT(dynamic value) { if (value is T) { return value; } return null; } class NovelVolumeDetailModel { NovelVolumeDetailModel({ required this.volumeId, required this.volumeName, required this.volumeOrder, required this.chapters, }); factory NovelVolumeDetailModel.fromJson(Map json) { final List? chapters = json['chapters'] is List ? [] : null; if (chapters != null) { for (final dynamic item in json['chapters']!) { if (item != null) { chapters.add(NovelVolumeDetailChapterModel.fromJson( asT>(item)!)); } } } return NovelVolumeDetailModel( volumeId: asT(json['volume_id'])!, volumeName: asT(json['volume_name'])!, volumeOrder: asT(json['volume_order'])!, chapters: chapters!, ); } int volumeId; String volumeName; int volumeOrder; List chapters; @override String toString() { return jsonEncode(this); } Map toJson() => { 'volume_id': volumeId, 'volume_name': volumeName, 'volume_order': volumeOrder, 'chapters': chapters, }; } class NovelVolumeDetailChapterModel { NovelVolumeDetailChapterModel({ required this.chapterId, required this.chapterName, required this.chapterOrder, }); factory NovelVolumeDetailChapterModel.fromJson(Map json) => NovelVolumeDetailChapterModel( chapterId: asT(json['chapter_id'])!, chapterName: asT(json['chapter_name'])!, chapterOrder: asT(json['chapter_order'])!, ); int chapterId; String chapterName; int chapterOrder; @override String toString() { return jsonEncode(this); } Map toJson() => { 'chapter_id': chapterId, 'chapter_name': chapterName, 'chapter_order': chapterOrder, }; }