import 'package:PiliPlus/models/model_avatar.dart' hide Avatar; import 'package:PiliPlus/models/space/achieve.dart'; import 'package:PiliPlus/models/space/avatar.dart'; import 'package:PiliPlus/models/space/entrance.dart'; import 'package:PiliPlus/models/space/honours.dart'; import 'package:PiliPlus/models/space/level_info.dart'; import 'package:PiliPlus/models/space/likes.dart'; import 'package:PiliPlus/models/space/nameplate.dart'; import 'package:PiliPlus/models/space/nft_certificate.dart'; import 'package:PiliPlus/models/space/official_verify.dart'; import 'package:PiliPlus/models/space/pr_info.dart'; import 'package:PiliPlus/models/space/profession_verify.dart'; import 'package:PiliPlus/models/space/relation.dart'; import 'package:PiliPlus/models/space/space_tag_bottom.dart'; class SpaceCard { Avatar? avatar; String? mid; String? name; bool? approve; String? rank; String? face; String? displayRank; int? regtime; int? spacesta; String? birthday; String? place; String? description; int? article; dynamic attentions; late int fans; int? friend; late int attention; String? sign; LevelInfo? levelInfo; Pendant? pendant; Nameplate? nameplate; OfficialVerify? officialVerify; ProfessionVerify? professionVerify; Vip? vip; int? silence; int? endTime; String? silenceUrl; Likes? likes; Achieve? achieve; String? pendantUrl; String? pendantTitle; PrInfo? prInfo; Relation? relation; int? isDeleted; Honours? honours; // Profession? profession; // School? school; List? spaceTag; int? faceNftNew; bool? hasFaceNft; NftCertificate? nftCertificate; Entrance? entrance; String? nftId; dynamic nftFaceIcon; List? spaceTagBottom; String? digitalId; int? digitalType; bool? hasDigitalAsset; SpaceCard.fromJson(Map json) { avatar = json['avatar'] == null ? null : Avatar.fromJson(json['avatar'] as Map); mid = json['mid'] as String?; name = json['name'] as String?; approve = json['approve'] as bool?; rank = json['rank'] as String?; face = json['face'] as String?; displayRank = json['DisplayRank'] as String?; regtime = (json['regtime'] as num?)?.toInt(); spacesta = (json['spacesta'] as num?)?.toInt(); birthday = json['birthday'] as String?; place = json['place'] as String?; description = json['description'] as String?; article = (json['article'] as num?)?.toInt(); attentions = json['attentions']; fans = (json['fans'] as num?)?.toInt() ?? 0; friend = (json['friend'] as num?)?.toInt(); attention = (json['attention'] as num?)?.toInt() ?? 0; sign = json['sign'] as String?; levelInfo = json['level_info'] == null ? null : LevelInfo.fromJson(json['level_info'] as Map); pendant = json['pendant'] == null ? null : Pendant.fromJson(json['pendant'] as Map); nameplate = json['nameplate'] == null ? null : Nameplate.fromJson(json['nameplate'] as Map); officialVerify = json['official_verify'] == null ? null : OfficialVerify.fromJson( json['official_verify'] as Map); professionVerify = json['profession_verify'] == null ? null : ProfessionVerify.fromJson( json['profession_verify'] as Map); vip = json['vip'] == null ? null : CardVip.fromJson(json['vip'] as Map); silence = (json['silence'] as num?)?.toInt(); endTime = (json['end_time'] as num?)?.toInt(); silenceUrl = json['silence_url'] as String?; likes = json['likes'] == null ? null : Likes.fromJson(json['likes'] as Map); achieve = json['achieve'] == null ? null : Achieve.fromJson(json['achieve'] as Map); pendantUrl = json['pendant_url'] as String?; pendantTitle = json['pendant_title'] as String?; prInfo = json['pr_info'] == null ? null : PrInfo.fromJson(json['pr_info'] as Map); relation = json['relation'] == null ? null : Relation.fromJson(json['relation'] as Map); isDeleted = (json['is_deleted'] as num?)?.toInt(); honours = json['honours'] == null ? null : Honours.fromJson(json['honours'] as Map); // profession = json['profession'] == null // ? null // : Profession.fromJson(json['profession'] as Map); // school = json['school'] == null // ? null // : School.fromJson(json['school'] as Map); spaceTag = (json['space_tag'] as List?) ?.where((item) => (item['title'] as String?)?.startsWith('IP') == true) .toList() .map((item) => Item.fromJson(item)) .toList(); faceNftNew = (json['face_nft_new'] as num?)?.toInt(); hasFaceNft = json['has_face_nft'] as bool?; nftCertificate = json['nft_certificate'] == null ? null : NftCertificate.fromJson( json['nft_certificate'] as Map); entrance = json['entrance'] == null ? null : Entrance.fromJson(json['entrance'] as Map); nftId = json['nft_id'] as String?; nftFaceIcon = json['nft_face_icon']; spaceTagBottom = (json['space_tag_bottom'] as List?) ?.map((item) => Item.fromJson(item)) .toList(); digitalId = json['digital_id'] as String?; digitalType = (json['digital_type'] as num?)?.toInt(); hasDigitalAsset = json['has_digital_asset'] as bool?; } } class CardVip implements Vip { @override int? dueDate; @override Label? label; @override late int status; @override int? type; CardVip.fromJson(Map json) { type = json['vipType']; status = json['vipStatus'] ?? 0; dueDate = json['vipDueDate']; if (json['label'] != null) label = Label.fromJson(json['label']); } }