[StreamChatPersistence] Add initial implementation

Signed-off-by: Sahil Kumar <[email protected]>
This commit is contained in:
Sahil Kumar
2021-01-25 19:14:55 +05:30
parent 1021814a75
commit 657b58af8b
47 changed files with 1878 additions and 1 deletions
@@ -0,0 +1,61 @@
import 'package:stream_chat/stream_chat.dart';
import 'user_mapper.dart';
import 'package:stream_chat_persistence/src/db/moor_chat_database.dart';
///
extension ChannelEntityX on ChannelEntity {
///
ChannelModel toChannelModel({User createdBy}) {
final config = ChannelConfig.fromJson(this.config ?? {});
return ChannelModel(
id: id,
config: config,
type: type,
frozen: frozen,
createdAt: createdAt,
updatedAt: updatedAt,
memberCount: memberCount,
cid: cid,
lastMessageAt: lastMessageAt,
deletedAt: deletedAt,
extraData: extraData,
createdBy: createdBy,
);
}
///
ChannelState toChannelState({
User createdBy,
List<Member> members,
List<Read> reads,
List<Message> messages,
}) {
return ChannelState(
members: members,
read: reads,
messages: messages,
channel: toChannelModel(createdBy: createdBy),
);
}
}
///
extension ChannelModelX on ChannelModel {
///
ChannelEntity toEntity() {
return ChannelEntity(
id: id,
type: type,
cid: cid,
config: config.toJson(),
frozen: frozen,
lastMessageAt: lastMessageAt,
createdAt: createdAt,
updatedAt: updatedAt,
deletedAt: deletedAt,
memberCount: memberCount,
createdById: createdBy.id,
extraData: extraData,
);
}
}