diff --git a/lib/models/comment/comment.dart b/lib/models/comment/comment.dart index 51cdaf7..4a53a4a 100644 --- a/lib/models/comment/comment.dart +++ b/lib/models/comment/comment.dart @@ -2,17 +2,17 @@ import 'feedback.dart'; import 'reply.dart'; import 'user.dart'; -class Comment { +class CommentData { final int id; final String text; final String createdAt; final bool liked; final bool disliked; - final Feedback feedback; - final User user; + FeedbackData feedback; + final UserOverview user; final List replies; - Comment({ + CommentData({ required this.id, required this.text, required this.createdAt, @@ -23,14 +23,14 @@ class Comment { required this.replies, }); - factory Comment.fromJson(Map json) => Comment( + factory CommentData.fromJson(Map json) => CommentData( id: json['id'], text: json['text'], createdAt: json['createdAt'], liked: json['liked'], disliked: json['disliked'], - feedback: Feedback.fromJson(json['feedback']), - user: User.fromJson(json['user']), + feedback: FeedbackData.fromJson(json['feedback']), + user: UserOverview.fromJson(json['user']), replies: List.from( json['replies'].map( (reply) => Reply.fromJson(reply), diff --git a/lib/models/comment/feedback.dart b/lib/models/comment/feedback.dart index 57e756b..d51d67f 100644 --- a/lib/models/comment/feedback.dart +++ b/lib/models/comment/feedback.dart @@ -1,10 +1,10 @@ -class Feedback { +class FeedbackData { final int like; final int dislike; - const Feedback({required this.like, required this.dislike}); + const FeedbackData({required this.like, required this.dislike}); - factory Feedback.fromJson(Map json) => Feedback( + factory FeedbackData.fromJson(Map json) => FeedbackData( like: json['like'], dislike: json['dislike'], ); diff --git a/lib/models/comment/reply.dart b/lib/models/comment/reply.dart index 3ba0185..02ce66e 100644 --- a/lib/models/comment/reply.dart +++ b/lib/models/comment/reply.dart @@ -7,8 +7,9 @@ class Reply { final String createdAt; final bool liked; final bool disliked; - final Feedback feedback; - final User user; + final FeedbackData feedback; + final UserOverview user; + final UserOverview toUser; const Reply({ required this.id, @@ -18,6 +19,7 @@ class Reply { required this.disliked, required this.feedback, required this.user, + required this.toUser, }); factory Reply.fromJson(Map json) => Reply( @@ -26,8 +28,9 @@ class Reply { createdAt: json['createdAt'], liked: json['liked'], disliked: json['disliked'], - feedback: Feedback.fromJson(json['feedback']), - user: User.fromJson(json['user']), + feedback: FeedbackData.fromJson(json['feedback']), + user: UserOverview.fromJson(json['user']), + toUser: UserOverview.fromJson(json['toUser']), ); Map toJson() => { @@ -38,5 +41,6 @@ class Reply { 'disliked': disliked, 'feedback': feedback.toJson(), 'user': user.toJson(), + 'toUser': toUser.toJson(), }; } diff --git a/lib/models/comment/user.dart b/lib/models/comment/user.dart index 10ebbf3..3483134 100644 --- a/lib/models/comment/user.dart +++ b/lib/models/comment/user.dart @@ -1,11 +1,12 @@ -class User { +class UserOverview { final int id; final String fullName; final String? photo; - const User({required this.id, required this.fullName, required this.photo}); + const UserOverview( + {required this.id, required this.fullName, required this.photo}); - factory User.fromJson(Map json) => User( + factory UserOverview.fromJson(Map json) => UserOverview( id: json['id'], fullName: json['fullName'], photo: json['photo'], diff --git a/lib/models/item_overview.dart b/lib/models/item_overview.dart new file mode 100644 index 0000000..50ddec4 --- /dev/null +++ b/lib/models/item_overview.dart @@ -0,0 +1,57 @@ +import 'package:didvan/models/category.dart'; + +class ItemOverview { + final int id; + final String title; + final String image; + final String description; + final int timeToRead; + final String reference; + final bool forManagers; + final String createdAt; + final String type; + final List categories; + + const ItemOverview({ + required this.id, + required this.title, + required this.image, + required this.description, + required this.timeToRead, + required this.reference, + required this.forManagers, + required this.createdAt, + required this.type, + required this.categories, + }); + + factory ItemOverview.fromJson(Map json) => ItemOverview( + id: json['id'], + title: json['title'], + image: json['image'], + description: json['description'], + timeToRead: json['timeToRead'], + reference: json['reference'], + forManagers: json['forManagers'], + createdAt: json['createdAt'], + type: json['type'], + categories: List.from( + json['categories'].map( + (cat) => Category.fromJson(cat), + ), + ), + ); + + Map toJson() => { + 'id': id, + 'title': title, + 'image': image, + 'description': description, + 'timeToRead': timeToRead, + 'reference': reference, + 'forManagers': forManagers, + 'createdAt': createdAt, + 'type': type, + 'categories': categories.map((e) => e.toJson()).toList(), + }; +} diff --git a/lib/models/requests/news.dart b/lib/models/requests/news.dart new file mode 100644 index 0000000..1e17e56 --- /dev/null +++ b/lib/models/requests/news.dart @@ -0,0 +1,13 @@ +class NewsRequestArgs { + final int page; + final String? startDate; + final String? endDate; + final String? search; + + const NewsRequestArgs({ + required this.page, + this.startDate, + this.endDate, + this.search, + }); +} diff --git a/lib/models/requests/radar.dart b/lib/models/requests/radar.dart new file mode 100644 index 0000000..9a28fae --- /dev/null +++ b/lib/models/requests/radar.dart @@ -0,0 +1,15 @@ +class RadarRequestArgs { + final int page; + final List categories; + final String? startDate; + final String? endDate; + final String? search; + + const RadarRequestArgs({ + required this.page, + this.categories = const [], + this.startDate, + this.endDate, + this.search, + }); +}