[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,54 @@
import 'package:moor/moor.dart';
import 'package:stream_chat_persistence/src/converter/list_converter.dart';
import 'package:stream_chat_persistence/src/converter/map_converter.dart';
import 'package:stream_chat_persistence/src/converter/message_sending_status_converter.dart';
@DataClassName('MessageEntity')
class Messages extends Table {
TextColumn get id => text()();
TextColumn get messageText => text().nullable()();
TextColumn get attachments =>
text().nullable().map(ListConverter<String>())();
IntColumn get status =>
integer().nullable().map(MessageSendingStatusConverter())();
TextColumn get type => text().nullable()();
TextColumn get mentionedUsers =>
text().nullable().map(ListConverter<String>())();
TextColumn get reactionCounts => text().nullable().map(MapConverter<int>())();
TextColumn get reactionScores => text().nullable().map(MapConverter<int>())();
TextColumn get parentId => text().nullable()();
TextColumn get quotedMessageId => text().nullable()();
IntColumn get replyCount => integer().nullable()();
BoolColumn get showInChannel => boolean().nullable()();
BoolColumn get shadowed => boolean().nullable()();
TextColumn get command => text().nullable()();
DateTimeColumn get createdAt => dateTime()();
DateTimeColumn get updatedAt => dateTime().nullable()();
DateTimeColumn get deletedAt => dateTime().nullable()();
TextColumn get userId => text().nullable()();
TextColumn get channelCid => text().nullable().customConstraint(
'NULLABLE REFERENCES channels(cid) ON DELETE CASCADE')();
TextColumn get extraData => text().nullable().map(MapConverter<Object>())();
@override
Set<Column> get primaryKey => {id};
}