//漫画章节 import 'package:hgdj/config/address.dart' as address; import 'package:path/path.dart' as path; import '../media_content.dart'; class ComicChapterInfo { int? episodeNumber; bool? hasBuy; String? id; int? listenPermission; // 0:会员 1:金币购买 2:免费 String? mediaId; String? name; int? price; String? createdAt; String? cover; String? audioUrl; bool inFreeEpisode = false; //是否属于免费集数(前 freeEpisode 集) MediaContent? mediaContent; //(另外的接口数据返回,外部手动赋值) // 有声小说 String get getRealAudioUrl { if (audioUrl == null || audioUrl!.isEmpty) { return ""; } if (!audioUrl!.startsWith("http") && !audioUrl!.startsWith("https")) { return path.join(address.Address.audioCdnAddress ?? '', audioUrl); } return audioUrl!; } ComicChapterInfo({ this.episodeNumber, this.hasBuy, this.id, this.listenPermission, this.mediaId, this.name, this.price, this.createdAt, this.cover, this.audioUrl, }); ComicChapterInfo.fromJson(Map json) { episodeNumber = json['episodeNumber']; hasBuy = json['hasBuy']; id = json['id']; listenPermission = json['listenPermission']; mediaId = json['mediaId']; name = json['name']; price = json['price']; createdAt = json['createdAt']; cover = json['cover']; audioUrl = json['audioUrl']; } Map toJson() { final Map data = {}; data['episodeNumber'] = episodeNumber; data['hasBuy'] = hasBuy; data['id'] = id; data['listenPermission'] = listenPermission; data['mediaId'] = mediaId; data['name'] = name; data['price'] = price; return data; } }