Badges

This commit is contained in:
2024-06-03 23:36:46 +08:00
parent 6090367ed6
commit 6007bdff77
14 changed files with 556 additions and 398 deletions

View File

@ -8,6 +8,7 @@ class Account {
dynamic avatar;
dynamic banner;
String description;
List<AccountBadge>? badges;
String? emailAddress;
int? externalId;
@ -21,6 +22,7 @@ class Account {
required this.avatar,
required this.banner,
required this.description,
required this.badges,
required this.emailAddress,
this.externalId,
});
@ -36,6 +38,10 @@ class Account {
banner: json['banner'],
description: json['description'],
emailAddress: json['email_address'],
badges: json['badges']
?.map((e) => AccountBadge.fromJson(e))
.toList()
.cast<AccountBadge>(),
externalId: json['external_id'],
);
@ -50,6 +56,49 @@ class Account {
'banner': banner,
'description': description,
'email_address': emailAddress,
'badges': badges?.map((e) => e.toJson()).toList(),
'external_id': externalId,
};
}
class AccountBadge {
int id;
DateTime createdAt;
DateTime updatedAt;
DateTime? deletedAt;
Map<String, dynamic>? metadata;
String type;
int accountId;
AccountBadge({
required this.id,
required this.accountId,
required this.createdAt,
required this.updatedAt,
required this.deletedAt,
required this.metadata,
required this.type,
});
factory AccountBadge.fromJson(Map<String, dynamic> json) => AccountBadge(
id: json["id"],
accountId: json["account_id"],
updatedAt: DateTime.parse(json["updated_at"]),
createdAt: DateTime.parse(json["created_at"]),
deletedAt: json["deleted_at"] != null
? DateTime.parse(json["deleted_at"])
: null,
metadata: json["metadata"],
type: json["type"],
);
Map<String, dynamic> toJson() => {
"id": id,
"account_id": accountId,
"created_at": createdAt.toIso8601String(),
"updated_at": updatedAt.toIso8601String(),
"deleted_at": deletedAt?.toIso8601String(),
"metadata": metadata,
"type": type,
};
}