Merge branch 'develop' into v4

This commit is contained in:
Salvatore Giordano
2022-01-25 11:40:02 +01:00
24 changed files with 333 additions and 232 deletions
View File
+4
View File
@@ -1,5 +1,9 @@
## Upcoming
🔄 Changed
- `client.location` is now deprecated in favor of the new [edge server](https://getstream.io/blog/chat-edge-infrastructure) and will be removed in v4.0.0.
✅ Added
- Added `client.enrichUrl` endpoint for enriching URLs with metadata.
@@ -66,8 +66,11 @@ class StreamChatClient {
this.logLevel = Level.WARNING,
LogHandlerFunction? logHandlerFunction,
RetryPolicy? retryPolicy,
Location? location,
@Deprecated('Use location to change baseUrl instead') String? baseURL,
@Deprecated('''
Location is now deprecated in favor of the new edge server. Will be removed in v4.0.0.
Read more here: https://getstream.io/blog/chat-edge-infrastructure
''') Location? location,
String? baseURL,
Duration connectTimeout = const Duration(seconds: 6),
Duration receiveTimeout = const Duration(seconds: 6),
StreamChatApi? chatApi,
@@ -79,7 +82,6 @@ class StreamChatClient {
final options = StreamHttpClientOptions(
baseUrl: baseURL,
location: location,
connectTimeout: connectTimeout,
receiveTimeout: receiveTimeout,
headers: {'X-Stream-Client': defaultUserAgent},
@@ -11,7 +11,6 @@ import 'package:stream_chat/src/core/http/interceptor/connection_id_interceptor.
import 'package:stream_chat/src/core/http/interceptor/logging_interceptor.dart';
import 'package:stream_chat/src/core/http/stream_chat_dio_error.dart';
import 'package:stream_chat/src/core/http/token_manager.dart';
import 'package:stream_chat/src/location.dart';
part 'stream_http_client_options.dart';
@@ -1,32 +1,20 @@
part of 'stream_http_client.dart';
const _defaultBaseURL = 'https://chat-us-east-1.stream-io-api.com';
const _defaultBaseURL = 'https://chat.stream-io-api.com';
/// Client options to modify [StreamHttpClient]
class StreamHttpClientOptions {
/// Instantiates a new [StreamHttpClientOptions]
const StreamHttpClientOptions({
String? baseUrl,
this.location,
this.connectTimeout = const Duration(seconds: 6),
this.receiveTimeout = const Duration(seconds: 6),
this.queryParameters = const {},
this.headers = const {},
}) : _baseUrl = baseUrl ?? _defaultBaseURL;
final String _baseUrl;
}) : baseUrl = baseUrl ?? _defaultBaseURL;
/// base url to use with client.
String get baseUrl {
if (location == null) return _baseUrl;
const serviceName = 'chat';
final locationName = location!.name;
const baseDomainName = 'stream-io-api.com';
return 'https://$serviceName-proxy-$locationName.$baseDomainName';
}
/// data center to use with client
final Location? location;
final String baseUrl;
/// connect timeout, default to 6s
final Duration connectTimeout;
@@ -1,6 +1,4 @@
import 'package:json_annotation/json_annotation.dart';
import 'package:stream_chat/src/core/models/channel_model.dart';
import 'package:stream_chat/src/core/models/message.dart';
import 'package:stream_chat/src/core/util/serializer.dart';
import 'package:stream_chat/stream_chat.dart';
@@ -1,7 +1,4 @@
import 'package:json_annotation/json_annotation.dart';
import 'package:stream_chat/src/core/models/device.dart';
import 'package:stream_chat/src/core/models/mute.dart';
import 'package:stream_chat/src/core/models/user.dart';
import 'package:stream_chat/src/core/util/serializer.dart';
import 'package:stream_chat/stream_chat.dart';
@@ -89,9 +86,9 @@ class OwnUser extends User {
OwnUser(
id: id ?? this.id,
role: role ?? this.role,
/* if null, it will be retrieved from extraData['name']*/
// if null, it will be retrieved from extraData['name']
name: name,
/* if null, it will be retrieved from extraData['image']*/
// if null, it will be retrieved from extraData['image']
image: image,
banned: banned ?? this.banned,
createdAt: createdAt ?? this.createdAt,
@@ -139,7 +136,7 @@ class OwnUser extends User {
@JsonKey(includeIfNull: false)
final List<Mute> mutes;
/// List of users muted by the user.
/// List of channels muted by the user.
@JsonKey(includeIfNull: false)
final List<Mute> channelMutes;
@@ -45,7 +45,7 @@ class User extends Equatable {
this.language,
}) : createdAt = createdAt ?? DateTime.now(),
updatedAt = updatedAt ?? DateTime.now(),
/*For backwards compatibility, set 'name', 'image' in [extraData].*/
// For backwards compatibility, set 'name', 'image' in [extraData].
extraData = {
...extraData,
if (name != null) 'name': name,
@@ -164,9 +164,9 @@ class User extends Equatable {
User(
id: id ?? this.id,
role: role ?? this.role,
/* if null, it will be retrieved from extraData['name']*/
// if null, it will be retrieved from extraData['name']
name: name,
/* if null, it will be retrieved from extraData['image']*/
// if null, it will be retrieved from extraData['image']
image: image,
createdAt: createdAt ?? this.createdAt,
updatedAt: updatedAt ?? this.updatedAt,
@@ -1,12 +1,10 @@
import 'package:stream_chat/src/core/http/stream_http_client.dart';
import 'package:stream_chat/src/location.dart';
import 'package:test/test.dart';
void main() {
test('should return the all default set params', () {
const options = StreamHttpClientOptions();
expect(options.location, isNull);
expect(options.baseUrl, 'https://chat-us-east-1.stream-io-api.com');
expect(options.baseUrl, 'https://chat.stream-io-api.com');
expect(options.connectTimeout, const Duration(seconds: 6));
expect(options.receiveTimeout, const Duration(seconds: 6));
expect(options.queryParameters, const {});
@@ -21,39 +19,10 @@ void main() {
headers: {'test': 'test'},
queryParameters: {'123': '123'},
);
expect(options.location, isNull);
expect(options.baseUrl, 'base-url');
expect(options.connectTimeout, const Duration(seconds: 3));
expect(options.receiveTimeout, const Duration(seconds: 3));
expect(options.headers, {'test': 'test'});
expect(options.queryParameters, {'123': '123'});
});
group('should create baseUrl according to provided location', () {
test('us-east', () {
const options = StreamHttpClientOptions(location: Location.usEast);
expect(options.location, isNotNull);
expect(options.baseUrl, 'https://chat-proxy-us-east.stream-io-api.com');
});
test('eu-west', () {
const options = StreamHttpClientOptions(location: Location.euWest);
expect(options.location, isNotNull);
expect(options.baseUrl, 'https://chat-proxy-dublin.stream-io-api.com');
});
test('mumbai', () {
const options = StreamHttpClientOptions(location: Location.mumbai);
expect(options.location, isNotNull);
expect(options.baseUrl, 'https://chat-proxy-mumbai.stream-io-api.com');
});
test('sydney', () {
const options = StreamHttpClientOptions(location: Location.sydney);
expect(options.location, isNotNull);
expect(options.baseUrl, 'https://chat-proxy-sydney.stream-io-api.com');
});
test('singapore', () {
const options = StreamHttpClientOptions(location: Location.singapore);
expect(options.location, isNotNull);
expect(options.baseUrl, 'https://chat-proxy-singapore.stream-io-api.com');
});
});
}
+4 -3
View File
@@ -7,8 +7,9 @@
🐞 Fixed
- SVG rendering fixes
- Use file extension instead of mimeType for downloading files
- SVG rendering fixes.
- Use file extension instead of mimeType for downloading files.
- [[#860]](https://github.com/GetStream/stream-chat-flutter/issues/860) CastError while compressing Videos.
✅ Added
@@ -32,7 +33,7 @@
🐞 Fixed
- [[#766]]`AttachmentActionsModal` now has customisation options for actions.
- [[#766]](https://github.com/GetStream/stream-chat-flutter/issues/766) `AttachmentActionsModal` now has customisation options for actions.
- Fixed `MessageWidget` null errors associated with `channel.memberCount`.
- Fixed adding attachments on web.
- [[#767]](https://github.com/GetStream/stream-chat-flutter/issues/767): Fix `MessageInput` focus behaviour when sending messages.
@@ -1,4 +1,3 @@
import 'package:characters/characters.dart';
import 'package:diacritic/diacritic.dart';
import 'package:file_picker/file_picker.dart';
import 'package:flutter/foundation.dart';
@@ -1,9 +1,14 @@
# Upcoming
## Upcoming
✅ Added
- Added `MessageInputController` to hold `Message` related data.
🐞 Fixed
- Do not move a channel to top if the new message is from a thread.
- [[#848]](https://github.com/GetStream/stream-chat-flutter/issues/848) Fixed "Bad state: Cannot add new events after calling close" by replacing all `.add` methods with a new `.safeAdd`.
## 3.3.1
- Updated `stream_chat` dependency to [`3.3.1`](https://pub.dev/packages/stream_chat/changelog).
@@ -88,7 +88,7 @@ class HomeScreen extends StatelessWidget {
[
StreamChatCore.of(context).currentUser!.id,
],
)
),
]),
emptyBuilder: (BuildContext context) => const Center(
child: Text('Looks like you are not in any channels'),
@@ -5,6 +5,7 @@ import 'package:rxdart/rxdart.dart';
import 'package:stream_chat/stream_chat.dart';
import 'package:stream_chat_flutter_core/src/channel_list_core.dart';
import 'package:stream_chat_flutter_core/src/stream_chat_core.dart';
import 'package:stream_chat_flutter_core/src/stream_controller_extension.dart';
/// Widget dedicated to the management of a channel list with pagination
/// [ChannelsBloc] is used together with [ChannelListCore] to manage a list of
@@ -115,7 +116,7 @@ class ChannelsBlocState extends State<ChannelsBloc>
}
if (_channelsController.hasValue) {
_queryChannelsLoadingController.add(true);
_queryChannelsLoadingController.safeAdd(true);
}
try {
@@ -134,14 +135,14 @@ class ChannelsBlocState extends State<ChannelsBloc>
)) {
newChannels = channels;
if (clear) {
_channelsController.add(channels);
_channelsController.safeAdd(channels);
} else {
final temp = oldChannels + channels;
_channelsController.add(temp);
_channelsController.safeAdd(temp);
}
if (_channelsController.hasValue &&
_queryChannelsLoadingController.value) {
_queryChannelsLoadingController.sink.add(false);
_queryChannelsLoadingController.safeAdd(false);
}
}
if (newChannels.isEmpty || newChannels.length < paginationParams.limit) {
@@ -149,11 +150,11 @@ class ChannelsBlocState extends State<ChannelsBloc>
}
} catch (e, stk) {
// reset loading controller
_queryChannelsLoadingController.sink.add(false);
_queryChannelsLoadingController.safeAdd(false);
if (_channelsController.hasValue) {
_queryChannelsLoadingController.addError(e, stk);
_queryChannelsLoadingController.safeAddError(e, stk);
} else {
_channelsController.addError(e, stk);
_channelsController.safeAddError(e, stk);
}
}
}
@@ -173,6 +174,9 @@ class ChannelsBlocState extends State<ChannelsBloc>
EventType.messageNew,
)
.listen((e) {
if (e.message?.parentId != null && e.message?.showInChannel != true) {
return;
}
final newChannels = List<Channel>.from(channels ?? []);
final index = newChannels.indexWhere((c) => c.cid == e.cid);
if (index != -1) {
@@ -196,7 +200,7 @@ class ChannelsBlocState extends State<ChannelsBloc>
if (widget.channelsComparator != null) {
newChannels.sort(widget.channelsComparator);
}
_channelsController.add(newChannels);
_channelsController.safeAdd(newChannels);
}));
}
@@ -208,7 +212,7 @@ class ChannelsBlocState extends State<ChannelsBloc>
if (channelIndex > -1) {
final channel = newChannels.removeAt(channelIndex);
_hiddenChannels.add(channel);
_channelsController.add(newChannels);
_channelsController.safeAdd(newChannels);
}
}))
..add(client
@@ -218,7 +222,7 @@ class ChannelsBlocState extends State<ChannelsBloc>
)
.listen((e) {
final channel = e.channel;
_channelsController.add(List.from(
_channelsController.safeAdd(List.from(
(channels ?? [])..removeWhere((c) => c.cid == channel?.cid),
));
}));
@@ -2,6 +2,7 @@ import 'package:flutter/material.dart';
import 'package:rxdart/rxdart.dart';
import 'package:stream_chat/stream_chat.dart';
import 'package:stream_chat_flutter_core/src/stream_chat_core.dart';
import 'package:stream_chat_flutter_core/src/stream_controller_extension.dart';
/// [MessageSearchBloc] is used to manage a list of messages with pagination.
/// This class can be used to load messages, perform queries, etc.
@@ -95,7 +96,7 @@ class MessageSearchBlocState extends State<MessageSearchBloc>
}
if (_messageResponses.hasValue) {
_queryMessagesLoadingController.add(true);
_queryMessagesLoadingController.safeAdd(true);
}
try {
final oldMessages = List<GetMessageResponse>.from(messageResponses ?? []);
@@ -120,24 +121,24 @@ class MessageSearchBlocState extends State<MessageSearchBloc>
final newMessages = response.results;
if (clear) {
_messageResponses.add(newMessages);
_messageResponses.safeAdd(newMessages);
} else {
final temp = oldMessages + newMessages;
_messageResponses.add(temp);
_messageResponses.safeAdd(temp);
}
if (_messageResponses.hasValue && _queryMessagesLoadingController.value) {
_queryMessagesLoadingController.add(false);
_queryMessagesLoadingController.safeAdd(false);
}
if (newMessages.isEmpty || newMessages.length < pagination.limit) {
_paginationEnded = true;
}
} catch (e, stk) {
// reset loading controller
_queryMessagesLoadingController.add(false);
_queryMessagesLoadingController.safeAdd(false);
if (_messageResponses.hasValue) {
_queryMessagesLoadingController.addError(e, stk);
_queryMessagesLoadingController.safeAddError(e, stk);
} else {
_messageResponses.addError(e, stk);
_messageResponses.safeAddError(e, stk);
}
}
}
@@ -1,10 +1,10 @@
import 'dart:async';
import 'package:collection/collection.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:rxdart/rxdart.dart';
import 'package:stream_chat/stream_chat.dart';
import 'package:stream_chat_flutter_core/src/stream_controller_extension.dart';
/// Specifies query direction for pagination
enum QueryDirection {
@@ -92,10 +92,10 @@ class StreamChannelState extends State<StreamChannel> {
channel.state == null) {
return;
}
_queryTopMessagesController.add(true);
_queryTopMessagesController.safeAdd(true);
if (channel.state!.messages.isEmpty) {
return _queryTopMessagesController.add(false);
return _queryTopMessagesController.safeAdd(false);
}
final oldestMessage = channel.state!.messages.first;
@@ -109,9 +109,9 @@ class StreamChannelState extends State<StreamChannel> {
if (state.messages.isEmpty || state.messages.length < limit) {
_topPaginationEnded = true;
}
_queryTopMessagesController.add(false);
_queryTopMessagesController.safeAdd(false);
} catch (e, stk) {
_queryTopMessagesController.addError(e, stk);
_queryTopMessagesController.safeAddError(e, stk);
}
}
@@ -123,10 +123,10 @@ class StreamChannelState extends State<StreamChannel> {
_queryBottomMessagesController.value ||
channel.state == null ||
channel.state!.isUpToDate) return;
_queryBottomMessagesController.add(true);
_queryBottomMessagesController.safeAdd(true);
if (channel.state!.messages.isEmpty) {
return _queryBottomMessagesController.add(false);
return _queryBottomMessagesController.safeAdd(false);
}
final recentMessage = channel.state!.messages.last;
@@ -140,9 +140,9 @@ class StreamChannelState extends State<StreamChannel> {
if (state.messages.isEmpty || state.messages.length < limit) {
_bottomPaginationEnded = true;
}
_queryBottomMessagesController.add(false);
_queryBottomMessagesController.safeAdd(false);
} catch (e, stk) {
_queryBottomMessagesController.addError(e, stk);
_queryBottomMessagesController.safeAddError(e, stk);
}
}
@@ -166,7 +166,7 @@ class StreamChannelState extends State<StreamChannel> {
if (_topPaginationEnded ||
_queryTopMessagesController.value ||
channel.state == null) return;
_queryTopMessagesController.add(true);
_queryTopMessagesController.safeAdd(true);
Message? message;
if (channel.state!.threads.containsKey(parentId)) {
@@ -188,9 +188,9 @@ class StreamChannelState extends State<StreamChannel> {
if (response.messages.isEmpty || response.messages.length < limit) {
_topPaginationEnded = true;
}
_queryTopMessagesController.add(false);
_queryTopMessagesController.safeAdd(false);
} catch (e, stk) {
_queryTopMessagesController.addError(e, stk);
_queryTopMessagesController.safeAddError(e, stk);
}
}
@@ -0,0 +1,18 @@
import 'dart:async';
/// Extension on [StreamController] to safely add events and errors.
extension StreamControllerX<T> on StreamController<T> {
/// Safely adds the event to the controller,
/// Returns early if the controller is closed.
void safeAdd(T event) {
if (isClosed) return;
add(event);
}
/// Safely adds the error to the controller,
/// Returns early if the controller is closed.
void safeAddError(Object error, [StackTrace? stackTrace]) {
if (isClosed) return;
addError(error, stackTrace);
}
}
@@ -1,7 +1,6 @@
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:rxdart/rxdart.dart';
import 'package:stream_chat/stream_chat.dart';
import 'package:stream_chat_flutter_core/src/stream_controller_extension.dart';
import 'package:stream_chat_flutter_core/stream_chat_flutter_core.dart';
/// Widget dedicated to the management of a users list with pagination.
@@ -82,7 +81,7 @@ class UsersBlocState extends State<UsersBloc>
}
if (_usersController.hasValue) {
_queryUsersLoadingController.add(true);
_queryUsersLoadingController.safeAdd(true);
}
try {
@@ -97,24 +96,24 @@ class UsersBlocState extends State<UsersBloc>
final newUsers = usersResponse.users;
if (clear) {
_usersController.add(usersResponse.users);
_usersController.safeAdd(usersResponse.users);
} else {
final temp = oldUsers + usersResponse.users;
_usersController.add(temp);
_usersController.safeAdd(temp);
}
if (_usersController.hasValue && _queryUsersLoadingController.value) {
_queryUsersLoadingController.add(false);
_queryUsersLoadingController.safeAdd(false);
}
if (newUsers.isEmpty || newUsers.length < pagination.limit) {
_paginationEnded = true;
}
} catch (e, stk) {
// reset loading controller
_queryUsersLoadingController.add(false);
_queryUsersLoadingController.safeAdd(false);
if (_usersController.hasValue) {
_queryUsersLoadingController.addError(e, stk);
_queryUsersLoadingController.safeAddError(e, stk);
} else {
_usersController.addError(e, stk);
_usersController.safeAddError(e, stk);
}
}
}
@@ -1,3 +1,9 @@
## 2.1.0
🔄 Changed
* Some of the `Japanese` translations have been updated/changed for better understanding.
## 2.0.0
- Updated `stream_chat_flutter` dependency to [`3.0.0`](https://pub.dev/packages/stream_chat_flutter/changelog).
@@ -38,7 +38,7 @@ class StreamChatLocalizationsJa extends GlobalStreamChatLocalizations {
String get threadReplyLabel => 'スレッド返信';
@override
String get onlyVisibleToYouText => '自分しか見れません';
String get onlyVisibleToYouText => '自分にのみ見えます';
@override
String threadReplyCountText(int count) => '$countつのスレッド返信';
@@ -48,7 +48,7 @@ class StreamChatLocalizationsJa extends GlobalStreamChatLocalizations {
required int remaining,
required int total,
}) =>
'$remaining/${total}mbのアップロード中 。。。';
'$remaining/${total}mbのアップロード中';
@override
String pinnedByUserText({
@@ -85,7 +85,7 @@ class StreamChatLocalizationsJa extends GlobalStreamChatLocalizations {
String get messageReactionsLabel => 'メッセージのリアクション';
@override
String get emptyChatMessagesText => 'チャットがありませんが。。。';
String get emptyChatMessagesText => 'まだメッセージはありません';
@override
String threadSeparatorText(int replyCount) => '$replyCount件の返信';
@@ -97,7 +97,7 @@ class StreamChatLocalizationsJa extends GlobalStreamChatLocalizations {
String get disconnectedLabel => '接続切れ';
@override
String get reconnectingLabel => '再接続中。。。';
String get reconnectingLabel => '再接続中';
@override
String get alsoSendAsDirectMessageLabel => 'ダイレクトメッセージでも送信';
@@ -118,7 +118,7 @@ class StreamChatLocalizationsJa extends GlobalStreamChatLocalizations {
String fileTooLargeAfterCompressionError(double limitInMB) =>
'ファイルのサイズが大きすぎてアップロードできません。'
'ファイルサイズの制限は${limitInMB}MBです。'
'圧縮してみましたが、十分ではありませんでした';
'圧縮を試しましたがサイズをオーバーしました';
@override
String fileTooLargeError(double limitInMB) =>
@@ -146,7 +146,7 @@ class StreamChatLocalizationsJa extends GlobalStreamChatLocalizations {
String get videoFromCameraLabel => 'カメラからの動画';
@override
String get okLabel => 'よし';
String get okLabel => 'OK';
@override
String get somethingWentWrongError => 'エラーが発生しました';
@@ -183,7 +183,7 @@ class StreamChatLocalizationsJa extends GlobalStreamChatLocalizations {
String get deleteLabel => '削除';
@override
String get deleteMessageLabel => 'メッセージを削除する ';
String get deleteMessageLabel => 'メッセージを削除する';
@override
String get deleteMessageQuestion => 'このメッセージ'
@@ -198,7 +198,7 @@ class StreamChatLocalizationsJa extends GlobalStreamChatLocalizations {
@override
String togglePinUnpinText({required bool pinned}) {
if (pinned) return '会話のピンを外す';
return '会話ピンする';
return '会話ピンする';
}
@override
@@ -249,7 +249,7 @@ class StreamChatLocalizationsJa extends GlobalStreamChatLocalizations {
String get yesterdayLabel => '昨日';
@override
String get channelIsMutedText => 'チャンネルが無音されています';
String get channelIsMutedText => 'チャンネルがミュートされています';
@override
String get noTitleText => 'タイトル無し';
@@ -258,7 +258,7 @@ class StreamChatLocalizationsJa extends GlobalStreamChatLocalizations {
String get letsStartChattingLabel => 'チャットを始めよう!';
@override
String get sendingFirstMessageLabel => '友人に最初のメッセージを送ましょうか?';
String get sendingFirstMessageLabel => '最初のメッセージを送ってみましょう';
@override
String get startAChatLabel => 'チャットを開始する';
@@ -279,7 +279,7 @@ class StreamChatLocalizationsJa extends GlobalStreamChatLocalizations {
String get searchingForNetworkText => 'ネットワークを検索中';
@override
String get offlineLabel => 'オフライン。。。';
String get offlineLabel => 'オフライン';
@override
String get tryAgainLabel => '再試行する';
@@ -294,16 +294,16 @@ class StreamChatLocalizationsJa extends GlobalStreamChatLocalizations {
String get viewInfoLabel => '情報を見る';
@override
String get leaveGroupLabel => 'グループを離れ';
String get leaveGroupLabel => 'グループから退出す';
@override
String get leaveLabel => '離れ';
String get leaveLabel => '退出す';
@override
String get leaveConversationLabel => '会話を離れ';
String get leaveConversationLabel => '会話から退出す';
@override
String get leaveConversationQuestion => '本当に会話を離れますか?';
String get leaveConversationQuestion => '本当に会話から退出しますか?';
@override
String get showInChatLabel => 'チャットで表示';
@@ -318,7 +318,7 @@ class StreamChatLocalizationsJa extends GlobalStreamChatLocalizations {
String get uploadErrorLabel => 'アップロードエラー';
@override
String get giphyLabel => 'ギフィー';
String get giphyLabel => 'GIPHY';
@override
String get shuffleLabel => 'ミックス';
@@ -1,3 +1,7 @@
## Upcoming
- Bump `drift` to `1.3.0`.
## 3.0.0
- Updated `stream_chat` dependency to [`3.0.0`](https://pub.dev/packages/stream_chat/changelog).
@@ -245,7 +245,7 @@ class _MessageViewState extends State<MessageView> {
),
],
),
)
),
],
);
}
@@ -394,66 +394,78 @@ class $ChannelsTable extends Channels
final String? _alias;
$ChannelsTable(this._db, [this._alias]);
final VerificationMeta _idMeta = const VerificationMeta('id');
@override
late final GeneratedColumn<String?> id = GeneratedColumn<String?>(
'id', aliasedName, false,
typeName: 'TEXT', requiredDuringInsert: true);
type: const StringType(), requiredDuringInsert: true);
final VerificationMeta _typeMeta = const VerificationMeta('type');
@override
late final GeneratedColumn<String?> type = GeneratedColumn<String?>(
'type', aliasedName, false,
typeName: 'TEXT', requiredDuringInsert: true);
type: const StringType(), requiredDuringInsert: true);
final VerificationMeta _cidMeta = const VerificationMeta('cid');
@override
late final GeneratedColumn<String?> cid = GeneratedColumn<String?>(
'cid', aliasedName, false,
typeName: 'TEXT', requiredDuringInsert: true);
type: const StringType(), requiredDuringInsert: true);
final VerificationMeta _configMeta = const VerificationMeta('config');
@override
late final GeneratedColumnWithTypeConverter<Map<String, dynamic>, String?>
config = GeneratedColumn<String?>('config', aliasedName, false,
typeName: 'TEXT', requiredDuringInsert: true)
type: const StringType(), requiredDuringInsert: true)
.withConverter<Map<String, dynamic>>($ChannelsTable.$converter0);
final VerificationMeta _frozenMeta = const VerificationMeta('frozen');
@override
late final GeneratedColumn<bool?> frozen = GeneratedColumn<bool?>(
'frozen', aliasedName, false,
typeName: 'INTEGER',
type: const BoolType(),
requiredDuringInsert: false,
defaultConstraints: 'CHECK (frozen IN (0, 1))',
defaultValue: const Constant(false));
final VerificationMeta _lastMessageAtMeta =
const VerificationMeta('lastMessageAt');
@override
late final GeneratedColumn<DateTime?> lastMessageAt =
GeneratedColumn<DateTime?>('last_message_at', aliasedName, true,
typeName: 'INTEGER', requiredDuringInsert: false);
type: const IntType(), requiredDuringInsert: false);
final VerificationMeta _createdAtMeta = const VerificationMeta('createdAt');
@override
late final GeneratedColumn<DateTime?> createdAt = GeneratedColumn<DateTime?>(
'created_at', aliasedName, false,
typeName: 'INTEGER',
type: const IntType(),
requiredDuringInsert: false,
defaultValue: currentDateAndTime);
final VerificationMeta _updatedAtMeta = const VerificationMeta('updatedAt');
@override
late final GeneratedColumn<DateTime?> updatedAt = GeneratedColumn<DateTime?>(
'updated_at', aliasedName, false,
typeName: 'INTEGER',
type: const IntType(),
requiredDuringInsert: false,
defaultValue: currentDateAndTime);
final VerificationMeta _deletedAtMeta = const VerificationMeta('deletedAt');
@override
late final GeneratedColumn<DateTime?> deletedAt = GeneratedColumn<DateTime?>(
'deleted_at', aliasedName, true,
typeName: 'INTEGER', requiredDuringInsert: false);
type: const IntType(), requiredDuringInsert: false);
final VerificationMeta _memberCountMeta =
const VerificationMeta('memberCount');
@override
late final GeneratedColumn<int?> memberCount = GeneratedColumn<int?>(
'member_count', aliasedName, false,
typeName: 'INTEGER',
type: const IntType(),
requiredDuringInsert: false,
defaultValue: const Constant(0));
final VerificationMeta _createdByIdMeta =
const VerificationMeta('createdById');
@override
late final GeneratedColumn<String?> createdById = GeneratedColumn<String?>(
'created_by_id', aliasedName, true,
typeName: 'TEXT', requiredDuringInsert: false);
type: const StringType(), requiredDuringInsert: false);
final VerificationMeta _extraDataMeta = const VerificationMeta('extraData');
@override
late final GeneratedColumnWithTypeConverter<Map<String, Object?>, String?>
extraData = GeneratedColumn<String?>('extra_data', aliasedName, true,
typeName: 'TEXT', requiredDuringInsert: false)
type: const StringType(), requiredDuringInsert: false)
.withConverter<Map<String, Object?>>($ChannelsTable.$converter1);
@override
List<GeneratedColumn> get $columns => [
@@ -1329,140 +1341,165 @@ class $MessagesTable extends Messages
final String? _alias;
$MessagesTable(this._db, [this._alias]);
final VerificationMeta _idMeta = const VerificationMeta('id');
@override
late final GeneratedColumn<String?> id = GeneratedColumn<String?>(
'id', aliasedName, false,
typeName: 'TEXT', requiredDuringInsert: true);
type: const StringType(), requiredDuringInsert: true);
final VerificationMeta _messageTextMeta =
const VerificationMeta('messageText');
@override
late final GeneratedColumn<String?> messageText = GeneratedColumn<String?>(
'message_text', aliasedName, true,
typeName: 'TEXT', requiredDuringInsert: false);
type: const StringType(), requiredDuringInsert: false);
final VerificationMeta _attachmentsMeta =
const VerificationMeta('attachments');
@override
late final GeneratedColumnWithTypeConverter<List<String>, String?>
attachments = GeneratedColumn<String?>('attachments', aliasedName, false,
typeName: 'TEXT', requiredDuringInsert: true)
type: const StringType(), requiredDuringInsert: true)
.withConverter<List<String>>($MessagesTable.$converter0);
final VerificationMeta _statusMeta = const VerificationMeta('status');
@override
late final GeneratedColumnWithTypeConverter<MessageSendingStatus, int?>
status = GeneratedColumn<int?>('status', aliasedName, false,
typeName: 'INTEGER',
type: const IntType(),
requiredDuringInsert: false,
defaultValue: const Constant(1))
.withConverter<MessageSendingStatus>($MessagesTable.$converter1);
final VerificationMeta _typeMeta = const VerificationMeta('type');
@override
late final GeneratedColumn<String?> type = GeneratedColumn<String?>(
'type', aliasedName, false,
typeName: 'TEXT',
type: const StringType(),
requiredDuringInsert: false,
defaultValue: const Constant('regular'));
final VerificationMeta _mentionedUsersMeta =
const VerificationMeta('mentionedUsers');
@override
late final GeneratedColumnWithTypeConverter<List<String>, String?>
mentionedUsers = GeneratedColumn<String?>(
'mentioned_users', aliasedName, false,
typeName: 'TEXT', requiredDuringInsert: true)
type: const StringType(), requiredDuringInsert: true)
.withConverter<List<String>>($MessagesTable.$converter2);
final VerificationMeta _reactionCountsMeta =
const VerificationMeta('reactionCounts');
@override
late final GeneratedColumnWithTypeConverter<Map<String, int>, String?>
reactionCounts = GeneratedColumn<String?>(
'reaction_counts', aliasedName, true,
typeName: 'TEXT', requiredDuringInsert: false)
type: const StringType(), requiredDuringInsert: false)
.withConverter<Map<String, int>>($MessagesTable.$converter3);
final VerificationMeta _reactionScoresMeta =
const VerificationMeta('reactionScores');
@override
late final GeneratedColumnWithTypeConverter<Map<String, int>, String?>
reactionScores = GeneratedColumn<String?>(
'reaction_scores', aliasedName, true,
typeName: 'TEXT', requiredDuringInsert: false)
type: const StringType(), requiredDuringInsert: false)
.withConverter<Map<String, int>>($MessagesTable.$converter4);
final VerificationMeta _parentIdMeta = const VerificationMeta('parentId');
@override
late final GeneratedColumn<String?> parentId = GeneratedColumn<String?>(
'parent_id', aliasedName, true,
typeName: 'TEXT', requiredDuringInsert: false);
type: const StringType(), requiredDuringInsert: false);
final VerificationMeta _quotedMessageIdMeta =
const VerificationMeta('quotedMessageId');
@override
late final GeneratedColumn<String?> quotedMessageId =
GeneratedColumn<String?>('quoted_message_id', aliasedName, true,
typeName: 'TEXT', requiredDuringInsert: false);
type: const StringType(), requiredDuringInsert: false);
final VerificationMeta _replyCountMeta = const VerificationMeta('replyCount');
@override
late final GeneratedColumn<int?> replyCount = GeneratedColumn<int?>(
'reply_count', aliasedName, true,
typeName: 'INTEGER', requiredDuringInsert: false);
type: const IntType(), requiredDuringInsert: false);
final VerificationMeta _showInChannelMeta =
const VerificationMeta('showInChannel');
@override
late final GeneratedColumn<bool?> showInChannel = GeneratedColumn<bool?>(
'show_in_channel', aliasedName, true,
typeName: 'INTEGER',
type: const BoolType(),
requiredDuringInsert: false,
defaultConstraints: 'CHECK (show_in_channel IN (0, 1))');
final VerificationMeta _shadowedMeta = const VerificationMeta('shadowed');
@override
late final GeneratedColumn<bool?> shadowed = GeneratedColumn<bool?>(
'shadowed', aliasedName, false,
typeName: 'INTEGER',
type: const BoolType(),
requiredDuringInsert: false,
defaultConstraints: 'CHECK (shadowed IN (0, 1))',
defaultValue: const Constant(false));
final VerificationMeta _commandMeta = const VerificationMeta('command');
@override
late final GeneratedColumn<String?> command = GeneratedColumn<String?>(
'command', aliasedName, true,
typeName: 'TEXT', requiredDuringInsert: false);
type: const StringType(), requiredDuringInsert: false);
final VerificationMeta _createdAtMeta = const VerificationMeta('createdAt');
@override
late final GeneratedColumn<DateTime?> createdAt = GeneratedColumn<DateTime?>(
'created_at', aliasedName, false,
typeName: 'INTEGER',
type: const IntType(),
requiredDuringInsert: false,
defaultValue: currentDateAndTime);
final VerificationMeta _updatedAtMeta = const VerificationMeta('updatedAt');
@override
late final GeneratedColumn<DateTime?> updatedAt = GeneratedColumn<DateTime?>(
'updated_at', aliasedName, false,
typeName: 'INTEGER',
type: const IntType(),
requiredDuringInsert: false,
defaultValue: currentDateAndTime);
final VerificationMeta _deletedAtMeta = const VerificationMeta('deletedAt');
@override
late final GeneratedColumn<DateTime?> deletedAt = GeneratedColumn<DateTime?>(
'deleted_at', aliasedName, true,
typeName: 'INTEGER', requiredDuringInsert: false);
type: const IntType(), requiredDuringInsert: false);
final VerificationMeta _userIdMeta = const VerificationMeta('userId');
@override
late final GeneratedColumn<String?> userId = GeneratedColumn<String?>(
'user_id', aliasedName, true,
typeName: 'TEXT', requiredDuringInsert: false);
type: const StringType(), requiredDuringInsert: false);
final VerificationMeta _pinnedMeta = const VerificationMeta('pinned');
@override
late final GeneratedColumn<bool?> pinned = GeneratedColumn<bool?>(
'pinned', aliasedName, false,
typeName: 'INTEGER',
type: const BoolType(),
requiredDuringInsert: false,
defaultConstraints: 'CHECK (pinned IN (0, 1))',
defaultValue: const Constant(false));
final VerificationMeta _pinnedAtMeta = const VerificationMeta('pinnedAt');
@override
late final GeneratedColumn<DateTime?> pinnedAt = GeneratedColumn<DateTime?>(
'pinned_at', aliasedName, true,
typeName: 'INTEGER', requiredDuringInsert: false);
type: const IntType(), requiredDuringInsert: false);
final VerificationMeta _pinExpiresMeta = const VerificationMeta('pinExpires');
@override
late final GeneratedColumn<DateTime?> pinExpires = GeneratedColumn<DateTime?>(
'pin_expires', aliasedName, true,
typeName: 'INTEGER', requiredDuringInsert: false);
type: const IntType(), requiredDuringInsert: false);
final VerificationMeta _pinnedByUserIdMeta =
const VerificationMeta('pinnedByUserId');
@override
late final GeneratedColumn<String?> pinnedByUserId = GeneratedColumn<String?>(
'pinned_by_user_id', aliasedName, true,
typeName: 'TEXT', requiredDuringInsert: false);
type: const StringType(), requiredDuringInsert: false);
final VerificationMeta _channelCidMeta = const VerificationMeta('channelCid');
@override
late final GeneratedColumn<String?> channelCid = GeneratedColumn<String?>(
'channel_cid', aliasedName, false,
typeName: 'TEXT',
type: const StringType(),
requiredDuringInsert: true,
$customConstraints: 'REFERENCES channels(cid) ON DELETE CASCADE');
final VerificationMeta _i18nMeta = const VerificationMeta('i18n');
@override
late final GeneratedColumnWithTypeConverter<Map<String, String>, String?>
i18n = GeneratedColumn<String?>('i18n', aliasedName, true,
typeName: 'TEXT', requiredDuringInsert: false)
type: const StringType(), requiredDuringInsert: false)
.withConverter<Map<String, String>>($MessagesTable.$converter5);
final VerificationMeta _extraDataMeta = const VerificationMeta('extraData');
@override
late final GeneratedColumnWithTypeConverter<Map<String, Object?>, String?>
extraData = GeneratedColumn<String?>('extra_data', aliasedName, true,
typeName: 'TEXT', requiredDuringInsert: false)
type: const StringType(), requiredDuringInsert: false)
.withConverter<Map<String, Object?>>($MessagesTable.$converter6);
@override
List<GeneratedColumn> get $columns => [
@@ -2409,141 +2446,166 @@ class $PinnedMessagesTable extends PinnedMessages
final String? _alias;
$PinnedMessagesTable(this._db, [this._alias]);
final VerificationMeta _idMeta = const VerificationMeta('id');
@override
late final GeneratedColumn<String?> id = GeneratedColumn<String?>(
'id', aliasedName, false,
typeName: 'TEXT', requiredDuringInsert: true);
type: const StringType(), requiredDuringInsert: true);
final VerificationMeta _messageTextMeta =
const VerificationMeta('messageText');
@override
late final GeneratedColumn<String?> messageText = GeneratedColumn<String?>(
'message_text', aliasedName, true,
typeName: 'TEXT', requiredDuringInsert: false);
type: const StringType(), requiredDuringInsert: false);
final VerificationMeta _attachmentsMeta =
const VerificationMeta('attachments');
@override
late final GeneratedColumnWithTypeConverter<List<String>, String?>
attachments = GeneratedColumn<String?>('attachments', aliasedName, false,
typeName: 'TEXT', requiredDuringInsert: true)
type: const StringType(), requiredDuringInsert: true)
.withConverter<List<String>>($PinnedMessagesTable.$converter0);
final VerificationMeta _statusMeta = const VerificationMeta('status');
@override
late final GeneratedColumnWithTypeConverter<MessageSendingStatus, int?>
status = GeneratedColumn<int?>('status', aliasedName, false,
typeName: 'INTEGER',
type: const IntType(),
requiredDuringInsert: false,
defaultValue: const Constant(1))
.withConverter<MessageSendingStatus>(
$PinnedMessagesTable.$converter1);
final VerificationMeta _typeMeta = const VerificationMeta('type');
@override
late final GeneratedColumn<String?> type = GeneratedColumn<String?>(
'type', aliasedName, false,
typeName: 'TEXT',
type: const StringType(),
requiredDuringInsert: false,
defaultValue: const Constant('regular'));
final VerificationMeta _mentionedUsersMeta =
const VerificationMeta('mentionedUsers');
@override
late final GeneratedColumnWithTypeConverter<List<String>, String?>
mentionedUsers = GeneratedColumn<String?>(
'mentioned_users', aliasedName, false,
typeName: 'TEXT', requiredDuringInsert: true)
type: const StringType(), requiredDuringInsert: true)
.withConverter<List<String>>($PinnedMessagesTable.$converter2);
final VerificationMeta _reactionCountsMeta =
const VerificationMeta('reactionCounts');
@override
late final GeneratedColumnWithTypeConverter<Map<String, int>, String?>
reactionCounts = GeneratedColumn<String?>(
'reaction_counts', aliasedName, true,
typeName: 'TEXT', requiredDuringInsert: false)
type: const StringType(), requiredDuringInsert: false)
.withConverter<Map<String, int>>($PinnedMessagesTable.$converter3);
final VerificationMeta _reactionScoresMeta =
const VerificationMeta('reactionScores');
@override
late final GeneratedColumnWithTypeConverter<Map<String, int>, String?>
reactionScores = GeneratedColumn<String?>(
'reaction_scores', aliasedName, true,
typeName: 'TEXT', requiredDuringInsert: false)
type: const StringType(), requiredDuringInsert: false)
.withConverter<Map<String, int>>($PinnedMessagesTable.$converter4);
final VerificationMeta _parentIdMeta = const VerificationMeta('parentId');
@override
late final GeneratedColumn<String?> parentId = GeneratedColumn<String?>(
'parent_id', aliasedName, true,
typeName: 'TEXT', requiredDuringInsert: false);
type: const StringType(), requiredDuringInsert: false);
final VerificationMeta _quotedMessageIdMeta =
const VerificationMeta('quotedMessageId');
@override
late final GeneratedColumn<String?> quotedMessageId =
GeneratedColumn<String?>('quoted_message_id', aliasedName, true,
typeName: 'TEXT', requiredDuringInsert: false);
type: const StringType(), requiredDuringInsert: false);
final VerificationMeta _replyCountMeta = const VerificationMeta('replyCount');
@override
late final GeneratedColumn<int?> replyCount = GeneratedColumn<int?>(
'reply_count', aliasedName, true,
typeName: 'INTEGER', requiredDuringInsert: false);
type: const IntType(), requiredDuringInsert: false);
final VerificationMeta _showInChannelMeta =
const VerificationMeta('showInChannel');
@override
late final GeneratedColumn<bool?> showInChannel = GeneratedColumn<bool?>(
'show_in_channel', aliasedName, true,
typeName: 'INTEGER',
type: const BoolType(),
requiredDuringInsert: false,
defaultConstraints: 'CHECK (show_in_channel IN (0, 1))');
final VerificationMeta _shadowedMeta = const VerificationMeta('shadowed');
@override
late final GeneratedColumn<bool?> shadowed = GeneratedColumn<bool?>(
'shadowed', aliasedName, false,
typeName: 'INTEGER',
type: const BoolType(),
requiredDuringInsert: false,
defaultConstraints: 'CHECK (shadowed IN (0, 1))',
defaultValue: const Constant(false));
final VerificationMeta _commandMeta = const VerificationMeta('command');
@override
late final GeneratedColumn<String?> command = GeneratedColumn<String?>(
'command', aliasedName, true,
typeName: 'TEXT', requiredDuringInsert: false);
type: const StringType(), requiredDuringInsert: false);
final VerificationMeta _createdAtMeta = const VerificationMeta('createdAt');
@override
late final GeneratedColumn<DateTime?> createdAt = GeneratedColumn<DateTime?>(
'created_at', aliasedName, false,
typeName: 'INTEGER',
type: const IntType(),
requiredDuringInsert: false,
defaultValue: currentDateAndTime);
final VerificationMeta _updatedAtMeta = const VerificationMeta('updatedAt');
@override
late final GeneratedColumn<DateTime?> updatedAt = GeneratedColumn<DateTime?>(
'updated_at', aliasedName, false,
typeName: 'INTEGER',
type: const IntType(),
requiredDuringInsert: false,
defaultValue: currentDateAndTime);
final VerificationMeta _deletedAtMeta = const VerificationMeta('deletedAt');
@override
late final GeneratedColumn<DateTime?> deletedAt = GeneratedColumn<DateTime?>(
'deleted_at', aliasedName, true,
typeName: 'INTEGER', requiredDuringInsert: false);
type: const IntType(), requiredDuringInsert: false);
final VerificationMeta _userIdMeta = const VerificationMeta('userId');
@override
late final GeneratedColumn<String?> userId = GeneratedColumn<String?>(
'user_id', aliasedName, true,
typeName: 'TEXT', requiredDuringInsert: false);
type: const StringType(), requiredDuringInsert: false);
final VerificationMeta _pinnedMeta = const VerificationMeta('pinned');
@override
late final GeneratedColumn<bool?> pinned = GeneratedColumn<bool?>(
'pinned', aliasedName, false,
typeName: 'INTEGER',
type: const BoolType(),
requiredDuringInsert: false,
defaultConstraints: 'CHECK (pinned IN (0, 1))',
defaultValue: const Constant(false));
final VerificationMeta _pinnedAtMeta = const VerificationMeta('pinnedAt');
@override
late final GeneratedColumn<DateTime?> pinnedAt = GeneratedColumn<DateTime?>(
'pinned_at', aliasedName, true,
typeName: 'INTEGER', requiredDuringInsert: false);
type: const IntType(), requiredDuringInsert: false);
final VerificationMeta _pinExpiresMeta = const VerificationMeta('pinExpires');
@override
late final GeneratedColumn<DateTime?> pinExpires = GeneratedColumn<DateTime?>(
'pin_expires', aliasedName, true,
typeName: 'INTEGER', requiredDuringInsert: false);
type: const IntType(), requiredDuringInsert: false);
final VerificationMeta _pinnedByUserIdMeta =
const VerificationMeta('pinnedByUserId');
@override
late final GeneratedColumn<String?> pinnedByUserId = GeneratedColumn<String?>(
'pinned_by_user_id', aliasedName, true,
typeName: 'TEXT', requiredDuringInsert: false);
type: const StringType(), requiredDuringInsert: false);
final VerificationMeta _channelCidMeta = const VerificationMeta('channelCid');
@override
late final GeneratedColumn<String?> channelCid = GeneratedColumn<String?>(
'channel_cid', aliasedName, false,
typeName: 'TEXT',
type: const StringType(),
requiredDuringInsert: true,
$customConstraints: 'REFERENCES channels(cid) ON DELETE CASCADE');
final VerificationMeta _i18nMeta = const VerificationMeta('i18n');
@override
late final GeneratedColumnWithTypeConverter<Map<String, String>, String?>
i18n = GeneratedColumn<String?>('i18n', aliasedName, true,
typeName: 'TEXT', requiredDuringInsert: false)
type: const StringType(), requiredDuringInsert: false)
.withConverter<Map<String, String>>($PinnedMessagesTable.$converter5);
final VerificationMeta _extraDataMeta = const VerificationMeta('extraData');
@override
late final GeneratedColumnWithTypeConverter<Map<String, Object?>, String?>
extraData = GeneratedColumn<String?>('extra_data', aliasedName, true,
typeName: 'TEXT', requiredDuringInsert: false)
type: const StringType(), requiredDuringInsert: false)
.withConverter<Map<String, Object?>>(
$PinnedMessagesTable.$converter6);
@override
@@ -2947,35 +3009,41 @@ class $PinnedMessageReactionsTable extends PinnedMessageReactions
final String? _alias;
$PinnedMessageReactionsTable(this._db, [this._alias]);
final VerificationMeta _userIdMeta = const VerificationMeta('userId');
@override
late final GeneratedColumn<String?> userId = GeneratedColumn<String?>(
'user_id', aliasedName, false,
typeName: 'TEXT', requiredDuringInsert: true);
type: const StringType(), requiredDuringInsert: true);
final VerificationMeta _messageIdMeta = const VerificationMeta('messageId');
@override
late final GeneratedColumn<String?> messageId = GeneratedColumn<String?>(
'message_id', aliasedName, false,
typeName: 'TEXT',
type: const StringType(),
requiredDuringInsert: true,
$customConstraints: 'REFERENCES pinned_messages(id) ON DELETE CASCADE');
final VerificationMeta _typeMeta = const VerificationMeta('type');
@override
late final GeneratedColumn<String?> type = GeneratedColumn<String?>(
'type', aliasedName, false,
typeName: 'TEXT', requiredDuringInsert: true);
type: const StringType(), requiredDuringInsert: true);
final VerificationMeta _createdAtMeta = const VerificationMeta('createdAt');
@override
late final GeneratedColumn<DateTime?> createdAt = GeneratedColumn<DateTime?>(
'created_at', aliasedName, false,
typeName: 'INTEGER',
type: const IntType(),
requiredDuringInsert: false,
defaultValue: currentDateAndTime);
final VerificationMeta _scoreMeta = const VerificationMeta('score');
@override
late final GeneratedColumn<int?> score = GeneratedColumn<int?>(
'score', aliasedName, false,
typeName: 'INTEGER',
type: const IntType(),
requiredDuringInsert: false,
defaultValue: const Constant(0));
final VerificationMeta _extraDataMeta = const VerificationMeta('extraData');
@override
late final GeneratedColumnWithTypeConverter<Map<String, Object?>, String?>
extraData = GeneratedColumn<String?>('extra_data', aliasedName, true,
typeName: 'TEXT', requiredDuringInsert: false)
type: const StringType(), requiredDuringInsert: false)
.withConverter<Map<String, Object?>>(
$PinnedMessageReactionsTable.$converter0);
@override
@@ -3270,35 +3338,41 @@ class $ReactionsTable extends Reactions
final String? _alias;
$ReactionsTable(this._db, [this._alias]);
final VerificationMeta _userIdMeta = const VerificationMeta('userId');
@override
late final GeneratedColumn<String?> userId = GeneratedColumn<String?>(
'user_id', aliasedName, false,
typeName: 'TEXT', requiredDuringInsert: true);
type: const StringType(), requiredDuringInsert: true);
final VerificationMeta _messageIdMeta = const VerificationMeta('messageId');
@override
late final GeneratedColumn<String?> messageId = GeneratedColumn<String?>(
'message_id', aliasedName, false,
typeName: 'TEXT',
type: const StringType(),
requiredDuringInsert: true,
$customConstraints: 'REFERENCES messages(id) ON DELETE CASCADE');
final VerificationMeta _typeMeta = const VerificationMeta('type');
@override
late final GeneratedColumn<String?> type = GeneratedColumn<String?>(
'type', aliasedName, false,
typeName: 'TEXT', requiredDuringInsert: true);
type: const StringType(), requiredDuringInsert: true);
final VerificationMeta _createdAtMeta = const VerificationMeta('createdAt');
@override
late final GeneratedColumn<DateTime?> createdAt = GeneratedColumn<DateTime?>(
'created_at', aliasedName, false,
typeName: 'INTEGER',
type: const IntType(),
requiredDuringInsert: false,
defaultValue: currentDateAndTime);
final VerificationMeta _scoreMeta = const VerificationMeta('score');
@override
late final GeneratedColumn<int?> score = GeneratedColumn<int?>(
'score', aliasedName, false,
typeName: 'INTEGER',
type: const IntType(),
requiredDuringInsert: false,
defaultValue: const Constant(0));
final VerificationMeta _extraDataMeta = const VerificationMeta('extraData');
@override
late final GeneratedColumnWithTypeConverter<Map<String, Object?>, String?>
extraData = GeneratedColumn<String?>('extra_data', aliasedName, true,
typeName: 'TEXT', requiredDuringInsert: false)
type: const StringType(), requiredDuringInsert: false)
.withConverter<Map<String, Object?>>($ReactionsTable.$converter0);
@override
List<GeneratedColumn> get $columns =>
@@ -3666,51 +3740,60 @@ class $UsersTable extends Users with TableInfo<$UsersTable, UserEntity> {
final String? _alias;
$UsersTable(this._db, [this._alias]);
final VerificationMeta _idMeta = const VerificationMeta('id');
@override
late final GeneratedColumn<String?> id = GeneratedColumn<String?>(
'id', aliasedName, false,
typeName: 'TEXT', requiredDuringInsert: true);
type: const StringType(), requiredDuringInsert: true);
final VerificationMeta _roleMeta = const VerificationMeta('role');
@override
late final GeneratedColumn<String?> role = GeneratedColumn<String?>(
'role', aliasedName, true,
typeName: 'TEXT', requiredDuringInsert: false);
type: const StringType(), requiredDuringInsert: false);
final VerificationMeta _languageMeta = const VerificationMeta('language');
@override
late final GeneratedColumn<String?> language = GeneratedColumn<String?>(
'language', aliasedName, true,
typeName: 'TEXT', requiredDuringInsert: false);
type: const StringType(), requiredDuringInsert: false);
final VerificationMeta _createdAtMeta = const VerificationMeta('createdAt');
@override
late final GeneratedColumn<DateTime?> createdAt = GeneratedColumn<DateTime?>(
'created_at', aliasedName, false,
typeName: 'INTEGER',
type: const IntType(),
requiredDuringInsert: false,
defaultValue: currentDateAndTime);
final VerificationMeta _updatedAtMeta = const VerificationMeta('updatedAt');
@override
late final GeneratedColumn<DateTime?> updatedAt = GeneratedColumn<DateTime?>(
'updated_at', aliasedName, false,
typeName: 'INTEGER',
type: const IntType(),
requiredDuringInsert: false,
defaultValue: currentDateAndTime);
final VerificationMeta _lastActiveMeta = const VerificationMeta('lastActive');
@override
late final GeneratedColumn<DateTime?> lastActive = GeneratedColumn<DateTime?>(
'last_active', aliasedName, true,
typeName: 'INTEGER', requiredDuringInsert: false);
type: const IntType(), requiredDuringInsert: false);
final VerificationMeta _onlineMeta = const VerificationMeta('online');
@override
late final GeneratedColumn<bool?> online = GeneratedColumn<bool?>(
'online', aliasedName, false,
typeName: 'INTEGER',
type: const BoolType(),
requiredDuringInsert: false,
defaultConstraints: 'CHECK (online IN (0, 1))',
defaultValue: const Constant(false));
final VerificationMeta _bannedMeta = const VerificationMeta('banned');
@override
late final GeneratedColumn<bool?> banned = GeneratedColumn<bool?>(
'banned', aliasedName, false,
typeName: 'INTEGER',
type: const BoolType(),
requiredDuringInsert: false,
defaultConstraints: 'CHECK (banned IN (0, 1))',
defaultValue: const Constant(false));
final VerificationMeta _extraDataMeta = const VerificationMeta('extraData');
@override
late final GeneratedColumnWithTypeConverter<Map<String, Object?>, String?>
extraData = GeneratedColumn<String?>('extra_data', aliasedName, false,
typeName: 'TEXT', requiredDuringInsert: true)
type: const StringType(), requiredDuringInsert: true)
.withConverter<Map<String, Object?>>($UsersTable.$converter0);
@override
List<GeneratedColumn> get $columns => [
@@ -4156,69 +4239,80 @@ class $MembersTable extends Members
final String? _alias;
$MembersTable(this._db, [this._alias]);
final VerificationMeta _userIdMeta = const VerificationMeta('userId');
@override
late final GeneratedColumn<String?> userId = GeneratedColumn<String?>(
'user_id', aliasedName, false,
typeName: 'TEXT', requiredDuringInsert: true);
type: const StringType(), requiredDuringInsert: true);
final VerificationMeta _channelCidMeta = const VerificationMeta('channelCid');
@override
late final GeneratedColumn<String?> channelCid = GeneratedColumn<String?>(
'channel_cid', aliasedName, false,
typeName: 'TEXT',
type: const StringType(),
requiredDuringInsert: true,
$customConstraints: 'REFERENCES channels(cid) ON DELETE CASCADE');
final VerificationMeta _roleMeta = const VerificationMeta('role');
@override
late final GeneratedColumn<String?> role = GeneratedColumn<String?>(
'role', aliasedName, true,
typeName: 'TEXT', requiredDuringInsert: false);
type: const StringType(), requiredDuringInsert: false);
final VerificationMeta _inviteAcceptedAtMeta =
const VerificationMeta('inviteAcceptedAt');
@override
late final GeneratedColumn<DateTime?> inviteAcceptedAt =
GeneratedColumn<DateTime?>('invite_accepted_at', aliasedName, true,
typeName: 'INTEGER', requiredDuringInsert: false);
type: const IntType(), requiredDuringInsert: false);
final VerificationMeta _inviteRejectedAtMeta =
const VerificationMeta('inviteRejectedAt');
@override
late final GeneratedColumn<DateTime?> inviteRejectedAt =
GeneratedColumn<DateTime?>('invite_rejected_at', aliasedName, true,
typeName: 'INTEGER', requiredDuringInsert: false);
type: const IntType(), requiredDuringInsert: false);
final VerificationMeta _invitedMeta = const VerificationMeta('invited');
@override
late final GeneratedColumn<bool?> invited = GeneratedColumn<bool?>(
'invited', aliasedName, false,
typeName: 'INTEGER',
type: const BoolType(),
requiredDuringInsert: false,
defaultConstraints: 'CHECK (invited IN (0, 1))',
defaultValue: const Constant(false));
final VerificationMeta _bannedMeta = const VerificationMeta('banned');
@override
late final GeneratedColumn<bool?> banned = GeneratedColumn<bool?>(
'banned', aliasedName, false,
typeName: 'INTEGER',
type: const BoolType(),
requiredDuringInsert: false,
defaultConstraints: 'CHECK (banned IN (0, 1))',
defaultValue: const Constant(false));
final VerificationMeta _shadowBannedMeta =
const VerificationMeta('shadowBanned');
@override
late final GeneratedColumn<bool?> shadowBanned = GeneratedColumn<bool?>(
'shadow_banned', aliasedName, false,
typeName: 'INTEGER',
type: const BoolType(),
requiredDuringInsert: false,
defaultConstraints: 'CHECK (shadow_banned IN (0, 1))',
defaultValue: const Constant(false));
final VerificationMeta _isModeratorMeta =
const VerificationMeta('isModerator');
@override
late final GeneratedColumn<bool?> isModerator = GeneratedColumn<bool?>(
'is_moderator', aliasedName, false,
typeName: 'INTEGER',
type: const BoolType(),
requiredDuringInsert: false,
defaultConstraints: 'CHECK (is_moderator IN (0, 1))',
defaultValue: const Constant(false));
final VerificationMeta _createdAtMeta = const VerificationMeta('createdAt');
@override
late final GeneratedColumn<DateTime?> createdAt = GeneratedColumn<DateTime?>(
'created_at', aliasedName, false,
typeName: 'INTEGER',
type: const IntType(),
requiredDuringInsert: false,
defaultValue: currentDateAndTime);
final VerificationMeta _updatedAtMeta = const VerificationMeta('updatedAt');
@override
late final GeneratedColumn<DateTime?> updatedAt = GeneratedColumn<DateTime?>(
'updated_at', aliasedName, false,
typeName: 'INTEGER',
type: const IntType(),
requiredDuringInsert: false,
defaultValue: currentDateAndTime);
@override
@@ -4495,24 +4589,28 @@ class $ReadsTable extends Reads with TableInfo<$ReadsTable, ReadEntity> {
final String? _alias;
$ReadsTable(this._db, [this._alias]);
final VerificationMeta _lastReadMeta = const VerificationMeta('lastRead');
@override
late final GeneratedColumn<DateTime?> lastRead = GeneratedColumn<DateTime?>(
'last_read', aliasedName, false,
typeName: 'INTEGER', requiredDuringInsert: true);
type: const IntType(), requiredDuringInsert: true);
final VerificationMeta _userIdMeta = const VerificationMeta('userId');
@override
late final GeneratedColumn<String?> userId = GeneratedColumn<String?>(
'user_id', aliasedName, false,
typeName: 'TEXT', requiredDuringInsert: true);
type: const StringType(), requiredDuringInsert: true);
final VerificationMeta _channelCidMeta = const VerificationMeta('channelCid');
@override
late final GeneratedColumn<String?> channelCid = GeneratedColumn<String?>(
'channel_cid', aliasedName, false,
typeName: 'TEXT',
type: const StringType(),
requiredDuringInsert: true,
$customConstraints: 'REFERENCES channels(cid) ON DELETE CASCADE');
final VerificationMeta _unreadMessagesMeta =
const VerificationMeta('unreadMessages');
@override
late final GeneratedColumn<int?> unreadMessages = GeneratedColumn<int?>(
'unread_messages', aliasedName, false,
typeName: 'INTEGER',
type: const IntType(),
requiredDuringInsert: false,
defaultValue: const Constant(0));
@override
@@ -4695,13 +4793,15 @@ class $ChannelQueriesTable extends ChannelQueries
final String? _alias;
$ChannelQueriesTable(this._db, [this._alias]);
final VerificationMeta _queryHashMeta = const VerificationMeta('queryHash');
@override
late final GeneratedColumn<String?> queryHash = GeneratedColumn<String?>(
'query_hash', aliasedName, false,
typeName: 'TEXT', requiredDuringInsert: true);
type: const StringType(), requiredDuringInsert: true);
final VerificationMeta _channelCidMeta = const VerificationMeta('channelCid');
@override
late final GeneratedColumn<String?> channelCid = GeneratedColumn<String?>(
'channel_cid', aliasedName, false,
typeName: 'TEXT', requiredDuringInsert: true);
type: const StringType(), requiredDuringInsert: true);
@override
List<GeneratedColumn> get $columns => [queryHash, channelCid];
@override
@@ -5009,38 +5109,45 @@ class $ConnectionEventsTable extends ConnectionEvents
final String? _alias;
$ConnectionEventsTable(this._db, [this._alias]);
final VerificationMeta _idMeta = const VerificationMeta('id');
@override
late final GeneratedColumn<int?> id = GeneratedColumn<int?>(
'id', aliasedName, false,
typeName: 'INTEGER', requiredDuringInsert: false);
type: const IntType(), requiredDuringInsert: false);
final VerificationMeta _typeMeta = const VerificationMeta('type');
@override
late final GeneratedColumn<String?> type = GeneratedColumn<String?>(
'type', aliasedName, false,
typeName: 'TEXT', requiredDuringInsert: true);
type: const StringType(), requiredDuringInsert: true);
final VerificationMeta _ownUserMeta = const VerificationMeta('ownUser');
@override
late final GeneratedColumnWithTypeConverter<Map<String, dynamic>, String?>
ownUser = GeneratedColumn<String?>('own_user', aliasedName, true,
typeName: 'TEXT', requiredDuringInsert: false)
type: const StringType(), requiredDuringInsert: false)
.withConverter<Map<String, dynamic>>(
$ConnectionEventsTable.$converter0);
final VerificationMeta _totalUnreadCountMeta =
const VerificationMeta('totalUnreadCount');
@override
late final GeneratedColumn<int?> totalUnreadCount = GeneratedColumn<int?>(
'total_unread_count', aliasedName, true,
typeName: 'INTEGER', requiredDuringInsert: false);
type: const IntType(), requiredDuringInsert: false);
final VerificationMeta _unreadChannelsMeta =
const VerificationMeta('unreadChannels');
@override
late final GeneratedColumn<int?> unreadChannels = GeneratedColumn<int?>(
'unread_channels', aliasedName, true,
typeName: 'INTEGER', requiredDuringInsert: false);
type: const IntType(), requiredDuringInsert: false);
final VerificationMeta _lastEventAtMeta =
const VerificationMeta('lastEventAt');
@override
late final GeneratedColumn<DateTime?> lastEventAt =
GeneratedColumn<DateTime?>('last_event_at', aliasedName, true,
typeName: 'INTEGER', requiredDuringInsert: false);
type: const IntType(), requiredDuringInsert: false);
final VerificationMeta _lastSyncAtMeta = const VerificationMeta('lastSyncAt');
@override
late final GeneratedColumn<DateTime?> lastSyncAt = GeneratedColumn<DateTime?>(
'last_sync_at', aliasedName, true,
typeName: 'INTEGER', requiredDuringInsert: false);
type: const IntType(), requiredDuringInsert: false);
@override
List<GeneratedColumn> get $columns => [
id,
@@ -10,7 +10,7 @@ environment:
flutter: ">=1.17.0"
dependencies:
drift: ^1.0.0
drift: 1.3.0
flutter:
sdk: flutter
logging: ^1.0.1
@@ -24,7 +24,7 @@ dependencies:
dev_dependencies:
build_runner: ^2.0.1
dart_code_metrics: ^4.4.0
drift_dev: ^1.0.0
drift_dev: 1.3.0
flutter_test:
sdk: flutter
mocktail: ^0.2.0