import 'dart:convert'; /// id : 378 /// short_id : 150 /// short_play_id : 378 /// name : "Contractual Couple" /// description : "Shen Yuchu is Li Qian's superior. The two people who wouldn't have had any intersection originally were connected because of an unexpected one-night stand. What's more dramatic is that the ring representing the fate and predestination of the Shen family was accidentally worn on Li Qian's hand. After a series of events, Li Qian and Shen Yuchu signed a marriage agreement to be a couple in name only. But later, the appearance of the badge exposed a past event from their youth - Li Qian turned out to be the savior Shen Yuchu had been looking for all along. Can Shen Yuchu, who has already broken Li Qian's heart, win her heart back now? " /// process : 1 /// image_url : "https://static3.guyantv.com/eyJrZXkiOiJpbWFnZS83MDM3MGY2OWEyMzk5MzIwMjkwNi5qcGciLCJlZGl0cyI6eyJyZXNpemUiOnsiZml0IjoiY292ZXIiLCJ3aWR0aCI6MjIwfX19?sign=$1fea5d55dfbb3e2dacc00f8176af642021904100edcd3817c226ab211418d7a1e46b75ef14919a2207c044532067a7ae3f" /// horizontally_img : "" /// buy_type : 1 /// tag_type : "" /// all_coins : 0 /// collect_total : 50 /// watch_total : 7487 /// episode_total : 36 /// search_click_total : 7081 /// video_url : "https://static3.guyantv.com/videom3u8/389609ccb06761c46544/389609ccb06761c46544.m3u8" /// category : ["Sadomasochism"] /// video_info : {"id":19136,"short_play_video_id":19136,"short_play_id":207,"short_id":133,"promise_view_ad":0,"video_url":"https://static.wanmwl.com/videom3u8/a8ec99a023b074938e86/a8ec99a023b074938e86.m3u8","coins":0,"vip_coins":0,"episode":1,"is_vip":2,"revolution":{"r540":"videom3u8/a8ec99a023b074938e86/a8ec99a023b074938e86.m3u8","r720":"videom3u8/a8ec99a023b074938e86/a8ec99a023b074938e86.m3u8","r1080":"videom3u8/a8ec99a023b074938e86/a8ec99a023b074938e86.m3u8"},"image_url":"https://static.wanmwl.com/eyJrZXkiOiJpbWFnZS9iY2U2NTkyNDUwN2FmZDQyOTdkZC5qcGciLCJlZGl0cyI6eyJyZXNpemUiOnsiZml0IjoiY292ZXIifH19?sign=$13136e4e95c2a9c82971428cbd1d4f533b403890bb5a7c390b1d05a55588390cb27c74948f"} /// is_collect : false /// categoryList : [{"id":1,"name":""}] KtShortVideoBean ktShortVideoBeanFromJson(String str) => KtShortVideoBean.fromJson(json.decode(str)); String ktShortVideoBeanToJson(KtShortVideoBean data) => json.encode(data.toJson()); class KtShortVideoBean { KtShortVideoBean({ num? id, num? shortId, num? shortPlayId, String? name, String? description, num? process, num? playTime, String? imageUrl, String? horizontallyImg, num? buyType, String? tagType, num? allCoins, num? collectTotal, num? watchTotal, num? episodeTotal, num? searchClickTotal, String? videoUrl, List? category, VideoInfo? videoInfo, bool? isCollect, List? categoryList, }) { _id = id; _shortId = shortId; _shortPlayId = shortPlayId; _name = name; _description = description; _process = process; _playTime = playTime; _imageUrl = imageUrl; _horizontallyImg = horizontallyImg; _buyType = buyType; _tagType = tagType; _allCoins = allCoins; _collectTotal = collectTotal; _watchTotal = watchTotal; _episodeTotal = episodeTotal; _searchClickTotal = searchClickTotal; _videoUrl = videoUrl; _category = category; _videoInfo = videoInfo; _isCollect = isCollect; _categoryList = categoryList; } KtShortVideoBean.fromJson(dynamic json) { _id = json['id']; _shortId = json['short_id']; _shortPlayId = json['short_play_id']; _name = json['name']; _description = json['description']; _process = json['process']; _playTime = json['playTime']; _imageUrl = json['image_url']; _horizontallyImg = json['horizontally_img']; _buyType = json['buy_type']; _tagType = json['tag_type']; _allCoins = json['all_coins']; _collectTotal = json['collect_total']; _watchTotal = json['watch_total']; _episodeTotal = json['episode_total']; _searchClickTotal = json['search_click_total']; _videoUrl = json['video_url']; _category = json['category'] != null ? json['category'].cast() : []; _videoInfo = json['video_info'] != null ? VideoInfo.fromJson(json['video_info']) : null; _isCollect = json['is_collect']; if (json['categoryList'] != null) { _categoryList = []; json['categoryList'].forEach((v) { _categoryList?.add(Category.fromJson(v)); }); } } num? _id; num? _shortId; num? _shortPlayId; String? _name; String? _description; num? _process; num? _playTime; String? _imageUrl; String? _horizontallyImg; num? _buyType; String? _tagType; num? _allCoins; num? _collectTotal; num? _watchTotal; num? _episodeTotal; num? _searchClickTotal; String? _videoUrl; List? _category; VideoInfo? _videoInfo; bool? _isCollect; List? _categoryList; KtShortVideoBean copyWith({ num? id, num? shortId, num? shortPlayId, String? name, String? description, num? process, num? playTime, String? imageUrl, String? horizontallyImg, num? buyType, String? tagType, num? allCoins, num? collectTotal, num? watchTotal, num? episodeTotal, num? searchClickTotal, String? videoUrl, List? category, VideoInfo? videoInfo, bool? isCollect, List? categoryList, }) => KtShortVideoBean( id: id ?? _id, shortId: shortId ?? _shortId, shortPlayId: shortPlayId ?? _shortPlayId, name: name ?? _name, description: description ?? _description, process: process ?? _process, playTime: playTime ?? _playTime, imageUrl: imageUrl ?? _imageUrl, horizontallyImg: horizontallyImg ?? _horizontallyImg, buyType: buyType ?? _buyType, tagType: tagType ?? _tagType, allCoins: allCoins ?? _allCoins, collectTotal: collectTotal ?? _collectTotal, watchTotal: watchTotal ?? _watchTotal, episodeTotal: episodeTotal ?? _episodeTotal, searchClickTotal: searchClickTotal ?? _searchClickTotal, videoUrl: videoUrl ?? _videoUrl, category: category ?? _category, videoInfo: videoInfo ?? _videoInfo, isCollect: isCollect ?? _isCollect, categoryList: categoryList ?? _categoryList, ); num? get id => _id; num? get shortId => _shortId; num? get shortPlayId => _shortPlayId; String? get name => _name; String? get description => _description; num? get process => _process; num? get playTime => _playTime; String? get imageUrl => _imageUrl; String? get horizontallyImg => _horizontallyImg; num? get buyType => _buyType; String? get tagType => _tagType; num? get allCoins => _allCoins; num? get collectTotal => _collectTotal; num? get watchTotal => _watchTotal; num? get episodeTotal => _episodeTotal; num? get searchClickTotal => _searchClickTotal; String? get videoUrl => _videoUrl; List? get category => _category; VideoInfo? get videoInfo => _videoInfo; bool? get isCollect => _isCollect; List? get categoryList => _categoryList; set id(num? value) => _id = value; set shortId(num? value) => _shortId = value; set shortPlayId(num? value) => _shortPlayId = value; set name(String? value) => _name = value; set description(String? value) => _description = value; set process(num? value) => _process = value; set playTime(num? value) => _playTime = value; set imageUrl(String? value) => _imageUrl = value; set horizontallyImg(String? value) => _horizontallyImg = value; set buyType(num? value) => _buyType = value; set tagType(String? value) => _tagType = value; set allCoins(num? value) => _allCoins = value; set collectTotal(num? value) => _collectTotal = value; set watchTotal(num? value) => _watchTotal = value; set episodeTotal(num? value) => _episodeTotal = value; set searchClickTotal(num? value) => _searchClickTotal = value; set videoUrl(String? value) => _videoUrl = value; set category(List? value) => _category = value; set videoInfo(VideoInfo? value) => _videoInfo = value; set isCollect(bool? value) => _isCollect = value; set categoryList(List? value) => _categoryList = value; Map toJson() { final map = {}; map['id'] = _id; map['short_id'] = _shortId; map['short_play_id'] = _shortPlayId; map['name'] = _name; map['description'] = _description; map['process'] = _process; map['playTime'] = _playTime; map['image_url'] = _imageUrl; map['horizontally_img'] = _horizontallyImg; map['buy_type'] = _buyType; map['tag_type'] = _tagType; map['all_coins'] = _allCoins; map['collect_total'] = _collectTotal; map['watch_total'] = _watchTotal; map['episode_total'] = _episodeTotal; map['search_click_total'] = _searchClickTotal; map['video_url'] = _videoUrl; map['category'] = _category; if (_videoInfo != null) { map['video_info'] = _videoInfo?.toJson(); } map['is_collect'] = _isCollect; if (_categoryList != null) { map['categoryList'] = _categoryList?.map((v) => v.toJson()).toList(); } return map; } } /// id : 1 /// name : "" Category categoryFromJson(String str) => Category.fromJson(json.decode(str)); String categoryToJson(Category data) => json.encode(data.toJson()); class Category { Category({num? id, String? name}) { _id = id; _name = name; } Category.fromJson(dynamic json) { _id = json['id']; _name = json['name']; } num? _id; String? _name; Category copyWith({num? id, String? name}) => Category(id: id ?? _id, name: name ?? _name); num? get id => _id; String? get name => _name; set id(num? value) => _id = value; set name(String? value) => _name = value; Map toJson() { final map = {}; map['id'] = _id; map['name'] = _name; return map; } } /// id : 19136 /// short_play_video_id : 19136 /// short_play_id : 207 /// short_id : 133 /// promise_view_ad : 0 /// video_url : "https://static.wanmwl.com/videom3u8/a8ec99a023b074938e86/a8ec99a023b074938e86.m3u8" /// coins : 0 /// vip_coins : 0 /// episode : 1 /// is_vip : 2 /// revolution : {"r540":"videom3u8/a8ec99a023b074938e86/a8ec99a023b074938e86.m3u8","r720":"videom3u8/a8ec99a023b074938e86/a8ec99a023b074938e86.m3u8","r1080":"videom3u8/a8ec99a023b074938e86/a8ec99a023b074938e86.m3u8"} /// image_url : "https://static.wanmwl.com/eyJrZXkiOiJpbWFnZS9iY2U2NTkyNDUwN2FmZDQyOTdkZC5qcGciLCJlZGl0cyI6eyJyZXNpemUiOnsiZml0IjoiY292ZXIifH19?sign=$13136e4e95c2a9c82971428cbd1d4f533b403890bb5a7c390b1d05a55588390cb27c74948f" VideoInfo videoInfoFromJson(String str) => VideoInfo.fromJson(json.decode(str)); String videoInfoToJson(VideoInfo data) => json.encode(data.toJson()); class VideoInfo { VideoInfo({ num? id, num? shortPlayVideoId, num? shortPlayId, num? shortId, num? promiseViewAd, String? videoUrl, num? coins, num? vipCoins, num? episode, num? isVip, Revolution? revolution, String? imageUrl, }) { _id = id; _shortPlayVideoId = shortPlayVideoId; _shortPlayId = shortPlayId; _shortId = shortId; _promiseViewAd = promiseViewAd; _videoUrl = videoUrl; _coins = coins; _vipCoins = vipCoins; _episode = episode; _isVip = isVip; _revolution = revolution; _imageUrl = imageUrl; } VideoInfo.fromJson(dynamic json) { _id = json['id']; _shortPlayVideoId = json['short_play_video_id']; _shortPlayId = json['short_play_id']; _shortId = json['short_id']; _promiseViewAd = json['promise_view_ad']; _videoUrl = json['video_url']; _coins = json['coins']; _vipCoins = json['vip_coins']; _episode = json['episode']; _isVip = json['is_vip']; _revolution = json['revolution'] != null ? Revolution.fromJson(json['revolution']) : null; _imageUrl = json['image_url']; } num? _id; num? _shortPlayVideoId; num? _shortPlayId; num? _shortId; num? _promiseViewAd; String? _videoUrl; num? _coins; num? _vipCoins; num? _episode; num? _isVip; Revolution? _revolution; String? _imageUrl; VideoInfo copyWith({ num? id, num? shortPlayVideoId, num? shortPlayId, num? shortId, num? promiseViewAd, String? videoUrl, num? coins, num? vipCoins, num? episode, num? isVip, Revolution? revolution, String? imageUrl, }) => VideoInfo( id: id ?? _id, shortPlayVideoId: shortPlayVideoId ?? _shortPlayVideoId, shortPlayId: shortPlayId ?? _shortPlayId, shortId: shortId ?? _shortId, promiseViewAd: promiseViewAd ?? _promiseViewAd, videoUrl: videoUrl ?? _videoUrl, coins: coins ?? _coins, vipCoins: vipCoins ?? _vipCoins, episode: episode ?? _episode, isVip: isVip ?? _isVip, revolution: revolution ?? _revolution, imageUrl: imageUrl ?? _imageUrl, ); num? get id => _id; num? get shortPlayVideoId => _shortPlayVideoId; num? get shortPlayId => _shortPlayId; num? get shortId => _shortId; num? get promiseViewAd => _promiseViewAd; String? get videoUrl => _videoUrl; num? get coins => _coins; num? get vipCoins => _vipCoins; num? get episode => _episode; num? get isVip => _isVip; Revolution? get revolution => _revolution; String? get imageUrl => _imageUrl; set id(num? value) => _id = value; set shortPlayVideoId(num? value) => _shortPlayVideoId = value; set shortPlayId(num? value) => _shortPlayId = value; set shortId(num? value) => _shortId = value; set promiseViewAd(num? value) => _promiseViewAd = value; set videoUrl(String? value) => _videoUrl = value; set coins(num? value) => _coins = value; set vipCoins(num? value) => _vipCoins = value; set episode(num? value) => _episode = value; set isVip(num? value) => _isVip = value; set revolution(Revolution? value) => _revolution = value; set imageUrl(String? value) => _imageUrl = value; Map toJson() { final map = {}; map['id'] = _id; map['short_play_video_id'] = _shortPlayVideoId; map['short_play_id'] = _shortPlayId; map['short_id'] = _shortId; map['promise_view_ad'] = _promiseViewAd; map['video_url'] = _videoUrl; map['coins'] = _coins; map['vip_coins'] = _vipCoins; map['episode'] = _episode; map['is_vip'] = _isVip; if (_revolution != null) { map['revolution'] = _revolution?.toJson(); } map['image_url'] = _imageUrl; return map; } } /// r540 : "videom3u8/a8ec99a023b074938e86/a8ec99a023b074938e86.m3u8" /// r720 : "videom3u8/a8ec99a023b074938e86/a8ec99a023b074938e86.m3u8" /// r1080 : "videom3u8/a8ec99a023b074938e86/a8ec99a023b074938e86.m3u8" Revolution revolutionFromJson(String str) => Revolution.fromJson(json.decode(str)); String revolutionToJson(Revolution data) => json.encode(data.toJson()); class Revolution { Revolution({String? r540, String? r720, String? r1080}) { _r540 = r540; _r720 = r720; _r1080 = r1080; } Revolution.fromJson(dynamic json) { _r540 = json['540']; _r720 = json['720']; _r1080 = json['1080']; } String? _r540; String? _r720; String? _r1080; Revolution copyWith({String? r540, String? r720, String? r1080}) => Revolution( r540: r540 ?? _r540, r720: r720 ?? _r720, r1080: r1080 ?? _r1080, ); String? get r540 => _r540; String? get r720 => _r720; String? get r1080 => _r1080; set r540(String? value) => _r540 = value; set r720(String? value) => _r720 = value; set r1080(String? value) => _r1080 = value; Map toJson() { final map = {}; map['r540'] = _r540; map['r720'] = _r720; map['r1080'] = _r1080; return map; } }