add auth, format

This commit is contained in:
Phuoc Nguyen
2025-11-07 11:52:06 +07:00
parent 24a8508fce
commit 3803bd26e0
173 changed files with 8505 additions and 7116 deletions

View File

@@ -7,27 +7,56 @@ part 'message_model.g.dart';
@HiveType(typeId: HiveTypeIds.messageModel)
class MessageModel extends HiveObject {
MessageModel({required this.messageId, required this.chatRoomId, required this.senderId, required this.contentType, required this.content, this.attachmentUrl, this.productReference, required this.isRead, required this.isEdited, required this.isDeleted, this.readBy, required this.timestamp, this.editedAt});
@HiveField(0) final String messageId;
@HiveField(1) final String chatRoomId;
@HiveField(2) final String senderId;
@HiveField(3) final ContentType contentType;
@HiveField(4) final String content;
@HiveField(5) final String? attachmentUrl;
@HiveField(6) final String? productReference;
@HiveField(7) final bool isRead;
@HiveField(8) final bool isEdited;
@HiveField(9) final bool isDeleted;
@HiveField(10) final String? readBy;
@HiveField(11) final DateTime timestamp;
@HiveField(12) final DateTime? editedAt;
MessageModel({
required this.messageId,
required this.chatRoomId,
required this.senderId,
required this.contentType,
required this.content,
this.attachmentUrl,
this.productReference,
required this.isRead,
required this.isEdited,
required this.isDeleted,
this.readBy,
required this.timestamp,
this.editedAt,
});
@HiveField(0)
final String messageId;
@HiveField(1)
final String chatRoomId;
@HiveField(2)
final String senderId;
@HiveField(3)
final ContentType contentType;
@HiveField(4)
final String content;
@HiveField(5)
final String? attachmentUrl;
@HiveField(6)
final String? productReference;
@HiveField(7)
final bool isRead;
@HiveField(8)
final bool isEdited;
@HiveField(9)
final bool isDeleted;
@HiveField(10)
final String? readBy;
@HiveField(11)
final DateTime timestamp;
@HiveField(12)
final DateTime? editedAt;
factory MessageModel.fromJson(Map<String, dynamic> json) => MessageModel(
messageId: json['message_id'] as String,
chatRoomId: json['chat_room_id'] as String,
senderId: json['sender_id'] as String,
contentType: ContentType.values.firstWhere((e) => e.name == json['content_type']),
contentType: ContentType.values.firstWhere(
(e) => e.name == json['content_type'],
),
content: json['content'] as String,
attachmentUrl: json['attachment_url'] as String?,
productReference: json['product_reference'] as String?,
@@ -36,7 +65,9 @@ class MessageModel extends HiveObject {
isDeleted: json['is_deleted'] as bool? ?? false,
readBy: json['read_by'] != null ? jsonEncode(json['read_by']) : null,
timestamp: DateTime.parse(json['timestamp']?.toString() ?? ''),
editedAt: json['edited_at'] != null ? DateTime.parse(json['edited_at']?.toString() ?? '') : null,
editedAt: json['edited_at'] != null
? DateTime.parse(json['edited_at']?.toString() ?? '')
: null,
);
Map<String, dynamic> toJson() => {