51 lines
1.3 KiB
Dart
51 lines
1.3 KiB
Dart
/// آمار بازیِ کاربر (در صورت قفل بودن، null است).
|
|
class ProfileStats {
|
|
final int games;
|
|
final int wins;
|
|
final int losses;
|
|
final int kotMade;
|
|
final int kotReceived;
|
|
final int cuts;
|
|
final int hakemCount;
|
|
const ProfileStats({
|
|
required this.games,
|
|
required this.wins,
|
|
required this.losses,
|
|
required this.kotMade,
|
|
required this.kotReceived,
|
|
required this.cuts,
|
|
required this.hakemCount,
|
|
});
|
|
}
|
|
|
|
/// موجودیتِ کاملِ پروفایل (نام/آواتار + خلاصهی اقتصادی + آمار).
|
|
class ProfileEntity {
|
|
final String name;
|
|
final String avatar;
|
|
final String avatarImg; // شخصیتِ آواتارِ انتخابی (<id>.<ext>؛ خالی ⇒ تصادفی)
|
|
final String mobile;
|
|
final int level;
|
|
final int trophies;
|
|
final int xpInto;
|
|
final int xpNext;
|
|
final bool vip;
|
|
final int rankPoints;
|
|
final String rankTier; // bronze..king
|
|
final ProfileStats? stats; // null یعنی قفل (غیر VIP)
|
|
|
|
const ProfileEntity({
|
|
required this.name,
|
|
required this.avatar,
|
|
this.avatarImg = '',
|
|
required this.mobile,
|
|
required this.level,
|
|
required this.trophies,
|
|
required this.xpInto,
|
|
required this.xpNext,
|
|
required this.vip,
|
|
required this.rankPoints,
|
|
required this.rankTier,
|
|
required this.stats,
|
|
});
|
|
}
|