opt models

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
bggRGjQaUbCoE
2025-06-04 15:20:35 +08:00
parent f50b1d2beb
commit b960359a39
858 changed files with 11000 additions and 12588 deletions

View File

@@ -0,0 +1,23 @@
class CntInfo {
int? collect;
int? play;
int? thumbUp;
int? share;
int? danmaku;
CntInfo({
this.collect,
this.play,
this.thumbUp,
this.share,
this.danmaku,
});
factory CntInfo.fromJson(Map<String, dynamic> json) => CntInfo(
collect: json['collect'] as int?,
play: json['play'] as int?,
thumbUp: json['thumb_up'] as int?,
share: json['share'] as int?,
danmaku: json['danmaku'] as int?,
);
}

View File

@@ -0,0 +1,22 @@
import 'package:PiliPlus/models_new/fav/fav_detail/media.dart';
import 'package:PiliPlus/models_new/fav/fav_video/list.dart';
class FavDetailData {
FavVideoItemModel? info;
List<FavDetailItemModel>? medias;
bool? hasMore;
int? ttl;
FavDetailData({this.info, this.medias, this.hasMore, this.ttl});
factory FavDetailData.fromJson(Map<String, dynamic> json) => FavDetailData(
info: json['info'] == null
? null
: FavVideoItemModel.fromJson(json['info'] as Map<String, dynamic>),
medias: (json['medias'] as List<dynamic>?)
?.map((e) => FavDetailItemModel.fromJson(e as Map<String, dynamic>))
.toList(),
hasMore: json['has_more'] as bool?,
ttl: json['ttl'] as int?,
);
}

View File

@@ -0,0 +1,69 @@
import 'package:PiliPlus/models_new/fav/fav_detail/cnt_info.dart';
import 'package:PiliPlus/models_new/fav/fav_detail/upper.dart';
class FavDetailInfo {
int? id;
int? fid;
int? mid;
int? attr;
String? title;
String? cover;
Upper? upper;
int? coverType;
CntInfo? cntInfo;
int? type;
String? intro;
int? ctime;
int? mtime;
int? state;
int? favState;
int? likeState;
int? mediaCount;
bool? isTop;
FavDetailInfo({
this.id,
this.fid,
this.mid,
this.attr,
this.title,
this.cover,
this.upper,
this.coverType,
this.cntInfo,
this.type,
this.intro,
this.ctime,
this.mtime,
this.state,
this.favState,
this.likeState,
this.mediaCount,
this.isTop,
});
factory FavDetailInfo.fromJson(Map<String, dynamic> json) => FavDetailInfo(
id: json['id'] as int?,
fid: json['fid'] as int?,
mid: json['mid'] as int?,
attr: json['attr'] as int?,
title: json['title'] as String?,
cover: json['cover'] as String?,
upper: json['upper'] == null
? null
: Upper.fromJson(json['upper'] as Map<String, dynamic>),
coverType: json['cover_type'] as int?,
cntInfo: json['cnt_info'] == null
? null
: CntInfo.fromJson(json['cnt_info'] as Map<String, dynamic>),
type: json['type'] as int?,
intro: json['intro'] as String?,
ctime: json['ctime'] as int?,
mtime: json['mtime'] as int?,
state: json['state'] as int?,
favState: json['fav_state'] as int?,
likeState: json['like_state'] as int?,
mediaCount: json['media_count'] as int?,
isTop: json['is_top'] as bool?,
);
}

View File

@@ -0,0 +1,78 @@
import 'package:PiliPlus/models_new/fav/fav_detail/cnt_info.dart';
import 'package:PiliPlus/models_new/fav/fav_detail/ogv.dart';
import 'package:PiliPlus/models_new/fav/fav_detail/ugc.dart';
import 'package:PiliPlus/models_new/fav/fav_detail/upper.dart';
import 'package:PiliPlus/pages/common/multi_select_controller.dart';
class FavDetailItemModel with MultiSelectData {
int? id;
int? type;
String? title;
String? cover;
String? intro;
int? page;
int? duration;
Upper? upper;
int? attr;
CntInfo? cntInfo;
String? link;
int? ctime;
int? pubtime;
int? favTime;
String? bvId;
String? bvid;
Ogv? ogv;
Ugc? ugc;
String? mediaListLink;
FavDetailItemModel({
this.id,
this.type,
this.title,
this.cover,
this.intro,
this.page,
this.duration,
this.upper,
this.attr,
this.cntInfo,
this.link,
this.ctime,
this.pubtime,
this.favTime,
this.bvId,
this.bvid,
this.ogv,
this.ugc,
this.mediaListLink,
});
factory FavDetailItemModel.fromJson(Map<String, dynamic> json) =>
FavDetailItemModel(
id: json['id'] as int?,
type: json['type'] as int?,
title: json['title'] as String?,
cover: json['cover'] as String?,
intro: json['intro'] as String?,
page: json['page'] as int?,
duration: json['duration'] as int?,
upper: json['upper'] == null
? null
: Upper.fromJson(json['upper'] as Map<String, dynamic>),
attr: json['attr'] as int?,
cntInfo: json['cnt_info'] == null
? null
: CntInfo.fromJson(json['cnt_info'] as Map<String, dynamic>),
link: json['link'] as String?,
ctime: json['ctime'] as int?,
pubtime: json['pubtime'] as int?,
favTime: json['fav_time'] as int?,
bvId: json['bv_id'] as String?,
bvid: json['bvid'] as String?,
ogv: json['ogv'] == null ? null : Ogv.fromJson(json['ogv']),
ugc: json['ugc'] == null
? null
: Ugc.fromJson(json['ugc'] as Map<String, dynamic>),
mediaListLink: json['media_list_link'] as String?,
);
}

View File

@@ -0,0 +1,17 @@
class Ogv {
String? typeName;
int? typeId;
int? seasonId;
Ogv({
this.typeName,
this.typeId,
this.seasonId,
});
factory Ogv.fromJson(Map<String, dynamic> json) => Ogv(
typeName: json['type_name'],
typeId: json['type_id'],
seasonId: json['season_id'],
);
}

View File

@@ -0,0 +1,9 @@
class Ugc {
int? firstCid;
Ugc({this.firstCid});
factory Ugc.fromJson(Map<String, dynamic> json) => Ugc(
firstCid: json['first_cid'] as int?,
);
}

View File

@@ -0,0 +1,26 @@
class Upper {
int? mid;
String? name;
String? face;
bool? followed;
int? vipType;
int? vipStatue;
Upper({
this.mid,
this.name,
this.face,
this.followed,
this.vipType,
this.vipStatue,
});
factory Upper.fromJson(Map<String, dynamic> json) => Upper(
mid: json['mid'] as int?,
name: json['name'] as String?,
face: json['face'] as String?,
followed: json['followed'] as bool?,
vipType: json['vip_type'] as int?,
vipStatue: json['vip_statue'] as int?,
);
}