import 'package:mangayomi/eval/model/m_chapter.dart'; import 'package:mangayomi/models/manga.dart'; import 'package:mangayomi/utils/extensions/string_extensions.dart'; class MManga { String? name; String? link; String? imageUrl; String? description; String? author; String? artist; Status? status; List? genre; List? chapters; MManga( {this.author, this.artist, this.genre, this.imageUrl, this.link, this.name, this.status = Status.unknown, this.description, this.chapters}); factory MManga.fromJson(Map json) { return MManga( name: json['name'], link: json['link'], imageUrl: json['imageUrl'], description: json['description'], author: json['author'], artist: json['artist'], status: switch (json['status'] as int?) { 0 => Status.ongoing, 1 => Status.completed, 2 => Status.onHiatus, 3 => Status.canceled, 4 => Status.publishingFinished, _ => Status.unknown, }, genre: (json['genre'] as List?)?.map((e) => e.toString()).toList() ?? [], chapters: json['chapters'] != null ? (json['chapters'] as List).map((e) => MChapter.fromJson(e)).toList() : json['episodes'] != null ? (json['episodes'] as List).map((e) => MChapter.fromJson(e)).toList() : []); } Map toJson() => { 'name': name, 'link': link, 'imageUrl': imageUrl, 'description': description, 'author': author, 'artist': artist, 'status': status.toString().substringAfter("."), 'genre': genre, 'chapters': chapters!.map((e) => e.toJson()).toList() }; }