import '../model_parser.dart'; import 'skywood_category.dart'; class SkywoodDrama { final int? id; final int shortId; int? shortPlayId; final String name; final String description; final String imageUrl; final String horizontallyImg; int collectTotal; final int watchTotal; final int episodeTotal; final String? playSeconds; bool? isCollect; final String? videoUrl; final Map? videoInfo; final List? category; final List? categoryList; final String tagType; int? episode; final int? process; final int? buyType; final int? searchClickTotal; final int? shortPlayVideoId; final int? currentEpisode; int? historyTime; SkywoodDrama({ this.id, required this.shortId, this.shortPlayId, required this.name, required this.description, required this.imageUrl, required this.horizontallyImg, required this.collectTotal, required this.watchTotal, required this.episodeTotal, this.playSeconds, this.isCollect, this.videoUrl, this.videoInfo, this.category, this.categoryList, required this.tagType, this.episode, this.process, this.buyType, this.searchClickTotal, this.shortPlayVideoId, this.currentEpisode, this.historyTime, }); factory SkywoodDrama.fromJson(Map json) { return SkywoodDrama( id: json['id'] == null ? null : parseInt(json['id']), shortId: parseInt(json['short_id']), shortPlayId: json['short_play_id'] == null ? null : parseInt(json['short_play_id']), name: parseString(json['name']), description: parseString(json['description']), imageUrl: parseString(json['image_url']), horizontallyImg: parseString(json['horizontally_img']), collectTotal: parseInt(json['collect_total']), watchTotal: parseInt(json['watch_total']), episodeTotal: parseInt(json['episode_total']), playSeconds: json['play_seconds'] as String?, isCollect: json['is_collect'] == null ? null : parseBool(json['is_collect']), videoUrl: json['video_url'] as String?, videoInfo: parseMap(json['video_info']), category: parseStringList(json['category']), categoryList: json['categoryList'] == null ? null : parseModelList(json['categoryList'], SkywoodCategory.fromJson), tagType: parseString(json['tag_type']), episode: json['episode'] == null ? null : parseInt(json['episode']), process: json['process'] == null ? null : parseInt(json['process']), buyType: json['buy_type'] == null ? null : parseInt(json['buy_type']), searchClickTotal: json['search_click_total'] == null ? null : parseInt(json['search_click_total']), shortPlayVideoId: json['short_play_video_id'] == null ? null : parseInt(json['short_play_video_id']), currentEpisode: json['current_episode'] == null ? null : parseInt(json['current_episode']), historyTime: json['history_time'] == null ? null : parseInt(json['history_time']), ); } Map toJson() { return { 'id': id, 'short_id': shortId, 'short_play_id': shortPlayId, 'name': name, 'description': description, 'image_url': imageUrl, 'horizontally_img': horizontallyImg, 'collect_total': collectTotal, 'watch_total': watchTotal, 'episode_total': episodeTotal, 'play_seconds': playSeconds, 'is_collect': isCollect, 'video_url': videoUrl, 'video_info': videoInfo, 'category': category, 'categoryList': categoryList?.map((item) => item.toJson()).toList(), 'tag_type': tagType, 'episode': episode, 'process': process, 'buy_type': buyType, 'search_click_total': searchClickTotal, 'short_play_video_id': shortPlayVideoId, 'current_episode': currentEpisode, 'history_time': historyTime, }; } SkywoodDrama copyWith({ int? id, int? shortId, int? shortPlayId, String? name, String? description, String? imageUrl, String? horizontallyImg, int? collectTotal, int? watchTotal, int? episodeTotal, String? playSeconds, bool? isCollect, String? videoUrl, Map? videoInfo, List? category, List? categoryList, String? tagType, int? episode, int? process, int? buyType, int? searchClickTotal, int? shortPlayVideoId, int? currentEpisode, int? historyTime, }) { return SkywoodDrama( id: id ?? this.id, shortId: shortId ?? this.shortId, shortPlayId: shortPlayId ?? this.shortPlayId, name: name ?? this.name, description: description ?? this.description, imageUrl: imageUrl ?? this.imageUrl, horizontallyImg: horizontallyImg ?? this.horizontallyImg, collectTotal: collectTotal ?? this.collectTotal, watchTotal: watchTotal ?? this.watchTotal, episodeTotal: episodeTotal ?? this.episodeTotal, playSeconds: playSeconds ?? this.playSeconds, isCollect: isCollect ?? this.isCollect, videoUrl: videoUrl ?? this.videoUrl, videoInfo: videoInfo ?? this.videoInfo, category: category ?? this.category, categoryList: categoryList ?? this.categoryList, tagType: tagType ?? this.tagType, episode: episode ?? this.episode, process: process ?? this.process, buyType: buyType ?? this.buyType, searchClickTotal: searchClickTotal ?? this.searchClickTotal, shortPlayVideoId: shortPlayVideoId ?? this.shortPlayVideoId, currentEpisode: currentEpisode ?? this.currentEpisode, historyTime: historyTime ?? this.historyTime, ); } }