Solian/lib/models/notification.dart

84 lines
2.1 KiB
Dart
Raw Normal View History

2024-04-13 11:47:31 +00:00
class Notification {
int id;
DateTime createdAt;
DateTime updatedAt;
DateTime? deletedAt;
String subject;
String content;
List<Link>? links;
bool isImportant;
2024-04-24 15:19:26 +00:00
bool isRealtime;
2024-04-13 11:47:31 +00:00
DateTime? readAt;
int senderId;
int recipientId;
Notification({
required this.id,
required this.createdAt,
required this.updatedAt,
this.deletedAt,
required this.subject,
required this.content,
this.links,
required this.isImportant,
2024-04-24 15:19:26 +00:00
required this.isRealtime,
2024-04-13 11:47:31 +00:00
this.readAt,
required this.senderId,
required this.recipientId,
});
factory Notification.fromJson(Map<String, dynamic> json) => Notification(
id: json["id"],
createdAt: DateTime.parse(json["created_at"]),
updatedAt: DateTime.parse(json["updated_at"]),
deletedAt: json["deleted_at"],
subject: json["subject"],
content: json["content"],
2024-05-01 09:37:34 +00:00
links: json["links"] != null
? List<Link>.from(json["links"].map((x) => Link.fromJson(x)))
: List.empty(),
2024-04-13 11:47:31 +00:00
isImportant: json["is_important"],
2024-04-24 15:19:26 +00:00
isRealtime: json["is_realtime"],
2024-04-13 11:47:31 +00:00
readAt: json["read_at"],
senderId: json["sender_id"],
recipientId: json["recipient_id"],
);
Map<String, dynamic> toJson() => {
"id": id,
"created_at": createdAt.toIso8601String(),
"updated_at": updatedAt.toIso8601String(),
"deleted_at": deletedAt,
"subject": subject,
"content": content,
2024-05-01 09:37:34 +00:00
"links": links != null
? List<dynamic>.from(links!.map((x) => x.toJson()))
: List.empty(),
2024-04-13 11:47:31 +00:00
"is_important": isImportant,
2024-04-24 15:19:26 +00:00
"is_realtime": isRealtime,
2024-04-13 11:47:31 +00:00
"read_at": readAt,
"sender_id": senderId,
"recipient_id": recipientId,
};
}
class Link {
String label;
String url;
Link({
required this.label,
required this.url,
});
factory Link.fromJson(Map<String, dynamic> json) => Link(
label: json["label"],
url: json["url"],
);
Map<String, dynamic> toJson() => {
"label": label,
"url": url,
};
}