109 lines
2.7 KiB
Dart
109 lines
2.7 KiB
Dart
class CommentUser {
|
|
final String id;
|
|
final String displayName;
|
|
|
|
CommentUser({
|
|
required this.id,
|
|
required this.displayName,
|
|
});
|
|
|
|
factory CommentUser.fromJson(Map<String, dynamic> json) {
|
|
return CommentUser(
|
|
id: json['id'].toString(),
|
|
displayName: json['displayName'] ?? '',
|
|
);
|
|
}
|
|
|
|
Map<String, dynamic> toJson() {
|
|
return {
|
|
'id': id,
|
|
'displayName': displayName,
|
|
};
|
|
}
|
|
}
|
|
|
|
class Comment {
|
|
final String id;
|
|
final String postId;
|
|
final CommentUser creator;
|
|
final String body;
|
|
final DateTime creationDate;
|
|
final String? replyComment;
|
|
final String? displayReplyComment;
|
|
final CommentUser? replyUser;
|
|
final int level;
|
|
final List<Comment> replies;
|
|
|
|
Comment({
|
|
required this.id,
|
|
required this.postId,
|
|
required this.creator,
|
|
required this.body,
|
|
required this.creationDate,
|
|
this.replyComment,
|
|
this.displayReplyComment,
|
|
this.replyUser,
|
|
required this.level,
|
|
required this.replies,
|
|
});
|
|
|
|
factory Comment.fromJson(Map<String, dynamic> json) {
|
|
return Comment(
|
|
id: json['id'].toString(),
|
|
postId: json['postId'].toString(),
|
|
creator: CommentUser.fromJson(json['creator']),
|
|
body: json['body'] ?? '',
|
|
creationDate: DateTime.parse(json['creationDate']),
|
|
replyComment: json['replyComment']?.toString(),
|
|
displayReplyComment: json['displayReplyComment']?.toString(),
|
|
replyUser: json['replyUser'] != null ? CommentUser.fromJson(json['replyUser']) : null,
|
|
level: json['level'] ?? 1,
|
|
replies: (json['replies'] as List?)?.map((reply) => Comment.fromJson(reply)).toList() ?? [],
|
|
);
|
|
}
|
|
|
|
Map<String, dynamic> toJson() {
|
|
return {
|
|
'id': id,
|
|
'postId': postId,
|
|
'creator': creator.toJson(),
|
|
'body': body,
|
|
'creationDate': creationDate.toIso8601String(),
|
|
'replyComment': replyComment,
|
|
'displayReplyComment': displayReplyComment,
|
|
'replyUser': replyUser?.toJson(),
|
|
'level': level,
|
|
'replies': replies.map((reply) => reply.toJson()).toList(),
|
|
};
|
|
}
|
|
}
|
|
|
|
class CommentsResponse {
|
|
final bool status;
|
|
final String? message;
|
|
final List<Comment> data;
|
|
|
|
CommentsResponse({
|
|
required this.status,
|
|
this.message,
|
|
required this.data,
|
|
});
|
|
|
|
factory CommentsResponse.fromJson(Map<String, dynamic> json) {
|
|
return CommentsResponse(
|
|
status: json['status'] ?? false,
|
|
message: json['message'],
|
|
data: json['data'] != null
|
|
? (json['data'] as List).map((comment) => Comment.fromJson(comment)).toList()
|
|
: [],
|
|
);
|
|
}
|
|
|
|
Map<String, dynamic> toJson() {
|
|
return {
|
|
'status': status,
|
|
'message': message,
|
|
'data': data.map((comment) => comment.toJson()).toList(),
|
|
};
|
|
}
|
|
} |