forked from eatvio/eatvio_app
feat(chat, feed): add images, chat search, likes reply to comment
This commit is contained in:
62
lib/features/chat/models/chat_room_preview_model.dart
Normal file
62
lib/features/chat/models/chat_room_preview_model.dart
Normal file
@@ -0,0 +1,62 @@
|
||||
import 'package:freezed_annotation/freezed_annotation.dart';
|
||||
|
||||
part 'chat_room_preview_model.freezed.dart';
|
||||
part 'chat_room_preview_model.g.dart';
|
||||
|
||||
@freezed
|
||||
class ChatRoomPreviewModel with _$ChatRoomPreviewModel {
|
||||
const factory ChatRoomPreviewModel({
|
||||
@JsonKey(name: "chatRooms") required List<ChatRoom> chatRooms,
|
||||
}) = _ChatRoomPreviewModel;
|
||||
|
||||
factory ChatRoomPreviewModel.fromJson(Map<String, dynamic> json) => _$ChatRoomPreviewModelFromJson(json);
|
||||
}
|
||||
|
||||
@freezed
|
||||
class ChatRoom with _$ChatRoom {
|
||||
const factory ChatRoom({
|
||||
@JsonKey(name: "id") required String id,
|
||||
@JsonKey(name: "room_name") required String roomName,
|
||||
@JsonKey(name: "last_message") required dynamic lastMessage,
|
||||
@JsonKey(name: "users") required Users users,
|
||||
}) = _ChatRoom;
|
||||
|
||||
factory ChatRoom.fromJson(Map<String, dynamic> json) => _$ChatRoomFromJson(json);
|
||||
}
|
||||
|
||||
@freezed
|
||||
class LastMessageClass with _$LastMessageClass {
|
||||
const factory LastMessageClass({
|
||||
@JsonKey(name: "id") required int id,
|
||||
@JsonKey(name: "data") required String data,
|
||||
@JsonKey(name: "media_data") required List<dynamic> mediaData,
|
||||
@JsonKey(name: "author_id") required int authorId,
|
||||
@JsonKey(name: "is_author_message_auth_user") required bool isAuthorMessageAuthUser,
|
||||
@JsonKey(name: "read_by_to_user") required bool readByToUser,
|
||||
@JsonKey(name: "updated_at") required DateTime updatedAt,
|
||||
}) = _LastMessageClass;
|
||||
|
||||
factory LastMessageClass.fromJson(Map<String, dynamic> json) => _$LastMessageClassFromJson(json);
|
||||
}
|
||||
|
||||
@freezed
|
||||
class Users with _$Users {
|
||||
const factory Users({
|
||||
@JsonKey(name: "from_chat_user") required ChatUser fromChatUser,
|
||||
@JsonKey(name: "to_chat_user") required ChatUser toChatUser,
|
||||
}) = _Users;
|
||||
|
||||
factory Users.fromJson(Map<String, dynamic> json) => _$UsersFromJson(json);
|
||||
}
|
||||
|
||||
@freezed
|
||||
class ChatUser with _$ChatUser {
|
||||
const factory ChatUser({
|
||||
@JsonKey(name: "id") required int id,
|
||||
@JsonKey(name: "name") required String name,
|
||||
@JsonKey(name: "profile_photo_path") required String? profilePhotoPath,
|
||||
@JsonKey(name: "profile_photo_url") required String profilePhotoUrl,
|
||||
}) = _ChatUser;
|
||||
|
||||
factory ChatUser.fromJson(Map<String, dynamic> json) => _$ChatUserFromJson(json);
|
||||
}
|
||||
Reference in New Issue
Block a user