diff --git a/packages/stream_chat/pubspec.yaml b/packages/stream_chat/pubspec.yaml index fe2bfe00..11571a81 100644 --- a/packages/stream_chat/pubspec.yaml +++ b/packages/stream_chat/pubspec.yaml @@ -27,7 +27,7 @@ dependencies: dev_dependencies: build_runner: ^2.3.3 - dart_code_metrics: ^5.7.0 + dart_code_metrics: ^5.7.2 freezed: ^2.3.2 json_serializable: ^6.6.1 mocktail: ^0.3.0 diff --git a/packages/stream_chat_flutter/lib/scrollable_positioned_list/src/element_registry.dart b/packages/stream_chat_flutter/lib/scrollable_positioned_list/src/element_registry.dart index 218e2ca0..03f274f3 100644 --- a/packages/stream_chat_flutter/lib/scrollable_positioned_list/src/element_registry.dart +++ b/packages/stream_chat_flutter/lib/scrollable_positioned_list/src/element_registry.dart @@ -7,8 +7,7 @@ import 'package:flutter/widgets.dart'; /// A registry to track some [Element]s in the tree. class RegistryWidget extends StatefulWidget { /// Creates a [RegistryWidget]. - const RegistryWidget({Key? key, this.elementNotifier, required this.child}) - : super(key: key); + const RegistryWidget({super.key, this.elementNotifier, required this.child}); /// The widget below this widget in the tree. final Widget child; @@ -28,8 +27,7 @@ class RegistryWidget extends StatefulWidget { /// [RegistryWidget]. class RegisteredElementWidget extends ProxyWidget { /// Creates a [RegisteredElementWidget]. - const RegisteredElementWidget({Key? key, required Widget child}) - : super(key: key, child: child); + const RegisteredElementWidget({super.key, required super.child}); @override Element createElement() => _RegisteredElement(this); @@ -47,10 +45,9 @@ class _RegistryWidgetState extends State { class _InheritedRegistryWidget extends InheritedWidget { const _InheritedRegistryWidget({ - Key? key, required this.state, - required Widget child, - }) : super(key: key, child: child); + required super.child, + }); final _RegistryWidgetState state; @@ -59,7 +56,7 @@ class _InheritedRegistryWidget extends InheritedWidget { } class _RegisteredElement extends ProxyElement { - _RegisteredElement(ProxyWidget widget) : super(widget); + _RegisteredElement(super.widget); @override void notifyClients(ProxyWidget oldWidget) {} diff --git a/packages/stream_chat_flutter/lib/scrollable_positioned_list/src/positioned_list.dart b/packages/stream_chat_flutter/lib/scrollable_positioned_list/src/positioned_list.dart index 0814ef9a..c62472ca 100644 --- a/packages/stream_chat_flutter/lib/scrollable_positioned_list/src/positioned_list.dart +++ b/packages/stream_chat_flutter/lib/scrollable_positioned_list/src/positioned_list.dart @@ -25,7 +25,7 @@ import 'package:stream_chat_flutter/scrollable_positioned_list/src/scroll_view.d class PositionedList extends StatefulWidget { /// Create a [PositionedList]. const PositionedList({ - Key? key, + super.key, required this.itemCount, required this.itemBuilder, this.separatorBuilder, @@ -44,9 +44,8 @@ class PositionedList extends StatefulWidget { this.addRepaintBoundaries = true, this.addAutomaticKeepAlives = true, this.keyboardDismissBehavior, - }) : assert((positionedIndex == 0) || (positionedIndex < itemCount), - 'positionedIndex cannot be 0 and must be smaller than itemCount'), - super(key: key); + }) : assert((positionedIndex == 0) || (positionedIndex < itemCount), + 'positionedIndex cannot be 0 and must be smaller than itemCount'); /// Called to find the new index of a child based on its key in case of /// reordering. @@ -272,7 +271,7 @@ class _PositionedListState extends State { : widget.reverse ? widget.padding?.copyWith(left: 0) : widget.padding?.copyWith(right: 0)) ?? - const EdgeInsets.all(0); + EdgeInsets.zero; EdgeInsets get _centerSliverPadding => widget.scrollDirection == Axis.vertical ? widget.reverse @@ -283,14 +282,14 @@ class _PositionedListState extends State { bottom: widget.positionedIndex == 0 ? widget.padding!.bottom : 0, ) ?? - const EdgeInsets.all(0) + EdgeInsets.zero : widget.padding?.copyWith( top: widget.positionedIndex == 0 ? widget.padding!.top : 0, bottom: widget.positionedIndex == widget.itemCount - 1 ? widget.padding!.bottom : 0, ) ?? - const EdgeInsets.all(0) + EdgeInsets.zero : widget.reverse ? widget.padding?.copyWith( left: widget.positionedIndex == widget.itemCount - 1 @@ -298,23 +297,23 @@ class _PositionedListState extends State { : 0, right: widget.positionedIndex == 0 ? widget.padding!.right : 0, ) ?? - const EdgeInsets.all(0) + EdgeInsets.zero : widget.padding?.copyWith( left: widget.positionedIndex == 0 ? widget.padding!.left : 0, right: widget.positionedIndex == widget.itemCount - 1 ? widget.padding!.right : 0, ) ?? - const EdgeInsets.all(0); + EdgeInsets.zero; EdgeInsets get _trailingSliverPadding => widget.scrollDirection == Axis.vertical ? widget.reverse - ? widget.padding?.copyWith(bottom: 0) ?? const EdgeInsets.all(0) - : widget.padding?.copyWith(top: 0) ?? const EdgeInsets.all(0) + ? widget.padding?.copyWith(bottom: 0) ?? EdgeInsets.zero + : widget.padding?.copyWith(top: 0) ?? EdgeInsets.zero : widget.reverse - ? widget.padding?.copyWith(right: 0) ?? const EdgeInsets.all(0) - : widget.padding?.copyWith(left: 0) ?? const EdgeInsets.all(0); + ? widget.padding?.copyWith(right: 0) ?? EdgeInsets.zero + : widget.padding?.copyWith(left: 0) ?? EdgeInsets.zero; void _schedulePositionNotificationUpdate() { if (!updateScheduled) { diff --git a/packages/stream_chat_flutter/lib/scrollable_positioned_list/src/post_mount_callback.dart b/packages/stream_chat_flutter/lib/scrollable_positioned_list/src/post_mount_callback.dart index ddb3e3d4..c79c275e 100644 --- a/packages/stream_chat_flutter/lib/scrollable_positioned_list/src/post_mount_callback.dart +++ b/packages/stream_chat_flutter/lib/scrollable_positioned_list/src/post_mount_callback.dart @@ -7,8 +7,7 @@ import 'package:flutter/widgets.dart'; /// Widget whose [Element] calls a callback when the element is mounted. class PostMountCallback extends StatelessWidget { /// Creates a [PostMountCallback] widget. - const PostMountCallback({required this.child, this.callback, Key? key}) - : super(key: key); + const PostMountCallback({required this.child, this.callback, super.key}); /// The widget below this widget in the tree. final Widget child; @@ -24,7 +23,7 @@ class PostMountCallback extends StatelessWidget { } class _PostMountCallbackElement extends StatelessElement { - _PostMountCallbackElement(PostMountCallback widget) : super(widget); + _PostMountCallbackElement(PostMountCallback super.widget); @override void mount(Element? parent, dynamic newSlot) { diff --git a/packages/stream_chat_flutter/lib/scrollable_positioned_list/src/scroll_view.dart b/packages/stream_chat_flutter/lib/scrollable_positioned_list/src/scroll_view.dart index 8aebfb23..13a7fdd3 100644 --- a/packages/stream_chat_flutter/lib/scrollable_positioned_list/src/scroll_view.dart +++ b/packages/stream_chat_flutter/lib/scrollable_positioned_list/src/scroll_view.dart @@ -2,7 +2,6 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -import 'package:flutter/gestures.dart'; import 'package:flutter/rendering.dart'; import 'package:flutter/widgets.dart'; import 'package:stream_chat_flutter/scrollable_positioned_list/src/viewport.dart'; @@ -14,36 +13,24 @@ import 'package:stream_chat_flutter/scrollable_positioned_list/src/viewport.dart class UnboundedCustomScrollView extends CustomScrollView { /// {@macro custom_scroll_view} const UnboundedCustomScrollView({ - Key? key, - Axis scrollDirection = Axis.vertical, - bool reverse = false, - ScrollController? controller, - bool? primary, - ScrollPhysics? physics, - bool shrinkWrap = false, - Key? center, + super.key, + super.scrollDirection, + super.reverse, + super.controller, + super.primary, + super.physics, + super.shrinkWrap, + super.center, double anchor = 0.0, - double? cacheExtent, - List slivers = const [], - int? semanticChildCount, - DragStartBehavior dragStartBehavior = DragStartBehavior.start, + super.cacheExtent, + super.slivers, + super.semanticChildCount, + super.dragStartBehavior, ScrollViewKeyboardDismissBehavior? keyboardDismissBehavior, }) : _anchor = anchor, super( - key: key, keyboardDismissBehavior: keyboardDismissBehavior ?? ScrollViewKeyboardDismissBehavior.manual, - scrollDirection: scrollDirection, - reverse: reverse, - controller: controller, - primary: primary, - physics: physics, - shrinkWrap: shrinkWrap, - center: center, - cacheExtent: cacheExtent, - semanticChildCount: semanticChildCount, - dragStartBehavior: dragStartBehavior, - slivers: slivers, ); // [CustomScrollView] enforces constraints on [CustomScrollView.anchor], so diff --git a/packages/stream_chat_flutter/lib/scrollable_positioned_list/src/scrollable_positioned_list.dart b/packages/stream_chat_flutter/lib/scrollable_positioned_list/src/scrollable_positioned_list.dart index 72ebb659..5d307158 100644 --- a/packages/stream_chat_flutter/lib/scrollable_positioned_list/src/scrollable_positioned_list.dart +++ b/packages/stream_chat_flutter/lib/scrollable_positioned_list/src/scrollable_positioned_list.dart @@ -35,7 +35,7 @@ class ScrollablePositionedList extends StatefulWidget { const ScrollablePositionedList.builder({ required this.itemCount, required this.itemBuilder, - Key? key, + super.key, this.itemScrollController, ItemPositionsListener? itemPositionsListener, this.initialScrollIndex = 0, @@ -52,16 +52,15 @@ class ScrollablePositionedList extends StatefulWidget { this.findChildIndexCallback, this.keyboardDismissBehavior, }) : itemPositionsNotifier = itemPositionsListener as ItemPositionsNotifier?, - separatorBuilder = null, - super(key: key); + separatorBuilder = null; /// Create a [ScrollablePositionedList] whose items are provided by /// [itemBuilder] and separators provided by [separatorBuilder]. const ScrollablePositionedList.separated({ required this.itemCount, required this.itemBuilder, - required this.separatorBuilder, - Key? key, + required IndexedWidgetBuilder this.separatorBuilder, + super.key, this.itemScrollController, ItemPositionsListener? itemPositionsListener, this.initialScrollIndex = 0, @@ -77,9 +76,7 @@ class ScrollablePositionedList extends StatefulWidget { this.minCacheExtent, this.findChildIndexCallback, this.keyboardDismissBehavior, - }) : assert(separatorBuilder != null, 'seperatorBuilder cannot be null'), - itemPositionsNotifier = itemPositionsListener as ItemPositionsNotifier?, - super(key: key); + }) : itemPositionsNotifier = itemPositionsListener as ItemPositionsNotifier?; /// Called to find the new index of a child based on its key in case of /// reordering. @@ -280,7 +277,7 @@ class _ScrollablePositionedListState extends State void initState() { super.initState(); final ItemPosition? initialPosition = - PageStorage.of(context)!.readState(context); + PageStorage.of(context).readState(context); primary ..target = initialPosition?.index ?? widget.initialScrollIndex ..alignment = initialPosition?.itemLeadingEdge ?? widget.initialAlignment; @@ -572,7 +569,7 @@ class _ScrollablePositionedListState extends State .where((ItemPosition position) => position.itemLeadingEdge < 1 && position.itemTrailingEdge > 0); if (itemPositions.isNotEmpty) { - PageStorage.of(context)!.writeState( + PageStorage.of(context).writeState( context, itemPositions.reduce((value, element) => value.itemLeadingEdge < element.itemLeadingEdge ? value : element), diff --git a/packages/stream_chat_flutter/lib/scrollable_positioned_list/src/viewport.dart b/packages/stream_chat_flutter/lib/scrollable_positioned_list/src/viewport.dart index 01dce022..7d2d6b9f 100644 --- a/packages/stream_chat_flutter/lib/scrollable_positioned_list/src/viewport.dart +++ b/packages/stream_chat_flutter/lib/scrollable_positioned_list/src/viewport.dart @@ -19,24 +19,15 @@ import 'package:flutter/widgets.dart'; class UnboundedViewport extends Viewport { /// {@macro unbounded_viewport} UnboundedViewport({ - Key? key, - AxisDirection axisDirection = AxisDirection.down, - AxisDirection? crossAxisDirection, + super.key, + super.axisDirection, + super.crossAxisDirection, double anchor = 0.0, - required ViewportOffset offset, - Key? center, - double? cacheExtent, - List slivers = const [], - }) : _anchor = anchor, - super( - key: key, - axisDirection: axisDirection, - crossAxisDirection: crossAxisDirection, - offset: offset, - center: center, - cacheExtent: cacheExtent, - slivers: slivers, - ); + required super.offset, + super.center, + super.cacheExtent, + super.slivers, + }) : _anchor = anchor; // [Viewport] enforces constraints on [Viewport.anchor], so we need our own // version. @@ -68,22 +59,14 @@ class UnboundedViewport extends Viewport { class UnboundedRenderViewport extends RenderViewport { /// Creates a viewport for [RenderSliver] objects. UnboundedRenderViewport({ - AxisDirection axisDirection = AxisDirection.down, - required AxisDirection crossAxisDirection, - required ViewportOffset offset, + super.axisDirection, + required super.crossAxisDirection, + required super.offset, double anchor = 0.0, - List? children, - RenderSliver? center, - double? cacheExtent, - }) : _anchor = anchor, - super( - axisDirection: axisDirection, - crossAxisDirection: crossAxisDirection, - offset: offset, - center: center, - cacheExtent: cacheExtent, - children: children, - ); + super.children, + super.center, + super.cacheExtent, + }) : _anchor = anchor; static const int _maxLayoutCycles = 10; diff --git a/packages/stream_chat_flutter/pubspec.yaml b/packages/stream_chat_flutter/pubspec.yaml index d67aa740..7ecb494c 100644 --- a/packages/stream_chat_flutter/pubspec.yaml +++ b/packages/stream_chat_flutter/pubspec.yaml @@ -46,6 +46,21 @@ dependencies: video_thumbnail: ^0.5.0 flutter: + plugin: + platforms: + android: + default_package: stream_chat_flutter + ios: + default_package: stream_chat_flutter + windows: + default_package: stream_chat_flutter + linux: + default_package: stream_chat_flutter + macos: + default_package: stream_chat_flutter + web: + default_package: stream_chat_flutter + assets: - images/ - svgs/ @@ -54,7 +69,7 @@ flutter: uses-material-design: true dev_dependencies: - dart_code_metrics: ^5.7.0 + dart_code_metrics: ^5.7.2 flutter_test: sdk: flutter golden_toolkit: ^0.15.0 diff --git a/packages/stream_chat_flutter_core/lib/src/stream_channel_list_controller.dart b/packages/stream_chat_flutter_core/lib/src/stream_channel_list_controller.dart index 71bc0694..da93e7b8 100644 --- a/packages/stream_chat_flutter_core/lib/src/stream_channel_list_controller.dart +++ b/packages/stream_chat_flutter_core/lib/src/stream_channel_list_controller.dart @@ -3,7 +3,6 @@ import 'dart:math'; import 'package:stream_chat/stream_chat.dart' hide Success; import 'package:stream_chat_flutter_core/src/paged_value_notifier.dart'; - import 'package:stream_chat_flutter_core/src/stream_channel_list_event_handler.dart'; /// The default channel page limit to load. diff --git a/packages/stream_chat_flutter_core/pubspec.yaml b/packages/stream_chat_flutter_core/pubspec.yaml index 78a3e813..6e0868ae 100644 --- a/packages/stream_chat_flutter_core/pubspec.yaml +++ b/packages/stream_chat_flutter_core/pubspec.yaml @@ -21,7 +21,7 @@ dependencies: dev_dependencies: build_runner: ^2.3.3 - dart_code_metrics: ^5.7.0 + dart_code_metrics: ^5.7.2 fake_async: ^1.2.0 flutter_test: sdk: flutter diff --git a/packages/stream_chat_localizations/pubspec.yaml b/packages/stream_chat_localizations/pubspec.yaml index 7462a287..2fb2bbc3 100644 --- a/packages/stream_chat_localizations/pubspec.yaml +++ b/packages/stream_chat_localizations/pubspec.yaml @@ -17,6 +17,22 @@ dependencies: stream_chat_flutter: ^5.3.0 dev_dependencies: - dart_code_metrics: ^4.16.0 + dart_code_metrics: ^5.7.2 flutter_test: sdk: flutter + +flutter: + plugin: + platforms: + android: + default_package: stream_chat_localizations + ios: + default_package: stream_chat_localizations + windows: + default_package: stream_chat_localizations + linux: + default_package: stream_chat_localizations + macos: + default_package: stream_chat_localizations + web: + default_package: stream_chat_localizations diff --git a/packages/stream_chat_persistence/CHANGELOG.md b/packages/stream_chat_persistence/CHANGELOG.md index e0dabaa7..1255aa71 100644 --- a/packages/stream_chat_persistence/CHANGELOG.md +++ b/packages/stream_chat_persistence/CHANGELOG.md @@ -1,5 +1,6 @@ ## Upcoming +- Updated `drift` to `^2.7.0`. - Updated dependencies to resolvable versions. ## 5.1.0 diff --git a/packages/stream_chat_persistence/build.yaml b/packages/stream_chat_persistence/build.yaml index 9b900235..1688f11b 100644 --- a/packages/stream_chat_persistence/build.yaml +++ b/packages/stream_chat_persistence/build.yaml @@ -3,7 +3,6 @@ targets: builders: drift_dev: options: - generate_connect_constructor: true data_class_to_companions: false apply_converters_on_variables: true generate_values_in_copy_with: true diff --git a/packages/stream_chat_persistence/lib/src/converter/list_converter.dart b/packages/stream_chat_persistence/lib/src/converter/list_converter.dart index f1b8cec2..af5d0c15 100644 --- a/packages/stream_chat_persistence/lib/src/converter/list_converter.dart +++ b/packages/stream_chat_persistence/lib/src/converter/list_converter.dart @@ -6,7 +6,21 @@ import 'package:drift/drift.dart'; /// by the sqlite backend. class ListConverter extends TypeConverter, String> { @override - List? mapToDart(String? fromDb) { + List fromSql(String fromDb) { + return List.from(jsonDecode(fromDb) ?? []); + } + + @override + String toSql(List value) { + return jsonEncode(value); + } +} + +/// Maps a nullable [List] of type [T] into a nullable [String] understood +/// by the sqlite backend. +class NullableListConverter extends TypeConverter?, String?> { + @override + List? fromSql(String? fromDb) { if (fromDb == null) { return null; } @@ -14,7 +28,7 @@ class ListConverter extends TypeConverter, String> { } @override - String? mapToSql(List? value) { + String? toSql(List? value) { if (value == null) { return null; } diff --git a/packages/stream_chat_persistence/lib/src/converter/map_converter.dart b/packages/stream_chat_persistence/lib/src/converter/map_converter.dart index 7afd9225..cff5965b 100644 --- a/packages/stream_chat_persistence/lib/src/converter/map_converter.dart +++ b/packages/stream_chat_persistence/lib/src/converter/map_converter.dart @@ -6,7 +6,21 @@ import 'package:drift/drift.dart'; /// by the sqlite backend. class MapConverter extends TypeConverter, String> { @override - Map? mapToDart(String? fromDb) { + Map fromSql(String fromDb) { + return Map.from(jsonDecode(fromDb) ?? {}); + } + + @override + String toSql(Map value) { + return jsonEncode(value); + } +} + +/// Maps a nullable [Map] of type [String], [T] into a nullable [String] +/// understood by the sqlite backend. +class NullableMapConverter extends TypeConverter?, String?> { + @override + Map? fromSql(String? fromDb) { if (fromDb == null) { return null; } @@ -14,7 +28,7 @@ class MapConverter extends TypeConverter, String> { } @override - String? mapToSql(Map? value) { + String? toSql(Map? value) { if (value == null) { return null; } diff --git a/packages/stream_chat_persistence/lib/src/converter/message_sending_status_converter.dart b/packages/stream_chat_persistence/lib/src/converter/message_sending_status_converter.dart index a6bb6d73..7eb194a3 100644 --- a/packages/stream_chat_persistence/lib/src/converter/message_sending_status_converter.dart +++ b/packages/stream_chat_persistence/lib/src/converter/message_sending_status_converter.dart @@ -6,7 +6,7 @@ import 'package:stream_chat/stream_chat.dart'; class MessageSendingStatusConverter extends TypeConverter { @override - MessageSendingStatus? mapToDart(int? fromDb) { + MessageSendingStatus fromSql(int fromDb) { switch (fromDb) { case 0: return MessageSendingStatus.sending; @@ -22,13 +22,12 @@ class MessageSendingStatusConverter return MessageSendingStatus.deleting; case 6: return MessageSendingStatus.failed_delete; - default: - return null; } + return MessageSendingStatus.sending; } @override - int? mapToSql(MessageSendingStatus? value) { + int toSql(MessageSendingStatus value) { switch (value) { case MessageSendingStatus.sending: return 0; @@ -44,8 +43,6 @@ class MessageSendingStatusConverter return 5; case MessageSendingStatus.failed_delete: return 6; - default: - return null; } } } diff --git a/packages/stream_chat_persistence/lib/src/dao/channel_dao.g.dart b/packages/stream_chat_persistence/lib/src/dao/channel_dao.g.dart index 5c4cce4a..d9083675 100644 --- a/packages/stream_chat_persistence/lib/src/dao/channel_dao.g.dart +++ b/packages/stream_chat_persistence/lib/src/dao/channel_dao.g.dart @@ -2,10 +2,7 @@ part of 'channel_dao.dart'; -// ************************************************************************** -// DaoGenerator -// ************************************************************************** - +// ignore_for_file: type=lint mixin _$ChannelDaoMixin on DatabaseAccessor { $ChannelsTable get channels => attachedDatabase.channels; $UsersTable get users => attachedDatabase.users; diff --git a/packages/stream_chat_persistence/lib/src/dao/channel_query_dao.g.dart b/packages/stream_chat_persistence/lib/src/dao/channel_query_dao.g.dart index 3f8f94cb..07a9dabb 100644 --- a/packages/stream_chat_persistence/lib/src/dao/channel_query_dao.g.dart +++ b/packages/stream_chat_persistence/lib/src/dao/channel_query_dao.g.dart @@ -2,10 +2,7 @@ part of 'channel_query_dao.dart'; -// ************************************************************************** -// DaoGenerator -// ************************************************************************** - +// ignore_for_file: type=lint mixin _$ChannelQueryDaoMixin on DatabaseAccessor { $ChannelQueriesTable get channelQueries => attachedDatabase.channelQueries; $ChannelsTable get channels => attachedDatabase.channels; diff --git a/packages/stream_chat_persistence/lib/src/dao/connection_event_dao.g.dart b/packages/stream_chat_persistence/lib/src/dao/connection_event_dao.g.dart index ed29a03b..32541de5 100644 --- a/packages/stream_chat_persistence/lib/src/dao/connection_event_dao.g.dart +++ b/packages/stream_chat_persistence/lib/src/dao/connection_event_dao.g.dart @@ -2,10 +2,7 @@ part of 'connection_event_dao.dart'; -// ************************************************************************** -// DaoGenerator -// ************************************************************************** - +// ignore_for_file: type=lint mixin _$ConnectionEventDaoMixin on DatabaseAccessor { $ConnectionEventsTable get connectionEvents => attachedDatabase.connectionEvents; diff --git a/packages/stream_chat_persistence/lib/src/dao/member_dao.g.dart b/packages/stream_chat_persistence/lib/src/dao/member_dao.g.dart index e85b1858..bc95ddaf 100644 --- a/packages/stream_chat_persistence/lib/src/dao/member_dao.g.dart +++ b/packages/stream_chat_persistence/lib/src/dao/member_dao.g.dart @@ -2,11 +2,9 @@ part of 'member_dao.dart'; -// ************************************************************************** -// DaoGenerator -// ************************************************************************** - +// ignore_for_file: type=lint mixin _$MemberDaoMixin on DatabaseAccessor { + $ChannelsTable get channels => attachedDatabase.channels; $MembersTable get members => attachedDatabase.members; $UsersTable get users => attachedDatabase.users; } diff --git a/packages/stream_chat_persistence/lib/src/dao/message_dao.g.dart b/packages/stream_chat_persistence/lib/src/dao/message_dao.g.dart index 42069b23..15520a3f 100644 --- a/packages/stream_chat_persistence/lib/src/dao/message_dao.g.dart +++ b/packages/stream_chat_persistence/lib/src/dao/message_dao.g.dart @@ -2,11 +2,9 @@ part of 'message_dao.dart'; -// ************************************************************************** -// DaoGenerator -// ************************************************************************** - +// ignore_for_file: type=lint mixin _$MessageDaoMixin on DatabaseAccessor { + $ChannelsTable get channels => attachedDatabase.channels; $MessagesTable get messages => attachedDatabase.messages; $UsersTable get users => attachedDatabase.users; } diff --git a/packages/stream_chat_persistence/lib/src/dao/pinned_message_dao.g.dart b/packages/stream_chat_persistence/lib/src/dao/pinned_message_dao.g.dart index f695bf08..09c8df61 100644 --- a/packages/stream_chat_persistence/lib/src/dao/pinned_message_dao.g.dart +++ b/packages/stream_chat_persistence/lib/src/dao/pinned_message_dao.g.dart @@ -2,11 +2,9 @@ part of 'pinned_message_dao.dart'; -// ************************************************************************** -// DaoGenerator -// ************************************************************************** - +// ignore_for_file: type=lint mixin _$PinnedMessageDaoMixin on DatabaseAccessor { + $ChannelsTable get channels => attachedDatabase.channels; $PinnedMessagesTable get pinnedMessages => attachedDatabase.pinnedMessages; $UsersTable get users => attachedDatabase.users; } diff --git a/packages/stream_chat_persistence/lib/src/dao/pinned_message_reaction_dao.g.dart b/packages/stream_chat_persistence/lib/src/dao/pinned_message_reaction_dao.g.dart index 48e212bf..13bb195f 100644 --- a/packages/stream_chat_persistence/lib/src/dao/pinned_message_reaction_dao.g.dart +++ b/packages/stream_chat_persistence/lib/src/dao/pinned_message_reaction_dao.g.dart @@ -2,11 +2,10 @@ part of 'pinned_message_reaction_dao.dart'; -// ************************************************************************** -// DaoGenerator -// ************************************************************************** - +// ignore_for_file: type=lint mixin _$PinnedMessageReactionDaoMixin on DatabaseAccessor { + $ChannelsTable get channels => attachedDatabase.channels; + $PinnedMessagesTable get pinnedMessages => attachedDatabase.pinnedMessages; $PinnedMessageReactionsTable get pinnedMessageReactions => attachedDatabase.pinnedMessageReactions; $UsersTable get users => attachedDatabase.users; diff --git a/packages/stream_chat_persistence/lib/src/dao/reaction_dao.g.dart b/packages/stream_chat_persistence/lib/src/dao/reaction_dao.g.dart index 2eefbceb..cdaddc17 100644 --- a/packages/stream_chat_persistence/lib/src/dao/reaction_dao.g.dart +++ b/packages/stream_chat_persistence/lib/src/dao/reaction_dao.g.dart @@ -2,11 +2,10 @@ part of 'reaction_dao.dart'; -// ************************************************************************** -// DaoGenerator -// ************************************************************************** - +// ignore_for_file: type=lint mixin _$ReactionDaoMixin on DatabaseAccessor { + $ChannelsTable get channels => attachedDatabase.channels; + $MessagesTable get messages => attachedDatabase.messages; $ReactionsTable get reactions => attachedDatabase.reactions; $UsersTable get users => attachedDatabase.users; } diff --git a/packages/stream_chat_persistence/lib/src/dao/read_dao.g.dart b/packages/stream_chat_persistence/lib/src/dao/read_dao.g.dart index bfe5873c..80b1c1cf 100644 --- a/packages/stream_chat_persistence/lib/src/dao/read_dao.g.dart +++ b/packages/stream_chat_persistence/lib/src/dao/read_dao.g.dart @@ -2,11 +2,9 @@ part of 'read_dao.dart'; -// ************************************************************************** -// DaoGenerator -// ************************************************************************** - +// ignore_for_file: type=lint mixin _$ReadDaoMixin on DatabaseAccessor { + $ChannelsTable get channels => attachedDatabase.channels; $ReadsTable get reads => attachedDatabase.reads; $UsersTable get users => attachedDatabase.users; } diff --git a/packages/stream_chat_persistence/lib/src/dao/user_dao.g.dart b/packages/stream_chat_persistence/lib/src/dao/user_dao.g.dart index 94af5378..06186d0f 100644 --- a/packages/stream_chat_persistence/lib/src/dao/user_dao.g.dart +++ b/packages/stream_chat_persistence/lib/src/dao/user_dao.g.dart @@ -2,10 +2,7 @@ part of 'user_dao.dart'; -// ************************************************************************** -// DaoGenerator -// ************************************************************************** - +// ignore_for_file: type=lint mixin _$UserDaoMixin on DatabaseAccessor { $UsersTable get users => attachedDatabase.users; } diff --git a/packages/stream_chat_persistence/lib/src/db/drift_chat_database.dart b/packages/stream_chat_persistence/lib/src/db/drift_chat_database.dart index f87aecc4..e186fbb3 100644 --- a/packages/stream_chat_persistence/lib/src/db/drift_chat_database.dart +++ b/packages/stream_chat_persistence/lib/src/db/drift_chat_database.dart @@ -1,6 +1,5 @@ import 'package:drift/drift.dart'; import 'package:stream_chat/stream_chat.dart'; - import 'package:stream_chat_persistence/src/converter/converter.dart'; import 'package:stream_chat_persistence/src/dao/dao.dart'; import 'package:stream_chat_persistence/src/entity/entity.dart'; @@ -37,18 +36,12 @@ part 'drift_chat_database.g.dart'; ], ) class DriftChatDatabase extends _$DriftChatDatabase { - /// Creates a new moor chat database instance + /// Creates a new drift chat database instance DriftChatDatabase( this._userId, QueryExecutor executor, ) : super(executor); - /// Instantiate a new database instance - DriftChatDatabase.connect( - this._userId, - DatabaseConnection connection, - ) : super.connect(connection); - final String _userId; /// User id to which the database is connected @@ -56,7 +49,7 @@ class DriftChatDatabase extends _$DriftChatDatabase { // you should bump this number whenever you change or add a table definition. @override - int get schemaVersion => 9; + int get schemaVersion => 10; @override MigrationStrategy get migration => MigrationStrategy( diff --git a/packages/stream_chat_persistence/lib/src/db/drift_chat_database.g.dart b/packages/stream_chat_persistence/lib/src/db/drift_chat_database.g.dart index f84fbd6b..6f8b0e31 100644 --- a/packages/stream_chat_persistence/lib/src/db/drift_chat_database.g.dart +++ b/packages/stream_chat_persistence/lib/src/db/drift_chat_database.g.dart @@ -2,11 +2,242 @@ part of 'drift_chat_database.dart'; -// ************************************************************************** -// MoorGenerator -// ************************************************************************** - // ignore_for_file: type=lint +class $ChannelsTable extends Channels + with TableInfo<$ChannelsTable, ChannelEntity> { + @override + final GeneratedDatabase attachedDatabase; + final String? _alias; + $ChannelsTable(this.attachedDatabase, [this._alias]); + static const VerificationMeta _idMeta = const VerificationMeta('id'); + @override + late final GeneratedColumn id = GeneratedColumn( + 'id', aliasedName, false, + type: DriftSqlType.string, requiredDuringInsert: true); + static const VerificationMeta _typeMeta = const VerificationMeta('type'); + @override + late final GeneratedColumn type = GeneratedColumn( + 'type', aliasedName, false, + type: DriftSqlType.string, requiredDuringInsert: true); + static const VerificationMeta _cidMeta = const VerificationMeta('cid'); + @override + late final GeneratedColumn cid = GeneratedColumn( + 'cid', aliasedName, false, + type: DriftSqlType.string, requiredDuringInsert: true); + static const VerificationMeta _ownCapabilitiesMeta = + const VerificationMeta('ownCapabilities'); + @override + late final GeneratedColumnWithTypeConverter?, String> + ownCapabilities = GeneratedColumn( + 'own_capabilities', aliasedName, true, + type: DriftSqlType.string, requiredDuringInsert: false) + .withConverter?>( + $ChannelsTable.$converterownCapabilitiesn); + static const VerificationMeta _configMeta = const VerificationMeta('config'); + @override + late final GeneratedColumnWithTypeConverter, String> + config = GeneratedColumn('config', aliasedName, false, + type: DriftSqlType.string, requiredDuringInsert: true) + .withConverter>($ChannelsTable.$converterconfig); + static const VerificationMeta _frozenMeta = const VerificationMeta('frozen'); + @override + late final GeneratedColumn frozen = + GeneratedColumn('frozen', aliasedName, false, + type: DriftSqlType.bool, + requiredDuringInsert: false, + defaultConstraints: GeneratedColumn.constraintsDependsOnDialect({ + SqlDialect.sqlite: 'CHECK ("frozen" IN (0, 1))', + SqlDialect.mysql: '', + SqlDialect.postgres: '', + }), + defaultValue: const Constant(false)); + static const VerificationMeta _lastMessageAtMeta = + const VerificationMeta('lastMessageAt'); + @override + late final GeneratedColumn lastMessageAt = + GeneratedColumn('last_message_at', aliasedName, true, + type: DriftSqlType.dateTime, requiredDuringInsert: false); + static const VerificationMeta _createdAtMeta = + const VerificationMeta('createdAt'); + @override + late final GeneratedColumn createdAt = GeneratedColumn( + 'created_at', aliasedName, false, + type: DriftSqlType.dateTime, + requiredDuringInsert: false, + defaultValue: currentDateAndTime); + static const VerificationMeta _updatedAtMeta = + const VerificationMeta('updatedAt'); + @override + late final GeneratedColumn updatedAt = GeneratedColumn( + 'updated_at', aliasedName, false, + type: DriftSqlType.dateTime, + requiredDuringInsert: false, + defaultValue: currentDateAndTime); + static const VerificationMeta _deletedAtMeta = + const VerificationMeta('deletedAt'); + @override + late final GeneratedColumn deletedAt = GeneratedColumn( + 'deleted_at', aliasedName, true, + type: DriftSqlType.dateTime, requiredDuringInsert: false); + static const VerificationMeta _memberCountMeta = + const VerificationMeta('memberCount'); + @override + late final GeneratedColumn memberCount = GeneratedColumn( + 'member_count', aliasedName, false, + type: DriftSqlType.int, + requiredDuringInsert: false, + defaultValue: const Constant(0)); + static const VerificationMeta _createdByIdMeta = + const VerificationMeta('createdById'); + @override + late final GeneratedColumn createdById = GeneratedColumn( + 'created_by_id', aliasedName, true, + type: DriftSqlType.string, requiredDuringInsert: false); + static const VerificationMeta _extraDataMeta = + const VerificationMeta('extraData'); + @override + late final GeneratedColumnWithTypeConverter?, String> + extraData = GeneratedColumn('extra_data', aliasedName, true, + type: DriftSqlType.string, requiredDuringInsert: false) + .withConverter?>( + $ChannelsTable.$converterextraDatan); + @override + List get $columns => [ + id, + type, + cid, + ownCapabilities, + config, + frozen, + lastMessageAt, + createdAt, + updatedAt, + deletedAt, + memberCount, + createdById, + extraData + ]; + @override + String get aliasedName => _alias ?? 'channels'; + @override + String get actualTableName => 'channels'; + @override + VerificationContext validateIntegrity(Insertable instance, + {bool isInserting = false}) { + final context = VerificationContext(); + final data = instance.toColumns(true); + if (data.containsKey('id')) { + context.handle(_idMeta, id.isAcceptableOrUnknown(data['id']!, _idMeta)); + } else if (isInserting) { + context.missing(_idMeta); + } + if (data.containsKey('type')) { + context.handle( + _typeMeta, type.isAcceptableOrUnknown(data['type']!, _typeMeta)); + } else if (isInserting) { + context.missing(_typeMeta); + } + if (data.containsKey('cid')) { + context.handle( + _cidMeta, cid.isAcceptableOrUnknown(data['cid']!, _cidMeta)); + } else if (isInserting) { + context.missing(_cidMeta); + } + context.handle(_ownCapabilitiesMeta, const VerificationResult.success()); + context.handle(_configMeta, const VerificationResult.success()); + if (data.containsKey('frozen')) { + context.handle(_frozenMeta, + frozen.isAcceptableOrUnknown(data['frozen']!, _frozenMeta)); + } + if (data.containsKey('last_message_at')) { + context.handle( + _lastMessageAtMeta, + lastMessageAt.isAcceptableOrUnknown( + data['last_message_at']!, _lastMessageAtMeta)); + } + if (data.containsKey('created_at')) { + context.handle(_createdAtMeta, + createdAt.isAcceptableOrUnknown(data['created_at']!, _createdAtMeta)); + } + if (data.containsKey('updated_at')) { + context.handle(_updatedAtMeta, + updatedAt.isAcceptableOrUnknown(data['updated_at']!, _updatedAtMeta)); + } + if (data.containsKey('deleted_at')) { + context.handle(_deletedAtMeta, + deletedAt.isAcceptableOrUnknown(data['deleted_at']!, _deletedAtMeta)); + } + if (data.containsKey('member_count')) { + context.handle( + _memberCountMeta, + memberCount.isAcceptableOrUnknown( + data['member_count']!, _memberCountMeta)); + } + if (data.containsKey('created_by_id')) { + context.handle( + _createdByIdMeta, + createdById.isAcceptableOrUnknown( + data['created_by_id']!, _createdByIdMeta)); + } + context.handle(_extraDataMeta, const VerificationResult.success()); + return context; + } + + @override + Set get $primaryKey => {cid}; + @override + ChannelEntity map(Map data, {String? tablePrefix}) { + final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; + return ChannelEntity( + id: attachedDatabase.typeMapping + .read(DriftSqlType.string, data['${effectivePrefix}id'])!, + type: attachedDatabase.typeMapping + .read(DriftSqlType.string, data['${effectivePrefix}type'])!, + cid: attachedDatabase.typeMapping + .read(DriftSqlType.string, data['${effectivePrefix}cid'])!, + ownCapabilities: $ChannelsTable.$converterownCapabilitiesn.fromSql( + attachedDatabase.typeMapping.read( + DriftSqlType.string, data['${effectivePrefix}own_capabilities'])), + config: $ChannelsTable.$converterconfig.fromSql(attachedDatabase + .typeMapping + .read(DriftSqlType.string, data['${effectivePrefix}config'])!), + frozen: attachedDatabase.typeMapping + .read(DriftSqlType.bool, data['${effectivePrefix}frozen'])!, + lastMessageAt: attachedDatabase.typeMapping.read( + DriftSqlType.dateTime, data['${effectivePrefix}last_message_at']), + createdAt: attachedDatabase.typeMapping + .read(DriftSqlType.dateTime, data['${effectivePrefix}created_at'])!, + updatedAt: attachedDatabase.typeMapping + .read(DriftSqlType.dateTime, data['${effectivePrefix}updated_at'])!, + deletedAt: attachedDatabase.typeMapping + .read(DriftSqlType.dateTime, data['${effectivePrefix}deleted_at']), + memberCount: attachedDatabase.typeMapping + .read(DriftSqlType.int, data['${effectivePrefix}member_count'])!, + createdById: attachedDatabase.typeMapping + .read(DriftSqlType.string, data['${effectivePrefix}created_by_id']), + extraData: $ChannelsTable.$converterextraDatan.fromSql(attachedDatabase + .typeMapping + .read(DriftSqlType.string, data['${effectivePrefix}extra_data'])), + ); + } + + @override + $ChannelsTable createAlias(String alias) { + return $ChannelsTable(attachedDatabase, alias); + } + + static TypeConverter, String> $converterownCapabilities = + ListConverter(); + static TypeConverter?, String?> $converterownCapabilitiesn = + NullAwareTypeConverter.wrap($converterownCapabilities); + static TypeConverter, String> $converterconfig = + MapConverter(); + static TypeConverter, String> $converterextraData = + MapConverter(); + static TypeConverter?, String?> $converterextraDatan = + NullAwareTypeConverter.wrap($converterextraData); +} + class ChannelEntity extends DataClass implements Insertable { /// The id of this channel final String id; @@ -46,7 +277,7 @@ class ChannelEntity extends DataClass implements Insertable { /// Map of custom channel extraData final Map? extraData; - ChannelEntity( + const ChannelEntity( {required this.id, required this.type, required this.cid, @@ -60,37 +291,6 @@ class ChannelEntity extends DataClass implements Insertable { required this.memberCount, this.createdById, this.extraData}); - factory ChannelEntity.fromData(Map data, {String? prefix}) { - final effectivePrefix = prefix ?? ''; - return ChannelEntity( - id: const StringType() - .mapFromDatabaseResponse(data['${effectivePrefix}id'])!, - type: const StringType() - .mapFromDatabaseResponse(data['${effectivePrefix}type'])!, - cid: const StringType() - .mapFromDatabaseResponse(data['${effectivePrefix}cid'])!, - ownCapabilities: $ChannelsTable.$converter0.mapToDart(const StringType() - .mapFromDatabaseResponse(data['${effectivePrefix}own_capabilities'])), - config: $ChannelsTable.$converter1.mapToDart(const StringType() - .mapFromDatabaseResponse(data['${effectivePrefix}config']))!, - frozen: const BoolType() - .mapFromDatabaseResponse(data['${effectivePrefix}frozen'])!, - lastMessageAt: const DateTimeType() - .mapFromDatabaseResponse(data['${effectivePrefix}last_message_at']), - createdAt: const DateTimeType() - .mapFromDatabaseResponse(data['${effectivePrefix}created_at'])!, - updatedAt: const DateTimeType() - .mapFromDatabaseResponse(data['${effectivePrefix}updated_at'])!, - deletedAt: const DateTimeType() - .mapFromDatabaseResponse(data['${effectivePrefix}deleted_at']), - memberCount: const IntType() - .mapFromDatabaseResponse(data['${effectivePrefix}member_count'])!, - createdById: const StringType() - .mapFromDatabaseResponse(data['${effectivePrefix}created_by_id']), - extraData: $ChannelsTable.$converter2.mapToDart(const StringType() - .mapFromDatabaseResponse(data['${effectivePrefix}extra_data'])), - ); - } @override Map toColumns(bool nullToAbsent) { final map = {}; @@ -98,30 +298,30 @@ class ChannelEntity extends DataClass implements Insertable { map['type'] = Variable(type); map['cid'] = Variable(cid); if (!nullToAbsent || ownCapabilities != null) { - final converter = $ChannelsTable.$converter0; + final converter = $ChannelsTable.$converterownCapabilitiesn; map['own_capabilities'] = - Variable(converter.mapToSql(ownCapabilities)); + Variable(converter.toSql(ownCapabilities)); } { - final converter = $ChannelsTable.$converter1; - map['config'] = Variable(converter.mapToSql(config)!); + final converter = $ChannelsTable.$converterconfig; + map['config'] = Variable(converter.toSql(config)); } map['frozen'] = Variable(frozen); if (!nullToAbsent || lastMessageAt != null) { - map['last_message_at'] = Variable(lastMessageAt); + map['last_message_at'] = Variable(lastMessageAt); } map['created_at'] = Variable(createdAt); map['updated_at'] = Variable(updatedAt); if (!nullToAbsent || deletedAt != null) { - map['deleted_at'] = Variable(deletedAt); + map['deleted_at'] = Variable(deletedAt); } map['member_count'] = Variable(memberCount); if (!nullToAbsent || createdById != null) { - map['created_by_id'] = Variable(createdById); + map['created_by_id'] = Variable(createdById); } if (!nullToAbsent || extraData != null) { - final converter = $ChannelsTable.$converter2; - map['extra_data'] = Variable(converter.mapToSql(extraData)); + final converter = $ChannelsTable.$converterextraDatan; + map['extra_data'] = Variable(converter.toSql(extraData)); } return map; } @@ -266,6 +466,7 @@ class ChannelsCompanion extends UpdateCompanion { final Value memberCount; final Value createdById; final Value?> extraData; + final Value rowid; const ChannelsCompanion({ this.id = const Value.absent(), this.type = const Value.absent(), @@ -280,6 +481,7 @@ class ChannelsCompanion extends UpdateCompanion { this.memberCount = const Value.absent(), this.createdById = const Value.absent(), this.extraData = const Value.absent(), + this.rowid = const Value.absent(), }); ChannelsCompanion.insert({ required String id, @@ -295,6 +497,7 @@ class ChannelsCompanion extends UpdateCompanion { this.memberCount = const Value.absent(), this.createdById = const Value.absent(), this.extraData = const Value.absent(), + this.rowid = const Value.absent(), }) : id = Value(id), type = Value(type), cid = Value(cid), @@ -303,16 +506,17 @@ class ChannelsCompanion extends UpdateCompanion { Expression? id, Expression? type, Expression? cid, - Expression?>? ownCapabilities, - Expression>? config, + Expression? ownCapabilities, + Expression? config, Expression? frozen, - Expression? lastMessageAt, + Expression? lastMessageAt, Expression? createdAt, Expression? updatedAt, - Expression? deletedAt, + Expression? deletedAt, Expression? memberCount, - Expression? createdById, - Expression?>? extraData, + Expression? createdById, + Expression? extraData, + Expression? rowid, }) { return RawValuesInsertable({ if (id != null) 'id': id, @@ -328,6 +532,7 @@ class ChannelsCompanion extends UpdateCompanion { if (memberCount != null) 'member_count': memberCount, if (createdById != null) 'created_by_id': createdById, if (extraData != null) 'extra_data': extraData, + if (rowid != null) 'rowid': rowid, }); } @@ -344,7 +549,8 @@ class ChannelsCompanion extends UpdateCompanion { Value? deletedAt, Value? memberCount, Value? createdById, - Value?>? extraData}) { + Value?>? extraData, + Value? rowid}) { return ChannelsCompanion( id: id ?? this.id, type: type ?? this.type, @@ -359,6 +565,7 @@ class ChannelsCompanion extends UpdateCompanion { memberCount: memberCount ?? this.memberCount, createdById: createdById ?? this.createdById, extraData: extraData ?? this.extraData, + rowid: rowid ?? this.rowid, ); } @@ -375,19 +582,19 @@ class ChannelsCompanion extends UpdateCompanion { map['cid'] = Variable(cid.value); } if (ownCapabilities.present) { - final converter = $ChannelsTable.$converter0; + final converter = $ChannelsTable.$converterownCapabilitiesn; map['own_capabilities'] = - Variable(converter.mapToSql(ownCapabilities.value)); + Variable(converter.toSql(ownCapabilities.value)); } if (config.present) { - final converter = $ChannelsTable.$converter1; - map['config'] = Variable(converter.mapToSql(config.value)!); + final converter = $ChannelsTable.$converterconfig; + map['config'] = Variable(converter.toSql(config.value)); } if (frozen.present) { map['frozen'] = Variable(frozen.value); } if (lastMessageAt.present) { - map['last_message_at'] = Variable(lastMessageAt.value); + map['last_message_at'] = Variable(lastMessageAt.value); } if (createdAt.present) { map['created_at'] = Variable(createdAt.value); @@ -396,18 +603,20 @@ class ChannelsCompanion extends UpdateCompanion { map['updated_at'] = Variable(updatedAt.value); } if (deletedAt.present) { - map['deleted_at'] = Variable(deletedAt.value); + map['deleted_at'] = Variable(deletedAt.value); } if (memberCount.present) { map['member_count'] = Variable(memberCount.value); } if (createdById.present) { - map['created_by_id'] = Variable(createdById.value); + map['created_by_id'] = Variable(createdById.value); } if (extraData.present) { - final converter = $ChannelsTable.$converter2; - map['extra_data'] = - Variable(converter.mapToSql(extraData.value)); + final converter = $ChannelsTable.$converterextraDatan; + map['extra_data'] = Variable(converter.toSql(extraData.value)); + } + if (rowid.present) { + map['rowid'] = Variable(rowid.value); } return map; } @@ -427,122 +636,241 @@ class ChannelsCompanion extends UpdateCompanion { ..write('deletedAt: $deletedAt, ') ..write('memberCount: $memberCount, ') ..write('createdById: $createdById, ') - ..write('extraData: $extraData') + ..write('extraData: $extraData, ') + ..write('rowid: $rowid') ..write(')')) .toString(); } } -class $ChannelsTable extends Channels - with TableInfo<$ChannelsTable, ChannelEntity> { +class $MessagesTable extends Messages + with TableInfo<$MessagesTable, MessageEntity> { @override final GeneratedDatabase attachedDatabase; final String? _alias; - $ChannelsTable(this.attachedDatabase, [this._alias]); - final VerificationMeta _idMeta = const VerificationMeta('id'); + $MessagesTable(this.attachedDatabase, [this._alias]); + static const VerificationMeta _idMeta = const VerificationMeta('id'); @override - late final GeneratedColumn id = GeneratedColumn( + late final GeneratedColumn id = GeneratedColumn( 'id', aliasedName, false, - type: const StringType(), requiredDuringInsert: true); - final VerificationMeta _typeMeta = const VerificationMeta('type'); + type: DriftSqlType.string, requiredDuringInsert: true); + static const VerificationMeta _messageTextMeta = + const VerificationMeta('messageText'); @override - late final GeneratedColumn type = GeneratedColumn( + late final GeneratedColumn messageText = GeneratedColumn( + 'message_text', aliasedName, true, + type: DriftSqlType.string, requiredDuringInsert: false); + static const VerificationMeta _attachmentsMeta = + const VerificationMeta('attachments'); + @override + late final GeneratedColumnWithTypeConverter, String> + attachments = GeneratedColumn('attachments', aliasedName, false, + type: DriftSqlType.string, requiredDuringInsert: true) + .withConverter>($MessagesTable.$converterattachments); + static const VerificationMeta _statusMeta = const VerificationMeta('status'); + @override + late final GeneratedColumnWithTypeConverter + status = GeneratedColumn('status', aliasedName, false, + type: DriftSqlType.int, + requiredDuringInsert: false, + defaultValue: const Constant(1)) + .withConverter($MessagesTable.$converterstatus); + static const VerificationMeta _typeMeta = const VerificationMeta('type'); + @override + late final GeneratedColumn type = GeneratedColumn( 'type', aliasedName, false, - type: const StringType(), requiredDuringInsert: true); - final VerificationMeta _cidMeta = const VerificationMeta('cid'); - @override - late final GeneratedColumn cid = GeneratedColumn( - 'cid', aliasedName, false, - type: const StringType(), requiredDuringInsert: true); - final VerificationMeta _ownCapabilitiesMeta = - const VerificationMeta('ownCapabilities'); - @override - late final GeneratedColumnWithTypeConverter, String?> - ownCapabilities = GeneratedColumn( - 'own_capabilities', aliasedName, true, - type: const StringType(), requiredDuringInsert: false) - .withConverter>($ChannelsTable.$converter0); - final VerificationMeta _configMeta = const VerificationMeta('config'); - @override - late final GeneratedColumnWithTypeConverter, String?> - config = GeneratedColumn('config', aliasedName, false, - type: const StringType(), requiredDuringInsert: true) - .withConverter>($ChannelsTable.$converter1); - final VerificationMeta _frozenMeta = const VerificationMeta('frozen'); - @override - late final GeneratedColumn frozen = GeneratedColumn( - 'frozen', aliasedName, false, - type: const BoolType(), + type: DriftSqlType.string, requiredDuringInsert: false, - defaultConstraints: 'CHECK (frozen IN (0, 1))', - defaultValue: const Constant(false)); - final VerificationMeta _lastMessageAtMeta = - const VerificationMeta('lastMessageAt'); + defaultValue: const Constant('regular')); + static const VerificationMeta _mentionedUsersMeta = + const VerificationMeta('mentionedUsers'); @override - late final GeneratedColumn lastMessageAt = - GeneratedColumn('last_message_at', aliasedName, true, - type: const IntType(), requiredDuringInsert: false); - final VerificationMeta _createdAtMeta = const VerificationMeta('createdAt'); + late final GeneratedColumnWithTypeConverter, String> + mentionedUsers = GeneratedColumn( + 'mentioned_users', aliasedName, false, + type: DriftSqlType.string, requiredDuringInsert: true) + .withConverter>($MessagesTable.$convertermentionedUsers); + static const VerificationMeta _reactionCountsMeta = + const VerificationMeta('reactionCounts'); @override - late final GeneratedColumn createdAt = GeneratedColumn( + late final GeneratedColumnWithTypeConverter?, String> + reactionCounts = GeneratedColumn( + 'reaction_counts', aliasedName, true, + type: DriftSqlType.string, requiredDuringInsert: false) + .withConverter?>( + $MessagesTable.$converterreactionCountsn); + static const VerificationMeta _reactionScoresMeta = + const VerificationMeta('reactionScores'); + @override + late final GeneratedColumnWithTypeConverter?, String> + reactionScores = GeneratedColumn( + 'reaction_scores', aliasedName, true, + type: DriftSqlType.string, requiredDuringInsert: false) + .withConverter?>( + $MessagesTable.$converterreactionScoresn); + static const VerificationMeta _parentIdMeta = + const VerificationMeta('parentId'); + @override + late final GeneratedColumn parentId = GeneratedColumn( + 'parent_id', aliasedName, true, + type: DriftSqlType.string, requiredDuringInsert: false); + static const VerificationMeta _quotedMessageIdMeta = + const VerificationMeta('quotedMessageId'); + @override + late final GeneratedColumn quotedMessageId = GeneratedColumn( + 'quoted_message_id', aliasedName, true, + type: DriftSqlType.string, requiredDuringInsert: false); + static const VerificationMeta _replyCountMeta = + const VerificationMeta('replyCount'); + @override + late final GeneratedColumn replyCount = GeneratedColumn( + 'reply_count', aliasedName, true, + type: DriftSqlType.int, requiredDuringInsert: false); + static const VerificationMeta _showInChannelMeta = + const VerificationMeta('showInChannel'); + @override + late final GeneratedColumn showInChannel = + GeneratedColumn('show_in_channel', aliasedName, true, + type: DriftSqlType.bool, + requiredDuringInsert: false, + defaultConstraints: GeneratedColumn.constraintsDependsOnDialect({ + SqlDialect.sqlite: 'CHECK ("show_in_channel" IN (0, 1))', + SqlDialect.mysql: '', + SqlDialect.postgres: '', + })); + static const VerificationMeta _shadowedMeta = + const VerificationMeta('shadowed'); + @override + late final GeneratedColumn shadowed = + GeneratedColumn('shadowed', aliasedName, false, + type: DriftSqlType.bool, + requiredDuringInsert: false, + defaultConstraints: GeneratedColumn.constraintsDependsOnDialect({ + SqlDialect.sqlite: 'CHECK ("shadowed" IN (0, 1))', + SqlDialect.mysql: '', + SqlDialect.postgres: '', + }), + defaultValue: const Constant(false)); + static const VerificationMeta _commandMeta = + const VerificationMeta('command'); + @override + late final GeneratedColumn command = GeneratedColumn( + 'command', aliasedName, true, + type: DriftSqlType.string, requiredDuringInsert: false); + static const VerificationMeta _createdAtMeta = + const VerificationMeta('createdAt'); + @override + late final GeneratedColumn createdAt = GeneratedColumn( 'created_at', aliasedName, false, - type: const IntType(), + type: DriftSqlType.dateTime, requiredDuringInsert: false, defaultValue: currentDateAndTime); - final VerificationMeta _updatedAtMeta = const VerificationMeta('updatedAt'); + static const VerificationMeta _updatedAtMeta = + const VerificationMeta('updatedAt'); @override - late final GeneratedColumn updatedAt = GeneratedColumn( + late final GeneratedColumn updatedAt = GeneratedColumn( 'updated_at', aliasedName, false, - type: const IntType(), + type: DriftSqlType.dateTime, requiredDuringInsert: false, defaultValue: currentDateAndTime); - final VerificationMeta _deletedAtMeta = const VerificationMeta('deletedAt'); + static const VerificationMeta _deletedAtMeta = + const VerificationMeta('deletedAt'); @override - late final GeneratedColumn deletedAt = GeneratedColumn( + late final GeneratedColumn deletedAt = GeneratedColumn( 'deleted_at', aliasedName, true, - type: const IntType(), requiredDuringInsert: false); - final VerificationMeta _memberCountMeta = - const VerificationMeta('memberCount'); + type: DriftSqlType.dateTime, requiredDuringInsert: false); + static const VerificationMeta _userIdMeta = const VerificationMeta('userId'); @override - late final GeneratedColumn memberCount = GeneratedColumn( - 'member_count', aliasedName, false, - type: const IntType(), - requiredDuringInsert: false, - defaultValue: const Constant(0)); - final VerificationMeta _createdByIdMeta = - const VerificationMeta('createdById'); + late final GeneratedColumn userId = GeneratedColumn( + 'user_id', aliasedName, true, + type: DriftSqlType.string, requiredDuringInsert: false); + static const VerificationMeta _pinnedMeta = const VerificationMeta('pinned'); @override - late final GeneratedColumn createdById = GeneratedColumn( - 'created_by_id', aliasedName, true, - type: const StringType(), requiredDuringInsert: false); - final VerificationMeta _extraDataMeta = const VerificationMeta('extraData'); + late final GeneratedColumn pinned = + GeneratedColumn('pinned', aliasedName, false, + type: DriftSqlType.bool, + requiredDuringInsert: false, + defaultConstraints: GeneratedColumn.constraintsDependsOnDialect({ + SqlDialect.sqlite: 'CHECK ("pinned" IN (0, 1))', + SqlDialect.mysql: '', + SqlDialect.postgres: '', + }), + defaultValue: const Constant(false)); + static const VerificationMeta _pinnedAtMeta = + const VerificationMeta('pinnedAt'); @override - late final GeneratedColumnWithTypeConverter, String?> - extraData = GeneratedColumn('extra_data', aliasedName, true, - type: const StringType(), requiredDuringInsert: false) - .withConverter>($ChannelsTable.$converter2); + late final GeneratedColumn pinnedAt = GeneratedColumn( + 'pinned_at', aliasedName, true, + type: DriftSqlType.dateTime, requiredDuringInsert: false); + static const VerificationMeta _pinExpiresMeta = + const VerificationMeta('pinExpires'); + @override + late final GeneratedColumn pinExpires = GeneratedColumn( + 'pin_expires', aliasedName, true, + type: DriftSqlType.dateTime, requiredDuringInsert: false); + static const VerificationMeta _pinnedByUserIdMeta = + const VerificationMeta('pinnedByUserId'); + @override + late final GeneratedColumn pinnedByUserId = GeneratedColumn( + 'pinned_by_user_id', aliasedName, true, + type: DriftSqlType.string, requiredDuringInsert: false); + static const VerificationMeta _channelCidMeta = + const VerificationMeta('channelCid'); + @override + late final GeneratedColumn channelCid = GeneratedColumn( + 'channel_cid', aliasedName, false, + type: DriftSqlType.string, + requiredDuringInsert: true, + defaultConstraints: GeneratedColumn.constraintIsAlways( + 'REFERENCES channels (cid) ON DELETE CASCADE')); + static const VerificationMeta _i18nMeta = const VerificationMeta('i18n'); + @override + late final GeneratedColumnWithTypeConverter?, String> + i18n = GeneratedColumn('i18n', aliasedName, true, + type: DriftSqlType.string, requiredDuringInsert: false) + .withConverter?>($MessagesTable.$converteri18n); + static const VerificationMeta _extraDataMeta = + const VerificationMeta('extraData'); + @override + late final GeneratedColumnWithTypeConverter?, String> + extraData = GeneratedColumn('extra_data', aliasedName, true, + type: DriftSqlType.string, requiredDuringInsert: false) + .withConverter?>( + $MessagesTable.$converterextraDatan); @override List get $columns => [ id, + messageText, + attachments, + status, type, - cid, - ownCapabilities, - config, - frozen, - lastMessageAt, + mentionedUsers, + reactionCounts, + reactionScores, + parentId, + quotedMessageId, + replyCount, + showInChannel, + shadowed, + command, createdAt, updatedAt, deletedAt, - memberCount, - createdById, + userId, + pinned, + pinnedAt, + pinExpires, + pinnedByUserId, + channelCid, + i18n, extraData ]; @override - String get aliasedName => _alias ?? 'channels'; + String get aliasedName => _alias ?? 'messages'; @override - String get actualTableName => 'channels'; + String get actualTableName => 'messages'; @override - VerificationContext validateIntegrity(Insertable instance, + VerificationContext validateIntegrity(Insertable instance, {bool isInserting = false}) { final context = VerificationContext(); final data = instance.toColumns(true); @@ -551,29 +879,50 @@ class $ChannelsTable extends Channels } else if (isInserting) { context.missing(_idMeta); } + if (data.containsKey('message_text')) { + context.handle( + _messageTextMeta, + messageText.isAcceptableOrUnknown( + data['message_text']!, _messageTextMeta)); + } + context.handle(_attachmentsMeta, const VerificationResult.success()); + context.handle(_statusMeta, const VerificationResult.success()); if (data.containsKey('type')) { context.handle( _typeMeta, type.isAcceptableOrUnknown(data['type']!, _typeMeta)); - } else if (isInserting) { - context.missing(_typeMeta); } - if (data.containsKey('cid')) { + context.handle(_mentionedUsersMeta, const VerificationResult.success()); + context.handle(_reactionCountsMeta, const VerificationResult.success()); + context.handle(_reactionScoresMeta, const VerificationResult.success()); + if (data.containsKey('parent_id')) { + context.handle(_parentIdMeta, + parentId.isAcceptableOrUnknown(data['parent_id']!, _parentIdMeta)); + } + if (data.containsKey('quoted_message_id')) { context.handle( - _cidMeta, cid.isAcceptableOrUnknown(data['cid']!, _cidMeta)); - } else if (isInserting) { - context.missing(_cidMeta); + _quotedMessageIdMeta, + quotedMessageId.isAcceptableOrUnknown( + data['quoted_message_id']!, _quotedMessageIdMeta)); } - context.handle(_ownCapabilitiesMeta, const VerificationResult.success()); - context.handle(_configMeta, const VerificationResult.success()); - if (data.containsKey('frozen')) { - context.handle(_frozenMeta, - frozen.isAcceptableOrUnknown(data['frozen']!, _frozenMeta)); - } - if (data.containsKey('last_message_at')) { + if (data.containsKey('reply_count')) { context.handle( - _lastMessageAtMeta, - lastMessageAt.isAcceptableOrUnknown( - data['last_message_at']!, _lastMessageAtMeta)); + _replyCountMeta, + replyCount.isAcceptableOrUnknown( + data['reply_count']!, _replyCountMeta)); + } + if (data.containsKey('show_in_channel')) { + context.handle( + _showInChannelMeta, + showInChannel.isAcceptableOrUnknown( + data['show_in_channel']!, _showInChannelMeta)); + } + if (data.containsKey('shadowed')) { + context.handle(_shadowedMeta, + shadowed.isAcceptableOrUnknown(data['shadowed']!, _shadowedMeta)); + } + if (data.containsKey('command')) { + context.handle(_commandMeta, + command.isAcceptableOrUnknown(data['command']!, _commandMeta)); } if (data.containsKey('created_at')) { context.handle(_createdAtMeta, @@ -587,41 +936,133 @@ class $ChannelsTable extends Channels context.handle(_deletedAtMeta, deletedAt.isAcceptableOrUnknown(data['deleted_at']!, _deletedAtMeta)); } - if (data.containsKey('member_count')) { - context.handle( - _memberCountMeta, - memberCount.isAcceptableOrUnknown( - data['member_count']!, _memberCountMeta)); + if (data.containsKey('user_id')) { + context.handle(_userIdMeta, + userId.isAcceptableOrUnknown(data['user_id']!, _userIdMeta)); } - if (data.containsKey('created_by_id')) { - context.handle( - _createdByIdMeta, - createdById.isAcceptableOrUnknown( - data['created_by_id']!, _createdByIdMeta)); + if (data.containsKey('pinned')) { + context.handle(_pinnedMeta, + pinned.isAcceptableOrUnknown(data['pinned']!, _pinnedMeta)); } + if (data.containsKey('pinned_at')) { + context.handle(_pinnedAtMeta, + pinnedAt.isAcceptableOrUnknown(data['pinned_at']!, _pinnedAtMeta)); + } + if (data.containsKey('pin_expires')) { + context.handle( + _pinExpiresMeta, + pinExpires.isAcceptableOrUnknown( + data['pin_expires']!, _pinExpiresMeta)); + } + if (data.containsKey('pinned_by_user_id')) { + context.handle( + _pinnedByUserIdMeta, + pinnedByUserId.isAcceptableOrUnknown( + data['pinned_by_user_id']!, _pinnedByUserIdMeta)); + } + if (data.containsKey('channel_cid')) { + context.handle( + _channelCidMeta, + channelCid.isAcceptableOrUnknown( + data['channel_cid']!, _channelCidMeta)); + } else if (isInserting) { + context.missing(_channelCidMeta); + } + context.handle(_i18nMeta, const VerificationResult.success()); context.handle(_extraDataMeta, const VerificationResult.success()); return context; } @override - Set get $primaryKey => {cid}; + Set get $primaryKey => {id}; @override - ChannelEntity map(Map data, {String? tablePrefix}) { - return ChannelEntity.fromData(data, - prefix: tablePrefix != null ? '$tablePrefix.' : null); + MessageEntity map(Map data, {String? tablePrefix}) { + final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; + return MessageEntity( + id: attachedDatabase.typeMapping + .read(DriftSqlType.string, data['${effectivePrefix}id'])!, + messageText: attachedDatabase.typeMapping + .read(DriftSqlType.string, data['${effectivePrefix}message_text']), + attachments: $MessagesTable.$converterattachments.fromSql(attachedDatabase + .typeMapping + .read(DriftSqlType.string, data['${effectivePrefix}attachments'])!), + status: $MessagesTable.$converterstatus.fromSql(attachedDatabase + .typeMapping + .read(DriftSqlType.int, data['${effectivePrefix}status'])!), + type: attachedDatabase.typeMapping + .read(DriftSqlType.string, data['${effectivePrefix}type'])!, + mentionedUsers: $MessagesTable.$convertermentionedUsers.fromSql( + attachedDatabase.typeMapping.read( + DriftSqlType.string, data['${effectivePrefix}mentioned_users'])!), + reactionCounts: $MessagesTable.$converterreactionCountsn.fromSql( + attachedDatabase.typeMapping.read( + DriftSqlType.string, data['${effectivePrefix}reaction_counts'])), + reactionScores: $MessagesTable.$converterreactionScoresn.fromSql( + attachedDatabase.typeMapping.read( + DriftSqlType.string, data['${effectivePrefix}reaction_scores'])), + parentId: attachedDatabase.typeMapping + .read(DriftSqlType.string, data['${effectivePrefix}parent_id']), + quotedMessageId: attachedDatabase.typeMapping.read( + DriftSqlType.string, data['${effectivePrefix}quoted_message_id']), + replyCount: attachedDatabase.typeMapping + .read(DriftSqlType.int, data['${effectivePrefix}reply_count']), + showInChannel: attachedDatabase.typeMapping + .read(DriftSqlType.bool, data['${effectivePrefix}show_in_channel']), + shadowed: attachedDatabase.typeMapping + .read(DriftSqlType.bool, data['${effectivePrefix}shadowed'])!, + command: attachedDatabase.typeMapping + .read(DriftSqlType.string, data['${effectivePrefix}command']), + createdAt: attachedDatabase.typeMapping + .read(DriftSqlType.dateTime, data['${effectivePrefix}created_at'])!, + updatedAt: attachedDatabase.typeMapping + .read(DriftSqlType.dateTime, data['${effectivePrefix}updated_at'])!, + deletedAt: attachedDatabase.typeMapping + .read(DriftSqlType.dateTime, data['${effectivePrefix}deleted_at']), + userId: attachedDatabase.typeMapping + .read(DriftSqlType.string, data['${effectivePrefix}user_id']), + pinned: attachedDatabase.typeMapping + .read(DriftSqlType.bool, data['${effectivePrefix}pinned'])!, + pinnedAt: attachedDatabase.typeMapping + .read(DriftSqlType.dateTime, data['${effectivePrefix}pinned_at']), + pinExpires: attachedDatabase.typeMapping + .read(DriftSqlType.dateTime, data['${effectivePrefix}pin_expires']), + pinnedByUserId: attachedDatabase.typeMapping.read( + DriftSqlType.string, data['${effectivePrefix}pinned_by_user_id']), + channelCid: attachedDatabase.typeMapping + .read(DriftSqlType.string, data['${effectivePrefix}channel_cid'])!, + i18n: $MessagesTable.$converteri18n.fromSql(attachedDatabase.typeMapping + .read(DriftSqlType.string, data['${effectivePrefix}i18n'])), + extraData: $MessagesTable.$converterextraDatan.fromSql(attachedDatabase + .typeMapping + .read(DriftSqlType.string, data['${effectivePrefix}extra_data'])), + ); } @override - $ChannelsTable createAlias(String alias) { - return $ChannelsTable(attachedDatabase, alias); + $MessagesTable createAlias(String alias) { + return $MessagesTable(attachedDatabase, alias); } - static TypeConverter, String> $converter0 = + static TypeConverter, String> $converterattachments = ListConverter(); - static TypeConverter, String> $converter1 = - MapConverter(); - static TypeConverter, String> $converter2 = + static TypeConverter $converterstatus = + MessageSendingStatusConverter(); + static TypeConverter, String> $convertermentionedUsers = + ListConverter(); + static TypeConverter, String> $converterreactionCounts = + MapConverter(); + static TypeConverter?, String?> $converterreactionCountsn = + NullAwareTypeConverter.wrap($converterreactionCounts); + static TypeConverter, String> $converterreactionScores = + MapConverter(); + static TypeConverter?, String?> $converterreactionScoresn = + NullAwareTypeConverter.wrap($converterreactionScores); + static TypeConverter?, String?> $converteri18n = + NullableMapConverter(); + static TypeConverter, String> $converterextraData = MapConverter(); + static TypeConverter?, String?> $converterextraDatan = + NullAwareTypeConverter.wrap($converterextraData); } class MessageEntity extends DataClass implements Insertable { @@ -700,7 +1141,7 @@ class MessageEntity extends DataClass implements Insertable { /// Message custom extraData final Map? extraData; - MessageEntity( + const MessageEntity( {required this.id, this.messageText, required this.attachments, @@ -726,134 +1167,79 @@ class MessageEntity extends DataClass implements Insertable { required this.channelCid, this.i18n, this.extraData}); - factory MessageEntity.fromData(Map data, {String? prefix}) { - final effectivePrefix = prefix ?? ''; - return MessageEntity( - id: const StringType() - .mapFromDatabaseResponse(data['${effectivePrefix}id'])!, - messageText: const StringType() - .mapFromDatabaseResponse(data['${effectivePrefix}message_text']), - attachments: $MessagesTable.$converter0.mapToDart(const StringType() - .mapFromDatabaseResponse(data['${effectivePrefix}attachments']))!, - status: $MessagesTable.$converter1.mapToDart(const IntType() - .mapFromDatabaseResponse(data['${effectivePrefix}status']))!, - type: const StringType() - .mapFromDatabaseResponse(data['${effectivePrefix}type'])!, - mentionedUsers: $MessagesTable.$converter2.mapToDart(const StringType() - .mapFromDatabaseResponse(data['${effectivePrefix}mentioned_users']))!, - reactionCounts: $MessagesTable.$converter3.mapToDart(const StringType() - .mapFromDatabaseResponse(data['${effectivePrefix}reaction_counts'])), - reactionScores: $MessagesTable.$converter4.mapToDart(const StringType() - .mapFromDatabaseResponse(data['${effectivePrefix}reaction_scores'])), - parentId: const StringType() - .mapFromDatabaseResponse(data['${effectivePrefix}parent_id']), - quotedMessageId: const StringType() - .mapFromDatabaseResponse(data['${effectivePrefix}quoted_message_id']), - replyCount: const IntType() - .mapFromDatabaseResponse(data['${effectivePrefix}reply_count']), - showInChannel: const BoolType() - .mapFromDatabaseResponse(data['${effectivePrefix}show_in_channel']), - shadowed: const BoolType() - .mapFromDatabaseResponse(data['${effectivePrefix}shadowed'])!, - command: const StringType() - .mapFromDatabaseResponse(data['${effectivePrefix}command']), - createdAt: const DateTimeType() - .mapFromDatabaseResponse(data['${effectivePrefix}created_at'])!, - updatedAt: const DateTimeType() - .mapFromDatabaseResponse(data['${effectivePrefix}updated_at'])!, - deletedAt: const DateTimeType() - .mapFromDatabaseResponse(data['${effectivePrefix}deleted_at']), - userId: const StringType() - .mapFromDatabaseResponse(data['${effectivePrefix}user_id']), - pinned: const BoolType() - .mapFromDatabaseResponse(data['${effectivePrefix}pinned'])!, - pinnedAt: const DateTimeType() - .mapFromDatabaseResponse(data['${effectivePrefix}pinned_at']), - pinExpires: const DateTimeType() - .mapFromDatabaseResponse(data['${effectivePrefix}pin_expires']), - pinnedByUserId: const StringType() - .mapFromDatabaseResponse(data['${effectivePrefix}pinned_by_user_id']), - channelCid: const StringType() - .mapFromDatabaseResponse(data['${effectivePrefix}channel_cid'])!, - i18n: $MessagesTable.$converter5.mapToDart(const StringType() - .mapFromDatabaseResponse(data['${effectivePrefix}i18n'])), - extraData: $MessagesTable.$converter6.mapToDart(const StringType() - .mapFromDatabaseResponse(data['${effectivePrefix}extra_data'])), - ); - } @override Map toColumns(bool nullToAbsent) { final map = {}; map['id'] = Variable(id); if (!nullToAbsent || messageText != null) { - map['message_text'] = Variable(messageText); + map['message_text'] = Variable(messageText); } { - final converter = $MessagesTable.$converter0; - map['attachments'] = Variable(converter.mapToSql(attachments)!); + final converter = $MessagesTable.$converterattachments; + map['attachments'] = Variable(converter.toSql(attachments)); } { - final converter = $MessagesTable.$converter1; - map['status'] = Variable(converter.mapToSql(status)!); + final converter = $MessagesTable.$converterstatus; + map['status'] = Variable(converter.toSql(status)); } map['type'] = Variable(type); { - final converter = $MessagesTable.$converter2; + final converter = $MessagesTable.$convertermentionedUsers; map['mentioned_users'] = - Variable(converter.mapToSql(mentionedUsers)!); + Variable(converter.toSql(mentionedUsers)); } if (!nullToAbsent || reactionCounts != null) { - final converter = $MessagesTable.$converter3; + final converter = $MessagesTable.$converterreactionCountsn; map['reaction_counts'] = - Variable(converter.mapToSql(reactionCounts)); + Variable(converter.toSql(reactionCounts)); } if (!nullToAbsent || reactionScores != null) { - final converter = $MessagesTable.$converter4; + final converter = $MessagesTable.$converterreactionScoresn; map['reaction_scores'] = - Variable(converter.mapToSql(reactionScores)); + Variable(converter.toSql(reactionScores)); } if (!nullToAbsent || parentId != null) { - map['parent_id'] = Variable(parentId); + map['parent_id'] = Variable(parentId); } if (!nullToAbsent || quotedMessageId != null) { - map['quoted_message_id'] = Variable(quotedMessageId); + map['quoted_message_id'] = Variable(quotedMessageId); } if (!nullToAbsent || replyCount != null) { - map['reply_count'] = Variable(replyCount); + map['reply_count'] = Variable(replyCount); } if (!nullToAbsent || showInChannel != null) { - map['show_in_channel'] = Variable(showInChannel); + map['show_in_channel'] = Variable(showInChannel); } map['shadowed'] = Variable(shadowed); if (!nullToAbsent || command != null) { - map['command'] = Variable(command); + map['command'] = Variable(command); } map['created_at'] = Variable(createdAt); map['updated_at'] = Variable(updatedAt); if (!nullToAbsent || deletedAt != null) { - map['deleted_at'] = Variable(deletedAt); + map['deleted_at'] = Variable(deletedAt); } if (!nullToAbsent || userId != null) { - map['user_id'] = Variable(userId); + map['user_id'] = Variable(userId); } map['pinned'] = Variable(pinned); if (!nullToAbsent || pinnedAt != null) { - map['pinned_at'] = Variable(pinnedAt); + map['pinned_at'] = Variable(pinnedAt); } if (!nullToAbsent || pinExpires != null) { - map['pin_expires'] = Variable(pinExpires); + map['pin_expires'] = Variable(pinExpires); } if (!nullToAbsent || pinnedByUserId != null) { - map['pinned_by_user_id'] = Variable(pinnedByUserId); + map['pinned_by_user_id'] = Variable(pinnedByUserId); } map['channel_cid'] = Variable(channelCid); if (!nullToAbsent || i18n != null) { - final converter = $MessagesTable.$converter5; - map['i18n'] = Variable(converter.mapToSql(i18n)); + final converter = $MessagesTable.$converteri18n; + map['i18n'] = Variable(converter.toSql(i18n)); } if (!nullToAbsent || extraData != null) { - final converter = $MessagesTable.$converter6; - map['extra_data'] = Variable(converter.mapToSql(extraData)); + final converter = $MessagesTable.$converterextraDatan; + map['extra_data'] = Variable(converter.toSql(extraData)); } return map; } @@ -1099,6 +1485,7 @@ class MessagesCompanion extends UpdateCompanion { final Value channelCid; final Value?> i18n; final Value?> extraData; + final Value rowid; const MessagesCompanion({ this.id = const Value.absent(), this.messageText = const Value.absent(), @@ -1125,6 +1512,7 @@ class MessagesCompanion extends UpdateCompanion { this.channelCid = const Value.absent(), this.i18n = const Value.absent(), this.extraData = const Value.absent(), + this.rowid = const Value.absent(), }); MessagesCompanion.insert({ required String id, @@ -1152,36 +1540,38 @@ class MessagesCompanion extends UpdateCompanion { required String channelCid, this.i18n = const Value.absent(), this.extraData = const Value.absent(), + this.rowid = const Value.absent(), }) : id = Value(id), attachments = Value(attachments), mentionedUsers = Value(mentionedUsers), channelCid = Value(channelCid); static Insertable custom({ Expression? id, - Expression? messageText, - Expression>? attachments, - Expression? status, + Expression? messageText, + Expression? attachments, + Expression? status, Expression? type, - Expression>? mentionedUsers, - Expression?>? reactionCounts, - Expression?>? reactionScores, - Expression? parentId, - Expression? quotedMessageId, - Expression? replyCount, - Expression? showInChannel, + Expression? mentionedUsers, + Expression? reactionCounts, + Expression? reactionScores, + Expression? parentId, + Expression? quotedMessageId, + Expression? replyCount, + Expression? showInChannel, Expression? shadowed, - Expression? command, + Expression? command, Expression? createdAt, Expression? updatedAt, - Expression? deletedAt, - Expression? userId, + Expression? deletedAt, + Expression? userId, Expression? pinned, - Expression? pinnedAt, - Expression? pinExpires, - Expression? pinnedByUserId, + Expression? pinnedAt, + Expression? pinExpires, + Expression? pinnedByUserId, Expression? channelCid, - Expression?>? i18n, - Expression?>? extraData, + Expression? i18n, + Expression? extraData, + Expression? rowid, }) { return RawValuesInsertable({ if (id != null) 'id': id, @@ -1209,6 +1599,7 @@ class MessagesCompanion extends UpdateCompanion { if (channelCid != null) 'channel_cid': channelCid, if (i18n != null) 'i18n': i18n, if (extraData != null) 'extra_data': extraData, + if (rowid != null) 'rowid': rowid, }); } @@ -1237,7 +1628,8 @@ class MessagesCompanion extends UpdateCompanion { Value? pinnedByUserId, Value? channelCid, Value?>? i18n, - Value?>? extraData}) { + Value?>? extraData, + Value? rowid}) { return MessagesCompanion( id: id ?? this.id, messageText: messageText ?? this.messageText, @@ -1264,6 +1656,7 @@ class MessagesCompanion extends UpdateCompanion { channelCid: channelCid ?? this.channelCid, i18n: i18n ?? this.i18n, extraData: extraData ?? this.extraData, + rowid: rowid ?? this.rowid, ); } @@ -1274,52 +1667,51 @@ class MessagesCompanion extends UpdateCompanion { map['id'] = Variable(id.value); } if (messageText.present) { - map['message_text'] = Variable(messageText.value); + map['message_text'] = Variable(messageText.value); } if (attachments.present) { - final converter = $MessagesTable.$converter0; - map['attachments'] = - Variable(converter.mapToSql(attachments.value)!); + final converter = $MessagesTable.$converterattachments; + map['attachments'] = Variable(converter.toSql(attachments.value)); } if (status.present) { - final converter = $MessagesTable.$converter1; - map['status'] = Variable(converter.mapToSql(status.value)!); + final converter = $MessagesTable.$converterstatus; + map['status'] = Variable(converter.toSql(status.value)); } if (type.present) { map['type'] = Variable(type.value); } if (mentionedUsers.present) { - final converter = $MessagesTable.$converter2; + final converter = $MessagesTable.$convertermentionedUsers; map['mentioned_users'] = - Variable(converter.mapToSql(mentionedUsers.value)!); + Variable(converter.toSql(mentionedUsers.value)); } if (reactionCounts.present) { - final converter = $MessagesTable.$converter3; + final converter = $MessagesTable.$converterreactionCountsn; map['reaction_counts'] = - Variable(converter.mapToSql(reactionCounts.value)); + Variable(converter.toSql(reactionCounts.value)); } if (reactionScores.present) { - final converter = $MessagesTable.$converter4; + final converter = $MessagesTable.$converterreactionScoresn; map['reaction_scores'] = - Variable(converter.mapToSql(reactionScores.value)); + Variable(converter.toSql(reactionScores.value)); } if (parentId.present) { - map['parent_id'] = Variable(parentId.value); + map['parent_id'] = Variable(parentId.value); } if (quotedMessageId.present) { - map['quoted_message_id'] = Variable(quotedMessageId.value); + map['quoted_message_id'] = Variable(quotedMessageId.value); } if (replyCount.present) { - map['reply_count'] = Variable(replyCount.value); + map['reply_count'] = Variable(replyCount.value); } if (showInChannel.present) { - map['show_in_channel'] = Variable(showInChannel.value); + map['show_in_channel'] = Variable(showInChannel.value); } if (shadowed.present) { map['shadowed'] = Variable(shadowed.value); } if (command.present) { - map['command'] = Variable(command.value); + map['command'] = Variable(command.value); } if (createdAt.present) { map['created_at'] = Variable(createdAt.value); @@ -1328,34 +1720,36 @@ class MessagesCompanion extends UpdateCompanion { map['updated_at'] = Variable(updatedAt.value); } if (deletedAt.present) { - map['deleted_at'] = Variable(deletedAt.value); + map['deleted_at'] = Variable(deletedAt.value); } if (userId.present) { - map['user_id'] = Variable(userId.value); + map['user_id'] = Variable(userId.value); } if (pinned.present) { map['pinned'] = Variable(pinned.value); } if (pinnedAt.present) { - map['pinned_at'] = Variable(pinnedAt.value); + map['pinned_at'] = Variable(pinnedAt.value); } if (pinExpires.present) { - map['pin_expires'] = Variable(pinExpires.value); + map['pin_expires'] = Variable(pinExpires.value); } if (pinnedByUserId.present) { - map['pinned_by_user_id'] = Variable(pinnedByUserId.value); + map['pinned_by_user_id'] = Variable(pinnedByUserId.value); } if (channelCid.present) { map['channel_cid'] = Variable(channelCid.value); } if (i18n.present) { - final converter = $MessagesTable.$converter5; - map['i18n'] = Variable(converter.mapToSql(i18n.value)); + final converter = $MessagesTable.$converteri18n; + map['i18n'] = Variable(converter.toSql(i18n.value)); } if (extraData.present) { - final converter = $MessagesTable.$converter6; - map['extra_data'] = - Variable(converter.mapToSql(extraData.value)); + final converter = $MessagesTable.$converterextraDatan; + map['extra_data'] = Variable(converter.toSql(extraData.value)); + } + if (rowid.present) { + map['rowid'] = Variable(rowid.value); } return map; } @@ -1387,179 +1781,211 @@ class MessagesCompanion extends UpdateCompanion { ..write('pinnedByUserId: $pinnedByUserId, ') ..write('channelCid: $channelCid, ') ..write('i18n: $i18n, ') - ..write('extraData: $extraData') + ..write('extraData: $extraData, ') + ..write('rowid: $rowid') ..write(')')) .toString(); } } -class $MessagesTable extends Messages - with TableInfo<$MessagesTable, MessageEntity> { +class $PinnedMessagesTable extends PinnedMessages + with TableInfo<$PinnedMessagesTable, PinnedMessageEntity> { @override final GeneratedDatabase attachedDatabase; final String? _alias; - $MessagesTable(this.attachedDatabase, [this._alias]); - final VerificationMeta _idMeta = const VerificationMeta('id'); + $PinnedMessagesTable(this.attachedDatabase, [this._alias]); + static const VerificationMeta _idMeta = const VerificationMeta('id'); @override - late final GeneratedColumn id = GeneratedColumn( + late final GeneratedColumn id = GeneratedColumn( 'id', aliasedName, false, - type: const StringType(), requiredDuringInsert: true); - final VerificationMeta _messageTextMeta = + type: DriftSqlType.string, requiredDuringInsert: true); + static const VerificationMeta _messageTextMeta = const VerificationMeta('messageText'); @override - late final GeneratedColumn messageText = GeneratedColumn( + late final GeneratedColumn messageText = GeneratedColumn( 'message_text', aliasedName, true, - type: const StringType(), requiredDuringInsert: false); - final VerificationMeta _attachmentsMeta = + type: DriftSqlType.string, requiredDuringInsert: false); + static const VerificationMeta _attachmentsMeta = const VerificationMeta('attachments'); @override - late final GeneratedColumnWithTypeConverter, String?> - attachments = GeneratedColumn('attachments', aliasedName, false, - type: const StringType(), requiredDuringInsert: true) - .withConverter>($MessagesTable.$converter0); - final VerificationMeta _statusMeta = const VerificationMeta('status'); + late final GeneratedColumnWithTypeConverter, String> + attachments = GeneratedColumn('attachments', aliasedName, false, + type: DriftSqlType.string, requiredDuringInsert: true) + .withConverter>( + $PinnedMessagesTable.$converterattachments); + static const VerificationMeta _statusMeta = const VerificationMeta('status'); @override - late final GeneratedColumnWithTypeConverter - status = GeneratedColumn('status', aliasedName, false, - type: const IntType(), + late final GeneratedColumnWithTypeConverter + status = GeneratedColumn('status', aliasedName, false, + type: DriftSqlType.int, requiredDuringInsert: false, defaultValue: const Constant(1)) - .withConverter($MessagesTable.$converter1); - final VerificationMeta _typeMeta = const VerificationMeta('type'); + .withConverter( + $PinnedMessagesTable.$converterstatus); + static const VerificationMeta _typeMeta = const VerificationMeta('type'); @override - late final GeneratedColumn type = GeneratedColumn( + late final GeneratedColumn type = GeneratedColumn( 'type', aliasedName, false, - type: const StringType(), + type: DriftSqlType.string, requiredDuringInsert: false, defaultValue: const Constant('regular')); - final VerificationMeta _mentionedUsersMeta = + static const VerificationMeta _mentionedUsersMeta = const VerificationMeta('mentionedUsers'); @override - late final GeneratedColumnWithTypeConverter, String?> - mentionedUsers = GeneratedColumn( + late final GeneratedColumnWithTypeConverter, String> + mentionedUsers = GeneratedColumn( 'mentioned_users', aliasedName, false, - type: const StringType(), requiredDuringInsert: true) - .withConverter>($MessagesTable.$converter2); - final VerificationMeta _reactionCountsMeta = + type: DriftSqlType.string, requiredDuringInsert: true) + .withConverter>( + $PinnedMessagesTable.$convertermentionedUsers); + static const VerificationMeta _reactionCountsMeta = const VerificationMeta('reactionCounts'); @override - late final GeneratedColumnWithTypeConverter, String?> - reactionCounts = GeneratedColumn( + late final GeneratedColumnWithTypeConverter?, String> + reactionCounts = GeneratedColumn( 'reaction_counts', aliasedName, true, - type: const StringType(), requiredDuringInsert: false) - .withConverter>($MessagesTable.$converter3); - final VerificationMeta _reactionScoresMeta = + type: DriftSqlType.string, requiredDuringInsert: false) + .withConverter?>( + $PinnedMessagesTable.$converterreactionCountsn); + static const VerificationMeta _reactionScoresMeta = const VerificationMeta('reactionScores'); @override - late final GeneratedColumnWithTypeConverter, String?> - reactionScores = GeneratedColumn( + late final GeneratedColumnWithTypeConverter?, String> + reactionScores = GeneratedColumn( 'reaction_scores', aliasedName, true, - type: const StringType(), requiredDuringInsert: false) - .withConverter>($MessagesTable.$converter4); - final VerificationMeta _parentIdMeta = const VerificationMeta('parentId'); + type: DriftSqlType.string, requiredDuringInsert: false) + .withConverter?>( + $PinnedMessagesTable.$converterreactionScoresn); + static const VerificationMeta _parentIdMeta = + const VerificationMeta('parentId'); @override - late final GeneratedColumn parentId = GeneratedColumn( + late final GeneratedColumn parentId = GeneratedColumn( 'parent_id', aliasedName, true, - type: const StringType(), requiredDuringInsert: false); - final VerificationMeta _quotedMessageIdMeta = + type: DriftSqlType.string, requiredDuringInsert: false); + static const VerificationMeta _quotedMessageIdMeta = const VerificationMeta('quotedMessageId'); @override - late final GeneratedColumn quotedMessageId = - GeneratedColumn('quoted_message_id', aliasedName, true, - type: const StringType(), requiredDuringInsert: false); - final VerificationMeta _replyCountMeta = const VerificationMeta('replyCount'); + late final GeneratedColumn quotedMessageId = GeneratedColumn( + 'quoted_message_id', aliasedName, true, + type: DriftSqlType.string, requiredDuringInsert: false); + static const VerificationMeta _replyCountMeta = + const VerificationMeta('replyCount'); @override - late final GeneratedColumn replyCount = GeneratedColumn( + late final GeneratedColumn replyCount = GeneratedColumn( 'reply_count', aliasedName, true, - type: const IntType(), requiredDuringInsert: false); - final VerificationMeta _showInChannelMeta = + type: DriftSqlType.int, requiredDuringInsert: false); + static const VerificationMeta _showInChannelMeta = const VerificationMeta('showInChannel'); @override - late final GeneratedColumn showInChannel = GeneratedColumn( - 'show_in_channel', aliasedName, true, - type: const BoolType(), - requiredDuringInsert: false, - defaultConstraints: 'CHECK (show_in_channel IN (0, 1))'); - final VerificationMeta _shadowedMeta = const VerificationMeta('shadowed'); + late final GeneratedColumn showInChannel = + GeneratedColumn('show_in_channel', aliasedName, true, + type: DriftSqlType.bool, + requiredDuringInsert: false, + defaultConstraints: GeneratedColumn.constraintsDependsOnDialect({ + SqlDialect.sqlite: 'CHECK ("show_in_channel" IN (0, 1))', + SqlDialect.mysql: '', + SqlDialect.postgres: '', + })); + static const VerificationMeta _shadowedMeta = + const VerificationMeta('shadowed'); @override - late final GeneratedColumn shadowed = GeneratedColumn( - 'shadowed', aliasedName, false, - type: const BoolType(), - requiredDuringInsert: false, - defaultConstraints: 'CHECK (shadowed IN (0, 1))', - defaultValue: const Constant(false)); - final VerificationMeta _commandMeta = const VerificationMeta('command'); + late final GeneratedColumn shadowed = + GeneratedColumn('shadowed', aliasedName, false, + type: DriftSqlType.bool, + requiredDuringInsert: false, + defaultConstraints: GeneratedColumn.constraintsDependsOnDialect({ + SqlDialect.sqlite: 'CHECK ("shadowed" IN (0, 1))', + SqlDialect.mysql: '', + SqlDialect.postgres: '', + }), + defaultValue: const Constant(false)); + static const VerificationMeta _commandMeta = + const VerificationMeta('command'); @override - late final GeneratedColumn command = GeneratedColumn( + late final GeneratedColumn command = GeneratedColumn( 'command', aliasedName, true, - type: const StringType(), requiredDuringInsert: false); - final VerificationMeta _createdAtMeta = const VerificationMeta('createdAt'); + type: DriftSqlType.string, requiredDuringInsert: false); + static const VerificationMeta _createdAtMeta = + const VerificationMeta('createdAt'); @override - late final GeneratedColumn createdAt = GeneratedColumn( + late final GeneratedColumn createdAt = GeneratedColumn( 'created_at', aliasedName, false, - type: const IntType(), + type: DriftSqlType.dateTime, requiredDuringInsert: false, defaultValue: currentDateAndTime); - final VerificationMeta _updatedAtMeta = const VerificationMeta('updatedAt'); + static const VerificationMeta _updatedAtMeta = + const VerificationMeta('updatedAt'); @override - late final GeneratedColumn updatedAt = GeneratedColumn( + late final GeneratedColumn updatedAt = GeneratedColumn( 'updated_at', aliasedName, false, - type: const IntType(), + type: DriftSqlType.dateTime, requiredDuringInsert: false, defaultValue: currentDateAndTime); - final VerificationMeta _deletedAtMeta = const VerificationMeta('deletedAt'); + static const VerificationMeta _deletedAtMeta = + const VerificationMeta('deletedAt'); @override - late final GeneratedColumn deletedAt = GeneratedColumn( + late final GeneratedColumn deletedAt = GeneratedColumn( 'deleted_at', aliasedName, true, - type: const IntType(), requiredDuringInsert: false); - final VerificationMeta _userIdMeta = const VerificationMeta('userId'); + type: DriftSqlType.dateTime, requiredDuringInsert: false); + static const VerificationMeta _userIdMeta = const VerificationMeta('userId'); @override - late final GeneratedColumn userId = GeneratedColumn( + late final GeneratedColumn userId = GeneratedColumn( 'user_id', aliasedName, true, - type: const StringType(), requiredDuringInsert: false); - final VerificationMeta _pinnedMeta = const VerificationMeta('pinned'); + type: DriftSqlType.string, requiredDuringInsert: false); + static const VerificationMeta _pinnedMeta = const VerificationMeta('pinned'); @override - late final GeneratedColumn pinned = GeneratedColumn( - 'pinned', aliasedName, false, - type: const BoolType(), - requiredDuringInsert: false, - defaultConstraints: 'CHECK (pinned IN (0, 1))', - defaultValue: const Constant(false)); - final VerificationMeta _pinnedAtMeta = const VerificationMeta('pinnedAt'); + late final GeneratedColumn pinned = + GeneratedColumn('pinned', aliasedName, false, + type: DriftSqlType.bool, + requiredDuringInsert: false, + defaultConstraints: GeneratedColumn.constraintsDependsOnDialect({ + SqlDialect.sqlite: 'CHECK ("pinned" IN (0, 1))', + SqlDialect.mysql: '', + SqlDialect.postgres: '', + }), + defaultValue: const Constant(false)); + static const VerificationMeta _pinnedAtMeta = + const VerificationMeta('pinnedAt'); @override - late final GeneratedColumn pinnedAt = GeneratedColumn( + late final GeneratedColumn pinnedAt = GeneratedColumn( 'pinned_at', aliasedName, true, - type: const IntType(), requiredDuringInsert: false); - final VerificationMeta _pinExpiresMeta = const VerificationMeta('pinExpires'); + type: DriftSqlType.dateTime, requiredDuringInsert: false); + static const VerificationMeta _pinExpiresMeta = + const VerificationMeta('pinExpires'); @override - late final GeneratedColumn pinExpires = GeneratedColumn( + late final GeneratedColumn pinExpires = GeneratedColumn( 'pin_expires', aliasedName, true, - type: const IntType(), requiredDuringInsert: false); - final VerificationMeta _pinnedByUserIdMeta = + type: DriftSqlType.dateTime, requiredDuringInsert: false); + static const VerificationMeta _pinnedByUserIdMeta = const VerificationMeta('pinnedByUserId'); @override - late final GeneratedColumn pinnedByUserId = GeneratedColumn( + late final GeneratedColumn pinnedByUserId = GeneratedColumn( 'pinned_by_user_id', aliasedName, true, - type: const StringType(), requiredDuringInsert: false); - final VerificationMeta _channelCidMeta = const VerificationMeta('channelCid'); + type: DriftSqlType.string, requiredDuringInsert: false); + static const VerificationMeta _channelCidMeta = + const VerificationMeta('channelCid'); @override - late final GeneratedColumn channelCid = GeneratedColumn( + late final GeneratedColumn channelCid = GeneratedColumn( 'channel_cid', aliasedName, false, - type: const StringType(), + type: DriftSqlType.string, requiredDuringInsert: true, - $customConstraints: 'REFERENCES channels(cid) ON DELETE CASCADE'); - final VerificationMeta _i18nMeta = const VerificationMeta('i18n'); + defaultConstraints: GeneratedColumn.constraintIsAlways( + 'REFERENCES channels (cid) ON DELETE CASCADE')); + static const VerificationMeta _i18nMeta = const VerificationMeta('i18n'); @override - late final GeneratedColumnWithTypeConverter, String?> - i18n = GeneratedColumn('i18n', aliasedName, true, - type: const StringType(), requiredDuringInsert: false) - .withConverter>($MessagesTable.$converter5); - final VerificationMeta _extraDataMeta = const VerificationMeta('extraData'); + late final GeneratedColumnWithTypeConverter?, String> + i18n = GeneratedColumn('i18n', aliasedName, true, + type: DriftSqlType.string, requiredDuringInsert: false) + .withConverter?>( + $PinnedMessagesTable.$converteri18n); + static const VerificationMeta _extraDataMeta = + const VerificationMeta('extraData'); @override - late final GeneratedColumnWithTypeConverter, String?> - extraData = GeneratedColumn('extra_data', aliasedName, true, - type: const StringType(), requiredDuringInsert: false) - .withConverter>($MessagesTable.$converter6); + late final GeneratedColumnWithTypeConverter?, String> + extraData = GeneratedColumn('extra_data', aliasedName, true, + type: DriftSqlType.string, requiredDuringInsert: false) + .withConverter?>( + $PinnedMessagesTable.$converterextraDatan); @override List get $columns => [ id, @@ -1589,11 +2015,12 @@ class $MessagesTable extends Messages extraData ]; @override - String get aliasedName => _alias ?? 'messages'; + String get aliasedName => _alias ?? 'pinned_messages'; @override - String get actualTableName => 'messages'; + String get actualTableName => 'pinned_messages'; @override - VerificationContext validateIntegrity(Insertable instance, + VerificationContext validateIntegrity( + Insertable instance, {bool isInserting = false}) { final context = VerificationContext(); final data = instance.toColumns(true); @@ -1699,30 +2126,94 @@ class $MessagesTable extends Messages @override Set get $primaryKey => {id}; @override - MessageEntity map(Map data, {String? tablePrefix}) { - return MessageEntity.fromData(data, - prefix: tablePrefix != null ? '$tablePrefix.' : null); + PinnedMessageEntity map(Map data, {String? tablePrefix}) { + final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; + return PinnedMessageEntity( + id: attachedDatabase.typeMapping + .read(DriftSqlType.string, data['${effectivePrefix}id'])!, + messageText: attachedDatabase.typeMapping + .read(DriftSqlType.string, data['${effectivePrefix}message_text']), + attachments: $PinnedMessagesTable.$converterattachments.fromSql( + attachedDatabase.typeMapping.read( + DriftSqlType.string, data['${effectivePrefix}attachments'])!), + status: $PinnedMessagesTable.$converterstatus.fromSql(attachedDatabase + .typeMapping + .read(DriftSqlType.int, data['${effectivePrefix}status'])!), + type: attachedDatabase.typeMapping + .read(DriftSqlType.string, data['${effectivePrefix}type'])!, + mentionedUsers: $PinnedMessagesTable.$convertermentionedUsers.fromSql( + attachedDatabase.typeMapping.read( + DriftSqlType.string, data['${effectivePrefix}mentioned_users'])!), + reactionCounts: $PinnedMessagesTable.$converterreactionCountsn.fromSql( + attachedDatabase.typeMapping.read( + DriftSqlType.string, data['${effectivePrefix}reaction_counts'])), + reactionScores: $PinnedMessagesTable.$converterreactionScoresn.fromSql( + attachedDatabase.typeMapping.read( + DriftSqlType.string, data['${effectivePrefix}reaction_scores'])), + parentId: attachedDatabase.typeMapping + .read(DriftSqlType.string, data['${effectivePrefix}parent_id']), + quotedMessageId: attachedDatabase.typeMapping.read( + DriftSqlType.string, data['${effectivePrefix}quoted_message_id']), + replyCount: attachedDatabase.typeMapping + .read(DriftSqlType.int, data['${effectivePrefix}reply_count']), + showInChannel: attachedDatabase.typeMapping + .read(DriftSqlType.bool, data['${effectivePrefix}show_in_channel']), + shadowed: attachedDatabase.typeMapping + .read(DriftSqlType.bool, data['${effectivePrefix}shadowed'])!, + command: attachedDatabase.typeMapping + .read(DriftSqlType.string, data['${effectivePrefix}command']), + createdAt: attachedDatabase.typeMapping + .read(DriftSqlType.dateTime, data['${effectivePrefix}created_at'])!, + updatedAt: attachedDatabase.typeMapping + .read(DriftSqlType.dateTime, data['${effectivePrefix}updated_at'])!, + deletedAt: attachedDatabase.typeMapping + .read(DriftSqlType.dateTime, data['${effectivePrefix}deleted_at']), + userId: attachedDatabase.typeMapping + .read(DriftSqlType.string, data['${effectivePrefix}user_id']), + pinned: attachedDatabase.typeMapping + .read(DriftSqlType.bool, data['${effectivePrefix}pinned'])!, + pinnedAt: attachedDatabase.typeMapping + .read(DriftSqlType.dateTime, data['${effectivePrefix}pinned_at']), + pinExpires: attachedDatabase.typeMapping + .read(DriftSqlType.dateTime, data['${effectivePrefix}pin_expires']), + pinnedByUserId: attachedDatabase.typeMapping.read( + DriftSqlType.string, data['${effectivePrefix}pinned_by_user_id']), + channelCid: attachedDatabase.typeMapping + .read(DriftSqlType.string, data['${effectivePrefix}channel_cid'])!, + i18n: $PinnedMessagesTable.$converteri18n.fromSql(attachedDatabase + .typeMapping + .read(DriftSqlType.string, data['${effectivePrefix}i18n'])), + extraData: $PinnedMessagesTable.$converterextraDatan.fromSql( + attachedDatabase.typeMapping + .read(DriftSqlType.string, data['${effectivePrefix}extra_data'])), + ); } @override - $MessagesTable createAlias(String alias) { - return $MessagesTable(attachedDatabase, alias); + $PinnedMessagesTable createAlias(String alias) { + return $PinnedMessagesTable(attachedDatabase, alias); } - static TypeConverter, String> $converter0 = + static TypeConverter, String> $converterattachments = ListConverter(); - static TypeConverter $converter1 = + static TypeConverter $converterstatus = MessageSendingStatusConverter(); - static TypeConverter, String> $converter2 = + static TypeConverter, String> $convertermentionedUsers = ListConverter(); - static TypeConverter, String> $converter3 = + static TypeConverter, String> $converterreactionCounts = MapConverter(); - static TypeConverter, String> $converter4 = + static TypeConverter?, String?> $converterreactionCountsn = + NullAwareTypeConverter.wrap($converterreactionCounts); + static TypeConverter, String> $converterreactionScores = MapConverter(); - static TypeConverter, String> $converter5 = - MapConverter(); - static TypeConverter, String> $converter6 = + static TypeConverter?, String?> $converterreactionScoresn = + NullAwareTypeConverter.wrap($converterreactionScores); + static TypeConverter?, String?> $converteri18n = + NullableMapConverter(); + static TypeConverter, String> $converterextraData = MapConverter(); + static TypeConverter?, String?> $converterextraDatan = + NullAwareTypeConverter.wrap($converterextraData); } class PinnedMessageEntity extends DataClass @@ -1802,7 +2293,7 @@ class PinnedMessageEntity extends DataClass /// Message custom extraData final Map? extraData; - PinnedMessageEntity( + const PinnedMessageEntity( {required this.id, this.messageText, required this.attachments, @@ -1828,138 +2319,79 @@ class PinnedMessageEntity extends DataClass required this.channelCid, this.i18n, this.extraData}); - factory PinnedMessageEntity.fromData(Map data, - {String? prefix}) { - final effectivePrefix = prefix ?? ''; - return PinnedMessageEntity( - id: const StringType() - .mapFromDatabaseResponse(data['${effectivePrefix}id'])!, - messageText: const StringType() - .mapFromDatabaseResponse(data['${effectivePrefix}message_text']), - attachments: $PinnedMessagesTable.$converter0.mapToDart(const StringType() - .mapFromDatabaseResponse(data['${effectivePrefix}attachments']))!, - status: $PinnedMessagesTable.$converter1.mapToDart(const IntType() - .mapFromDatabaseResponse(data['${effectivePrefix}status']))!, - type: const StringType() - .mapFromDatabaseResponse(data['${effectivePrefix}type'])!, - mentionedUsers: $PinnedMessagesTable.$converter2.mapToDart( - const StringType().mapFromDatabaseResponse( - data['${effectivePrefix}mentioned_users']))!, - reactionCounts: $PinnedMessagesTable.$converter3.mapToDart( - const StringType().mapFromDatabaseResponse( - data['${effectivePrefix}reaction_counts'])), - reactionScores: $PinnedMessagesTable.$converter4.mapToDart( - const StringType().mapFromDatabaseResponse( - data['${effectivePrefix}reaction_scores'])), - parentId: const StringType() - .mapFromDatabaseResponse(data['${effectivePrefix}parent_id']), - quotedMessageId: const StringType() - .mapFromDatabaseResponse(data['${effectivePrefix}quoted_message_id']), - replyCount: const IntType() - .mapFromDatabaseResponse(data['${effectivePrefix}reply_count']), - showInChannel: const BoolType() - .mapFromDatabaseResponse(data['${effectivePrefix}show_in_channel']), - shadowed: const BoolType() - .mapFromDatabaseResponse(data['${effectivePrefix}shadowed'])!, - command: const StringType() - .mapFromDatabaseResponse(data['${effectivePrefix}command']), - createdAt: const DateTimeType() - .mapFromDatabaseResponse(data['${effectivePrefix}created_at'])!, - updatedAt: const DateTimeType() - .mapFromDatabaseResponse(data['${effectivePrefix}updated_at'])!, - deletedAt: const DateTimeType() - .mapFromDatabaseResponse(data['${effectivePrefix}deleted_at']), - userId: const StringType() - .mapFromDatabaseResponse(data['${effectivePrefix}user_id']), - pinned: const BoolType() - .mapFromDatabaseResponse(data['${effectivePrefix}pinned'])!, - pinnedAt: const DateTimeType() - .mapFromDatabaseResponse(data['${effectivePrefix}pinned_at']), - pinExpires: const DateTimeType() - .mapFromDatabaseResponse(data['${effectivePrefix}pin_expires']), - pinnedByUserId: const StringType() - .mapFromDatabaseResponse(data['${effectivePrefix}pinned_by_user_id']), - channelCid: const StringType() - .mapFromDatabaseResponse(data['${effectivePrefix}channel_cid'])!, - i18n: $PinnedMessagesTable.$converter5.mapToDart(const StringType() - .mapFromDatabaseResponse(data['${effectivePrefix}i18n'])), - extraData: $PinnedMessagesTable.$converter6.mapToDart(const StringType() - .mapFromDatabaseResponse(data['${effectivePrefix}extra_data'])), - ); - } @override Map toColumns(bool nullToAbsent) { final map = {}; map['id'] = Variable(id); if (!nullToAbsent || messageText != null) { - map['message_text'] = Variable(messageText); + map['message_text'] = Variable(messageText); } { - final converter = $PinnedMessagesTable.$converter0; - map['attachments'] = Variable(converter.mapToSql(attachments)!); + final converter = $PinnedMessagesTable.$converterattachments; + map['attachments'] = Variable(converter.toSql(attachments)); } { - final converter = $PinnedMessagesTable.$converter1; - map['status'] = Variable(converter.mapToSql(status)!); + final converter = $PinnedMessagesTable.$converterstatus; + map['status'] = Variable(converter.toSql(status)); } map['type'] = Variable(type); { - final converter = $PinnedMessagesTable.$converter2; + final converter = $PinnedMessagesTable.$convertermentionedUsers; map['mentioned_users'] = - Variable(converter.mapToSql(mentionedUsers)!); + Variable(converter.toSql(mentionedUsers)); } if (!nullToAbsent || reactionCounts != null) { - final converter = $PinnedMessagesTable.$converter3; + final converter = $PinnedMessagesTable.$converterreactionCountsn; map['reaction_counts'] = - Variable(converter.mapToSql(reactionCounts)); + Variable(converter.toSql(reactionCounts)); } if (!nullToAbsent || reactionScores != null) { - final converter = $PinnedMessagesTable.$converter4; + final converter = $PinnedMessagesTable.$converterreactionScoresn; map['reaction_scores'] = - Variable(converter.mapToSql(reactionScores)); + Variable(converter.toSql(reactionScores)); } if (!nullToAbsent || parentId != null) { - map['parent_id'] = Variable(parentId); + map['parent_id'] = Variable(parentId); } if (!nullToAbsent || quotedMessageId != null) { - map['quoted_message_id'] = Variable(quotedMessageId); + map['quoted_message_id'] = Variable(quotedMessageId); } if (!nullToAbsent || replyCount != null) { - map['reply_count'] = Variable(replyCount); + map['reply_count'] = Variable(replyCount); } if (!nullToAbsent || showInChannel != null) { - map['show_in_channel'] = Variable(showInChannel); + map['show_in_channel'] = Variable(showInChannel); } map['shadowed'] = Variable(shadowed); if (!nullToAbsent || command != null) { - map['command'] = Variable(command); + map['command'] = Variable(command); } map['created_at'] = Variable(createdAt); map['updated_at'] = Variable(updatedAt); if (!nullToAbsent || deletedAt != null) { - map['deleted_at'] = Variable(deletedAt); + map['deleted_at'] = Variable(deletedAt); } if (!nullToAbsent || userId != null) { - map['user_id'] = Variable(userId); + map['user_id'] = Variable(userId); } map['pinned'] = Variable(pinned); if (!nullToAbsent || pinnedAt != null) { - map['pinned_at'] = Variable(pinnedAt); + map['pinned_at'] = Variable(pinnedAt); } if (!nullToAbsent || pinExpires != null) { - map['pin_expires'] = Variable(pinExpires); + map['pin_expires'] = Variable(pinExpires); } if (!nullToAbsent || pinnedByUserId != null) { - map['pinned_by_user_id'] = Variable(pinnedByUserId); + map['pinned_by_user_id'] = Variable(pinnedByUserId); } map['channel_cid'] = Variable(channelCid); if (!nullToAbsent || i18n != null) { - final converter = $PinnedMessagesTable.$converter5; - map['i18n'] = Variable(converter.mapToSql(i18n)); + final converter = $PinnedMessagesTable.$converteri18n; + map['i18n'] = Variable(converter.toSql(i18n)); } if (!nullToAbsent || extraData != null) { - final converter = $PinnedMessagesTable.$converter6; - map['extra_data'] = Variable(converter.mapToSql(extraData)); + final converter = $PinnedMessagesTable.$converterextraDatan; + map['extra_data'] = Variable(converter.toSql(extraData)); } return map; } @@ -2205,6 +2637,7 @@ class PinnedMessagesCompanion extends UpdateCompanion { final Value channelCid; final Value?> i18n; final Value?> extraData; + final Value rowid; const PinnedMessagesCompanion({ this.id = const Value.absent(), this.messageText = const Value.absent(), @@ -2231,6 +2664,7 @@ class PinnedMessagesCompanion extends UpdateCompanion { this.channelCid = const Value.absent(), this.i18n = const Value.absent(), this.extraData = const Value.absent(), + this.rowid = const Value.absent(), }); PinnedMessagesCompanion.insert({ required String id, @@ -2258,36 +2692,38 @@ class PinnedMessagesCompanion extends UpdateCompanion { required String channelCid, this.i18n = const Value.absent(), this.extraData = const Value.absent(), + this.rowid = const Value.absent(), }) : id = Value(id), attachments = Value(attachments), mentionedUsers = Value(mentionedUsers), channelCid = Value(channelCid); static Insertable custom({ Expression? id, - Expression? messageText, - Expression>? attachments, - Expression? status, + Expression? messageText, + Expression? attachments, + Expression? status, Expression? type, - Expression>? mentionedUsers, - Expression?>? reactionCounts, - Expression?>? reactionScores, - Expression? parentId, - Expression? quotedMessageId, - Expression? replyCount, - Expression? showInChannel, + Expression? mentionedUsers, + Expression? reactionCounts, + Expression? reactionScores, + Expression? parentId, + Expression? quotedMessageId, + Expression? replyCount, + Expression? showInChannel, Expression? shadowed, - Expression? command, + Expression? command, Expression? createdAt, Expression? updatedAt, - Expression? deletedAt, - Expression? userId, + Expression? deletedAt, + Expression? userId, Expression? pinned, - Expression? pinnedAt, - Expression? pinExpires, - Expression? pinnedByUserId, + Expression? pinnedAt, + Expression? pinExpires, + Expression? pinnedByUserId, Expression? channelCid, - Expression?>? i18n, - Expression?>? extraData, + Expression? i18n, + Expression? extraData, + Expression? rowid, }) { return RawValuesInsertable({ if (id != null) 'id': id, @@ -2315,6 +2751,7 @@ class PinnedMessagesCompanion extends UpdateCompanion { if (channelCid != null) 'channel_cid': channelCid, if (i18n != null) 'i18n': i18n, if (extraData != null) 'extra_data': extraData, + if (rowid != null) 'rowid': rowid, }); } @@ -2343,7 +2780,8 @@ class PinnedMessagesCompanion extends UpdateCompanion { Value? pinnedByUserId, Value? channelCid, Value?>? i18n, - Value?>? extraData}) { + Value?>? extraData, + Value? rowid}) { return PinnedMessagesCompanion( id: id ?? this.id, messageText: messageText ?? this.messageText, @@ -2370,6 +2808,7 @@ class PinnedMessagesCompanion extends UpdateCompanion { channelCid: channelCid ?? this.channelCid, i18n: i18n ?? this.i18n, extraData: extraData ?? this.extraData, + rowid: rowid ?? this.rowid, ); } @@ -2380,52 +2819,51 @@ class PinnedMessagesCompanion extends UpdateCompanion { map['id'] = Variable(id.value); } if (messageText.present) { - map['message_text'] = Variable(messageText.value); + map['message_text'] = Variable(messageText.value); } if (attachments.present) { - final converter = $PinnedMessagesTable.$converter0; - map['attachments'] = - Variable(converter.mapToSql(attachments.value)!); + final converter = $PinnedMessagesTable.$converterattachments; + map['attachments'] = Variable(converter.toSql(attachments.value)); } if (status.present) { - final converter = $PinnedMessagesTable.$converter1; - map['status'] = Variable(converter.mapToSql(status.value)!); + final converter = $PinnedMessagesTable.$converterstatus; + map['status'] = Variable(converter.toSql(status.value)); } if (type.present) { map['type'] = Variable(type.value); } if (mentionedUsers.present) { - final converter = $PinnedMessagesTable.$converter2; + final converter = $PinnedMessagesTable.$convertermentionedUsers; map['mentioned_users'] = - Variable(converter.mapToSql(mentionedUsers.value)!); + Variable(converter.toSql(mentionedUsers.value)); } if (reactionCounts.present) { - final converter = $PinnedMessagesTable.$converter3; + final converter = $PinnedMessagesTable.$converterreactionCountsn; map['reaction_counts'] = - Variable(converter.mapToSql(reactionCounts.value)); + Variable(converter.toSql(reactionCounts.value)); } if (reactionScores.present) { - final converter = $PinnedMessagesTable.$converter4; + final converter = $PinnedMessagesTable.$converterreactionScoresn; map['reaction_scores'] = - Variable(converter.mapToSql(reactionScores.value)); + Variable(converter.toSql(reactionScores.value)); } if (parentId.present) { - map['parent_id'] = Variable(parentId.value); + map['parent_id'] = Variable(parentId.value); } if (quotedMessageId.present) { - map['quoted_message_id'] = Variable(quotedMessageId.value); + map['quoted_message_id'] = Variable(quotedMessageId.value); } if (replyCount.present) { - map['reply_count'] = Variable(replyCount.value); + map['reply_count'] = Variable(replyCount.value); } if (showInChannel.present) { - map['show_in_channel'] = Variable(showInChannel.value); + map['show_in_channel'] = Variable(showInChannel.value); } if (shadowed.present) { map['shadowed'] = Variable(shadowed.value); } if (command.present) { - map['command'] = Variable(command.value); + map['command'] = Variable(command.value); } if (createdAt.present) { map['created_at'] = Variable(createdAt.value); @@ -2434,34 +2872,36 @@ class PinnedMessagesCompanion extends UpdateCompanion { map['updated_at'] = Variable(updatedAt.value); } if (deletedAt.present) { - map['deleted_at'] = Variable(deletedAt.value); + map['deleted_at'] = Variable(deletedAt.value); } if (userId.present) { - map['user_id'] = Variable(userId.value); + map['user_id'] = Variable(userId.value); } if (pinned.present) { map['pinned'] = Variable(pinned.value); } if (pinnedAt.present) { - map['pinned_at'] = Variable(pinnedAt.value); + map['pinned_at'] = Variable(pinnedAt.value); } if (pinExpires.present) { - map['pin_expires'] = Variable(pinExpires.value); + map['pin_expires'] = Variable(pinExpires.value); } if (pinnedByUserId.present) { - map['pinned_by_user_id'] = Variable(pinnedByUserId.value); + map['pinned_by_user_id'] = Variable(pinnedByUserId.value); } if (channelCid.present) { map['channel_cid'] = Variable(channelCid.value); } if (i18n.present) { - final converter = $PinnedMessagesTable.$converter5; - map['i18n'] = Variable(converter.mapToSql(i18n.value)); + final converter = $PinnedMessagesTable.$converteri18n; + map['i18n'] = Variable(converter.toSql(i18n.value)); } if (extraData.present) { - final converter = $PinnedMessagesTable.$converter6; - map['extra_data'] = - Variable(converter.mapToSql(extraData.value)); + final converter = $PinnedMessagesTable.$converterextraDatan; + map['extra_data'] = Variable(converter.toSql(extraData.value)); + } + if (rowid.present) { + map['rowid'] = Variable(rowid.value); } return map; } @@ -2493,345 +2933,136 @@ class PinnedMessagesCompanion extends UpdateCompanion { ..write('pinnedByUserId: $pinnedByUserId, ') ..write('channelCid: $channelCid, ') ..write('i18n: $i18n, ') - ..write('extraData: $extraData') + ..write('extraData: $extraData, ') + ..write('rowid: $rowid') ..write(')')) .toString(); } } -class $PinnedMessagesTable extends PinnedMessages - with TableInfo<$PinnedMessagesTable, PinnedMessageEntity> { +class $PinnedMessageReactionsTable extends PinnedMessageReactions + with TableInfo<$PinnedMessageReactionsTable, PinnedMessageReactionEntity> { @override final GeneratedDatabase attachedDatabase; final String? _alias; - $PinnedMessagesTable(this.attachedDatabase, [this._alias]); - final VerificationMeta _idMeta = const VerificationMeta('id'); + $PinnedMessageReactionsTable(this.attachedDatabase, [this._alias]); + static const VerificationMeta _userIdMeta = const VerificationMeta('userId'); @override - late final GeneratedColumn id = GeneratedColumn( - 'id', aliasedName, false, - type: const StringType(), requiredDuringInsert: true); - final VerificationMeta _messageTextMeta = - const VerificationMeta('messageText'); + late final GeneratedColumn userId = GeneratedColumn( + 'user_id', aliasedName, false, + type: DriftSqlType.string, requiredDuringInsert: true); + static const VerificationMeta _messageIdMeta = + const VerificationMeta('messageId'); @override - late final GeneratedColumn messageText = GeneratedColumn( - 'message_text', aliasedName, true, - type: const StringType(), requiredDuringInsert: false); - final VerificationMeta _attachmentsMeta = - const VerificationMeta('attachments'); - @override - late final GeneratedColumnWithTypeConverter, String?> - attachments = GeneratedColumn('attachments', aliasedName, false, - type: const StringType(), requiredDuringInsert: true) - .withConverter>($PinnedMessagesTable.$converter0); - final VerificationMeta _statusMeta = const VerificationMeta('status'); - @override - late final GeneratedColumnWithTypeConverter - status = GeneratedColumn('status', aliasedName, false, - type: const IntType(), - requiredDuringInsert: false, - defaultValue: const Constant(1)) - .withConverter( - $PinnedMessagesTable.$converter1); - final VerificationMeta _typeMeta = const VerificationMeta('type'); - @override - late final GeneratedColumn type = GeneratedColumn( - 'type', aliasedName, false, - type: const StringType(), - requiredDuringInsert: false, - defaultValue: const Constant('regular')); - final VerificationMeta _mentionedUsersMeta = - const VerificationMeta('mentionedUsers'); - @override - late final GeneratedColumnWithTypeConverter, String?> - mentionedUsers = GeneratedColumn( - 'mentioned_users', aliasedName, false, - type: const StringType(), requiredDuringInsert: true) - .withConverter>($PinnedMessagesTable.$converter2); - final VerificationMeta _reactionCountsMeta = - const VerificationMeta('reactionCounts'); - @override - late final GeneratedColumnWithTypeConverter, String?> - reactionCounts = GeneratedColumn( - 'reaction_counts', aliasedName, true, - type: const StringType(), requiredDuringInsert: false) - .withConverter>($PinnedMessagesTable.$converter3); - final VerificationMeta _reactionScoresMeta = - const VerificationMeta('reactionScores'); - @override - late final GeneratedColumnWithTypeConverter, String?> - reactionScores = GeneratedColumn( - 'reaction_scores', aliasedName, true, - type: const StringType(), requiredDuringInsert: false) - .withConverter>($PinnedMessagesTable.$converter4); - final VerificationMeta _parentIdMeta = const VerificationMeta('parentId'); - @override - late final GeneratedColumn parentId = GeneratedColumn( - 'parent_id', aliasedName, true, - type: const StringType(), requiredDuringInsert: false); - final VerificationMeta _quotedMessageIdMeta = - const VerificationMeta('quotedMessageId'); - @override - late final GeneratedColumn quotedMessageId = - GeneratedColumn('quoted_message_id', aliasedName, true, - type: const StringType(), requiredDuringInsert: false); - final VerificationMeta _replyCountMeta = const VerificationMeta('replyCount'); - @override - late final GeneratedColumn replyCount = GeneratedColumn( - 'reply_count', aliasedName, true, - type: const IntType(), requiredDuringInsert: false); - final VerificationMeta _showInChannelMeta = - const VerificationMeta('showInChannel'); - @override - late final GeneratedColumn showInChannel = GeneratedColumn( - 'show_in_channel', aliasedName, true, - type: const BoolType(), - requiredDuringInsert: false, - defaultConstraints: 'CHECK (show_in_channel IN (0, 1))'); - final VerificationMeta _shadowedMeta = const VerificationMeta('shadowed'); - @override - late final GeneratedColumn shadowed = GeneratedColumn( - 'shadowed', aliasedName, false, - 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 command = GeneratedColumn( - 'command', aliasedName, true, - type: const StringType(), requiredDuringInsert: false); - final VerificationMeta _createdAtMeta = const VerificationMeta('createdAt'); - @override - late final GeneratedColumn createdAt = GeneratedColumn( - 'created_at', aliasedName, false, - type: const IntType(), - requiredDuringInsert: false, - defaultValue: currentDateAndTime); - final VerificationMeta _updatedAtMeta = const VerificationMeta('updatedAt'); - @override - late final GeneratedColumn updatedAt = GeneratedColumn( - 'updated_at', aliasedName, false, - type: const IntType(), - requiredDuringInsert: false, - defaultValue: currentDateAndTime); - final VerificationMeta _deletedAtMeta = const VerificationMeta('deletedAt'); - @override - late final GeneratedColumn deletedAt = GeneratedColumn( - 'deleted_at', aliasedName, true, - type: const IntType(), requiredDuringInsert: false); - final VerificationMeta _userIdMeta = const VerificationMeta('userId'); - @override - late final GeneratedColumn userId = GeneratedColumn( - 'user_id', aliasedName, true, - type: const StringType(), requiredDuringInsert: false); - final VerificationMeta _pinnedMeta = const VerificationMeta('pinned'); - @override - late final GeneratedColumn pinned = GeneratedColumn( - 'pinned', aliasedName, false, - 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 pinnedAt = GeneratedColumn( - 'pinned_at', aliasedName, true, - type: const IntType(), requiredDuringInsert: false); - final VerificationMeta _pinExpiresMeta = const VerificationMeta('pinExpires'); - @override - late final GeneratedColumn pinExpires = GeneratedColumn( - 'pin_expires', aliasedName, true, - type: const IntType(), requiredDuringInsert: false); - final VerificationMeta _pinnedByUserIdMeta = - const VerificationMeta('pinnedByUserId'); - @override - late final GeneratedColumn pinnedByUserId = GeneratedColumn( - 'pinned_by_user_id', aliasedName, true, - type: const StringType(), requiredDuringInsert: false); - final VerificationMeta _channelCidMeta = const VerificationMeta('channelCid'); - @override - late final GeneratedColumn channelCid = GeneratedColumn( - 'channel_cid', aliasedName, false, - type: const StringType(), + late final GeneratedColumn messageId = GeneratedColumn( + 'message_id', aliasedName, false, + type: DriftSqlType.string, requiredDuringInsert: true, - $customConstraints: 'REFERENCES channels(cid) ON DELETE CASCADE'); - final VerificationMeta _i18nMeta = const VerificationMeta('i18n'); + defaultConstraints: GeneratedColumn.constraintIsAlways( + 'REFERENCES pinned_messages (id) ON DELETE CASCADE')); + static const VerificationMeta _typeMeta = const VerificationMeta('type'); @override - late final GeneratedColumnWithTypeConverter, String?> - i18n = GeneratedColumn('i18n', aliasedName, true, - type: const StringType(), requiredDuringInsert: false) - .withConverter>($PinnedMessagesTable.$converter5); - final VerificationMeta _extraDataMeta = const VerificationMeta('extraData'); + late final GeneratedColumn type = GeneratedColumn( + 'type', aliasedName, false, + type: DriftSqlType.string, requiredDuringInsert: true); + static const VerificationMeta _createdAtMeta = + const VerificationMeta('createdAt'); @override - late final GeneratedColumnWithTypeConverter, String?> - extraData = GeneratedColumn('extra_data', aliasedName, true, - type: const StringType(), requiredDuringInsert: false) - .withConverter>( - $PinnedMessagesTable.$converter6); + late final GeneratedColumn createdAt = GeneratedColumn( + 'created_at', aliasedName, false, + type: DriftSqlType.dateTime, + requiredDuringInsert: false, + defaultValue: currentDateAndTime); + static const VerificationMeta _scoreMeta = const VerificationMeta('score'); @override - List get $columns => [ - id, - messageText, - attachments, - status, - type, - mentionedUsers, - reactionCounts, - reactionScores, - parentId, - quotedMessageId, - replyCount, - showInChannel, - shadowed, - command, - createdAt, - updatedAt, - deletedAt, - userId, - pinned, - pinnedAt, - pinExpires, - pinnedByUserId, - channelCid, - i18n, - extraData - ]; + late final GeneratedColumn score = GeneratedColumn( + 'score', aliasedName, false, + type: DriftSqlType.int, + requiredDuringInsert: false, + defaultValue: const Constant(0)); + static const VerificationMeta _extraDataMeta = + const VerificationMeta('extraData'); @override - String get aliasedName => _alias ?? 'pinned_messages'; + late final GeneratedColumnWithTypeConverter?, String> + extraData = GeneratedColumn('extra_data', aliasedName, true, + type: DriftSqlType.string, requiredDuringInsert: false) + .withConverter?>( + $PinnedMessageReactionsTable.$converterextraDatan); @override - String get actualTableName => 'pinned_messages'; + List get $columns => + [userId, messageId, type, createdAt, score, extraData]; + @override + String get aliasedName => _alias ?? 'pinned_message_reactions'; + @override + String get actualTableName => 'pinned_message_reactions'; @override VerificationContext validateIntegrity( - Insertable instance, + Insertable instance, {bool isInserting = false}) { final context = VerificationContext(); final data = instance.toColumns(true); - if (data.containsKey('id')) { - context.handle(_idMeta, id.isAcceptableOrUnknown(data['id']!, _idMeta)); + if (data.containsKey('user_id')) { + context.handle(_userIdMeta, + userId.isAcceptableOrUnknown(data['user_id']!, _userIdMeta)); } else if (isInserting) { - context.missing(_idMeta); + context.missing(_userIdMeta); } - if (data.containsKey('message_text')) { - context.handle( - _messageTextMeta, - messageText.isAcceptableOrUnknown( - data['message_text']!, _messageTextMeta)); + if (data.containsKey('message_id')) { + context.handle(_messageIdMeta, + messageId.isAcceptableOrUnknown(data['message_id']!, _messageIdMeta)); + } else if (isInserting) { + context.missing(_messageIdMeta); } - context.handle(_attachmentsMeta, const VerificationResult.success()); - context.handle(_statusMeta, const VerificationResult.success()); if (data.containsKey('type')) { context.handle( _typeMeta, type.isAcceptableOrUnknown(data['type']!, _typeMeta)); - } - context.handle(_mentionedUsersMeta, const VerificationResult.success()); - context.handle(_reactionCountsMeta, const VerificationResult.success()); - context.handle(_reactionScoresMeta, const VerificationResult.success()); - if (data.containsKey('parent_id')) { - context.handle(_parentIdMeta, - parentId.isAcceptableOrUnknown(data['parent_id']!, _parentIdMeta)); - } - if (data.containsKey('quoted_message_id')) { - context.handle( - _quotedMessageIdMeta, - quotedMessageId.isAcceptableOrUnknown( - data['quoted_message_id']!, _quotedMessageIdMeta)); - } - if (data.containsKey('reply_count')) { - context.handle( - _replyCountMeta, - replyCount.isAcceptableOrUnknown( - data['reply_count']!, _replyCountMeta)); - } - if (data.containsKey('show_in_channel')) { - context.handle( - _showInChannelMeta, - showInChannel.isAcceptableOrUnknown( - data['show_in_channel']!, _showInChannelMeta)); - } - if (data.containsKey('shadowed')) { - context.handle(_shadowedMeta, - shadowed.isAcceptableOrUnknown(data['shadowed']!, _shadowedMeta)); - } - if (data.containsKey('command')) { - context.handle(_commandMeta, - command.isAcceptableOrUnknown(data['command']!, _commandMeta)); + } else if (isInserting) { + context.missing(_typeMeta); } if (data.containsKey('created_at')) { context.handle(_createdAtMeta, createdAt.isAcceptableOrUnknown(data['created_at']!, _createdAtMeta)); } - if (data.containsKey('updated_at')) { - context.handle(_updatedAtMeta, - updatedAt.isAcceptableOrUnknown(data['updated_at']!, _updatedAtMeta)); - } - if (data.containsKey('deleted_at')) { - context.handle(_deletedAtMeta, - deletedAt.isAcceptableOrUnknown(data['deleted_at']!, _deletedAtMeta)); - } - if (data.containsKey('user_id')) { - context.handle(_userIdMeta, - userId.isAcceptableOrUnknown(data['user_id']!, _userIdMeta)); - } - if (data.containsKey('pinned')) { - context.handle(_pinnedMeta, - pinned.isAcceptableOrUnknown(data['pinned']!, _pinnedMeta)); - } - if (data.containsKey('pinned_at')) { - context.handle(_pinnedAtMeta, - pinnedAt.isAcceptableOrUnknown(data['pinned_at']!, _pinnedAtMeta)); - } - if (data.containsKey('pin_expires')) { + if (data.containsKey('score')) { context.handle( - _pinExpiresMeta, - pinExpires.isAcceptableOrUnknown( - data['pin_expires']!, _pinExpiresMeta)); + _scoreMeta, score.isAcceptableOrUnknown(data['score']!, _scoreMeta)); } - if (data.containsKey('pinned_by_user_id')) { - context.handle( - _pinnedByUserIdMeta, - pinnedByUserId.isAcceptableOrUnknown( - data['pinned_by_user_id']!, _pinnedByUserIdMeta)); - } - if (data.containsKey('channel_cid')) { - context.handle( - _channelCidMeta, - channelCid.isAcceptableOrUnknown( - data['channel_cid']!, _channelCidMeta)); - } else if (isInserting) { - context.missing(_channelCidMeta); - } - context.handle(_i18nMeta, const VerificationResult.success()); context.handle(_extraDataMeta, const VerificationResult.success()); return context; } @override - Set get $primaryKey => {id}; + Set get $primaryKey => {messageId, type, userId}; @override - PinnedMessageEntity map(Map data, {String? tablePrefix}) { - return PinnedMessageEntity.fromData(data, - prefix: tablePrefix != null ? '$tablePrefix.' : null); + PinnedMessageReactionEntity map(Map data, + {String? tablePrefix}) { + final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; + return PinnedMessageReactionEntity( + userId: attachedDatabase.typeMapping + .read(DriftSqlType.string, data['${effectivePrefix}user_id'])!, + messageId: attachedDatabase.typeMapping + .read(DriftSqlType.string, data['${effectivePrefix}message_id'])!, + type: attachedDatabase.typeMapping + .read(DriftSqlType.string, data['${effectivePrefix}type'])!, + createdAt: attachedDatabase.typeMapping + .read(DriftSqlType.dateTime, data['${effectivePrefix}created_at'])!, + score: attachedDatabase.typeMapping + .read(DriftSqlType.int, data['${effectivePrefix}score'])!, + extraData: $PinnedMessageReactionsTable.$converterextraDatan.fromSql( + attachedDatabase.typeMapping + .read(DriftSqlType.string, data['${effectivePrefix}extra_data'])), + ); } @override - $PinnedMessagesTable createAlias(String alias) { - return $PinnedMessagesTable(attachedDatabase, alias); + $PinnedMessageReactionsTable createAlias(String alias) { + return $PinnedMessageReactionsTable(attachedDatabase, alias); } - static TypeConverter, String> $converter0 = - ListConverter(); - static TypeConverter $converter1 = - MessageSendingStatusConverter(); - static TypeConverter, String> $converter2 = - ListConverter(); - static TypeConverter, String> $converter3 = - MapConverter(); - static TypeConverter, String> $converter4 = - MapConverter(); - static TypeConverter, String> $converter5 = - MapConverter(); - static TypeConverter, String> $converter6 = + static TypeConverter, String> $converterextraData = MapConverter(); + static TypeConverter?, String?> $converterextraDatan = + NullAwareTypeConverter.wrap($converterextraData); } class PinnedMessageReactionEntity extends DataClass @@ -2853,32 +3084,13 @@ class PinnedMessageReactionEntity extends DataClass /// Reaction custom extraData final Map? extraData; - PinnedMessageReactionEntity( + const PinnedMessageReactionEntity( {required this.userId, required this.messageId, required this.type, required this.createdAt, required this.score, this.extraData}); - factory PinnedMessageReactionEntity.fromData(Map data, - {String? prefix}) { - final effectivePrefix = prefix ?? ''; - return PinnedMessageReactionEntity( - userId: const StringType() - .mapFromDatabaseResponse(data['${effectivePrefix}user_id'])!, - messageId: const StringType() - .mapFromDatabaseResponse(data['${effectivePrefix}message_id'])!, - type: const StringType() - .mapFromDatabaseResponse(data['${effectivePrefix}type'])!, - createdAt: const DateTimeType() - .mapFromDatabaseResponse(data['${effectivePrefix}created_at'])!, - score: const IntType() - .mapFromDatabaseResponse(data['${effectivePrefix}score'])!, - extraData: $PinnedMessageReactionsTable.$converter0.mapToDart( - const StringType() - .mapFromDatabaseResponse(data['${effectivePrefix}extra_data'])), - ); - } @override Map toColumns(bool nullToAbsent) { final map = {}; @@ -2888,8 +3100,8 @@ class PinnedMessageReactionEntity extends DataClass map['created_at'] = Variable(createdAt); map['score'] = Variable(score); if (!nullToAbsent || extraData != null) { - final converter = $PinnedMessageReactionsTable.$converter0; - map['extra_data'] = Variable(converter.mapToSql(extraData)); + final converter = $PinnedMessageReactionsTable.$converterextraDatan; + map['extra_data'] = Variable(converter.toSql(extraData)); } return map; } @@ -2970,6 +3182,7 @@ class PinnedMessageReactionsCompanion final Value createdAt; final Value score; final Value?> extraData; + final Value rowid; const PinnedMessageReactionsCompanion({ this.userId = const Value.absent(), this.messageId = const Value.absent(), @@ -2977,6 +3190,7 @@ class PinnedMessageReactionsCompanion this.createdAt = const Value.absent(), this.score = const Value.absent(), this.extraData = const Value.absent(), + this.rowid = const Value.absent(), }); PinnedMessageReactionsCompanion.insert({ required String userId, @@ -2985,6 +3199,7 @@ class PinnedMessageReactionsCompanion this.createdAt = const Value.absent(), this.score = const Value.absent(), this.extraData = const Value.absent(), + this.rowid = const Value.absent(), }) : userId = Value(userId), messageId = Value(messageId), type = Value(type); @@ -2994,7 +3209,8 @@ class PinnedMessageReactionsCompanion Expression? type, Expression? createdAt, Expression? score, - Expression?>? extraData, + Expression? extraData, + Expression? rowid, }) { return RawValuesInsertable({ if (userId != null) 'user_id': userId, @@ -3003,6 +3219,7 @@ class PinnedMessageReactionsCompanion if (createdAt != null) 'created_at': createdAt, if (score != null) 'score': score, if (extraData != null) 'extra_data': extraData, + if (rowid != null) 'rowid': rowid, }); } @@ -3012,7 +3229,8 @@ class PinnedMessageReactionsCompanion Value? type, Value? createdAt, Value? score, - Value?>? extraData}) { + Value?>? extraData, + Value? rowid}) { return PinnedMessageReactionsCompanion( userId: userId ?? this.userId, messageId: messageId ?? this.messageId, @@ -3020,6 +3238,7 @@ class PinnedMessageReactionsCompanion createdAt: createdAt ?? this.createdAt, score: score ?? this.score, extraData: extraData ?? this.extraData, + rowid: rowid ?? this.rowid, ); } @@ -3042,9 +3261,11 @@ class PinnedMessageReactionsCompanion map['score'] = Variable(score.value); } if (extraData.present) { - final converter = $PinnedMessageReactionsTable.$converter0; - map['extra_data'] = - Variable(converter.mapToSql(extraData.value)); + final converter = $PinnedMessageReactionsTable.$converterextraDatan; + map['extra_data'] = Variable(converter.toSql(extraData.value)); + } + if (rowid.present) { + map['rowid'] = Variable(rowid.value); } return map; } @@ -3057,66 +3278,70 @@ class PinnedMessageReactionsCompanion ..write('type: $type, ') ..write('createdAt: $createdAt, ') ..write('score: $score, ') - ..write('extraData: $extraData') + ..write('extraData: $extraData, ') + ..write('rowid: $rowid') ..write(')')) .toString(); } } -class $PinnedMessageReactionsTable extends PinnedMessageReactions - with TableInfo<$PinnedMessageReactionsTable, PinnedMessageReactionEntity> { +class $ReactionsTable extends Reactions + with TableInfo<$ReactionsTable, ReactionEntity> { @override final GeneratedDatabase attachedDatabase; final String? _alias; - $PinnedMessageReactionsTable(this.attachedDatabase, [this._alias]); - final VerificationMeta _userIdMeta = const VerificationMeta('userId'); + $ReactionsTable(this.attachedDatabase, [this._alias]); + static const VerificationMeta _userIdMeta = const VerificationMeta('userId'); @override - late final GeneratedColumn userId = GeneratedColumn( + late final GeneratedColumn userId = GeneratedColumn( 'user_id', aliasedName, false, - type: const StringType(), requiredDuringInsert: true); - final VerificationMeta _messageIdMeta = const VerificationMeta('messageId'); + type: DriftSqlType.string, requiredDuringInsert: true); + static const VerificationMeta _messageIdMeta = + const VerificationMeta('messageId'); @override - late final GeneratedColumn messageId = GeneratedColumn( + late final GeneratedColumn messageId = GeneratedColumn( 'message_id', aliasedName, false, - type: const StringType(), + type: DriftSqlType.string, requiredDuringInsert: true, - $customConstraints: 'REFERENCES pinned_messages(id) ON DELETE CASCADE'); - final VerificationMeta _typeMeta = const VerificationMeta('type'); + defaultConstraints: GeneratedColumn.constraintIsAlways( + 'REFERENCES messages (id) ON DELETE CASCADE')); + static const VerificationMeta _typeMeta = const VerificationMeta('type'); @override - late final GeneratedColumn type = GeneratedColumn( + late final GeneratedColumn type = GeneratedColumn( 'type', aliasedName, false, - type: const StringType(), requiredDuringInsert: true); - final VerificationMeta _createdAtMeta = const VerificationMeta('createdAt'); + type: DriftSqlType.string, requiredDuringInsert: true); + static const VerificationMeta _createdAtMeta = + const VerificationMeta('createdAt'); @override - late final GeneratedColumn createdAt = GeneratedColumn( + late final GeneratedColumn createdAt = GeneratedColumn( 'created_at', aliasedName, false, - type: const IntType(), + type: DriftSqlType.dateTime, requiredDuringInsert: false, defaultValue: currentDateAndTime); - final VerificationMeta _scoreMeta = const VerificationMeta('score'); + static const VerificationMeta _scoreMeta = const VerificationMeta('score'); @override - late final GeneratedColumn score = GeneratedColumn( + late final GeneratedColumn score = GeneratedColumn( 'score', aliasedName, false, - type: const IntType(), + type: DriftSqlType.int, requiredDuringInsert: false, defaultValue: const Constant(0)); - final VerificationMeta _extraDataMeta = const VerificationMeta('extraData'); + static const VerificationMeta _extraDataMeta = + const VerificationMeta('extraData'); @override - late final GeneratedColumnWithTypeConverter, String?> - extraData = GeneratedColumn('extra_data', aliasedName, true, - type: const StringType(), requiredDuringInsert: false) - .withConverter>( - $PinnedMessageReactionsTable.$converter0); + late final GeneratedColumnWithTypeConverter?, String> + extraData = GeneratedColumn('extra_data', aliasedName, true, + type: DriftSqlType.string, requiredDuringInsert: false) + .withConverter?>( + $ReactionsTable.$converterextraDatan); @override List get $columns => [userId, messageId, type, createdAt, score, extraData]; @override - String get aliasedName => _alias ?? 'pinned_message_reactions'; + String get aliasedName => _alias ?? 'reactions'; @override - String get actualTableName => 'pinned_message_reactions'; + String get actualTableName => 'reactions'; @override - VerificationContext validateIntegrity( - Insertable instance, + VerificationContext validateIntegrity(Insertable instance, {bool isInserting = false}) { final context = VerificationContext(); final data = instance.toColumns(true); @@ -3153,19 +3378,34 @@ class $PinnedMessageReactionsTable extends PinnedMessageReactions @override Set get $primaryKey => {messageId, type, userId}; @override - PinnedMessageReactionEntity map(Map data, - {String? tablePrefix}) { - return PinnedMessageReactionEntity.fromData(data, - prefix: tablePrefix != null ? '$tablePrefix.' : null); + ReactionEntity map(Map data, {String? tablePrefix}) { + final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; + return ReactionEntity( + userId: attachedDatabase.typeMapping + .read(DriftSqlType.string, data['${effectivePrefix}user_id'])!, + messageId: attachedDatabase.typeMapping + .read(DriftSqlType.string, data['${effectivePrefix}message_id'])!, + type: attachedDatabase.typeMapping + .read(DriftSqlType.string, data['${effectivePrefix}type'])!, + createdAt: attachedDatabase.typeMapping + .read(DriftSqlType.dateTime, data['${effectivePrefix}created_at'])!, + score: attachedDatabase.typeMapping + .read(DriftSqlType.int, data['${effectivePrefix}score'])!, + extraData: $ReactionsTable.$converterextraDatan.fromSql(attachedDatabase + .typeMapping + .read(DriftSqlType.string, data['${effectivePrefix}extra_data'])), + ); } @override - $PinnedMessageReactionsTable createAlias(String alias) { - return $PinnedMessageReactionsTable(attachedDatabase, alias); + $ReactionsTable createAlias(String alias) { + return $ReactionsTable(attachedDatabase, alias); } - static TypeConverter, String> $converter0 = + static TypeConverter, String> $converterextraData = MapConverter(); + static TypeConverter?, String?> $converterextraDatan = + NullAwareTypeConverter.wrap($converterextraData); } class ReactionEntity extends DataClass implements Insertable { @@ -3186,30 +3426,13 @@ class ReactionEntity extends DataClass implements Insertable { /// Reaction custom extraData final Map? extraData; - ReactionEntity( + const ReactionEntity( {required this.userId, required this.messageId, required this.type, required this.createdAt, required this.score, this.extraData}); - factory ReactionEntity.fromData(Map data, {String? prefix}) { - final effectivePrefix = prefix ?? ''; - return ReactionEntity( - userId: const StringType() - .mapFromDatabaseResponse(data['${effectivePrefix}user_id'])!, - messageId: const StringType() - .mapFromDatabaseResponse(data['${effectivePrefix}message_id'])!, - type: const StringType() - .mapFromDatabaseResponse(data['${effectivePrefix}type'])!, - createdAt: const DateTimeType() - .mapFromDatabaseResponse(data['${effectivePrefix}created_at'])!, - score: const IntType() - .mapFromDatabaseResponse(data['${effectivePrefix}score'])!, - extraData: $ReactionsTable.$converter0.mapToDart(const StringType() - .mapFromDatabaseResponse(data['${effectivePrefix}extra_data'])), - ); - } @override Map toColumns(bool nullToAbsent) { final map = {}; @@ -3219,8 +3442,8 @@ class ReactionEntity extends DataClass implements Insertable { map['created_at'] = Variable(createdAt); map['score'] = Variable(score); if (!nullToAbsent || extraData != null) { - final converter = $ReactionsTable.$converter0; - map['extra_data'] = Variable(converter.mapToSql(extraData)); + final converter = $ReactionsTable.$converterextraDatan; + map['extra_data'] = Variable(converter.toSql(extraData)); } return map; } @@ -3300,6 +3523,7 @@ class ReactionsCompanion extends UpdateCompanion { final Value createdAt; final Value score; final Value?> extraData; + final Value rowid; const ReactionsCompanion({ this.userId = const Value.absent(), this.messageId = const Value.absent(), @@ -3307,6 +3531,7 @@ class ReactionsCompanion extends UpdateCompanion { this.createdAt = const Value.absent(), this.score = const Value.absent(), this.extraData = const Value.absent(), + this.rowid = const Value.absent(), }); ReactionsCompanion.insert({ required String userId, @@ -3315,6 +3540,7 @@ class ReactionsCompanion extends UpdateCompanion { this.createdAt = const Value.absent(), this.score = const Value.absent(), this.extraData = const Value.absent(), + this.rowid = const Value.absent(), }) : userId = Value(userId), messageId = Value(messageId), type = Value(type); @@ -3324,7 +3550,8 @@ class ReactionsCompanion extends UpdateCompanion { Expression? type, Expression? createdAt, Expression? score, - Expression?>? extraData, + Expression? extraData, + Expression? rowid, }) { return RawValuesInsertable({ if (userId != null) 'user_id': userId, @@ -3333,6 +3560,7 @@ class ReactionsCompanion extends UpdateCompanion { if (createdAt != null) 'created_at': createdAt, if (score != null) 'score': score, if (extraData != null) 'extra_data': extraData, + if (rowid != null) 'rowid': rowid, }); } @@ -3342,7 +3570,8 @@ class ReactionsCompanion extends UpdateCompanion { Value? type, Value? createdAt, Value? score, - Value?>? extraData}) { + Value?>? extraData, + Value? rowid}) { return ReactionsCompanion( userId: userId ?? this.userId, messageId: messageId ?? this.messageId, @@ -3350,6 +3579,7 @@ class ReactionsCompanion extends UpdateCompanion { createdAt: createdAt ?? this.createdAt, score: score ?? this.score, extraData: extraData ?? this.extraData, + rowid: rowid ?? this.rowid, ); } @@ -3372,9 +3602,11 @@ class ReactionsCompanion extends UpdateCompanion { map['score'] = Variable(score.value); } if (extraData.present) { - final converter = $ReactionsTable.$converter0; - map['extra_data'] = - Variable(converter.mapToSql(extraData.value)); + final converter = $ReactionsTable.$converterextraDatan; + map['extra_data'] = Variable(converter.toSql(extraData.value)); + } + if (rowid.present) { + map['rowid'] = Variable(rowid.value); } return map; } @@ -3387,111 +3619,181 @@ class ReactionsCompanion extends UpdateCompanion { ..write('type: $type, ') ..write('createdAt: $createdAt, ') ..write('score: $score, ') - ..write('extraData: $extraData') + ..write('extraData: $extraData, ') + ..write('rowid: $rowid') ..write(')')) .toString(); } } -class $ReactionsTable extends Reactions - with TableInfo<$ReactionsTable, ReactionEntity> { +class $UsersTable extends Users with TableInfo<$UsersTable, UserEntity> { @override final GeneratedDatabase attachedDatabase; final String? _alias; - $ReactionsTable(this.attachedDatabase, [this._alias]); - final VerificationMeta _userIdMeta = const VerificationMeta('userId'); + $UsersTable(this.attachedDatabase, [this._alias]); + static const VerificationMeta _idMeta = const VerificationMeta('id'); @override - late final GeneratedColumn userId = GeneratedColumn( - 'user_id', aliasedName, false, - type: const StringType(), requiredDuringInsert: true); - final VerificationMeta _messageIdMeta = const VerificationMeta('messageId'); + late final GeneratedColumn id = GeneratedColumn( + 'id', aliasedName, false, + type: DriftSqlType.string, requiredDuringInsert: true); + static const VerificationMeta _roleMeta = const VerificationMeta('role'); @override - late final GeneratedColumn messageId = GeneratedColumn( - 'message_id', aliasedName, false, - type: const StringType(), - requiredDuringInsert: true, - $customConstraints: 'REFERENCES messages(id) ON DELETE CASCADE'); - final VerificationMeta _typeMeta = const VerificationMeta('type'); + late final GeneratedColumn role = GeneratedColumn( + 'role', aliasedName, true, + type: DriftSqlType.string, requiredDuringInsert: false); + static const VerificationMeta _languageMeta = + const VerificationMeta('language'); @override - late final GeneratedColumn type = GeneratedColumn( - 'type', aliasedName, false, - type: const StringType(), requiredDuringInsert: true); - final VerificationMeta _createdAtMeta = const VerificationMeta('createdAt'); + late final GeneratedColumn language = GeneratedColumn( + 'language', aliasedName, true, + type: DriftSqlType.string, requiredDuringInsert: false); + static const VerificationMeta _createdAtMeta = + const VerificationMeta('createdAt'); @override - late final GeneratedColumn createdAt = GeneratedColumn( + late final GeneratedColumn createdAt = GeneratedColumn( 'created_at', aliasedName, false, - type: const IntType(), + type: DriftSqlType.dateTime, requiredDuringInsert: false, defaultValue: currentDateAndTime); - final VerificationMeta _scoreMeta = const VerificationMeta('score'); + static const VerificationMeta _updatedAtMeta = + const VerificationMeta('updatedAt'); @override - late final GeneratedColumn score = GeneratedColumn( - 'score', aliasedName, false, - type: const IntType(), + late final GeneratedColumn updatedAt = GeneratedColumn( + 'updated_at', aliasedName, false, + type: DriftSqlType.dateTime, requiredDuringInsert: false, - defaultValue: const Constant(0)); - final VerificationMeta _extraDataMeta = const VerificationMeta('extraData'); + defaultValue: currentDateAndTime); + static const VerificationMeta _lastActiveMeta = + const VerificationMeta('lastActive'); @override - late final GeneratedColumnWithTypeConverter, String?> - extraData = GeneratedColumn('extra_data', aliasedName, true, - type: const StringType(), requiredDuringInsert: false) - .withConverter>($ReactionsTable.$converter0); + late final GeneratedColumn lastActive = GeneratedColumn( + 'last_active', aliasedName, true, + type: DriftSqlType.dateTime, requiredDuringInsert: false); + static const VerificationMeta _onlineMeta = const VerificationMeta('online'); @override - List get $columns => - [userId, messageId, type, createdAt, score, extraData]; + late final GeneratedColumn online = + GeneratedColumn('online', aliasedName, false, + type: DriftSqlType.bool, + requiredDuringInsert: false, + defaultConstraints: GeneratedColumn.constraintsDependsOnDialect({ + SqlDialect.sqlite: 'CHECK ("online" IN (0, 1))', + SqlDialect.mysql: '', + SqlDialect.postgres: '', + }), + defaultValue: const Constant(false)); + static const VerificationMeta _bannedMeta = const VerificationMeta('banned'); @override - String get aliasedName => _alias ?? 'reactions'; + late final GeneratedColumn banned = + GeneratedColumn('banned', aliasedName, false, + type: DriftSqlType.bool, + requiredDuringInsert: false, + defaultConstraints: GeneratedColumn.constraintsDependsOnDialect({ + SqlDialect.sqlite: 'CHECK ("banned" IN (0, 1))', + SqlDialect.mysql: '', + SqlDialect.postgres: '', + }), + defaultValue: const Constant(false)); + static const VerificationMeta _extraDataMeta = + const VerificationMeta('extraData'); @override - String get actualTableName => 'reactions'; + late final GeneratedColumnWithTypeConverter, String> + extraData = GeneratedColumn('extra_data', aliasedName, false, + type: DriftSqlType.string, requiredDuringInsert: true) + .withConverter>($UsersTable.$converterextraData); @override - VerificationContext validateIntegrity(Insertable instance, + List get $columns => [ + id, + role, + language, + createdAt, + updatedAt, + lastActive, + online, + banned, + extraData + ]; + @override + String get aliasedName => _alias ?? 'users'; + @override + String get actualTableName => 'users'; + @override + VerificationContext validateIntegrity(Insertable instance, {bool isInserting = false}) { final context = VerificationContext(); final data = instance.toColumns(true); - if (data.containsKey('user_id')) { - context.handle(_userIdMeta, - userId.isAcceptableOrUnknown(data['user_id']!, _userIdMeta)); + if (data.containsKey('id')) { + context.handle(_idMeta, id.isAcceptableOrUnknown(data['id']!, _idMeta)); } else if (isInserting) { - context.missing(_userIdMeta); + context.missing(_idMeta); } - if (data.containsKey('message_id')) { - context.handle(_messageIdMeta, - messageId.isAcceptableOrUnknown(data['message_id']!, _messageIdMeta)); - } else if (isInserting) { - context.missing(_messageIdMeta); - } - if (data.containsKey('type')) { + if (data.containsKey('role')) { context.handle( - _typeMeta, type.isAcceptableOrUnknown(data['type']!, _typeMeta)); - } else if (isInserting) { - context.missing(_typeMeta); + _roleMeta, role.isAcceptableOrUnknown(data['role']!, _roleMeta)); + } + if (data.containsKey('language')) { + context.handle(_languageMeta, + language.isAcceptableOrUnknown(data['language']!, _languageMeta)); } if (data.containsKey('created_at')) { context.handle(_createdAtMeta, createdAt.isAcceptableOrUnknown(data['created_at']!, _createdAtMeta)); } - if (data.containsKey('score')) { + if (data.containsKey('updated_at')) { + context.handle(_updatedAtMeta, + updatedAt.isAcceptableOrUnknown(data['updated_at']!, _updatedAtMeta)); + } + if (data.containsKey('last_active')) { context.handle( - _scoreMeta, score.isAcceptableOrUnknown(data['score']!, _scoreMeta)); + _lastActiveMeta, + lastActive.isAcceptableOrUnknown( + data['last_active']!, _lastActiveMeta)); + } + if (data.containsKey('online')) { + context.handle(_onlineMeta, + online.isAcceptableOrUnknown(data['online']!, _onlineMeta)); + } + if (data.containsKey('banned')) { + context.handle(_bannedMeta, + banned.isAcceptableOrUnknown(data['banned']!, _bannedMeta)); } context.handle(_extraDataMeta, const VerificationResult.success()); return context; } @override - Set get $primaryKey => {messageId, type, userId}; + Set get $primaryKey => {id}; @override - ReactionEntity map(Map data, {String? tablePrefix}) { - return ReactionEntity.fromData(data, - prefix: tablePrefix != null ? '$tablePrefix.' : null); + UserEntity map(Map data, {String? tablePrefix}) { + final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; + return UserEntity( + id: attachedDatabase.typeMapping + .read(DriftSqlType.string, data['${effectivePrefix}id'])!, + role: attachedDatabase.typeMapping + .read(DriftSqlType.string, data['${effectivePrefix}role']), + language: attachedDatabase.typeMapping + .read(DriftSqlType.string, data['${effectivePrefix}language']), + createdAt: attachedDatabase.typeMapping + .read(DriftSqlType.dateTime, data['${effectivePrefix}created_at'])!, + updatedAt: attachedDatabase.typeMapping + .read(DriftSqlType.dateTime, data['${effectivePrefix}updated_at'])!, + lastActive: attachedDatabase.typeMapping + .read(DriftSqlType.dateTime, data['${effectivePrefix}last_active']), + online: attachedDatabase.typeMapping + .read(DriftSqlType.bool, data['${effectivePrefix}online'])!, + banned: attachedDatabase.typeMapping + .read(DriftSqlType.bool, data['${effectivePrefix}banned'])!, + extraData: $UsersTable.$converterextraData.fromSql(attachedDatabase + .typeMapping + .read(DriftSqlType.string, data['${effectivePrefix}extra_data'])!), + ); } @override - $ReactionsTable createAlias(String alias) { - return $ReactionsTable(attachedDatabase, alias); + $UsersTable createAlias(String alias) { + return $UsersTable(attachedDatabase, alias); } - static TypeConverter, String> $converter0 = + static TypeConverter, String> $converterextraData = MapConverter(); } @@ -3522,7 +3824,7 @@ class UserEntity extends DataClass implements Insertable { /// Map of custom user extraData final Map extraData; - UserEntity( + const UserEntity( {required this.id, this.role, this.language, @@ -3532,49 +3834,26 @@ class UserEntity extends DataClass implements Insertable { required this.online, required this.banned, required this.extraData}); - factory UserEntity.fromData(Map data, {String? prefix}) { - final effectivePrefix = prefix ?? ''; - return UserEntity( - id: const StringType() - .mapFromDatabaseResponse(data['${effectivePrefix}id'])!, - role: const StringType() - .mapFromDatabaseResponse(data['${effectivePrefix}role']), - language: const StringType() - .mapFromDatabaseResponse(data['${effectivePrefix}language']), - createdAt: const DateTimeType() - .mapFromDatabaseResponse(data['${effectivePrefix}created_at'])!, - updatedAt: const DateTimeType() - .mapFromDatabaseResponse(data['${effectivePrefix}updated_at'])!, - lastActive: const DateTimeType() - .mapFromDatabaseResponse(data['${effectivePrefix}last_active']), - online: const BoolType() - .mapFromDatabaseResponse(data['${effectivePrefix}online'])!, - banned: const BoolType() - .mapFromDatabaseResponse(data['${effectivePrefix}banned'])!, - extraData: $UsersTable.$converter0.mapToDart(const StringType() - .mapFromDatabaseResponse(data['${effectivePrefix}extra_data']))!, - ); - } @override Map toColumns(bool nullToAbsent) { final map = {}; map['id'] = Variable(id); if (!nullToAbsent || role != null) { - map['role'] = Variable(role); + map['role'] = Variable(role); } if (!nullToAbsent || language != null) { - map['language'] = Variable(language); + map['language'] = Variable(language); } map['created_at'] = Variable(createdAt); map['updated_at'] = Variable(updatedAt); if (!nullToAbsent || lastActive != null) { - map['last_active'] = Variable(lastActive); + map['last_active'] = Variable(lastActive); } map['online'] = Variable(online); map['banned'] = Variable(banned); { - final converter = $UsersTable.$converter0; - map['extra_data'] = Variable(converter.mapToSql(extraData)!); + final converter = $UsersTable.$converterextraData; + map['extra_data'] = Variable(converter.toSql(extraData)); } return map; } @@ -3675,6 +3954,7 @@ class UsersCompanion extends UpdateCompanion { final Value online; final Value banned; final Value> extraData; + final Value rowid; const UsersCompanion({ this.id = const Value.absent(), this.role = const Value.absent(), @@ -3685,6 +3965,7 @@ class UsersCompanion extends UpdateCompanion { this.online = const Value.absent(), this.banned = const Value.absent(), this.extraData = const Value.absent(), + this.rowid = const Value.absent(), }); UsersCompanion.insert({ required String id, @@ -3696,18 +3977,20 @@ class UsersCompanion extends UpdateCompanion { this.online = const Value.absent(), this.banned = const Value.absent(), required Map extraData, + this.rowid = const Value.absent(), }) : id = Value(id), extraData = Value(extraData); static Insertable custom({ Expression? id, - Expression? role, - Expression? language, + Expression? role, + Expression? language, Expression? createdAt, Expression? updatedAt, - Expression? lastActive, + Expression? lastActive, Expression? online, Expression? banned, - Expression>? extraData, + Expression? extraData, + Expression? rowid, }) { return RawValuesInsertable({ if (id != null) 'id': id, @@ -3719,6 +4002,7 @@ class UsersCompanion extends UpdateCompanion { if (online != null) 'online': online, if (banned != null) 'banned': banned, if (extraData != null) 'extra_data': extraData, + if (rowid != null) 'rowid': rowid, }); } @@ -3731,7 +4015,8 @@ class UsersCompanion extends UpdateCompanion { Value? lastActive, Value? online, Value? banned, - Value>? extraData}) { + Value>? extraData, + Value? rowid}) { return UsersCompanion( id: id ?? this.id, role: role ?? this.role, @@ -3742,6 +4027,7 @@ class UsersCompanion extends UpdateCompanion { online: online ?? this.online, banned: banned ?? this.banned, extraData: extraData ?? this.extraData, + rowid: rowid ?? this.rowid, ); } @@ -3752,10 +4038,10 @@ class UsersCompanion extends UpdateCompanion { map['id'] = Variable(id.value); } if (role.present) { - map['role'] = Variable(role.value); + map['role'] = Variable(role.value); } if (language.present) { - map['language'] = Variable(language.value); + map['language'] = Variable(language.value); } if (createdAt.present) { map['created_at'] = Variable(createdAt.value); @@ -3764,7 +4050,7 @@ class UsersCompanion extends UpdateCompanion { map['updated_at'] = Variable(updatedAt.value); } if (lastActive.present) { - map['last_active'] = Variable(lastActive.value); + map['last_active'] = Variable(lastActive.value); } if (online.present) { map['online'] = Variable(online.value); @@ -3773,9 +4059,11 @@ class UsersCompanion extends UpdateCompanion { map['banned'] = Variable(banned.value); } if (extraData.present) { - final converter = $UsersTable.$converter0; - map['extra_data'] = - Variable(converter.mapToSql(extraData.value)!); + final converter = $UsersTable.$converterextraData; + map['extra_data'] = Variable(converter.toSql(extraData.value)); + } + if (rowid.present) { + map['rowid'] = Variable(rowid.value); } return map; } @@ -3791,106 +4079,192 @@ class UsersCompanion extends UpdateCompanion { ..write('lastActive: $lastActive, ') ..write('online: $online, ') ..write('banned: $banned, ') - ..write('extraData: $extraData') + ..write('extraData: $extraData, ') + ..write('rowid: $rowid') ..write(')')) .toString(); } } -class $UsersTable extends Users with TableInfo<$UsersTable, UserEntity> { +class $MembersTable extends Members + with TableInfo<$MembersTable, MemberEntity> { @override final GeneratedDatabase attachedDatabase; final String? _alias; - $UsersTable(this.attachedDatabase, [this._alias]); - final VerificationMeta _idMeta = const VerificationMeta('id'); + $MembersTable(this.attachedDatabase, [this._alias]); + static const VerificationMeta _userIdMeta = const VerificationMeta('userId'); @override - late final GeneratedColumn id = GeneratedColumn( - 'id', aliasedName, false, - type: const StringType(), requiredDuringInsert: true); - final VerificationMeta _roleMeta = const VerificationMeta('role'); + late final GeneratedColumn userId = GeneratedColumn( + 'user_id', aliasedName, false, + type: DriftSqlType.string, requiredDuringInsert: true); + static const VerificationMeta _channelCidMeta = + const VerificationMeta('channelCid'); @override - late final GeneratedColumn role = GeneratedColumn( - 'role', aliasedName, true, - type: const StringType(), requiredDuringInsert: false); - final VerificationMeta _languageMeta = const VerificationMeta('language'); + late final GeneratedColumn channelCid = GeneratedColumn( + 'channel_cid', aliasedName, false, + type: DriftSqlType.string, + requiredDuringInsert: true, + defaultConstraints: GeneratedColumn.constraintIsAlways( + 'REFERENCES channels (cid) ON DELETE CASCADE')); + static const VerificationMeta _channelRoleMeta = + const VerificationMeta('channelRole'); @override - late final GeneratedColumn language = GeneratedColumn( - 'language', aliasedName, true, - type: const StringType(), requiredDuringInsert: false); - final VerificationMeta _createdAtMeta = const VerificationMeta('createdAt'); + late final GeneratedColumn channelRole = GeneratedColumn( + 'channel_role', aliasedName, true, + type: DriftSqlType.string, requiredDuringInsert: false); + static const VerificationMeta _inviteAcceptedAtMeta = + const VerificationMeta('inviteAcceptedAt'); @override - late final GeneratedColumn createdAt = GeneratedColumn( + late final GeneratedColumn inviteAcceptedAt = + GeneratedColumn('invite_accepted_at', aliasedName, true, + type: DriftSqlType.dateTime, requiredDuringInsert: false); + static const VerificationMeta _inviteRejectedAtMeta = + const VerificationMeta('inviteRejectedAt'); + @override + late final GeneratedColumn inviteRejectedAt = + GeneratedColumn('invite_rejected_at', aliasedName, true, + type: DriftSqlType.dateTime, requiredDuringInsert: false); + static const VerificationMeta _invitedMeta = + const VerificationMeta('invited'); + @override + late final GeneratedColumn invited = + GeneratedColumn('invited', aliasedName, false, + type: DriftSqlType.bool, + requiredDuringInsert: false, + defaultConstraints: GeneratedColumn.constraintsDependsOnDialect({ + SqlDialect.sqlite: 'CHECK ("invited" IN (0, 1))', + SqlDialect.mysql: '', + SqlDialect.postgres: '', + }), + defaultValue: const Constant(false)); + static const VerificationMeta _bannedMeta = const VerificationMeta('banned'); + @override + late final GeneratedColumn banned = + GeneratedColumn('banned', aliasedName, false, + type: DriftSqlType.bool, + requiredDuringInsert: false, + defaultConstraints: GeneratedColumn.constraintsDependsOnDialect({ + SqlDialect.sqlite: 'CHECK ("banned" IN (0, 1))', + SqlDialect.mysql: '', + SqlDialect.postgres: '', + }), + defaultValue: const Constant(false)); + static const VerificationMeta _shadowBannedMeta = + const VerificationMeta('shadowBanned'); + @override + late final GeneratedColumn shadowBanned = + GeneratedColumn('shadow_banned', aliasedName, false, + type: DriftSqlType.bool, + requiredDuringInsert: false, + defaultConstraints: GeneratedColumn.constraintsDependsOnDialect({ + SqlDialect.sqlite: 'CHECK ("shadow_banned" IN (0, 1))', + SqlDialect.mysql: '', + SqlDialect.postgres: '', + }), + defaultValue: const Constant(false)); + static const VerificationMeta _isModeratorMeta = + const VerificationMeta('isModerator'); + @override + late final GeneratedColumn isModerator = + GeneratedColumn('is_moderator', aliasedName, false, + type: DriftSqlType.bool, + requiredDuringInsert: false, + defaultConstraints: GeneratedColumn.constraintsDependsOnDialect({ + SqlDialect.sqlite: 'CHECK ("is_moderator" IN (0, 1))', + SqlDialect.mysql: '', + SqlDialect.postgres: '', + }), + defaultValue: const Constant(false)); + static const VerificationMeta _createdAtMeta = + const VerificationMeta('createdAt'); + @override + late final GeneratedColumn createdAt = GeneratedColumn( 'created_at', aliasedName, false, - type: const IntType(), + type: DriftSqlType.dateTime, requiredDuringInsert: false, defaultValue: currentDateAndTime); - final VerificationMeta _updatedAtMeta = const VerificationMeta('updatedAt'); + static const VerificationMeta _updatedAtMeta = + const VerificationMeta('updatedAt'); @override - late final GeneratedColumn updatedAt = GeneratedColumn( + late final GeneratedColumn updatedAt = GeneratedColumn( 'updated_at', aliasedName, false, - type: const IntType(), + type: DriftSqlType.dateTime, requiredDuringInsert: false, defaultValue: currentDateAndTime); - final VerificationMeta _lastActiveMeta = const VerificationMeta('lastActive'); - @override - late final GeneratedColumn lastActive = GeneratedColumn( - 'last_active', aliasedName, true, - type: const IntType(), requiredDuringInsert: false); - final VerificationMeta _onlineMeta = const VerificationMeta('online'); - @override - late final GeneratedColumn online = GeneratedColumn( - 'online', aliasedName, false, - 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 banned = GeneratedColumn( - 'banned', aliasedName, false, - 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, String?> - extraData = GeneratedColumn('extra_data', aliasedName, false, - type: const StringType(), requiredDuringInsert: true) - .withConverter>($UsersTable.$converter0); @override List get $columns => [ - id, - role, - language, - createdAt, - updatedAt, - lastActive, - online, + userId, + channelCid, + channelRole, + inviteAcceptedAt, + inviteRejectedAt, + invited, banned, - extraData + shadowBanned, + isModerator, + createdAt, + updatedAt ]; @override - String get aliasedName => _alias ?? 'users'; + String get aliasedName => _alias ?? 'members'; @override - String get actualTableName => 'users'; + String get actualTableName => 'members'; @override - VerificationContext validateIntegrity(Insertable instance, + VerificationContext validateIntegrity(Insertable instance, {bool isInserting = false}) { final context = VerificationContext(); final data = instance.toColumns(true); - if (data.containsKey('id')) { - context.handle(_idMeta, id.isAcceptableOrUnknown(data['id']!, _idMeta)); + if (data.containsKey('user_id')) { + context.handle(_userIdMeta, + userId.isAcceptableOrUnknown(data['user_id']!, _userIdMeta)); } else if (isInserting) { - context.missing(_idMeta); + context.missing(_userIdMeta); } - if (data.containsKey('role')) { + if (data.containsKey('channel_cid')) { context.handle( - _roleMeta, role.isAcceptableOrUnknown(data['role']!, _roleMeta)); + _channelCidMeta, + channelCid.isAcceptableOrUnknown( + data['channel_cid']!, _channelCidMeta)); + } else if (isInserting) { + context.missing(_channelCidMeta); } - if (data.containsKey('language')) { - context.handle(_languageMeta, - language.isAcceptableOrUnknown(data['language']!, _languageMeta)); + if (data.containsKey('channel_role')) { + context.handle( + _channelRoleMeta, + channelRole.isAcceptableOrUnknown( + data['channel_role']!, _channelRoleMeta)); + } + if (data.containsKey('invite_accepted_at')) { + context.handle( + _inviteAcceptedAtMeta, + inviteAcceptedAt.isAcceptableOrUnknown( + data['invite_accepted_at']!, _inviteAcceptedAtMeta)); + } + if (data.containsKey('invite_rejected_at')) { + context.handle( + _inviteRejectedAtMeta, + inviteRejectedAt.isAcceptableOrUnknown( + data['invite_rejected_at']!, _inviteRejectedAtMeta)); + } + if (data.containsKey('invited')) { + context.handle(_invitedMeta, + invited.isAcceptableOrUnknown(data['invited']!, _invitedMeta)); + } + if (data.containsKey('banned')) { + context.handle(_bannedMeta, + banned.isAcceptableOrUnknown(data['banned']!, _bannedMeta)); + } + if (data.containsKey('shadow_banned')) { + context.handle( + _shadowBannedMeta, + shadowBanned.isAcceptableOrUnknown( + data['shadow_banned']!, _shadowBannedMeta)); + } + if (data.containsKey('is_moderator')) { + context.handle( + _isModeratorMeta, + isModerator.isAcceptableOrUnknown( + data['is_moderator']!, _isModeratorMeta)); } if (data.containsKey('created_at')) { context.handle(_createdAtMeta, @@ -3900,39 +4274,44 @@ class $UsersTable extends Users with TableInfo<$UsersTable, UserEntity> { context.handle(_updatedAtMeta, updatedAt.isAcceptableOrUnknown(data['updated_at']!, _updatedAtMeta)); } - if (data.containsKey('last_active')) { - context.handle( - _lastActiveMeta, - lastActive.isAcceptableOrUnknown( - data['last_active']!, _lastActiveMeta)); - } - if (data.containsKey('online')) { - context.handle(_onlineMeta, - online.isAcceptableOrUnknown(data['online']!, _onlineMeta)); - } - if (data.containsKey('banned')) { - context.handle(_bannedMeta, - banned.isAcceptableOrUnknown(data['banned']!, _bannedMeta)); - } - context.handle(_extraDataMeta, const VerificationResult.success()); return context; } @override - Set get $primaryKey => {id}; + Set get $primaryKey => {userId, channelCid}; @override - UserEntity map(Map data, {String? tablePrefix}) { - return UserEntity.fromData(data, - prefix: tablePrefix != null ? '$tablePrefix.' : null); + MemberEntity map(Map data, {String? tablePrefix}) { + final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; + return MemberEntity( + userId: attachedDatabase.typeMapping + .read(DriftSqlType.string, data['${effectivePrefix}user_id'])!, + channelCid: attachedDatabase.typeMapping + .read(DriftSqlType.string, data['${effectivePrefix}channel_cid'])!, + channelRole: attachedDatabase.typeMapping + .read(DriftSqlType.string, data['${effectivePrefix}channel_role']), + inviteAcceptedAt: attachedDatabase.typeMapping.read( + DriftSqlType.dateTime, data['${effectivePrefix}invite_accepted_at']), + inviteRejectedAt: attachedDatabase.typeMapping.read( + DriftSqlType.dateTime, data['${effectivePrefix}invite_rejected_at']), + invited: attachedDatabase.typeMapping + .read(DriftSqlType.bool, data['${effectivePrefix}invited'])!, + banned: attachedDatabase.typeMapping + .read(DriftSqlType.bool, data['${effectivePrefix}banned'])!, + shadowBanned: attachedDatabase.typeMapping + .read(DriftSqlType.bool, data['${effectivePrefix}shadow_banned'])!, + isModerator: attachedDatabase.typeMapping + .read(DriftSqlType.bool, data['${effectivePrefix}is_moderator'])!, + createdAt: attachedDatabase.typeMapping + .read(DriftSqlType.dateTime, data['${effectivePrefix}created_at'])!, + updatedAt: attachedDatabase.typeMapping + .read(DriftSqlType.dateTime, data['${effectivePrefix}updated_at'])!, + ); } @override - $UsersTable createAlias(String alias) { - return $UsersTable(attachedDatabase, alias); + $MembersTable createAlias(String alias) { + return $MembersTable(attachedDatabase, alias); } - - static TypeConverter, String> $converter0 = - MapConverter(); } class MemberEntity extends DataClass implements Insertable { @@ -3968,7 +4347,7 @@ class MemberEntity extends DataClass implements Insertable { /// The last date of update final DateTime updatedAt; - MemberEntity( + const MemberEntity( {required this.userId, required this.channelCid, this.channelRole, @@ -3980,46 +4359,19 @@ class MemberEntity extends DataClass implements Insertable { required this.isModerator, required this.createdAt, required this.updatedAt}); - factory MemberEntity.fromData(Map data, {String? prefix}) { - final effectivePrefix = prefix ?? ''; - return MemberEntity( - userId: const StringType() - .mapFromDatabaseResponse(data['${effectivePrefix}user_id'])!, - channelCid: const StringType() - .mapFromDatabaseResponse(data['${effectivePrefix}channel_cid'])!, - channelRole: const StringType() - .mapFromDatabaseResponse(data['${effectivePrefix}channel_role']), - inviteAcceptedAt: const DateTimeType().mapFromDatabaseResponse( - data['${effectivePrefix}invite_accepted_at']), - inviteRejectedAt: const DateTimeType().mapFromDatabaseResponse( - data['${effectivePrefix}invite_rejected_at']), - invited: const BoolType() - .mapFromDatabaseResponse(data['${effectivePrefix}invited'])!, - banned: const BoolType() - .mapFromDatabaseResponse(data['${effectivePrefix}banned'])!, - shadowBanned: const BoolType() - .mapFromDatabaseResponse(data['${effectivePrefix}shadow_banned'])!, - isModerator: const BoolType() - .mapFromDatabaseResponse(data['${effectivePrefix}is_moderator'])!, - createdAt: const DateTimeType() - .mapFromDatabaseResponse(data['${effectivePrefix}created_at'])!, - updatedAt: const DateTimeType() - .mapFromDatabaseResponse(data['${effectivePrefix}updated_at'])!, - ); - } @override Map toColumns(bool nullToAbsent) { final map = {}; map['user_id'] = Variable(userId); map['channel_cid'] = Variable(channelCid); if (!nullToAbsent || channelRole != null) { - map['channel_role'] = Variable(channelRole); + map['channel_role'] = Variable(channelRole); } if (!nullToAbsent || inviteAcceptedAt != null) { - map['invite_accepted_at'] = Variable(inviteAcceptedAt); + map['invite_accepted_at'] = Variable(inviteAcceptedAt); } if (!nullToAbsent || inviteRejectedAt != null) { - map['invite_rejected_at'] = Variable(inviteRejectedAt); + map['invite_rejected_at'] = Variable(inviteRejectedAt); } map['invited'] = Variable(invited); map['banned'] = Variable(banned); @@ -4156,6 +4508,7 @@ class MembersCompanion extends UpdateCompanion { final Value isModerator; final Value createdAt; final Value updatedAt; + final Value rowid; const MembersCompanion({ this.userId = const Value.absent(), this.channelCid = const Value.absent(), @@ -4168,6 +4521,7 @@ class MembersCompanion extends UpdateCompanion { this.isModerator = const Value.absent(), this.createdAt = const Value.absent(), this.updatedAt = const Value.absent(), + this.rowid = const Value.absent(), }); MembersCompanion.insert({ required String userId, @@ -4181,20 +4535,22 @@ class MembersCompanion extends UpdateCompanion { this.isModerator = const Value.absent(), this.createdAt = const Value.absent(), this.updatedAt = const Value.absent(), + this.rowid = const Value.absent(), }) : userId = Value(userId), channelCid = Value(channelCid); static Insertable custom({ Expression? userId, Expression? channelCid, - Expression? channelRole, - Expression? inviteAcceptedAt, - Expression? inviteRejectedAt, + Expression? channelRole, + Expression? inviteAcceptedAt, + Expression? inviteRejectedAt, Expression? invited, Expression? banned, Expression? shadowBanned, Expression? isModerator, Expression? createdAt, Expression? updatedAt, + Expression? rowid, }) { return RawValuesInsertable({ if (userId != null) 'user_id': userId, @@ -4208,6 +4564,7 @@ class MembersCompanion extends UpdateCompanion { if (isModerator != null) 'is_moderator': isModerator, if (createdAt != null) 'created_at': createdAt, if (updatedAt != null) 'updated_at': updatedAt, + if (rowid != null) 'rowid': rowid, }); } @@ -4222,7 +4579,8 @@ class MembersCompanion extends UpdateCompanion { Value? shadowBanned, Value? isModerator, Value? createdAt, - Value? updatedAt}) { + Value? updatedAt, + Value? rowid}) { return MembersCompanion( userId: userId ?? this.userId, channelCid: channelCid ?? this.channelCid, @@ -4235,6 +4593,7 @@ class MembersCompanion extends UpdateCompanion { isModerator: isModerator ?? this.isModerator, createdAt: createdAt ?? this.createdAt, updatedAt: updatedAt ?? this.updatedAt, + rowid: rowid ?? this.rowid, ); } @@ -4248,13 +4607,13 @@ class MembersCompanion extends UpdateCompanion { map['channel_cid'] = Variable(channelCid.value); } if (channelRole.present) { - map['channel_role'] = Variable(channelRole.value); + map['channel_role'] = Variable(channelRole.value); } if (inviteAcceptedAt.present) { - map['invite_accepted_at'] = Variable(inviteAcceptedAt.value); + map['invite_accepted_at'] = Variable(inviteAcceptedAt.value); } if (inviteRejectedAt.present) { - map['invite_rejected_at'] = Variable(inviteRejectedAt.value); + map['invite_rejected_at'] = Variable(inviteRejectedAt.value); } if (invited.present) { map['invited'] = Variable(invited.value); @@ -4274,6 +4633,9 @@ class MembersCompanion extends UpdateCompanion { if (updatedAt.present) { map['updated_at'] = Variable(updatedAt.value); } + if (rowid.present) { + map['rowid'] = Variable(rowid.value); + } return map; } @@ -4290,119 +4652,64 @@ class MembersCompanion extends UpdateCompanion { ..write('shadowBanned: $shadowBanned, ') ..write('isModerator: $isModerator, ') ..write('createdAt: $createdAt, ') - ..write('updatedAt: $updatedAt') + ..write('updatedAt: $updatedAt, ') + ..write('rowid: $rowid') ..write(')')) .toString(); } } -class $MembersTable extends Members - with TableInfo<$MembersTable, MemberEntity> { +class $ReadsTable extends Reads with TableInfo<$ReadsTable, ReadEntity> { @override final GeneratedDatabase attachedDatabase; final String? _alias; - $MembersTable(this.attachedDatabase, [this._alias]); - final VerificationMeta _userIdMeta = const VerificationMeta('userId'); + $ReadsTable(this.attachedDatabase, [this._alias]); + static const VerificationMeta _lastReadMeta = + const VerificationMeta('lastRead'); @override - late final GeneratedColumn userId = GeneratedColumn( + late final GeneratedColumn lastRead = GeneratedColumn( + 'last_read', aliasedName, false, + type: DriftSqlType.dateTime, requiredDuringInsert: true); + static const VerificationMeta _userIdMeta = const VerificationMeta('userId'); + @override + late final GeneratedColumn userId = GeneratedColumn( 'user_id', aliasedName, false, - type: const StringType(), requiredDuringInsert: true); - final VerificationMeta _channelCidMeta = const VerificationMeta('channelCid'); + type: DriftSqlType.string, requiredDuringInsert: true); + static const VerificationMeta _channelCidMeta = + const VerificationMeta('channelCid'); @override - late final GeneratedColumn channelCid = GeneratedColumn( + late final GeneratedColumn channelCid = GeneratedColumn( 'channel_cid', aliasedName, false, - type: const StringType(), + type: DriftSqlType.string, requiredDuringInsert: true, - $customConstraints: 'REFERENCES channels(cid) ON DELETE CASCADE'); - final VerificationMeta _channelRoleMeta = - const VerificationMeta('channelRole'); + defaultConstraints: GeneratedColumn.constraintIsAlways( + 'REFERENCES channels (cid) ON DELETE CASCADE')); + static const VerificationMeta _unreadMessagesMeta = + const VerificationMeta('unreadMessages'); @override - late final GeneratedColumn channelRole = GeneratedColumn( - 'channel_role', aliasedName, true, - type: const StringType(), requiredDuringInsert: false); - final VerificationMeta _inviteAcceptedAtMeta = - const VerificationMeta('inviteAcceptedAt'); - @override - late final GeneratedColumn inviteAcceptedAt = - GeneratedColumn('invite_accepted_at', aliasedName, true, - type: const IntType(), requiredDuringInsert: false); - final VerificationMeta _inviteRejectedAtMeta = - const VerificationMeta('inviteRejectedAt'); - @override - late final GeneratedColumn inviteRejectedAt = - GeneratedColumn('invite_rejected_at', aliasedName, true, - type: const IntType(), requiredDuringInsert: false); - final VerificationMeta _invitedMeta = const VerificationMeta('invited'); - @override - late final GeneratedColumn invited = GeneratedColumn( - 'invited', aliasedName, false, - type: const BoolType(), + late final GeneratedColumn unreadMessages = GeneratedColumn( + 'unread_messages', aliasedName, false, + type: DriftSqlType.int, requiredDuringInsert: false, - defaultConstraints: 'CHECK (invited IN (0, 1))', - defaultValue: const Constant(false)); - final VerificationMeta _bannedMeta = const VerificationMeta('banned'); + defaultValue: const Constant(0)); @override - late final GeneratedColumn banned = GeneratedColumn( - 'banned', aliasedName, false, - type: const BoolType(), - requiredDuringInsert: false, - defaultConstraints: 'CHECK (banned IN (0, 1))', - defaultValue: const Constant(false)); - final VerificationMeta _shadowBannedMeta = - const VerificationMeta('shadowBanned'); + List get $columns => + [lastRead, userId, channelCid, unreadMessages]; @override - late final GeneratedColumn shadowBanned = GeneratedColumn( - 'shadow_banned', aliasedName, false, - type: const BoolType(), - requiredDuringInsert: false, - defaultConstraints: 'CHECK (shadow_banned IN (0, 1))', - defaultValue: const Constant(false)); - final VerificationMeta _isModeratorMeta = - const VerificationMeta('isModerator'); + String get aliasedName => _alias ?? 'reads'; @override - late final GeneratedColumn isModerator = GeneratedColumn( - 'is_moderator', aliasedName, false, - type: const BoolType(), - requiredDuringInsert: false, - defaultConstraints: 'CHECK (is_moderator IN (0, 1))', - defaultValue: const Constant(false)); - final VerificationMeta _createdAtMeta = const VerificationMeta('createdAt'); + String get actualTableName => 'reads'; @override - late final GeneratedColumn createdAt = GeneratedColumn( - 'created_at', aliasedName, false, - type: const IntType(), - requiredDuringInsert: false, - defaultValue: currentDateAndTime); - final VerificationMeta _updatedAtMeta = const VerificationMeta('updatedAt'); - @override - late final GeneratedColumn updatedAt = GeneratedColumn( - 'updated_at', aliasedName, false, - type: const IntType(), - requiredDuringInsert: false, - defaultValue: currentDateAndTime); - @override - List get $columns => [ - userId, - channelCid, - channelRole, - inviteAcceptedAt, - inviteRejectedAt, - invited, - banned, - shadowBanned, - isModerator, - createdAt, - updatedAt - ]; - @override - String get aliasedName => _alias ?? 'members'; - @override - String get actualTableName => 'members'; - @override - VerificationContext validateIntegrity(Insertable instance, + VerificationContext validateIntegrity(Insertable instance, {bool isInserting = false}) { final context = VerificationContext(); final data = instance.toColumns(true); + if (data.containsKey('last_read')) { + context.handle(_lastReadMeta, + lastRead.isAcceptableOrUnknown(data['last_read']!, _lastReadMeta)); + } else if (isInserting) { + context.missing(_lastReadMeta); + } if (data.containsKey('user_id')) { context.handle(_userIdMeta, userId.isAcceptableOrUnknown(data['user_id']!, _userIdMeta)); @@ -4417,51 +4724,11 @@ class $MembersTable extends Members } else if (isInserting) { context.missing(_channelCidMeta); } - if (data.containsKey('channel_role')) { + if (data.containsKey('unread_messages')) { context.handle( - _channelRoleMeta, - channelRole.isAcceptableOrUnknown( - data['channel_role']!, _channelRoleMeta)); - } - if (data.containsKey('invite_accepted_at')) { - context.handle( - _inviteAcceptedAtMeta, - inviteAcceptedAt.isAcceptableOrUnknown( - data['invite_accepted_at']!, _inviteAcceptedAtMeta)); - } - if (data.containsKey('invite_rejected_at')) { - context.handle( - _inviteRejectedAtMeta, - inviteRejectedAt.isAcceptableOrUnknown( - data['invite_rejected_at']!, _inviteRejectedAtMeta)); - } - if (data.containsKey('invited')) { - context.handle(_invitedMeta, - invited.isAcceptableOrUnknown(data['invited']!, _invitedMeta)); - } - if (data.containsKey('banned')) { - context.handle(_bannedMeta, - banned.isAcceptableOrUnknown(data['banned']!, _bannedMeta)); - } - if (data.containsKey('shadow_banned')) { - context.handle( - _shadowBannedMeta, - shadowBanned.isAcceptableOrUnknown( - data['shadow_banned']!, _shadowBannedMeta)); - } - if (data.containsKey('is_moderator')) { - context.handle( - _isModeratorMeta, - isModerator.isAcceptableOrUnknown( - data['is_moderator']!, _isModeratorMeta)); - } - if (data.containsKey('created_at')) { - context.handle(_createdAtMeta, - createdAt.isAcceptableOrUnknown(data['created_at']!, _createdAtMeta)); - } - if (data.containsKey('updated_at')) { - context.handle(_updatedAtMeta, - updatedAt.isAcceptableOrUnknown(data['updated_at']!, _updatedAtMeta)); + _unreadMessagesMeta, + unreadMessages.isAcceptableOrUnknown( + data['unread_messages']!, _unreadMessagesMeta)); } return context; } @@ -4469,14 +4736,23 @@ class $MembersTable extends Members @override Set get $primaryKey => {userId, channelCid}; @override - MemberEntity map(Map data, {String? tablePrefix}) { - return MemberEntity.fromData(data, - prefix: tablePrefix != null ? '$tablePrefix.' : null); + ReadEntity map(Map data, {String? tablePrefix}) { + final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; + return ReadEntity( + lastRead: attachedDatabase.typeMapping + .read(DriftSqlType.dateTime, data['${effectivePrefix}last_read'])!, + userId: attachedDatabase.typeMapping + .read(DriftSqlType.string, data['${effectivePrefix}user_id'])!, + channelCid: attachedDatabase.typeMapping + .read(DriftSqlType.string, data['${effectivePrefix}channel_cid'])!, + unreadMessages: attachedDatabase.typeMapping + .read(DriftSqlType.int, data['${effectivePrefix}unread_messages'])!, + ); } @override - $MembersTable createAlias(String alias) { - return $MembersTable(attachedDatabase, alias); + $ReadsTable createAlias(String alias) { + return $ReadsTable(attachedDatabase, alias); } } @@ -4492,24 +4768,11 @@ class ReadEntity extends DataClass implements Insertable { /// Number of unread messages final int unreadMessages; - ReadEntity( + const ReadEntity( {required this.lastRead, required this.userId, required this.channelCid, required this.unreadMessages}); - factory ReadEntity.fromData(Map data, {String? prefix}) { - final effectivePrefix = prefix ?? ''; - return ReadEntity( - lastRead: const DateTimeType() - .mapFromDatabaseResponse(data['${effectivePrefix}last_read'])!, - userId: const StringType() - .mapFromDatabaseResponse(data['${effectivePrefix}user_id'])!, - channelCid: const StringType() - .mapFromDatabaseResponse(data['${effectivePrefix}channel_cid'])!, - unreadMessages: const IntType() - .mapFromDatabaseResponse(data['${effectivePrefix}unread_messages'])!, - ); - } @override Map toColumns(bool nullToAbsent) { final map = {}; @@ -4580,17 +4843,20 @@ class ReadsCompanion extends UpdateCompanion { final Value userId; final Value channelCid; final Value unreadMessages; + final Value rowid; const ReadsCompanion({ this.lastRead = const Value.absent(), this.userId = const Value.absent(), this.channelCid = const Value.absent(), this.unreadMessages = const Value.absent(), + this.rowid = const Value.absent(), }); ReadsCompanion.insert({ required DateTime lastRead, required String userId, required String channelCid, this.unreadMessages = const Value.absent(), + this.rowid = const Value.absent(), }) : lastRead = Value(lastRead), userId = Value(userId), channelCid = Value(channelCid); @@ -4599,12 +4865,14 @@ class ReadsCompanion extends UpdateCompanion { Expression? userId, Expression? channelCid, Expression? unreadMessages, + Expression? rowid, }) { return RawValuesInsertable({ if (lastRead != null) 'last_read': lastRead, if (userId != null) 'user_id': userId, if (channelCid != null) 'channel_cid': channelCid, if (unreadMessages != null) 'unread_messages': unreadMessages, + if (rowid != null) 'rowid': rowid, }); } @@ -4612,12 +4880,14 @@ class ReadsCompanion extends UpdateCompanion { {Value? lastRead, Value? userId, Value? channelCid, - Value? unreadMessages}) { + Value? unreadMessages, + Value? rowid}) { return ReadsCompanion( lastRead: lastRead ?? this.lastRead, userId: userId ?? this.userId, channelCid: channelCid ?? this.channelCid, unreadMessages: unreadMessages ?? this.unreadMessages, + rowid: rowid ?? this.rowid, ); } @@ -4636,6 +4906,9 @@ class ReadsCompanion extends UpdateCompanion { if (unreadMessages.present) { map['unread_messages'] = Variable(unreadMessages.value); } + if (rowid.present) { + map['rowid'] = Variable(rowid.value); + } return map; } @@ -4645,65 +4918,47 @@ class ReadsCompanion extends UpdateCompanion { ..write('lastRead: $lastRead, ') ..write('userId: $userId, ') ..write('channelCid: $channelCid, ') - ..write('unreadMessages: $unreadMessages') + ..write('unreadMessages: $unreadMessages, ') + ..write('rowid: $rowid') ..write(')')) .toString(); } } -class $ReadsTable extends Reads with TableInfo<$ReadsTable, ReadEntity> { +class $ChannelQueriesTable extends ChannelQueries + with TableInfo<$ChannelQueriesTable, ChannelQueryEntity> { @override final GeneratedDatabase attachedDatabase; final String? _alias; - $ReadsTable(this.attachedDatabase, [this._alias]); - final VerificationMeta _lastReadMeta = const VerificationMeta('lastRead'); + $ChannelQueriesTable(this.attachedDatabase, [this._alias]); + static const VerificationMeta _queryHashMeta = + const VerificationMeta('queryHash'); @override - late final GeneratedColumn lastRead = GeneratedColumn( - 'last_read', aliasedName, false, - type: const IntType(), requiredDuringInsert: true); - final VerificationMeta _userIdMeta = const VerificationMeta('userId'); + late final GeneratedColumn queryHash = GeneratedColumn( + 'query_hash', aliasedName, false, + type: DriftSqlType.string, requiredDuringInsert: true); + static const VerificationMeta _channelCidMeta = + const VerificationMeta('channelCid'); @override - late final GeneratedColumn userId = GeneratedColumn( - 'user_id', aliasedName, false, - type: const StringType(), requiredDuringInsert: true); - final VerificationMeta _channelCidMeta = const VerificationMeta('channelCid'); - @override - late final GeneratedColumn channelCid = GeneratedColumn( + late final GeneratedColumn channelCid = GeneratedColumn( 'channel_cid', aliasedName, false, - type: const StringType(), - requiredDuringInsert: true, - $customConstraints: 'REFERENCES channels(cid) ON DELETE CASCADE'); - final VerificationMeta _unreadMessagesMeta = - const VerificationMeta('unreadMessages'); + type: DriftSqlType.string, requiredDuringInsert: true); @override - late final GeneratedColumn unreadMessages = GeneratedColumn( - 'unread_messages', aliasedName, false, - type: const IntType(), - requiredDuringInsert: false, - defaultValue: const Constant(0)); + List get $columns => [queryHash, channelCid]; @override - List get $columns => - [lastRead, userId, channelCid, unreadMessages]; + String get aliasedName => _alias ?? 'channel_queries'; @override - String get aliasedName => _alias ?? 'reads'; + String get actualTableName => 'channel_queries'; @override - String get actualTableName => 'reads'; - @override - VerificationContext validateIntegrity(Insertable instance, + VerificationContext validateIntegrity(Insertable instance, {bool isInserting = false}) { final context = VerificationContext(); final data = instance.toColumns(true); - if (data.containsKey('last_read')) { - context.handle(_lastReadMeta, - lastRead.isAcceptableOrUnknown(data['last_read']!, _lastReadMeta)); + if (data.containsKey('query_hash')) { + context.handle(_queryHashMeta, + queryHash.isAcceptableOrUnknown(data['query_hash']!, _queryHashMeta)); } else if (isInserting) { - context.missing(_lastReadMeta); - } - if (data.containsKey('user_id')) { - context.handle(_userIdMeta, - userId.isAcceptableOrUnknown(data['user_id']!, _userIdMeta)); - } else if (isInserting) { - context.missing(_userIdMeta); + context.missing(_queryHashMeta); } if (data.containsKey('channel_cid')) { context.handle( @@ -4713,26 +4968,25 @@ class $ReadsTable extends Reads with TableInfo<$ReadsTable, ReadEntity> { } else if (isInserting) { context.missing(_channelCidMeta); } - if (data.containsKey('unread_messages')) { - context.handle( - _unreadMessagesMeta, - unreadMessages.isAcceptableOrUnknown( - data['unread_messages']!, _unreadMessagesMeta)); - } return context; } @override - Set get $primaryKey => {userId, channelCid}; + Set get $primaryKey => {queryHash, channelCid}; @override - ReadEntity map(Map data, {String? tablePrefix}) { - return ReadEntity.fromData(data, - prefix: tablePrefix != null ? '$tablePrefix.' : null); + ChannelQueryEntity map(Map data, {String? tablePrefix}) { + final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; + return ChannelQueryEntity( + queryHash: attachedDatabase.typeMapping + .read(DriftSqlType.string, data['${effectivePrefix}query_hash'])!, + channelCid: attachedDatabase.typeMapping + .read(DriftSqlType.string, data['${effectivePrefix}channel_cid'])!, + ); } @override - $ReadsTable createAlias(String alias) { - return $ReadsTable(attachedDatabase, alias); + $ChannelQueriesTable createAlias(String alias) { + return $ChannelQueriesTable(attachedDatabase, alias); } } @@ -4743,17 +4997,7 @@ class ChannelQueryEntity extends DataClass /// The channel cid of this query final String channelCid; - ChannelQueryEntity({required this.queryHash, required this.channelCid}); - factory ChannelQueryEntity.fromData(Map data, - {String? prefix}) { - final effectivePrefix = prefix ?? ''; - return ChannelQueryEntity( - queryHash: const StringType() - .mapFromDatabaseResponse(data['${effectivePrefix}query_hash'])!, - channelCid: const StringType() - .mapFromDatabaseResponse(data['${effectivePrefix}channel_cid'])!, - ); - } + const ChannelQueryEntity({required this.queryHash, required this.channelCid}); @override Map toColumns(bool nullToAbsent) { final map = {}; @@ -4806,30 +5050,38 @@ class ChannelQueryEntity extends DataClass class ChannelQueriesCompanion extends UpdateCompanion { final Value queryHash; final Value channelCid; + final Value rowid; const ChannelQueriesCompanion({ this.queryHash = const Value.absent(), this.channelCid = const Value.absent(), + this.rowid = const Value.absent(), }); ChannelQueriesCompanion.insert({ required String queryHash, required String channelCid, + this.rowid = const Value.absent(), }) : queryHash = Value(queryHash), channelCid = Value(channelCid); static Insertable custom({ Expression? queryHash, Expression? channelCid, + Expression? rowid, }) { return RawValuesInsertable({ if (queryHash != null) 'query_hash': queryHash, if (channelCid != null) 'channel_cid': channelCid, + if (rowid != null) 'rowid': rowid, }); } ChannelQueriesCompanion copyWith( - {Value? queryHash, Value? channelCid}) { + {Value? queryHash, + Value? channelCid, + Value? rowid}) { return ChannelQueriesCompanion( queryHash: queryHash ?? this.queryHash, channelCid: channelCid ?? this.channelCid, + rowid: rowid ?? this.rowid, ); } @@ -4842,6 +5094,9 @@ class ChannelQueriesCompanion extends UpdateCompanion { if (channelCid.present) { map['channel_cid'] = Variable(channelCid.value); } + if (rowid.present) { + map['rowid'] = Variable(rowid.value); + } return map; } @@ -4849,68 +5104,151 @@ class ChannelQueriesCompanion extends UpdateCompanion { String toString() { return (StringBuffer('ChannelQueriesCompanion(') ..write('queryHash: $queryHash, ') - ..write('channelCid: $channelCid') + ..write('channelCid: $channelCid, ') + ..write('rowid: $rowid') ..write(')')) .toString(); } } -class $ChannelQueriesTable extends ChannelQueries - with TableInfo<$ChannelQueriesTable, ChannelQueryEntity> { +class $ConnectionEventsTable extends ConnectionEvents + with TableInfo<$ConnectionEventsTable, ConnectionEventEntity> { @override final GeneratedDatabase attachedDatabase; final String? _alias; - $ChannelQueriesTable(this.attachedDatabase, [this._alias]); - final VerificationMeta _queryHashMeta = const VerificationMeta('queryHash'); + $ConnectionEventsTable(this.attachedDatabase, [this._alias]); + static const VerificationMeta _idMeta = const VerificationMeta('id'); @override - late final GeneratedColumn queryHash = GeneratedColumn( - 'query_hash', aliasedName, false, - type: const StringType(), requiredDuringInsert: true); - final VerificationMeta _channelCidMeta = const VerificationMeta('channelCid'); + late final GeneratedColumn id = GeneratedColumn( + 'id', aliasedName, false, + type: DriftSqlType.int, requiredDuringInsert: false); + static const VerificationMeta _typeMeta = const VerificationMeta('type'); @override - late final GeneratedColumn channelCid = GeneratedColumn( - 'channel_cid', aliasedName, false, - type: const StringType(), requiredDuringInsert: true); + late final GeneratedColumn type = GeneratedColumn( + 'type', aliasedName, false, + type: DriftSqlType.string, requiredDuringInsert: true); + static const VerificationMeta _ownUserMeta = + const VerificationMeta('ownUser'); @override - List get $columns => [queryHash, channelCid]; + late final GeneratedColumnWithTypeConverter?, String> + ownUser = GeneratedColumn('own_user', aliasedName, true, + type: DriftSqlType.string, requiredDuringInsert: false) + .withConverter?>( + $ConnectionEventsTable.$converterownUsern); + static const VerificationMeta _totalUnreadCountMeta = + const VerificationMeta('totalUnreadCount'); @override - String get aliasedName => _alias ?? 'channel_queries'; + late final GeneratedColumn totalUnreadCount = GeneratedColumn( + 'total_unread_count', aliasedName, true, + type: DriftSqlType.int, requiredDuringInsert: false); + static const VerificationMeta _unreadChannelsMeta = + const VerificationMeta('unreadChannels'); @override - String get actualTableName => 'channel_queries'; + late final GeneratedColumn unreadChannels = GeneratedColumn( + 'unread_channels', aliasedName, true, + type: DriftSqlType.int, requiredDuringInsert: false); + static const VerificationMeta _lastEventAtMeta = + const VerificationMeta('lastEventAt'); @override - VerificationContext validateIntegrity(Insertable instance, + late final GeneratedColumn lastEventAt = GeneratedColumn( + 'last_event_at', aliasedName, true, + type: DriftSqlType.dateTime, requiredDuringInsert: false); + static const VerificationMeta _lastSyncAtMeta = + const VerificationMeta('lastSyncAt'); + @override + late final GeneratedColumn lastSyncAt = GeneratedColumn( + 'last_sync_at', aliasedName, true, + type: DriftSqlType.dateTime, requiredDuringInsert: false); + @override + List get $columns => [ + id, + type, + ownUser, + totalUnreadCount, + unreadChannels, + lastEventAt, + lastSyncAt + ]; + @override + String get aliasedName => _alias ?? 'connection_events'; + @override + String get actualTableName => 'connection_events'; + @override + VerificationContext validateIntegrity( + Insertable instance, {bool isInserting = false}) { final context = VerificationContext(); final data = instance.toColumns(true); - if (data.containsKey('query_hash')) { - context.handle(_queryHashMeta, - queryHash.isAcceptableOrUnknown(data['query_hash']!, _queryHashMeta)); - } else if (isInserting) { - context.missing(_queryHashMeta); + if (data.containsKey('id')) { + context.handle(_idMeta, id.isAcceptableOrUnknown(data['id']!, _idMeta)); } - if (data.containsKey('channel_cid')) { + if (data.containsKey('type')) { context.handle( - _channelCidMeta, - channelCid.isAcceptableOrUnknown( - data['channel_cid']!, _channelCidMeta)); + _typeMeta, type.isAcceptableOrUnknown(data['type']!, _typeMeta)); } else if (isInserting) { - context.missing(_channelCidMeta); + context.missing(_typeMeta); + } + context.handle(_ownUserMeta, const VerificationResult.success()); + if (data.containsKey('total_unread_count')) { + context.handle( + _totalUnreadCountMeta, + totalUnreadCount.isAcceptableOrUnknown( + data['total_unread_count']!, _totalUnreadCountMeta)); + } + if (data.containsKey('unread_channels')) { + context.handle( + _unreadChannelsMeta, + unreadChannels.isAcceptableOrUnknown( + data['unread_channels']!, _unreadChannelsMeta)); + } + if (data.containsKey('last_event_at')) { + context.handle( + _lastEventAtMeta, + lastEventAt.isAcceptableOrUnknown( + data['last_event_at']!, _lastEventAtMeta)); + } + if (data.containsKey('last_sync_at')) { + context.handle( + _lastSyncAtMeta, + lastSyncAt.isAcceptableOrUnknown( + data['last_sync_at']!, _lastSyncAtMeta)); } return context; } @override - Set get $primaryKey => {queryHash, channelCid}; + Set get $primaryKey => {id}; @override - ChannelQueryEntity map(Map data, {String? tablePrefix}) { - return ChannelQueryEntity.fromData(data, - prefix: tablePrefix != null ? '$tablePrefix.' : null); + ConnectionEventEntity map(Map data, {String? tablePrefix}) { + final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; + return ConnectionEventEntity( + id: attachedDatabase.typeMapping + .read(DriftSqlType.int, data['${effectivePrefix}id'])!, + type: attachedDatabase.typeMapping + .read(DriftSqlType.string, data['${effectivePrefix}type'])!, + ownUser: $ConnectionEventsTable.$converterownUsern.fromSql( + attachedDatabase.typeMapping + .read(DriftSqlType.string, data['${effectivePrefix}own_user'])), + totalUnreadCount: attachedDatabase.typeMapping + .read(DriftSqlType.int, data['${effectivePrefix}total_unread_count']), + unreadChannels: attachedDatabase.typeMapping + .read(DriftSqlType.int, data['${effectivePrefix}unread_channels']), + lastEventAt: attachedDatabase.typeMapping + .read(DriftSqlType.dateTime, data['${effectivePrefix}last_event_at']), + lastSyncAt: attachedDatabase.typeMapping + .read(DriftSqlType.dateTime, data['${effectivePrefix}last_sync_at']), + ); } @override - $ChannelQueriesTable createAlias(String alias) { - return $ChannelQueriesTable(attachedDatabase, alias); + $ConnectionEventsTable createAlias(String alias) { + return $ConnectionEventsTable(attachedDatabase, alias); } + + static TypeConverter, String> $converterownUser = + MapConverter(); + static TypeConverter?, String?> $converterownUsern = + NullAwareTypeConverter.wrap($converterownUser); } class ConnectionEventEntity extends DataClass @@ -4935,7 +5273,7 @@ class ConnectionEventEntity extends DataClass /// DateTime of the last sync final DateTime? lastSyncAt; - ConnectionEventEntity( + const ConnectionEventEntity( {required this.id, required this.type, this.ownUser, @@ -4943,46 +5281,26 @@ class ConnectionEventEntity extends DataClass this.unreadChannels, this.lastEventAt, this.lastSyncAt}); - factory ConnectionEventEntity.fromData(Map data, - {String? prefix}) { - final effectivePrefix = prefix ?? ''; - return ConnectionEventEntity( - id: const IntType() - .mapFromDatabaseResponse(data['${effectivePrefix}id'])!, - type: const StringType() - .mapFromDatabaseResponse(data['${effectivePrefix}type'])!, - ownUser: $ConnectionEventsTable.$converter0.mapToDart(const StringType() - .mapFromDatabaseResponse(data['${effectivePrefix}own_user'])), - totalUnreadCount: const IntType().mapFromDatabaseResponse( - data['${effectivePrefix}total_unread_count']), - unreadChannels: const IntType() - .mapFromDatabaseResponse(data['${effectivePrefix}unread_channels']), - lastEventAt: const DateTimeType() - .mapFromDatabaseResponse(data['${effectivePrefix}last_event_at']), - lastSyncAt: const DateTimeType() - .mapFromDatabaseResponse(data['${effectivePrefix}last_sync_at']), - ); - } @override Map toColumns(bool nullToAbsent) { final map = {}; map['id'] = Variable(id); map['type'] = Variable(type); if (!nullToAbsent || ownUser != null) { - final converter = $ConnectionEventsTable.$converter0; - map['own_user'] = Variable(converter.mapToSql(ownUser)); + final converter = $ConnectionEventsTable.$converterownUsern; + map['own_user'] = Variable(converter.toSql(ownUser)); } if (!nullToAbsent || totalUnreadCount != null) { - map['total_unread_count'] = Variable(totalUnreadCount); + map['total_unread_count'] = Variable(totalUnreadCount); } if (!nullToAbsent || unreadChannels != null) { - map['unread_channels'] = Variable(unreadChannels); + map['unread_channels'] = Variable(unreadChannels); } if (!nullToAbsent || lastEventAt != null) { - map['last_event_at'] = Variable(lastEventAt); + map['last_event_at'] = Variable(lastEventAt); } if (!nullToAbsent || lastSyncAt != null) { - map['last_sync_at'] = Variable(lastSyncAt); + map['last_sync_at'] = Variable(lastSyncAt); } return map; } @@ -5093,11 +5411,11 @@ class ConnectionEventsCompanion extends UpdateCompanion { static Insertable custom({ Expression? id, Expression? type, - Expression?>? ownUser, - Expression? totalUnreadCount, - Expression? unreadChannels, - Expression? lastEventAt, - Expression? lastSyncAt, + Expression? ownUser, + Expression? totalUnreadCount, + Expression? unreadChannels, + Expression? lastEventAt, + Expression? lastSyncAt, }) { return RawValuesInsertable({ if (id != null) 'id': id, @@ -5139,20 +5457,20 @@ class ConnectionEventsCompanion extends UpdateCompanion { map['type'] = Variable(type.value); } if (ownUser.present) { - final converter = $ConnectionEventsTable.$converter0; - map['own_user'] = Variable(converter.mapToSql(ownUser.value)); + final converter = $ConnectionEventsTable.$converterownUsern; + map['own_user'] = Variable(converter.toSql(ownUser.value)); } if (totalUnreadCount.present) { - map['total_unread_count'] = Variable(totalUnreadCount.value); + map['total_unread_count'] = Variable(totalUnreadCount.value); } if (unreadChannels.present) { - map['unread_channels'] = Variable(unreadChannels.value); + map['unread_channels'] = Variable(unreadChannels.value); } if (lastEventAt.present) { - map['last_event_at'] = Variable(lastEventAt.value); + map['last_event_at'] = Variable(lastEventAt.value); } if (lastSyncAt.present) { - map['last_sync_at'] = Variable(lastSyncAt.value); + map['last_sync_at'] = Variable(lastSyncAt.value); } return map; } @@ -5172,130 +5490,8 @@ class ConnectionEventsCompanion extends UpdateCompanion { } } -class $ConnectionEventsTable extends ConnectionEvents - with TableInfo<$ConnectionEventsTable, ConnectionEventEntity> { - @override - final GeneratedDatabase attachedDatabase; - final String? _alias; - $ConnectionEventsTable(this.attachedDatabase, [this._alias]); - final VerificationMeta _idMeta = const VerificationMeta('id'); - @override - late final GeneratedColumn id = GeneratedColumn( - 'id', aliasedName, false, - type: const IntType(), requiredDuringInsert: false); - final VerificationMeta _typeMeta = const VerificationMeta('type'); - @override - late final GeneratedColumn type = GeneratedColumn( - 'type', aliasedName, false, - type: const StringType(), requiredDuringInsert: true); - final VerificationMeta _ownUserMeta = const VerificationMeta('ownUser'); - @override - late final GeneratedColumnWithTypeConverter, String?> - ownUser = GeneratedColumn('own_user', aliasedName, true, - type: const StringType(), requiredDuringInsert: false) - .withConverter>( - $ConnectionEventsTable.$converter0); - final VerificationMeta _totalUnreadCountMeta = - const VerificationMeta('totalUnreadCount'); - @override - late final GeneratedColumn totalUnreadCount = GeneratedColumn( - 'total_unread_count', aliasedName, true, - type: const IntType(), requiredDuringInsert: false); - final VerificationMeta _unreadChannelsMeta = - const VerificationMeta('unreadChannels'); - @override - late final GeneratedColumn unreadChannels = GeneratedColumn( - 'unread_channels', aliasedName, true, - type: const IntType(), requiredDuringInsert: false); - final VerificationMeta _lastEventAtMeta = - const VerificationMeta('lastEventAt'); - @override - late final GeneratedColumn lastEventAt = - GeneratedColumn('last_event_at', aliasedName, true, - type: const IntType(), requiredDuringInsert: false); - final VerificationMeta _lastSyncAtMeta = const VerificationMeta('lastSyncAt'); - @override - late final GeneratedColumn lastSyncAt = GeneratedColumn( - 'last_sync_at', aliasedName, true, - type: const IntType(), requiredDuringInsert: false); - @override - List get $columns => [ - id, - type, - ownUser, - totalUnreadCount, - unreadChannels, - lastEventAt, - lastSyncAt - ]; - @override - String get aliasedName => _alias ?? 'connection_events'; - @override - String get actualTableName => 'connection_events'; - @override - VerificationContext validateIntegrity( - Insertable instance, - {bool isInserting = false}) { - final context = VerificationContext(); - final data = instance.toColumns(true); - if (data.containsKey('id')) { - context.handle(_idMeta, id.isAcceptableOrUnknown(data['id']!, _idMeta)); - } - if (data.containsKey('type')) { - context.handle( - _typeMeta, type.isAcceptableOrUnknown(data['type']!, _typeMeta)); - } else if (isInserting) { - context.missing(_typeMeta); - } - context.handle(_ownUserMeta, const VerificationResult.success()); - if (data.containsKey('total_unread_count')) { - context.handle( - _totalUnreadCountMeta, - totalUnreadCount.isAcceptableOrUnknown( - data['total_unread_count']!, _totalUnreadCountMeta)); - } - if (data.containsKey('unread_channels')) { - context.handle( - _unreadChannelsMeta, - unreadChannels.isAcceptableOrUnknown( - data['unread_channels']!, _unreadChannelsMeta)); - } - if (data.containsKey('last_event_at')) { - context.handle( - _lastEventAtMeta, - lastEventAt.isAcceptableOrUnknown( - data['last_event_at']!, _lastEventAtMeta)); - } - if (data.containsKey('last_sync_at')) { - context.handle( - _lastSyncAtMeta, - lastSyncAt.isAcceptableOrUnknown( - data['last_sync_at']!, _lastSyncAtMeta)); - } - return context; - } - - @override - Set get $primaryKey => {id}; - @override - ConnectionEventEntity map(Map data, {String? tablePrefix}) { - return ConnectionEventEntity.fromData(data, - prefix: tablePrefix != null ? '$tablePrefix.' : null); - } - - @override - $ConnectionEventsTable createAlias(String alias) { - return $ConnectionEventsTable(attachedDatabase, alias); - } - - static TypeConverter, String> $converter0 = - MapConverter(); -} - abstract class _$DriftChatDatabase extends GeneratedDatabase { - _$DriftChatDatabase(QueryExecutor e) - : super(SqlTypeSystem.defaultInstance, e); - _$DriftChatDatabase.connect(DatabaseConnection c) : super.connect(c); + _$DriftChatDatabase(QueryExecutor e) : super(e); late final $ChannelsTable channels = $ChannelsTable(this); late final $MessagesTable messages = $MessagesTable(this); late final $PinnedMessagesTable pinnedMessages = $PinnedMessagesTable(this); @@ -5323,7 +5519,8 @@ abstract class _$DriftChatDatabase extends GeneratedDatabase { late final ConnectionEventDao connectionEventDao = ConnectionEventDao(this as DriftChatDatabase); @override - Iterable get allTables => allSchemaEntities.whereType(); + Iterable> get allTables => + allSchemaEntities.whereType>(); @override List get allSchemaEntities => [ channels, @@ -5337,4 +5534,51 @@ abstract class _$DriftChatDatabase extends GeneratedDatabase { channelQueries, connectionEvents ]; + @override + StreamQueryUpdateRules get streamUpdateRules => const StreamQueryUpdateRules( + [ + WritePropagation( + on: TableUpdateQuery.onTableName('channels', + limitUpdateKind: UpdateKind.delete), + result: [ + TableUpdate('messages', kind: UpdateKind.delete), + ], + ), + WritePropagation( + on: TableUpdateQuery.onTableName('channels', + limitUpdateKind: UpdateKind.delete), + result: [ + TableUpdate('pinned_messages', kind: UpdateKind.delete), + ], + ), + WritePropagation( + on: TableUpdateQuery.onTableName('pinned_messages', + limitUpdateKind: UpdateKind.delete), + result: [ + TableUpdate('pinned_message_reactions', kind: UpdateKind.delete), + ], + ), + WritePropagation( + on: TableUpdateQuery.onTableName('messages', + limitUpdateKind: UpdateKind.delete), + result: [ + TableUpdate('reactions', kind: UpdateKind.delete), + ], + ), + WritePropagation( + on: TableUpdateQuery.onTableName('channels', + limitUpdateKind: UpdateKind.delete), + result: [ + TableUpdate('members', kind: UpdateKind.delete), + ], + ), + WritePropagation( + on: TableUpdateQuery.onTableName('channels', + limitUpdateKind: UpdateKind.delete), + result: [ + TableUpdate('reads', kind: UpdateKind.delete), + ], + ), + ], + ); } diff --git a/packages/stream_chat_persistence/lib/src/db/shared/native_db.dart b/packages/stream_chat_persistence/lib/src/db/shared/native_db.dart index ca9a98bf..ca31c3bb 100644 --- a/packages/stream_chat_persistence/lib/src/db/shared/native_db.dart +++ b/packages/stream_chat_persistence/lib/src/db/shared/native_db.dart @@ -23,7 +23,7 @@ class SharedDB { }) async { final dbName = 'db_$userId'; if (connectionMode == ConnectionMode.background) { - return DriftChatDatabase.connect( + return DriftChatDatabase( userId, DatabaseConnection.delayed(Future(() async { final isolate = await _createMoorIsolate( @@ -34,6 +34,7 @@ class SharedDB { })), ); } + return DriftChatDatabase( userId, LazyDatabase( @@ -68,7 +69,7 @@ class SharedDB { logStatements: request.logStatements, )); final moorIsolate = DriftIsolate.inCurrent( - () => DatabaseConnection.fromExecutor(executor), + () => DatabaseConnection(executor), ); request.sendMoorIsolate.send(moorIsolate); } diff --git a/packages/stream_chat_persistence/lib/src/entity/members.dart b/packages/stream_chat_persistence/lib/src/entity/members.dart index b4e8181b..9401d8c5 100644 --- a/packages/stream_chat_persistence/lib/src/entity/members.dart +++ b/packages/stream_chat_persistence/lib/src/entity/members.dart @@ -1,5 +1,6 @@ // coverage:ignore-file import 'package:drift/drift.dart'; +import 'package:stream_chat_persistence/src/entity/channels.dart'; /// Represents a [Members] table in [MoorChatDatabase]. @DataClassName('MemberEntity') @@ -9,7 +10,7 @@ class Members extends Table { /// The channel cid of which this user is part of TextColumn get channelCid => - text().customConstraint('REFERENCES channels(cid) ON DELETE CASCADE')(); + text().references(Channels, #cid, onDelete: KeyAction.cascade)(); /// The role of the user in the channel TextColumn get channelRole => text().nullable()(); diff --git a/packages/stream_chat_persistence/lib/src/entity/messages.dart b/packages/stream_chat_persistence/lib/src/entity/messages.dart index f40bd292..fe20013a 100644 --- a/packages/stream_chat_persistence/lib/src/entity/messages.dart +++ b/packages/stream_chat_persistence/lib/src/entity/messages.dart @@ -3,6 +3,7 @@ import 'package:drift/drift.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'; +import 'package:stream_chat_persistence/src/entity/channels.dart'; /// Represents a [Messages] table in [MoorChatDatabase]. @DataClassName('MessageEntity') @@ -78,10 +79,11 @@ class Messages extends Table { /// The channel cid of which this message is part of TextColumn get channelCid => - text().customConstraint('REFERENCES channels(cid) ON DELETE CASCADE')(); + text().references(Channels, #cid, onDelete: KeyAction.cascade)(); /// A Map of [messageText] translations. - TextColumn get i18n => text().nullable().map(MapConverter())(); + TextColumn get i18n => + text().nullable().map(NullableMapConverter())(); /// Message custom extraData TextColumn get extraData => text().nullable().map(MapConverter())(); diff --git a/packages/stream_chat_persistence/lib/src/entity/pinned_message_reactions.dart b/packages/stream_chat_persistence/lib/src/entity/pinned_message_reactions.dart index 8228ee5f..e4c9b06e 100644 --- a/packages/stream_chat_persistence/lib/src/entity/pinned_message_reactions.dart +++ b/packages/stream_chat_persistence/lib/src/entity/pinned_message_reactions.dart @@ -1,6 +1,6 @@ // coverage:ignore-file import 'package:drift/drift.dart'; - +import 'package:stream_chat_persistence/src/entity/pinned_messages.dart'; import 'package:stream_chat_persistence/src/entity/reactions.dart'; /// Represents a [PinnedMessageReactions] table in [MoorChatDatabase]. @@ -8,6 +8,6 @@ import 'package:stream_chat_persistence/src/entity/reactions.dart'; class PinnedMessageReactions extends Reactions { /// The messageId to which the reaction belongs @override - TextColumn get messageId => text() - .customConstraint('REFERENCES pinned_messages(id) ON DELETE CASCADE')(); + TextColumn get messageId => + text().references(PinnedMessages, #id, onDelete: KeyAction.cascade)(); } diff --git a/packages/stream_chat_persistence/lib/src/entity/pinned_messages.dart b/packages/stream_chat_persistence/lib/src/entity/pinned_messages.dart index 61672fc8..386c0725 100644 --- a/packages/stream_chat_persistence/lib/src/entity/pinned_messages.dart +++ b/packages/stream_chat_persistence/lib/src/entity/pinned_messages.dart @@ -1,6 +1,5 @@ // coverage:ignore-file import 'package:drift/drift.dart'; - import 'package:stream_chat_persistence/src/entity/messages.dart'; /// Represents a [PinnedMessages] table in [MoorChatDatabase]. diff --git a/packages/stream_chat_persistence/lib/src/entity/reactions.dart b/packages/stream_chat_persistence/lib/src/entity/reactions.dart index 712b7b18..5ea81b6d 100644 --- a/packages/stream_chat_persistence/lib/src/entity/reactions.dart +++ b/packages/stream_chat_persistence/lib/src/entity/reactions.dart @@ -1,6 +1,7 @@ // coverage:ignore-file import 'package:drift/drift.dart'; import 'package:stream_chat_persistence/src/converter/map_converter.dart'; +import 'package:stream_chat_persistence/src/entity/messages.dart'; /// Represents a [Reactions] table in [MoorChatDatabase]. @DataClassName('ReactionEntity') @@ -10,7 +11,7 @@ class Reactions extends Table { /// The messageId to which the reaction belongs TextColumn get messageId => - text().customConstraint('REFERENCES messages(id) ON DELETE CASCADE')(); + text().references(Messages, #id, onDelete: KeyAction.cascade)(); /// The type of the reaction TextColumn get type => text()(); diff --git a/packages/stream_chat_persistence/lib/src/entity/reads.dart b/packages/stream_chat_persistence/lib/src/entity/reads.dart index 18d44934..63faf754 100644 --- a/packages/stream_chat_persistence/lib/src/entity/reads.dart +++ b/packages/stream_chat_persistence/lib/src/entity/reads.dart @@ -1,5 +1,6 @@ // coverage:ignore-file import 'package:drift/drift.dart'; +import 'package:stream_chat_persistence/src/entity/channels.dart'; /// Represents a [Reads] table in [MoorChatDatabase]. @DataClassName('ReadEntity') @@ -12,7 +13,7 @@ class Reads extends Table { /// The channel cid of which this read belongs TextColumn get channelCid => - text().customConstraint('REFERENCES channels(cid) ON DELETE CASCADE')(); + text().references(Channels, #cid, onDelete: KeyAction.cascade)(); /// Number of unread messages IntColumn get unreadMessages => integer().withDefault(const Constant(0))(); diff --git a/packages/stream_chat_persistence/pubspec.yaml b/packages/stream_chat_persistence/pubspec.yaml index 5628688b..852fe3ae 100644 --- a/packages/stream_chat_persistence/pubspec.yaml +++ b/packages/stream_chat_persistence/pubspec.yaml @@ -10,7 +10,7 @@ environment: flutter: ">=1.17.0" dependencies: - drift: ^1.7.1 + drift: ^2.7.0 flutter: sdk: flutter logging: ^1.0.1 @@ -23,8 +23,8 @@ dependencies: dev_dependencies: build_runner: ^2.3.3 - dart_code_metrics: ^4.18.0 - drift_dev: ^1.7.1 + dart_code_metrics: ^5.7.2 + drift_dev: ^2.7.0 flutter_test: sdk: flutter mocktail: ^0.3.0 diff --git a/packages/stream_chat_persistence/test/src/converter/list_coverter_test.dart b/packages/stream_chat_persistence/test/src/converter/list_coverter_test.dart index 9cee72b0..05c79102 100644 --- a/packages/stream_chat_persistence/test/src/converter/list_coverter_test.dart +++ b/packages/stream_chat_persistence/test/src/converter/list_coverter_test.dart @@ -4,50 +4,91 @@ import 'package:flutter_test/flutter_test.dart'; import 'package:stream_chat_persistence/src/converter/list_converter.dart'; void main() { - group('mapToDart', () { + group('ListConverter', () { final listConverter = ListConverter(); - test('should return null if nothing is provided', () { - final res = listConverter.mapToDart(null); - expect(res, isNull); - }); + group('fromSql', () { + test('should throw type error if the provided json is not a list', () { + final json = {'test_key': 'testData'}; + expect( + () => listConverter.fromSql(jsonEncode(json)), + throwsA(isA()), + ); + }); - test('should throw type error if the provided json is not a list', () { - final json = {'test_key': 'testData'}; - expect( - () => listConverter.mapToDart(jsonEncode(json)), - throwsA(isA()), - ); - }); - - test('should throw type error if the provided json is not a list of String', + test( + 'should throw type error if the provided json is not a list of String', () { - final json = [22, 33, 44]; - expect( - () => listConverter.mapToDart(jsonEncode(json)), - throwsA(isA()), + final json = [22, 33, 44]; + expect( + () => listConverter.fromSql(jsonEncode(json)), + throwsA(isA()), + ); + }, ); + + test('should return list of String if json data list is provided', () { + final data = ['data1', 'data2', 'data3']; + final res = listConverter.fromSql(jsonEncode(data)); + expect(res.length, data.length); + }); }); - test('should return list of String if json data list is provided', () { - final data = ['data1', 'data2', 'data3']; - final res = listConverter.mapToDart(jsonEncode(data)); - expect(res!.length, data.length); + group('toSql', () { + test('should return json string if data list is provided', () { + final data = ['data1', 'data2', 'data3']; + final res = listConverter.toSql(data); + expect(res, jsonEncode(data)); + }); }); }); - group('mapToSql', () { - final listConverter = ListConverter(); + group('NullableListConverter', () { + final listConverter = NullableListConverter(); - test('should return null if nothing is provided', () { - final res = listConverter.mapToSql(null); - expect(res, isNull); + group('fromSql', () { + test('should return null if nothing is provided', () { + final res = listConverter.fromSql(null); + expect(res, isNull); + }); + + test('should throw type error if the provided json is not a list', () { + final json = {'test_key': 'testData'}; + expect( + () => listConverter.fromSql(jsonEncode(json)), + throwsA(isA()), + ); + }); + + test( + 'should throw type error if the provided json is not a list of String', + () { + final json = [22, 33, 44]; + expect( + () => listConverter.fromSql(jsonEncode(json)), + throwsA(isA()), + ); + }, + ); + + test('should return list of String if json data list is provided', () { + final data = ['data1', 'data2', 'data3']; + final res = listConverter.fromSql(jsonEncode(data)); + expect(res!.length, data.length); + }); }); - test('should return json string if data list is provided', () { - final data = ['data1', 'data2', 'data3']; - final res = listConverter.mapToSql(data); - expect(res, jsonEncode(data)); + group('toSql', () { + test('should return null if nothing is provided', () { + final res = listConverter.toSql(null); + expect(res, isNull); + }); + + test('should return json string if data list is provided', () { + final data = ['data1', 'data2', 'data3']; + final res = listConverter.toSql(data); + expect(res, jsonEncode(data)); + }); }); }); } diff --git a/packages/stream_chat_persistence/test/src/converter/map_converter_test.dart b/packages/stream_chat_persistence/test/src/converter/map_converter_test.dart index c7754892..78faa936 100644 --- a/packages/stream_chat_persistence/test/src/converter/map_converter_test.dart +++ b/packages/stream_chat_persistence/test/src/converter/map_converter_test.dart @@ -4,61 +4,109 @@ import 'package:flutter_test/flutter_test.dart'; import 'package:stream_chat_persistence/src/converter/map_converter.dart'; void main() { - group('mapToDart', () { + group('MapConverter', () { final mapConverter = MapConverter(); - test('should return null if nothing is provided', () { - final res = mapConverter.mapToDart(null); - expect(res, isNull); - }); - - test('should throw type error if the provided json is not a map', () { - const json = ['testData1', 'testData2', 'testData3']; - expect( - () => mapConverter.mapToDart(jsonEncode(json)), - throwsA(isA()), - ); - }); - - test( - 'should throw type error if the provided json is not a ' - 'map of String, String', - () { - const json = {'test_key': 22, 'test_key2': 33, 'test_key3': 44}; + group('fromSql', () { + test('should throw type error if the provided json is not a map', () { + const json = ['testData1', 'testData2', 'testData3']; expect( - () => mapConverter.mapToDart(jsonEncode(json)), + () => mapConverter.fromSql(jsonEncode(json)), throwsA(isA()), ); - }, - ); + }); - test('should return map of String, String if json data is provided', () { - const data = { - 'test_key': 'testValue', - 'test_key2': 'testValue2', - 'test_key3': 'testValue3', - }; - final res = mapConverter.mapToDart(jsonEncode(data)); - expect(res, data); + test( + 'should throw type error if the provided json is not a ' + 'map of String, String', + () { + const json = {'test_key': 22, 'test_key2': 33, 'test_key3': 44}; + expect( + () => mapConverter.fromSql(jsonEncode(json)), + throwsA(isA()), + ); + }, + ); + + test('should return map of String, String if json data is provided', () { + const data = { + 'test_key': 'testValue', + 'test_key2': 'testValue2', + 'test_key3': 'testValue3', + }; + final res = mapConverter.fromSql(jsonEncode(data)); + expect(res, data); + }); + }); + + group('toSql', () { + test('should return json string if data map is provided', () { + const data = { + 'test_key': 'testValue', + 'test_key2': 'testValue2', + 'test_key3': 'testValue3', + }; + final res = mapConverter.toSql(data); + expect(res, jsonEncode(data)); + }); }); }); - group('mapToSql', () { - final mapConverter = MapConverter(); + group('NullableMapConverter', () { + final mapConverter = NullableMapConverter(); - test('should return null if nothing is provided', () { - final res = mapConverter.mapToSql(null); - expect(res, isNull); + group('fromSql', () { + test('should return null if nothing is provided', () { + final res = mapConverter.fromSql(null); + expect(res, isNull); + }); + + test('should throw type error if the provided json is not a map', () { + const json = ['testData1', 'testData2', 'testData3']; + expect( + () => mapConverter.fromSql(jsonEncode(json)), + throwsA(isA()), + ); + }); + + test( + 'should throw type error if the provided json is not a ' + 'map of String, String', + () { + const json = {'test_key': 22, 'test_key2': 33, 'test_key3': 44}; + expect( + () => mapConverter.fromSql(jsonEncode(json)), + throwsA(isA()), + ); + }, + ); + + test('should return map of String, String if json data is provided', () { + const data = { + 'test_key': 'testValue', + 'test_key2': 'testValue2', + 'test_key3': 'testValue3', + }; + final res = mapConverter.fromSql(jsonEncode(data)); + expect(res, data); + }); }); - test('should return json string if data map is provided', () { - const data = { - 'test_key': 'testValue', - 'test_key2': 'testValue2', - 'test_key3': 'testValue3', - }; - final res = mapConverter.mapToSql(data); - expect(res, jsonEncode(data)); + group('toSql', () { + test('should return null if nothing is provided', () { + final res = mapConverter.toSql(null); + expect(res, isNull); + }); + + test('should return json string if data map is provided', () { + const data = { + 'test_key': 'testValue', + 'test_key2': 'testValue2', + 'test_key3': 'testValue3', + }; + final res = mapConverter.toSql(data); + expect(res, jsonEncode(data)); + }); }); }); } diff --git a/packages/stream_chat_persistence/test/src/converter/message_sending_status_converter_test.dart b/packages/stream_chat_persistence/test/src/converter/message_sending_status_converter_test.dart index 840f0469..9961f917 100644 --- a/packages/stream_chat_persistence/test/src/converter/message_sending_status_converter_test.dart +++ b/packages/stream_chat_persistence/test/src/converter/message_sending_status_converter_test.dart @@ -3,31 +3,21 @@ import 'package:stream_chat/stream_chat.dart'; import 'package:stream_chat_persistence/src/converter/message_sending_status_converter.dart'; void main() { - group('mapToDart', () { + group('fromSql', () { final statusConverter = MessageSendingStatusConverter(); - test('should return null if nothing is provided', () { - final res = statusConverter.mapToDart(null); - expect(res, isNull); - }); - test('should return expected status if status code is provided', () { - final res = statusConverter.mapToDart(3); - expect(res, MessageSendingStatus.updating); + final res = statusConverter.fromSql(6); + expect(res, MessageSendingStatus.failed_delete); }); }); - group('mapToSql', () { + group('toSql', () { final statusConverter = MessageSendingStatusConverter(); - test('should return null if nothing is provided', () { - final res = statusConverter.mapToSql(null); - expect(res, isNull); - }); - test('should return expected code if the status is provided', () { - final res = statusConverter.mapToSql(MessageSendingStatus.updating); - expect(res, 3); + final res = statusConverter.toSql(MessageSendingStatus.failed_delete); + expect(res, 6); }); }); } diff --git a/packages/stream_chat_persistence/test/src/db/drift_chat_database_test.dart b/packages/stream_chat_persistence/test/src/db/drift_chat_database_test.dart index 441f186d..996c152f 100644 --- a/packages/stream_chat_persistence/test/src/db/drift_chat_database_test.dart +++ b/packages/stream_chat_persistence/test/src/db/drift_chat_database_test.dart @@ -5,7 +5,7 @@ import 'package:flutter_test/flutter_test.dart'; import 'package:stream_chat_persistence/src/db/drift_chat_database.dart'; DatabaseConnection _backgroundConnection() => - DatabaseConnection.fromExecutor(NativeDatabase.memory()); + DatabaseConnection(NativeDatabase.memory()); void main() { test( @@ -30,7 +30,7 @@ void main() { final isolate = await DriftIsolate.spawn(_backgroundConnection); final connection = DatabaseConnection.delayed(isolate.connect()); - final database = DriftChatDatabase.connect(userId, connection); + final database = DriftChatDatabase(userId, connection); expect(database, isNotNull); expect(database.userId, userId);