import 'package:PiliPlus/models/model_owner.dart'; import 'package:PiliPlus/models_new/later/bangumi.dart'; import 'package:PiliPlus/models_new/later/page.dart'; import 'package:PiliPlus/models_new/later/rights.dart'; import 'package:PiliPlus/models_new/later/stat.dart'; import 'package:PiliPlus/models_new/video/video_detail/dimension.dart'; import 'package:PiliPlus/pages/common/multi_select/base.dart'; class LaterItemModel with MultiSelectData { int? aid; int? videos; String? pic; String? title; String? subtitle; int? pubdate; int? duration; String? redirectUrl; Rights? rights; Owner? owner; Stat? stat; List? pages; Bangumi? bangumi; int? cid; int? progress; String? bvid; bool? isPgc; String? pgcLabel; bool? isPugv; int? seasonId; bool? isCharging; Dimension? dimension; LaterItemModel({ this.aid, this.videos, this.pic, this.title, this.subtitle, this.pubdate, this.duration, this.redirectUrl, this.rights, this.owner, this.stat, this.pages, this.bangumi, this.cid, this.progress, this.bvid, this.isPgc, this.pgcLabel, this.isPugv, this.seasonId, this.isCharging, this.dimension, }); factory LaterItemModel.fromJson(Map json) => LaterItemModel( aid: json['aid'] as int?, videos: json['videos'] as int?, pic: json['pic'] as String?, title: json['title'] as String?, pubdate: json['pubdate'] as int?, duration: json['duration'] as int?, redirectUrl: json['redirect_url'] as String?, rights: json['rights'] == null ? null : Rights.fromJson(json['rights'] as Map), owner: json['owner'] == null ? null : Owner.fromJson(json['owner'] as Map), stat: json['stat'] == null ? null : Stat.fromJson(json['stat'] as Map), pages: (json['pages'] as List?) ?.map((e) => Page.fromJson(e as Map)) .toList(), bangumi: json['bangumi'] == null ? null : Bangumi.fromJson(json['bangumi'] as Map), subtitle: json['bangumi'] == null ? null : (json['title'] as String).replaceFirst( '${json['bangumi']['season']['title']} ', '', ), cid: json['cid'] as int?, progress: json['progress'] as int?, bvid: json['bvid'] as String?, isPgc: json['is_pgc'] as bool?, pgcLabel: json['pgc_label'] == '' ? null : json['pgc_label'], isPugv: json['is_pugv'] as bool?, seasonId: json['season_id'] as int?, isCharging: json['charging_pay']?['level'] != null, dimension: json['dimension'] == null ? null : Dimension.fromJson(json['dimension'] as Map), ); }