D1APP-48 model updates

This commit is contained in:
MohammadTaha Basiri 2022-01-24 16:01:56 +03:30
parent 2e1365d03b
commit 33dabd7ab5
7 changed files with 107 additions and 17 deletions

View File

@ -2,17 +2,17 @@ import 'feedback.dart';
import 'reply.dart'; import 'reply.dart';
import 'user.dart'; import 'user.dart';
class Comment { class CommentData {
final int id; final int id;
final String text; final String text;
final String createdAt; final String createdAt;
final bool liked; final bool liked;
final bool disliked; final bool disliked;
final Feedback feedback; FeedbackData feedback;
final User user; final UserOverview user;
final List<Reply> replies; final List<Reply> replies;
Comment({ CommentData({
required this.id, required this.id,
required this.text, required this.text,
required this.createdAt, required this.createdAt,
@ -23,14 +23,14 @@ class Comment {
required this.replies, required this.replies,
}); });
factory Comment.fromJson(Map<String, dynamic> json) => Comment( factory CommentData.fromJson(Map<String, dynamic> json) => CommentData(
id: json['id'], id: json['id'],
text: json['text'], text: json['text'],
createdAt: json['createdAt'], createdAt: json['createdAt'],
liked: json['liked'], liked: json['liked'],
disliked: json['disliked'], disliked: json['disliked'],
feedback: Feedback.fromJson(json['feedback']), feedback: FeedbackData.fromJson(json['feedback']),
user: User.fromJson(json['user']), user: UserOverview.fromJson(json['user']),
replies: List<Reply>.from( replies: List<Reply>.from(
json['replies'].map( json['replies'].map(
(reply) => Reply.fromJson(reply), (reply) => Reply.fromJson(reply),

View File

@ -1,10 +1,10 @@
class Feedback { class FeedbackData {
final int like; final int like;
final int dislike; final int dislike;
const Feedback({required this.like, required this.dislike}); const FeedbackData({required this.like, required this.dislike});
factory Feedback.fromJson(Map<String, dynamic> json) => Feedback( factory FeedbackData.fromJson(Map<String, dynamic> json) => FeedbackData(
like: json['like'], like: json['like'],
dislike: json['dislike'], dislike: json['dislike'],
); );

View File

@ -7,8 +7,9 @@ class Reply {
final String createdAt; final String createdAt;
final bool liked; final bool liked;
final bool disliked; final bool disliked;
final Feedback feedback; final FeedbackData feedback;
final User user; final UserOverview user;
final UserOverview toUser;
const Reply({ const Reply({
required this.id, required this.id,
@ -18,6 +19,7 @@ class Reply {
required this.disliked, required this.disliked,
required this.feedback, required this.feedback,
required this.user, required this.user,
required this.toUser,
}); });
factory Reply.fromJson(Map<String, dynamic> json) => Reply( factory Reply.fromJson(Map<String, dynamic> json) => Reply(
@ -26,8 +28,9 @@ class Reply {
createdAt: json['createdAt'], createdAt: json['createdAt'],
liked: json['liked'], liked: json['liked'],
disliked: json['disliked'], disliked: json['disliked'],
feedback: Feedback.fromJson(json['feedback']), feedback: FeedbackData.fromJson(json['feedback']),
user: User.fromJson(json['user']), user: UserOverview.fromJson(json['user']),
toUser: UserOverview.fromJson(json['toUser']),
); );
Map<String, dynamic> toJson() => { Map<String, dynamic> toJson() => {
@ -38,5 +41,6 @@ class Reply {
'disliked': disliked, 'disliked': disliked,
'feedback': feedback.toJson(), 'feedback': feedback.toJson(),
'user': user.toJson(), 'user': user.toJson(),
'toUser': toUser.toJson(),
}; };
} }

View File

@ -1,11 +1,12 @@
class User { class UserOverview {
final int id; final int id;
final String fullName; final String fullName;
final String? photo; 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<String, dynamic> json) => User( factory UserOverview.fromJson(Map<String, dynamic> json) => UserOverview(
id: json['id'], id: json['id'],
fullName: json['fullName'], fullName: json['fullName'],
photo: json['photo'], photo: json['photo'],

View File

@ -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<Category> 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<String, dynamic> 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<Category>.from(
json['categories'].map(
(cat) => Category.fromJson(cat),
),
),
);
Map<String, dynamic> 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(),
};
}

View File

@ -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,
});
}

View File

@ -0,0 +1,15 @@
class RadarRequestArgs {
final int page;
final List<int> categories;
final String? startDate;
final String? endDate;
final String? search;
const RadarRequestArgs({
required this.page,
this.categories = const [],
this.startDate,
this.endDate,
this.search,
});
}