Добавил отправку файлов ! ! !

This commit is contained in:
jganenok
2025-11-22 15:58:25 +07:00
parent 95b67c7891
commit c6611dade1
4 changed files with 457 additions and 245 deletions

View File

@@ -11,6 +11,7 @@ class Chat {
final String? baseIconUrl; // URL иконки группы
final String? description;
final int? participantsCount;
final Message? pinnedMessage; // Закрепленное сообщение
Chat({
required this.id,
@@ -23,6 +24,7 @@ class Chat {
this.baseIconUrl,
this.description,
this.participantsCount,
this.pinnedMessage,
});
factory Chat.fromJson(Map<String, dynamic> json) {
@@ -31,7 +33,6 @@ class Chat {
.map((id) => int.parse(id))
.toList();
Message lastMessage;
if (json['lastMessage'] != null) {
lastMessage = Message.fromJson(json['lastMessage']);
@@ -46,6 +47,11 @@ class Chat {
);
}
Message? pinnedMessage;
if (json['pinnedMessage'] != null) {
pinnedMessage = Message.fromJson(json['pinnedMessage']);
}
return Chat(
id: json['id'] ?? 0,
ownerId: json['owner'] ?? 0,
@@ -57,10 +63,10 @@ class Chat {
baseIconUrl: json['baseIconUrl'],
description: json['description'],
participantsCount: json['participantsCount'],
pinnedMessage: pinnedMessage,
);
}
bool get isGroup => type == 'CHAT' || participantIds.length > 2;
List<int> get groupParticipantIds => participantIds;
@@ -83,6 +89,7 @@ class Chat {
String? title,
String? type,
String? baseIconUrl,
Message? pinnedMessage,
}) {
return Chat(
id: id,
@@ -94,6 +101,8 @@ class Chat {
type: type ?? this.type,
baseIconUrl: baseIconUrl ?? this.baseIconUrl,
description: description ?? this.description,
participantsCount: participantsCount,
pinnedMessage: pinnedMessage ?? this.pinnedMessage,
);
}
}