Files
stream-chat-flutter/packages/stream_chat_persistence/lib/src/entity/members.dart
T
2021-04-20 15:37:12 +05:30

47 lines
1.6 KiB
Dart

// coverage:ignore-file
import 'package:moor/moor.dart';
/// Represents a [Members] table in [MoorChatDatabase].
@DataClassName('MemberEntity')
class Members extends Table {
/// The interested user id
TextColumn get userId => text()();
/// The channel cid of which this user is part of
TextColumn get channelCid =>
text().customConstraint('REFERENCES channels(cid) ON DELETE CASCADE')();
/// The role of the user in the channel
TextColumn get role => text().nullable()();
/// The date on which the user accepted the invite to the channel
DateTimeColumn get inviteAcceptedAt => dateTime().nullable()();
/// The date on which the user rejected the invite to the channel
DateTimeColumn get inviteRejectedAt => dateTime().nullable()();
/// True if the user has been invited to the channel
BoolColumn get invited => boolean().withDefault(const Constant(false))();
/// True if the member is banned from the channel
BoolColumn get banned => boolean().withDefault(const Constant(false))();
/// True if the member is shadow banned from the channel
BoolColumn get shadowBanned => boolean().withDefault(const Constant(false))();
/// True if the user is a moderator of the channel
BoolColumn get isModerator => boolean().withDefault(const Constant(false))();
/// The date of creation
DateTimeColumn get createdAt => dateTime().withDefault(currentDateAndTime)();
/// The last date of update
DateTimeColumn get updatedAt => dateTime().withDefault(currentDateAndTime)();
@override
Set<Column> get primaryKey => {
userId,
channelCid,
};
}