Flutter Client / Data Layer
Модели данных Flutter
Классы представления данных в Dart. Файлы в папке lib/data/models/
ContactModel (Собеседник/Чат)
Представляет пользователя в списке диалогов. Содержит метаданные чата.
dartcontact_model.dart
class Contact {
final int id;
final String username;
final String name;
final String? publicKey;
final String? avatarFileId;
final String? avatarUrl;
final String? lastMessage;
final DateTime? lastMessageTime;
final int unreadCount;
final bool online;
final bool isLastMsgDecrypted; // Флаг успешной расшифровки
final String? lastMsgType;
final String? phone;
// ...
}
MessageModel (Сообщение)
Модель отдельного сообщения. Поле content изначально содержит зашифрованный Base64 шифртекст.
dartmessage_model.dart
class Message {
final int id;
final int senderId;
final int receiverId;
final String content; // Текст сообщения (E2EE или plain)
final DateTime timestamp;
final DateTime? readAt;
final int? replyToId;
final String? replyToText;
final String messageType; // text, image, voice_note, video_note, file
final String? fileId;
final String? encryptedKey; // Шифрованный AES-ключ для файла
final bool isDecrypted; // Расшифровано ли на клиенте
// ...
}