chat screen
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
import 'package:chat_repository/src/entities/entities.dart';
|
||||
import 'package:equatable/equatable.dart';
|
||||
|
||||
class ChatEntity extends Equatable {
|
||||
final String? id;
|
||||
final String userId;
|
||||
final String professionalId;
|
||||
final List<MessageEntity> messages;
|
||||
|
||||
const ChatEntity({
|
||||
required this.id,
|
||||
required this.userId,
|
||||
required this.professionalId,
|
||||
required this.messages,
|
||||
});
|
||||
|
||||
static ChatEntity fromDocument(Map<String, dynamic> doc) {
|
||||
return ChatEntity(
|
||||
id: doc['id'] as String,
|
||||
userId: doc['user_id'] as String,
|
||||
professionalId: doc['professional_id'] as String,
|
||||
messages: (doc['messages'] as List)
|
||||
.map((e) => MessageEntity.fromDocument(e as Map<String, dynamic>))
|
||||
.toList(),
|
||||
);
|
||||
}
|
||||
|
||||
Map<String, dynamic> toDocument() {
|
||||
return {
|
||||
'id': id,
|
||||
'user_id': userId,
|
||||
'professional_id': professionalId,
|
||||
'messages': messages.map((e) => e.toDocument()).toList(),
|
||||
};
|
||||
}
|
||||
|
||||
@override
|
||||
List<Object?> get props => [id, userId, professionalId, messages];
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
return '''ChatEntity{
|
||||
id: $id,
|
||||
userId: $userId,
|
||||
professionalId: $professionalId,
|
||||
messages: $messages
|
||||
}''';
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
export '/src/entities/chat_entity.dart';
|
||||
export '/src/entities/message_entity.dart';
|
||||
@@ -0,0 +1,45 @@
|
||||
import 'package:equatable/equatable.dart';
|
||||
|
||||
class MessageEntity extends Equatable {
|
||||
final String ownerId;
|
||||
final String content;
|
||||
final DateTime createdAt;
|
||||
|
||||
const MessageEntity({
|
||||
required this.ownerId,
|
||||
required this.content,
|
||||
required this.createdAt,
|
||||
});
|
||||
|
||||
static MessageEntity fromDocument(Map<String, dynamic> doc) {
|
||||
return MessageEntity(
|
||||
ownerId: doc['owner_id'] as String,
|
||||
content: doc['content'] as String,
|
||||
createdAt: DateTime.parse(doc['created_at'] as String),
|
||||
);
|
||||
}
|
||||
|
||||
Map<String, dynamic> toDocument() {
|
||||
return {
|
||||
'owner_id': ownerId,
|
||||
'content': content,
|
||||
'created_at': createdAt.toIso8601String(),
|
||||
};
|
||||
}
|
||||
|
||||
@override
|
||||
List<Object?> get props => [
|
||||
ownerId,
|
||||
content,
|
||||
createdAt,
|
||||
];
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
return '''MessageEntity{
|
||||
ownerId: $ownerId,
|
||||
content: $content,
|
||||
createdAt: $createdAt
|
||||
}''';
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user