Files
mywhatsapp/whatsapp_app/lib/models/message_model.dart
2026-05-18 14:04:39 +03:00

76 lines
1.8 KiB
Dart

class MessageModel {
final String id;
final String body;
final bool fromMe;
final int timestamp;
final String type; // "chat"|"image"|"video"|"audio"|"document"|"sticker"
final bool hasMedia;
final bool isForwarded;
final String? author;
final int ack; // 0=error/none 1=pending 2=sent 3=delivered 4=read
MessageModel({
required this.id,
required this.body,
required this.fromMe,
required this.timestamp,
required this.type,
required this.hasMedia,
required this.isForwarded,
this.author,
required this.ack,
});
factory MessageModel.fromJson(Map<String, dynamic> json) {
return MessageModel(
id: json['id'] ?? '',
body: json['body'] ?? '',
fromMe: json['fromMe'] ?? false,
timestamp: json['timestamp'] ?? 0,
type: json['type'] ?? 'chat',
hasMedia: json['hasMedia'] ?? false,
isForwarded: json['isForwarded'] ?? false,
author: json['author'],
ack: json['ack'] ?? 0,
);
}
Map<String, dynamic> toJson() {
return {
'id': id,
'body': body,
'fromMe': fromMe,
'timestamp': timestamp,
'type': type,
'hasMedia': hasMedia,
'isForwarded': isForwarded,
'author': author,
'ack': ack,
};
}
MessageModel copyWith({
String? id,
String? body,
bool? fromMe,
int? timestamp,
String? type,
bool? hasMedia,
bool? isForwarded,
String? author,
int? ack,
}) {
return MessageModel(
id: id ?? this.id,
body: body ?? this.body,
fromMe: fromMe ?? this.fromMe,
timestamp: timestamp ?? this.timestamp,
type: type ?? this.type,
hasMedia: hasMedia ?? this.hasMedia,
isForwarded: isForwarded ?? this.isForwarded,
author: author ?? this.author,
ack: ack ?? this.ack,
);
}
}