mirror of
https://github.com/HChaZZY/PiliPlus.git
synced 2025-12-25 11:36:45 +08:00
feat: upower rank page
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
56
lib/models/upower_rank/data.dart
Normal file
56
lib/models/upower_rank/data.dart
Normal file
@@ -0,0 +1,56 @@
|
||||
import 'package:PiliPlus/models/upower_rank/level_info.dart';
|
||||
import 'package:PiliPlus/models/upower_rank/rank_info.dart';
|
||||
import 'package:PiliPlus/models/upower_rank/up_info.dart';
|
||||
import 'package:PiliPlus/models/upower_rank/user_info.dart';
|
||||
|
||||
class UpowerRankData {
|
||||
UpInfo? upInfo;
|
||||
List<UpowerRankInfo>? rankInfo;
|
||||
UserInfo? userInfo;
|
||||
int? memberTotal;
|
||||
int? privilegeType;
|
||||
bool? isCharge;
|
||||
List<int>? tabs;
|
||||
List<LevelInfo>? levelInfo;
|
||||
|
||||
UpowerRankData({
|
||||
this.upInfo,
|
||||
this.rankInfo,
|
||||
this.userInfo,
|
||||
this.memberTotal,
|
||||
this.privilegeType,
|
||||
this.isCharge,
|
||||
this.tabs,
|
||||
this.levelInfo,
|
||||
});
|
||||
|
||||
factory UpowerRankData.fromJson(Map<String, dynamic> json) => UpowerRankData(
|
||||
upInfo: json['up_info'] == null
|
||||
? null
|
||||
: UpInfo.fromJson(json['up_info'] as Map<String, dynamic>),
|
||||
rankInfo: (json['rank_info'] as List<dynamic>?)
|
||||
?.map((e) => UpowerRankInfo.fromJson(e as Map<String, dynamic>))
|
||||
.toList(),
|
||||
userInfo: json['user_info'] == null
|
||||
? null
|
||||
: UserInfo.fromJson(json['user_info'] as Map<String, dynamic>),
|
||||
memberTotal: json['member_total'] as int?,
|
||||
privilegeType: json['privilege_type'] as int?,
|
||||
isCharge: json['is_charge'] as bool?,
|
||||
tabs: (json['tabs'] as List?)?.map((e) => (e as num).toInt()).toList(),
|
||||
levelInfo: (json['level_info'] as List<dynamic>?)
|
||||
?.map((e) => LevelInfo.fromJson(e as Map<String, dynamic>))
|
||||
.toList(),
|
||||
);
|
||||
|
||||
Map<String, dynamic> toJson() => {
|
||||
'up_info': upInfo?.toJson(),
|
||||
'rank_info': rankInfo?.map((e) => e.toJson()).toList(),
|
||||
'user_info': userInfo?.toJson(),
|
||||
'member_total': memberTotal,
|
||||
'privilege_type': privilegeType,
|
||||
'is_charge': isCharge,
|
||||
'tabs': tabs,
|
||||
'level_info': levelInfo?.map((e) => e.toJson()).toList(),
|
||||
};
|
||||
}
|
||||
22
lib/models/upower_rank/level_info.dart
Normal file
22
lib/models/upower_rank/level_info.dart
Normal file
@@ -0,0 +1,22 @@
|
||||
class LevelInfo {
|
||||
int? privilegeType;
|
||||
String? name;
|
||||
int? price;
|
||||
int? memberTotal;
|
||||
|
||||
LevelInfo({this.privilegeType, this.name, this.price, this.memberTotal});
|
||||
|
||||
factory LevelInfo.fromJson(Map<String, dynamic> json) => LevelInfo(
|
||||
privilegeType: json['privilege_type'] as int?,
|
||||
name: json['name'] as String?,
|
||||
price: json['price'] as int?,
|
||||
memberTotal: json['member_total'] as int?,
|
||||
);
|
||||
|
||||
Map<String, dynamic> toJson() => {
|
||||
'privilege_type': privilegeType,
|
||||
'name': name,
|
||||
'price': price,
|
||||
'member_total': memberTotal,
|
||||
};
|
||||
}
|
||||
39
lib/models/upower_rank/rank_info.dart
Normal file
39
lib/models/upower_rank/rank_info.dart
Normal file
@@ -0,0 +1,39 @@
|
||||
class UpowerRankInfo {
|
||||
int? mid;
|
||||
String? nickname;
|
||||
String? avatar;
|
||||
int? rank;
|
||||
int? day;
|
||||
int? expireAt;
|
||||
int? remainDays;
|
||||
|
||||
UpowerRankInfo({
|
||||
this.mid,
|
||||
this.nickname,
|
||||
this.avatar,
|
||||
this.rank,
|
||||
this.day,
|
||||
this.expireAt,
|
||||
this.remainDays,
|
||||
});
|
||||
|
||||
factory UpowerRankInfo.fromJson(Map<String, dynamic> json) => UpowerRankInfo(
|
||||
mid: json['mid'] as int?,
|
||||
nickname: json['nickname'] as String?,
|
||||
avatar: json['avatar'] as String?,
|
||||
rank: json['rank'] as int?,
|
||||
day: json['day'] as int?,
|
||||
expireAt: json['expire_at'] as int?,
|
||||
remainDays: json['remain_days'] as int?,
|
||||
);
|
||||
|
||||
Map<String, dynamic> toJson() => {
|
||||
'mid': mid,
|
||||
'nickname': nickname,
|
||||
'avatar': avatar,
|
||||
'rank': rank,
|
||||
'day': day,
|
||||
'expire_at': expireAt,
|
||||
'remain_days': remainDays,
|
||||
};
|
||||
}
|
||||
35
lib/models/upower_rank/up_info.dart
Normal file
35
lib/models/upower_rank/up_info.dart
Normal file
@@ -0,0 +1,35 @@
|
||||
class UpInfo {
|
||||
int? mid;
|
||||
String? nickname;
|
||||
String? avatar;
|
||||
int? type;
|
||||
String? title;
|
||||
int? upowerState;
|
||||
|
||||
UpInfo({
|
||||
this.mid,
|
||||
this.nickname,
|
||||
this.avatar,
|
||||
this.type,
|
||||
this.title,
|
||||
this.upowerState,
|
||||
});
|
||||
|
||||
factory UpInfo.fromJson(Map<String, dynamic> json) => UpInfo(
|
||||
mid: json['mid'] as int?,
|
||||
nickname: json['nickname'] as String?,
|
||||
avatar: json['avatar'] as String?,
|
||||
type: json['type'] as int?,
|
||||
title: json['title'] as String?,
|
||||
upowerState: json['upower_state'] as int?,
|
||||
);
|
||||
|
||||
Map<String, dynamic> toJson() => {
|
||||
'mid': mid,
|
||||
'nickname': nickname,
|
||||
'avatar': avatar,
|
||||
'type': type,
|
||||
'title': title,
|
||||
'upower_state': upowerState,
|
||||
};
|
||||
}
|
||||
39
lib/models/upower_rank/user_info.dart
Normal file
39
lib/models/upower_rank/user_info.dart
Normal file
@@ -0,0 +1,39 @@
|
||||
class UserInfo {
|
||||
int? mid;
|
||||
String? nickname;
|
||||
String? avatar;
|
||||
int? rank;
|
||||
int? day;
|
||||
int? expireAt;
|
||||
int? remainDays;
|
||||
|
||||
UserInfo({
|
||||
this.mid,
|
||||
this.nickname,
|
||||
this.avatar,
|
||||
this.rank,
|
||||
this.day,
|
||||
this.expireAt,
|
||||
this.remainDays,
|
||||
});
|
||||
|
||||
factory UserInfo.fromJson(Map<String, dynamic> json) => UserInfo(
|
||||
mid: json['mid'] as int?,
|
||||
nickname: json['nickname'] as String?,
|
||||
avatar: json['avatar'] as String?,
|
||||
rank: json['rank'] as int?,
|
||||
day: json['day'] as int?,
|
||||
expireAt: json['expire_at'] as int?,
|
||||
remainDays: json['remain_days'] as int?,
|
||||
);
|
||||
|
||||
Map<String, dynamic> toJson() => {
|
||||
'mid': mid,
|
||||
'nickname': nickname,
|
||||
'avatar': avatar,
|
||||
'rank': rank,
|
||||
'day': day,
|
||||
'expire_at': expireAt,
|
||||
'remain_days': remainDays,
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user