import 'dart:convert'; enum MessageType { Text, Image, } class Messages { String message; String senderId; MessageType type; DateTime timeStamp; Messages({ required this.message, required this.senderId, required this.type, required this.timeStamp, }); factory Messages.fromData(String _message) { var _messageType = json.decode(_message)['type'] == "text" ? MessageType.Text : MessageType.Image; return Messages( message: json.decode(_message)['message'], senderId: json.decode(_message)['senderId'], type: _messageType, timeStamp: DateTime.parse(json.decode(_message)['timeStamp'] ?? ""), ); } }