44 lines
1021 B
Dart
44 lines
1021 B
Dart
import 'dart:convert';
|
|
|
|
import 'package:appwrite/models.dart';
|
|
import 'package:messaging_app/models/messages.dart';
|
|
|
|
class Chats {
|
|
String ownerId;
|
|
List<String> members;
|
|
String? type;
|
|
List<List<Messages>>? messages;
|
|
|
|
Chats({
|
|
required this.ownerId,
|
|
required this.members,
|
|
required this.type,
|
|
required this.messages,
|
|
});
|
|
|
|
factory Chats.fromDocument(Document _document) {
|
|
//
|
|
//
|
|
List<List<Messages>> _messagesList = [];
|
|
List _members = _document.data['members'];
|
|
List _messages = _document.data['messages'];
|
|
|
|
for (var i = 0; i < _members.length; i++) {
|
|
List _msg = [];
|
|
_msg = json.decode(_messages[i])[_members[i]];
|
|
|
|
_messagesList.add(_msg.map((_temp) {
|
|
return Messages.fromMap(_temp);
|
|
}).toList());
|
|
}
|
|
|
|
return Chats(
|
|
ownerId: _document.data['ownerId'],
|
|
members: _members.map((_member) {
|
|
return _member.toString();
|
|
}).toList(),
|
|
type: _document.data['type'],
|
|
messages: _messagesList,
|
|
);
|
|
}
|
|
} |