Files
huangguo_android/lib/hj_model/acg/comic_chapters_model.dart
2026-09-15 15:44:13 +07:00

72 lines
1.8 KiB
Dart

//漫画章节
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<String, dynamic> 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<String, dynamic> toJson() {
final Map<String, dynamic> data = <String, dynamic>{};
data['episodeNumber'] = episodeNumber;
data['hasBuy'] = hasBuy;
data['id'] = id;
data['listenPermission'] = listenPermission;
data['mediaId'] = mediaId;
data['name'] = name;
data['price'] = price;
return data;
}
}