diff --git a/ios/Podfile.lock b/ios/Podfile.lock index 1999432..af2a0c8 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -19,6 +19,9 @@ PODS: - Flutter - share_plus (0.0.1): - Flutter + - sqflite_darwin (0.0.4): + - Flutter + - FlutterMacOS - sqlite3 (3.52.0): - sqlite3/common (= 3.52.0) - sqlite3/common (3.52.0) @@ -86,6 +89,7 @@ DEPENDENCIES: - package_info_plus (from `.symlinks/plugins/package_info_plus/ios`) - permission_handler_apple (from `.symlinks/plugins/permission_handler_apple/ios`) - share_plus (from `.symlinks/plugins/share_plus/ios`) + - sqflite_darwin (from `.symlinks/plugins/sqflite_darwin/darwin`) - sqlite3_flutter_libs (from `.symlinks/plugins/sqlite3_flutter_libs/darwin`) - tflite_flutter (from `.symlinks/plugins/tflite_flutter/ios`) - url_launcher_ios (from `.symlinks/plugins/url_launcher_ios/ios`) @@ -119,6 +123,8 @@ EXTERNAL SOURCES: :path: ".symlinks/plugins/permission_handler_apple/ios" share_plus: :path: ".symlinks/plugins/share_plus/ios" + sqflite_darwin: + :path: ".symlinks/plugins/sqflite_darwin/darwin" sqlite3_flutter_libs: :path: ".symlinks/plugins/sqlite3_flutter_libs/darwin" tflite_flutter: @@ -143,6 +149,7 @@ SPEC CHECKSUMS: package_info_plus: af8e2ca6888548050f16fa2f1938db7b5a5df499 permission_handler_apple: 4ed2196e43d0651e8ff7ca3483a069d469701f2d share_plus: 50da8cb520a8f0f65671c6c6a99b3617ed10a58a + sqflite_darwin: 20b2a3a3b70e43edae938624ce550a3cbf66a3d0 sqlite3: a51c07cf16e023d6c48abd5e5791a61a47354921 sqlite3_flutter_libs: b3e120efe9a82017e5552a620f696589ed4f62ab TensorFlowLiteC: 20785a69299185a379ba9852b6625f00afd7984a diff --git a/lib/core/cache/lazurite_image_cache.dart b/lib/core/cache/lazurite_image_cache.dart new file mode 100644 index 0000000..4622e7f --- /dev/null +++ b/lib/core/cache/lazurite_image_cache.dart @@ -0,0 +1,25 @@ +import 'package:cached_network_image/cached_network_image.dart'; +import 'package:flutter/widgets.dart'; +import 'package:flutter_cache_manager/flutter_cache_manager.dart'; +import 'package:lazurite/core/cache/offline_cache_policy.dart'; + +class LazuriteImageCacheManager { + LazuriteImageCacheManager._(); + + static final CacheManager instance = CacheManager( + Config( + 'lazurite_image_cache_v1', + stalePeriod: OfflineCachePolicy.imageStalePeriod, + maxNrOfCacheObjects: OfflineCachePolicy.imageObjectLimit, + ), + ); +} + +ImageProvider? appCachedImageProvider(String? imageUrl) { + final url = imageUrl?.trim(); + if (url == null || url.isEmpty) { + return null; + } + + return CachedNetworkImageProvider(url, cacheManager: LazuriteImageCacheManager.instance); +} diff --git a/lib/core/cache/offline_cache_policy.dart b/lib/core/cache/offline_cache_policy.dart new file mode 100644 index 0000000..e7a425c --- /dev/null +++ b/lib/core/cache/offline_cache_policy.dart @@ -0,0 +1,11 @@ +/// Includes balanced profile defaults. +class OfflineCachePolicy { + const OfflineCachePolicy._(); + + static const int feedPostLimit = 250; + static const int threadRootLimit = 100; + static const int imageObjectLimit = 300; + static const Duration imageStalePeriod = Duration(days: 7); + static const int imageMemoryEntryLimit = 300; + static const int imageMemoryByteLimit = 60 * 1024 * 1024; +} diff --git a/lib/core/database/app_database.dart b/lib/core/database/app_database.dart index 51de45d..60981be 100644 --- a/lib/core/database/app_database.dart +++ b/lib/core/database/app_database.dart @@ -13,6 +13,8 @@ part 'app_database.g.dart'; Settings, SavedFeeds, CachedFeedPages, + CachedFeedPosts, + CachedThreadRoots, SearchHistory, Drafts, SavedPosts, @@ -26,7 +28,7 @@ class AppDatabase extends _$AppDatabase { static const activeAccountDidSettingKey = 'active_account_did'; @override - int get schemaVersion => 19; + int get schemaVersion => 20; @override MigrationStrategy get migration => MigrationStrategy( @@ -137,6 +139,10 @@ class AppDatabase extends _$AppDatabase { "INSERT OR IGNORE INTO settings (key, value) VALUES ('slingshot_identity_fallback_enabled', 'false')", ); } + if (from < 20) { + await migrator.createTable(cachedFeedPosts); + await migrator.createTable(cachedThreadRoots); + } }, ); @@ -275,6 +281,107 @@ class AppDatabase extends _$AppDatabase { )..where((entry) => entry.accountDid.equals(accountDid) & entry.feedKey.equals(feedKey))).go(); } + Future upsertCachedFeedPosts({ + required String accountDid, + required String feedKey, + required Iterable posts, + }) async { + await batch((batch) { + for (final post in posts) { + batch.insert(cachedFeedPosts, post, mode: InsertMode.replace); + } + }); + } + + Future> getCachedFeedPosts(String accountDid, String feedKey) { + return (select(cachedFeedPosts) + ..where((entry) => entry.accountDid.equals(accountDid) & entry.feedKey.equals(feedKey)) + ..orderBy([(entry) => OrderingTerm.desc(entry.sortOrder)])) + .get(); + } + + Future deleteCachedFeedPostsForFeed(String accountDid, String feedKey) { + return (delete( + cachedFeedPosts, + )..where((entry) => entry.accountDid.equals(accountDid) & entry.feedKey.equals(feedKey))).go(); + } + + Future pruneCachedFeedPosts({ + required String accountDid, + required String feedKey, + required int maxCount, + }) async { + final all = + await (select(cachedFeedPosts) + ..where((entry) => entry.accountDid.equals(accountDid) & entry.feedKey.equals(feedKey)) + ..orderBy([(entry) => OrderingTerm.desc(entry.sortOrder)])) + .get(); + if (all.length <= maxCount) { + return; + } + + final toDelete = all.skip(maxCount); + await batch((batch) { + for (final entry in toDelete) { + batch.deleteWhere( + cachedFeedPosts, + (tbl) => + tbl.accountDid.equals(entry.accountDid) & + tbl.feedKey.equals(entry.feedKey) & + tbl.postUri.equals(entry.postUri), + ); + } + }); + } + + Future cacheThreadRoot({ + required String accountDid, + required String rootUri, + required String payload, + DateTime? fetchedAt, + }) => into(cachedThreadRoots).insert( + CachedThreadRootsCompanion( + accountDid: Value(accountDid), + rootUri: Value(rootUri), + payload: Value(payload), + fetchedAt: Value(fetchedAt ?? DateTime.now()), + ), + mode: InsertMode.replace, + ); + + Future getCachedThreadRoot(String accountDid, String rootUri) { + return (select( + cachedThreadRoots, + )..where((entry) => entry.accountDid.equals(accountDid) & entry.rootUri.equals(rootUri))).getSingleOrNull(); + } + + Future deleteCachedThreadRoot(String accountDid, String rootUri) { + return (delete( + cachedThreadRoots, + )..where((entry) => entry.accountDid.equals(accountDid) & entry.rootUri.equals(rootUri))).go(); + } + + Future pruneCachedThreadRoots(String accountDid, int maxCount) async { + final all = + await (select(cachedThreadRoots) + ..where((entry) => entry.accountDid.equals(accountDid)) + ..orderBy([(entry) => OrderingTerm.desc(entry.fetchedAt)])) + .get(); + if (all.length <= maxCount) { + return; + } + + final toDelete = all.skip(maxCount); + await batch((batch) { + for (final entry in toDelete) { + batch.deleteWhere( + cachedThreadRoots, + (tbl) => tbl.accountDid.equals(entry.accountDid) & tbl.rootUri.equals(entry.rootUri), + ); + } + }); + } + Future replaceSavedFeeds(String accountDid, List feeds) async { await transaction(() async { await deleteAllSavedFeeds(accountDid); diff --git a/lib/core/database/app_database.g.dart b/lib/core/database/app_database.g.dart index 50938e5..151e45b 100644 --- a/lib/core/database/app_database.g.dart +++ b/lib/core/database/app_database.g.dart @@ -26,7 +26,9 @@ class $AccountsTable extends Accounts with TableInfo<$AccountsTable, Account> { type: DriftSqlType.string, requiredDuringInsert: true, ); - static const VerificationMeta _displayNameMeta = const VerificationMeta('displayName'); + static const VerificationMeta _displayNameMeta = const VerificationMeta( + 'displayName', + ); @override late final GeneratedColumn displayName = GeneratedColumn( 'display_name', @@ -35,7 +37,9 @@ class $AccountsTable extends Accounts with TableInfo<$AccountsTable, Account> { type: DriftSqlType.string, requiredDuringInsert: false, ); - static const VerificationMeta _serviceMeta = const VerificationMeta('service'); + static const VerificationMeta _serviceMeta = const VerificationMeta( + 'service', + ); @override late final GeneratedColumn service = GeneratedColumn( 'service', @@ -44,7 +48,9 @@ class $AccountsTable extends Accounts with TableInfo<$AccountsTable, Account> { type: DriftSqlType.string, requiredDuringInsert: false, ); - static const VerificationMeta _oauthServiceMeta = const VerificationMeta('oauthService'); + static const VerificationMeta _oauthServiceMeta = const VerificationMeta( + 'oauthService', + ); @override late final GeneratedColumn oauthService = GeneratedColumn( 'oauth_service', @@ -53,7 +59,9 @@ class $AccountsTable extends Accounts with TableInfo<$AccountsTable, Account> { type: DriftSqlType.string, requiredDuringInsert: false, ); - static const VerificationMeta _accessTokenMeta = const VerificationMeta('accessToken'); + static const VerificationMeta _accessTokenMeta = const VerificationMeta( + 'accessToken', + ); @override late final GeneratedColumn accessToken = GeneratedColumn( 'access_token', @@ -62,7 +70,9 @@ class $AccountsTable extends Accounts with TableInfo<$AccountsTable, Account> { type: DriftSqlType.string, requiredDuringInsert: true, ); - static const VerificationMeta _refreshTokenMeta = const VerificationMeta('refreshToken'); + static const VerificationMeta _refreshTokenMeta = const VerificationMeta( + 'refreshToken', + ); @override late final GeneratedColumn refreshToken = GeneratedColumn( 'refresh_token', @@ -71,7 +81,9 @@ class $AccountsTable extends Accounts with TableInfo<$AccountsTable, Account> { type: DriftSqlType.string, requiredDuringInsert: false, ); - static const VerificationMeta _dpopPublicKeyMeta = const VerificationMeta('dpopPublicKey'); + static const VerificationMeta _dpopPublicKeyMeta = const VerificationMeta( + 'dpopPublicKey', + ); @override late final GeneratedColumn dpopPublicKey = GeneratedColumn( 'dpop_public_key', @@ -80,7 +92,9 @@ class $AccountsTable extends Accounts with TableInfo<$AccountsTable, Account> { type: DriftSqlType.string, requiredDuringInsert: false, ); - static const VerificationMeta _dpopPrivateKeyMeta = const VerificationMeta('dpopPrivateKey'); + static const VerificationMeta _dpopPrivateKeyMeta = const VerificationMeta( + 'dpopPrivateKey', + ); @override late final GeneratedColumn dpopPrivateKey = GeneratedColumn( 'dpop_private_key', @@ -89,7 +103,9 @@ class $AccountsTable extends Accounts with TableInfo<$AccountsTable, Account> { type: DriftSqlType.string, requiredDuringInsert: false, ); - static const VerificationMeta _dpopNonceMeta = const VerificationMeta('dpopNonce'); + static const VerificationMeta _dpopNonceMeta = const VerificationMeta( + 'dpopNonce', + ); @override late final GeneratedColumn dpopNonce = GeneratedColumn( 'dpop_nonce', @@ -98,7 +114,9 @@ class $AccountsTable extends Accounts with TableInfo<$AccountsTable, Account> { type: DriftSqlType.string, requiredDuringInsert: false, ); - static const VerificationMeta _expiresAtMeta = const VerificationMeta('expiresAt'); + static const VerificationMeta _expiresAtMeta = const VerificationMeta( + 'expiresAt', + ); @override late final GeneratedColumn expiresAt = GeneratedColumn( 'expires_at', @@ -107,7 +125,9 @@ class $AccountsTable extends Accounts with TableInfo<$AccountsTable, Account> { type: DriftSqlType.dateTime, requiredDuringInsert: false, ); - static const VerificationMeta _createdAtMeta = const VerificationMeta('createdAt'); + static const VerificationMeta _createdAtMeta = const VerificationMeta( + 'createdAt', + ); @override late final GeneratedColumn createdAt = GeneratedColumn( 'created_at', @@ -117,7 +137,9 @@ class $AccountsTable extends Accounts with TableInfo<$AccountsTable, Account> { requiredDuringInsert: false, defaultValue: currentDateAndTime, ); - static const VerificationMeta _updatedAtMeta = const VerificationMeta('updatedAt'); + static const VerificationMeta _updatedAtMeta = const VerificationMeta( + 'updatedAt', + ); @override late final GeneratedColumn updatedAt = GeneratedColumn( 'updated_at', @@ -149,59 +171,113 @@ class $AccountsTable extends Accounts with TableInfo<$AccountsTable, Account> { String get actualTableName => $name; static const String $name = 'accounts'; @override - VerificationContext validateIntegrity(Insertable instance, {bool isInserting = false}) { + VerificationContext validateIntegrity( + Insertable instance, { + bool isInserting = false, + }) { final context = VerificationContext(); final data = instance.toColumns(true); if (data.containsKey('did')) { - context.handle(_didMeta, did.isAcceptableOrUnknown(data['did']!, _didMeta)); + context.handle( + _didMeta, + did.isAcceptableOrUnknown(data['did']!, _didMeta), + ); } else if (isInserting) { context.missing(_didMeta); } if (data.containsKey('handle')) { - context.handle(_handleMeta, handle.isAcceptableOrUnknown(data['handle']!, _handleMeta)); + context.handle( + _handleMeta, + handle.isAcceptableOrUnknown(data['handle']!, _handleMeta), + ); } else if (isInserting) { context.missing(_handleMeta); } if (data.containsKey('display_name')) { - context.handle(_displayNameMeta, displayName.isAcceptableOrUnknown(data['display_name']!, _displayNameMeta)); + context.handle( + _displayNameMeta, + displayName.isAcceptableOrUnknown( + data['display_name']!, + _displayNameMeta, + ), + ); } if (data.containsKey('service')) { - context.handle(_serviceMeta, service.isAcceptableOrUnknown(data['service']!, _serviceMeta)); + context.handle( + _serviceMeta, + service.isAcceptableOrUnknown(data['service']!, _serviceMeta), + ); } if (data.containsKey('oauth_service')) { - context.handle(_oauthServiceMeta, oauthService.isAcceptableOrUnknown(data['oauth_service']!, _oauthServiceMeta)); + context.handle( + _oauthServiceMeta, + oauthService.isAcceptableOrUnknown( + data['oauth_service']!, + _oauthServiceMeta, + ), + ); } if (data.containsKey('access_token')) { - context.handle(_accessTokenMeta, accessToken.isAcceptableOrUnknown(data['access_token']!, _accessTokenMeta)); + context.handle( + _accessTokenMeta, + accessToken.isAcceptableOrUnknown( + data['access_token']!, + _accessTokenMeta, + ), + ); } else if (isInserting) { context.missing(_accessTokenMeta); } if (data.containsKey('refresh_token')) { - context.handle(_refreshTokenMeta, refreshToken.isAcceptableOrUnknown(data['refresh_token']!, _refreshTokenMeta)); + context.handle( + _refreshTokenMeta, + refreshToken.isAcceptableOrUnknown( + data['refresh_token']!, + _refreshTokenMeta, + ), + ); } if (data.containsKey('dpop_public_key')) { context.handle( _dpopPublicKeyMeta, - dpopPublicKey.isAcceptableOrUnknown(data['dpop_public_key']!, _dpopPublicKeyMeta), + dpopPublicKey.isAcceptableOrUnknown( + data['dpop_public_key']!, + _dpopPublicKeyMeta, + ), ); } if (data.containsKey('dpop_private_key')) { context.handle( _dpopPrivateKeyMeta, - dpopPrivateKey.isAcceptableOrUnknown(data['dpop_private_key']!, _dpopPrivateKeyMeta), + dpopPrivateKey.isAcceptableOrUnknown( + data['dpop_private_key']!, + _dpopPrivateKeyMeta, + ), ); } if (data.containsKey('dpop_nonce')) { - context.handle(_dpopNonceMeta, dpopNonce.isAcceptableOrUnknown(data['dpop_nonce']!, _dpopNonceMeta)); + context.handle( + _dpopNonceMeta, + dpopNonce.isAcceptableOrUnknown(data['dpop_nonce']!, _dpopNonceMeta), + ); } if (data.containsKey('expires_at')) { - context.handle(_expiresAtMeta, expiresAt.isAcceptableOrUnknown(data['expires_at']!, _expiresAtMeta)); + context.handle( + _expiresAtMeta, + expiresAt.isAcceptableOrUnknown(data['expires_at']!, _expiresAtMeta), + ); } if (data.containsKey('created_at')) { - context.handle(_createdAtMeta, createdAt.isAcceptableOrUnknown(data['created_at']!, _createdAtMeta)); + context.handle( + _createdAtMeta, + createdAt.isAcceptableOrUnknown(data['created_at']!, _createdAtMeta), + ); } if (data.containsKey('updated_at')) { - context.handle(_updatedAtMeta, updatedAt.isAcceptableOrUnknown(data['updated_at']!, _updatedAtMeta)); + context.handle( + _updatedAtMeta, + updatedAt.isAcceptableOrUnknown(data['updated_at']!, _updatedAtMeta), + ); } return context; } @@ -212,22 +288,58 @@ class $AccountsTable extends Accounts with TableInfo<$AccountsTable, Account> { Account map(Map data, {String? tablePrefix}) { final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; return Account( - did: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}did'])!, - handle: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}handle'])!, - displayName: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}display_name']), - service: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}service']), - oauthService: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}oauth_service']), - accessToken: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}access_token'])!, - refreshToken: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}refresh_token']), - dpopPublicKey: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}dpop_public_key']), + did: attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}did'], + )!, + handle: attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}handle'], + )!, + displayName: attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}display_name'], + ), + service: attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}service'], + ), + oauthService: attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}oauth_service'], + ), + accessToken: attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}access_token'], + )!, + refreshToken: attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}refresh_token'], + ), + dpopPublicKey: attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}dpop_public_key'], + ), dpopPrivateKey: attachedDatabase.typeMapping.read( DriftSqlType.string, data['${effectivePrefix}dpop_private_key'], ), - dpopNonce: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}dpop_nonce']), - expiresAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}expires_at']), - createdAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}created_at'])!, - updatedAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}updated_at'])!, + dpopNonce: attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}dpop_nonce'], + ), + expiresAt: attachedDatabase.typeMapping.read( + DriftSqlType.dateTime, + data['${effectivePrefix}expires_at'], + ), + createdAt: attachedDatabase.typeMapping.read( + DriftSqlType.dateTime, + data['${effectivePrefix}created_at'], + )!, + updatedAt: attachedDatabase.typeMapping.read( + DriftSqlType.dateTime, + data['${effectivePrefix}updated_at'], + )!, ); } @@ -305,21 +417,40 @@ class Account extends DataClass implements Insertable { return AccountsCompanion( did: Value(did), handle: Value(handle), - displayName: displayName == null && nullToAbsent ? const Value.absent() : Value(displayName), - service: service == null && nullToAbsent ? const Value.absent() : Value(service), - oauthService: oauthService == null && nullToAbsent ? const Value.absent() : Value(oauthService), + displayName: displayName == null && nullToAbsent + ? const Value.absent() + : Value(displayName), + service: service == null && nullToAbsent + ? const Value.absent() + : Value(service), + oauthService: oauthService == null && nullToAbsent + ? const Value.absent() + : Value(oauthService), accessToken: Value(accessToken), - refreshToken: refreshToken == null && nullToAbsent ? const Value.absent() : Value(refreshToken), - dpopPublicKey: dpopPublicKey == null && nullToAbsent ? const Value.absent() : Value(dpopPublicKey), - dpopPrivateKey: dpopPrivateKey == null && nullToAbsent ? const Value.absent() : Value(dpopPrivateKey), - dpopNonce: dpopNonce == null && nullToAbsent ? const Value.absent() : Value(dpopNonce), - expiresAt: expiresAt == null && nullToAbsent ? const Value.absent() : Value(expiresAt), + refreshToken: refreshToken == null && nullToAbsent + ? const Value.absent() + : Value(refreshToken), + dpopPublicKey: dpopPublicKey == null && nullToAbsent + ? const Value.absent() + : Value(dpopPublicKey), + dpopPrivateKey: dpopPrivateKey == null && nullToAbsent + ? const Value.absent() + : Value(dpopPrivateKey), + dpopNonce: dpopNonce == null && nullToAbsent + ? const Value.absent() + : Value(dpopNonce), + expiresAt: expiresAt == null && nullToAbsent + ? const Value.absent() + : Value(expiresAt), createdAt: Value(createdAt), updatedAt: Value(updatedAt), ); } - factory Account.fromJson(Map json, {ValueSerializer? serializer}) { + factory Account.fromJson( + Map json, { + ValueSerializer? serializer, + }) { serializer ??= driftRuntimeOptions.defaultSerializer; return Account( did: serializer.fromJson(json['did']), @@ -379,8 +510,12 @@ class Account extends DataClass implements Insertable { oauthService: oauthService.present ? oauthService.value : this.oauthService, accessToken: accessToken ?? this.accessToken, refreshToken: refreshToken.present ? refreshToken.value : this.refreshToken, - dpopPublicKey: dpopPublicKey.present ? dpopPublicKey.value : this.dpopPublicKey, - dpopPrivateKey: dpopPrivateKey.present ? dpopPrivateKey.value : this.dpopPrivateKey, + dpopPublicKey: dpopPublicKey.present + ? dpopPublicKey.value + : this.dpopPublicKey, + dpopPrivateKey: dpopPrivateKey.present + ? dpopPrivateKey.value + : this.dpopPrivateKey, dpopNonce: dpopNonce.present ? dpopNonce.value : this.dpopNonce, expiresAt: expiresAt.present ? expiresAt.value : this.expiresAt, createdAt: createdAt ?? this.createdAt, @@ -390,13 +525,25 @@ class Account extends DataClass implements Insertable { return Account( did: data.did.present ? data.did.value : this.did, handle: data.handle.present ? data.handle.value : this.handle, - displayName: data.displayName.present ? data.displayName.value : this.displayName, + displayName: data.displayName.present + ? data.displayName.value + : this.displayName, service: data.service.present ? data.service.value : this.service, - oauthService: data.oauthService.present ? data.oauthService.value : this.oauthService, - accessToken: data.accessToken.present ? data.accessToken.value : this.accessToken, - refreshToken: data.refreshToken.present ? data.refreshToken.value : this.refreshToken, - dpopPublicKey: data.dpopPublicKey.present ? data.dpopPublicKey.value : this.dpopPublicKey, - dpopPrivateKey: data.dpopPrivateKey.present ? data.dpopPrivateKey.value : this.dpopPrivateKey, + oauthService: data.oauthService.present + ? data.oauthService.value + : this.oauthService, + accessToken: data.accessToken.present + ? data.accessToken.value + : this.accessToken, + refreshToken: data.refreshToken.present + ? data.refreshToken.value + : this.refreshToken, + dpopPublicKey: data.dpopPublicKey.present + ? data.dpopPublicKey.value + : this.dpopPublicKey, + dpopPrivateKey: data.dpopPrivateKey.present + ? data.dpopPrivateKey.value + : this.dpopPrivateKey, dpopNonce: data.dpopNonce.present ? data.dpopNonce.value : this.dpopNonce, expiresAt: data.expiresAt.present ? data.expiresAt.value : this.expiresAt, createdAt: data.createdAt.present ? data.createdAt.value : this.createdAt, @@ -646,7 +793,8 @@ class AccountsCompanion extends UpdateCompanion { } } -class $CachedProfilesTable extends CachedProfiles with TableInfo<$CachedProfilesTable, CachedProfile> { +class $CachedProfilesTable extends CachedProfiles + with TableInfo<$CachedProfilesTable, CachedProfile> { @override final GeneratedDatabase attachedDatabase; final String? _alias; @@ -669,7 +817,9 @@ class $CachedProfilesTable extends CachedProfiles with TableInfo<$CachedProfiles type: DriftSqlType.string, requiredDuringInsert: true, ); - static const VerificationMeta _payloadMeta = const VerificationMeta('payload'); + static const VerificationMeta _payloadMeta = const VerificationMeta( + 'payload', + ); @override late final GeneratedColumn payload = GeneratedColumn( 'payload', @@ -678,7 +828,9 @@ class $CachedProfilesTable extends CachedProfiles with TableInfo<$CachedProfiles type: DriftSqlType.string, requiredDuringInsert: true, ); - static const VerificationMeta _fetchedAtMeta = const VerificationMeta('fetchedAt'); + static const VerificationMeta _fetchedAtMeta = const VerificationMeta( + 'fetchedAt', + ); @override late final GeneratedColumn fetchedAt = GeneratedColumn( 'fetched_at', @@ -696,26 +848,41 @@ class $CachedProfilesTable extends CachedProfiles with TableInfo<$CachedProfiles String get actualTableName => $name; static const String $name = 'cached_profiles'; @override - VerificationContext validateIntegrity(Insertable instance, {bool isInserting = false}) { + VerificationContext validateIntegrity( + Insertable instance, { + bool isInserting = false, + }) { final context = VerificationContext(); final data = instance.toColumns(true); if (data.containsKey('did')) { - context.handle(_didMeta, did.isAcceptableOrUnknown(data['did']!, _didMeta)); + context.handle( + _didMeta, + did.isAcceptableOrUnknown(data['did']!, _didMeta), + ); } else if (isInserting) { context.missing(_didMeta); } if (data.containsKey('handle')) { - context.handle(_handleMeta, handle.isAcceptableOrUnknown(data['handle']!, _handleMeta)); + context.handle( + _handleMeta, + handle.isAcceptableOrUnknown(data['handle']!, _handleMeta), + ); } else if (isInserting) { context.missing(_handleMeta); } if (data.containsKey('payload')) { - context.handle(_payloadMeta, payload.isAcceptableOrUnknown(data['payload']!, _payloadMeta)); + context.handle( + _payloadMeta, + payload.isAcceptableOrUnknown(data['payload']!, _payloadMeta), + ); } else if (isInserting) { context.missing(_payloadMeta); } if (data.containsKey('fetched_at')) { - context.handle(_fetchedAtMeta, fetchedAt.isAcceptableOrUnknown(data['fetched_at']!, _fetchedAtMeta)); + context.handle( + _fetchedAtMeta, + fetchedAt.isAcceptableOrUnknown(data['fetched_at']!, _fetchedAtMeta), + ); } return context; } @@ -726,10 +893,22 @@ class $CachedProfilesTable extends CachedProfiles with TableInfo<$CachedProfiles CachedProfile map(Map data, {String? tablePrefix}) { final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; return CachedProfile( - did: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}did'])!, - handle: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}handle'])!, - payload: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}payload'])!, - fetchedAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}fetched_at'])!, + did: attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}did'], + )!, + handle: attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}handle'], + )!, + payload: attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}payload'], + )!, + fetchedAt: attachedDatabase.typeMapping.read( + DriftSqlType.dateTime, + data['${effectivePrefix}fetched_at'], + )!, ); } @@ -744,7 +923,12 @@ class CachedProfile extends DataClass implements Insertable { final String handle; final String payload; final DateTime fetchedAt; - const CachedProfile({required this.did, required this.handle, required this.payload, required this.fetchedAt}); + const CachedProfile({ + required this.did, + required this.handle, + required this.payload, + required this.fetchedAt, + }); @override Map toColumns(bool nullToAbsent) { final map = {}; @@ -764,7 +948,10 @@ class CachedProfile extends DataClass implements Insertable { ); } - factory CachedProfile.fromJson(Map json, {ValueSerializer? serializer}) { + factory CachedProfile.fromJson( + Map json, { + ValueSerializer? serializer, + }) { serializer ??= driftRuntimeOptions.defaultSerializer; return CachedProfile( did: serializer.fromJson(json['did']), @@ -784,7 +971,12 @@ class CachedProfile extends DataClass implements Insertable { }; } - CachedProfile copyWith({String? did, String? handle, String? payload, DateTime? fetchedAt}) => CachedProfile( + CachedProfile copyWith({ + String? did, + String? handle, + String? payload, + DateTime? fetchedAt, + }) => CachedProfile( did: did ?? this.did, handle: handle ?? this.handle, payload: payload ?? this.payload, @@ -910,7 +1102,8 @@ class CachedProfilesCompanion extends UpdateCompanion { } } -class $CachedPostsTable extends CachedPosts with TableInfo<$CachedPostsTable, CachedPost> { +class $CachedPostsTable extends CachedPosts + with TableInfo<$CachedPostsTable, CachedPost> { @override final GeneratedDatabase attachedDatabase; final String? _alias; @@ -924,7 +1117,9 @@ class $CachedPostsTable extends CachedPosts with TableInfo<$CachedPostsTable, Ca type: DriftSqlType.string, requiredDuringInsert: true, ); - static const VerificationMeta _authorDidMeta = const VerificationMeta('authorDid'); + static const VerificationMeta _authorDidMeta = const VerificationMeta( + 'authorDid', + ); @override late final GeneratedColumn authorDid = GeneratedColumn( 'author_did', @@ -933,7 +1128,9 @@ class $CachedPostsTable extends CachedPosts with TableInfo<$CachedPostsTable, Ca type: DriftSqlType.string, requiredDuringInsert: true, ); - static const VerificationMeta _accountDidMeta = const VerificationMeta('accountDid'); + static const VerificationMeta _accountDidMeta = const VerificationMeta( + 'accountDid', + ); @override late final GeneratedColumn accountDid = GeneratedColumn( 'account_did', @@ -942,7 +1139,9 @@ class $CachedPostsTable extends CachedPosts with TableInfo<$CachedPostsTable, Ca type: DriftSqlType.string, requiredDuringInsert: false, ); - static const VerificationMeta _payloadMeta = const VerificationMeta('payload'); + static const VerificationMeta _payloadMeta = const VerificationMeta( + 'payload', + ); @override late final GeneratedColumn payload = GeneratedColumn( 'payload', @@ -951,7 +1150,9 @@ class $CachedPostsTable extends CachedPosts with TableInfo<$CachedPostsTable, Ca type: DriftSqlType.string, requiredDuringInsert: true, ); - static const VerificationMeta _createdAtMeta = const VerificationMeta('createdAt'); + static const VerificationMeta _createdAtMeta = const VerificationMeta( + 'createdAt', + ); @override late final GeneratedColumn createdAt = GeneratedColumn( 'created_at', @@ -960,7 +1161,9 @@ class $CachedPostsTable extends CachedPosts with TableInfo<$CachedPostsTable, Ca type: DriftSqlType.dateTime, requiredDuringInsert: false, ); - static const VerificationMeta _fetchedAtMeta = const VerificationMeta('fetchedAt'); + static const VerificationMeta _fetchedAtMeta = const VerificationMeta( + 'fetchedAt', + ); @override late final GeneratedColumn fetchedAt = GeneratedColumn( 'fetched_at', @@ -971,39 +1174,67 @@ class $CachedPostsTable extends CachedPosts with TableInfo<$CachedPostsTable, Ca defaultValue: currentDateAndTime, ); @override - List get $columns => [uri, authorDid, accountDid, payload, createdAt, fetchedAt]; + List get $columns => [ + uri, + authorDid, + accountDid, + payload, + createdAt, + fetchedAt, + ]; @override String get aliasedName => _alias ?? actualTableName; @override String get actualTableName => $name; static const String $name = 'cached_posts'; @override - VerificationContext validateIntegrity(Insertable instance, {bool isInserting = false}) { + VerificationContext validateIntegrity( + Insertable instance, { + bool isInserting = false, + }) { final context = VerificationContext(); final data = instance.toColumns(true); if (data.containsKey('uri')) { - context.handle(_uriMeta, uri.isAcceptableOrUnknown(data['uri']!, _uriMeta)); + context.handle( + _uriMeta, + uri.isAcceptableOrUnknown(data['uri']!, _uriMeta), + ); } else if (isInserting) { context.missing(_uriMeta); } if (data.containsKey('author_did')) { - context.handle(_authorDidMeta, authorDid.isAcceptableOrUnknown(data['author_did']!, _authorDidMeta)); + context.handle( + _authorDidMeta, + authorDid.isAcceptableOrUnknown(data['author_did']!, _authorDidMeta), + ); } else if (isInserting) { context.missing(_authorDidMeta); } if (data.containsKey('account_did')) { - context.handle(_accountDidMeta, accountDid.isAcceptableOrUnknown(data['account_did']!, _accountDidMeta)); + context.handle( + _accountDidMeta, + accountDid.isAcceptableOrUnknown(data['account_did']!, _accountDidMeta), + ); } if (data.containsKey('payload')) { - context.handle(_payloadMeta, payload.isAcceptableOrUnknown(data['payload']!, _payloadMeta)); + context.handle( + _payloadMeta, + payload.isAcceptableOrUnknown(data['payload']!, _payloadMeta), + ); } else if (isInserting) { context.missing(_payloadMeta); } if (data.containsKey('created_at')) { - context.handle(_createdAtMeta, createdAt.isAcceptableOrUnknown(data['created_at']!, _createdAtMeta)); + context.handle( + _createdAtMeta, + createdAt.isAcceptableOrUnknown(data['created_at']!, _createdAtMeta), + ); } if (data.containsKey('fetched_at')) { - context.handle(_fetchedAtMeta, fetchedAt.isAcceptableOrUnknown(data['fetched_at']!, _fetchedAtMeta)); + context.handle( + _fetchedAtMeta, + fetchedAt.isAcceptableOrUnknown(data['fetched_at']!, _fetchedAtMeta), + ); } return context; } @@ -1014,12 +1245,30 @@ class $CachedPostsTable extends CachedPosts with TableInfo<$CachedPostsTable, Ca CachedPost map(Map data, {String? tablePrefix}) { final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; return CachedPost( - uri: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}uri'])!, - authorDid: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}author_did'])!, - accountDid: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}account_did']), - payload: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}payload'])!, - createdAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}created_at']), - fetchedAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}fetched_at'])!, + uri: attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}uri'], + )!, + authorDid: attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}author_did'], + )!, + accountDid: attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}account_did'], + ), + payload: attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}payload'], + )!, + createdAt: attachedDatabase.typeMapping.read( + DriftSqlType.dateTime, + data['${effectivePrefix}created_at'], + ), + fetchedAt: attachedDatabase.typeMapping.read( + DriftSqlType.dateTime, + data['${effectivePrefix}fetched_at'], + )!, ); } @@ -1064,14 +1313,21 @@ class CachedPost extends DataClass implements Insertable { return CachedPostsCompanion( uri: Value(uri), authorDid: Value(authorDid), - accountDid: accountDid == null && nullToAbsent ? const Value.absent() : Value(accountDid), + accountDid: accountDid == null && nullToAbsent + ? const Value.absent() + : Value(accountDid), payload: Value(payload), - createdAt: createdAt == null && nullToAbsent ? const Value.absent() : Value(createdAt), + createdAt: createdAt == null && nullToAbsent + ? const Value.absent() + : Value(createdAt), fetchedAt: Value(fetchedAt), ); } - factory CachedPost.fromJson(Map json, {ValueSerializer? serializer}) { + factory CachedPost.fromJson( + Map json, { + ValueSerializer? serializer, + }) { serializer ??= driftRuntimeOptions.defaultSerializer; return CachedPost( uri: serializer.fromJson(json['uri']), @@ -1114,7 +1370,9 @@ class CachedPost extends DataClass implements Insertable { return CachedPost( uri: data.uri.present ? data.uri.value : this.uri, authorDid: data.authorDid.present ? data.authorDid.value : this.authorDid, - accountDid: data.accountDid.present ? data.accountDid.value : this.accountDid, + accountDid: data.accountDid.present + ? data.accountDid.value + : this.accountDid, payload: data.payload.present ? data.payload.value : this.payload, createdAt: data.createdAt.present ? data.createdAt.value : this.createdAt, fetchedAt: data.fetchedAt.present ? data.fetchedAt.value : this.fetchedAt, @@ -1135,7 +1393,8 @@ class CachedPost extends DataClass implements Insertable { } @override - int get hashCode => Object.hash(uri, authorDid, accountDid, payload, createdAt, fetchedAt); + int get hashCode => + Object.hash(uri, authorDid, accountDid, payload, createdAt, fetchedAt); @override bool operator ==(Object other) => identical(this, other) || @@ -1258,7 +1517,8 @@ class CachedPostsCompanion extends UpdateCompanion { } } -class $SettingsTable extends Settings with TableInfo<$SettingsTable, SettingsEntry> { +class $SettingsTable extends Settings + with TableInfo<$SettingsTable, SettingsEntry> { @override final GeneratedDatabase attachedDatabase; final String? _alias; @@ -1281,7 +1541,9 @@ class $SettingsTable extends Settings with TableInfo<$SettingsTable, SettingsEnt type: DriftSqlType.string, requiredDuringInsert: true, ); - static const VerificationMeta _updatedAtMeta = const VerificationMeta('updatedAt'); + static const VerificationMeta _updatedAtMeta = const VerificationMeta( + 'updatedAt', + ); @override late final GeneratedColumn updatedAt = GeneratedColumn( 'updated_at', @@ -1299,21 +1561,33 @@ class $SettingsTable extends Settings with TableInfo<$SettingsTable, SettingsEnt String get actualTableName => $name; static const String $name = 'settings'; @override - VerificationContext validateIntegrity(Insertable instance, {bool isInserting = false}) { + VerificationContext validateIntegrity( + Insertable instance, { + bool isInserting = false, + }) { final context = VerificationContext(); final data = instance.toColumns(true); if (data.containsKey('key')) { - context.handle(_keyMeta, key.isAcceptableOrUnknown(data['key']!, _keyMeta)); + context.handle( + _keyMeta, + key.isAcceptableOrUnknown(data['key']!, _keyMeta), + ); } else if (isInserting) { context.missing(_keyMeta); } if (data.containsKey('value')) { - context.handle(_valueMeta, value.isAcceptableOrUnknown(data['value']!, _valueMeta)); + context.handle( + _valueMeta, + value.isAcceptableOrUnknown(data['value']!, _valueMeta), + ); } else if (isInserting) { context.missing(_valueMeta); } if (data.containsKey('updated_at')) { - context.handle(_updatedAtMeta, updatedAt.isAcceptableOrUnknown(data['updated_at']!, _updatedAtMeta)); + context.handle( + _updatedAtMeta, + updatedAt.isAcceptableOrUnknown(data['updated_at']!, _updatedAtMeta), + ); } return context; } @@ -1324,9 +1598,18 @@ class $SettingsTable extends Settings with TableInfo<$SettingsTable, SettingsEnt SettingsEntry map(Map data, {String? tablePrefix}) { final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; return SettingsEntry( - key: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}key'])!, - value: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}value'])!, - updatedAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}updated_at'])!, + key: attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}key'], + )!, + value: attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}value'], + )!, + updatedAt: attachedDatabase.typeMapping.read( + DriftSqlType.dateTime, + data['${effectivePrefix}updated_at'], + )!, ); } @@ -1340,7 +1623,11 @@ class SettingsEntry extends DataClass implements Insertable { final String key; final String value; final DateTime updatedAt; - const SettingsEntry({required this.key, required this.value, required this.updatedAt}); + const SettingsEntry({ + required this.key, + required this.value, + required this.updatedAt, + }); @override Map toColumns(bool nullToAbsent) { final map = {}; @@ -1351,10 +1638,17 @@ class SettingsEntry extends DataClass implements Insertable { } SettingsCompanion toCompanion(bool nullToAbsent) { - return SettingsCompanion(key: Value(key), value: Value(value), updatedAt: Value(updatedAt)); + return SettingsCompanion( + key: Value(key), + value: Value(value), + updatedAt: Value(updatedAt), + ); } - factory SettingsEntry.fromJson(Map json, {ValueSerializer? serializer}) { + factory SettingsEntry.fromJson( + Map json, { + ValueSerializer? serializer, + }) { serializer ??= driftRuntimeOptions.defaultSerializer; return SettingsEntry( key: serializer.fromJson(json['key']), @@ -1373,7 +1667,11 @@ class SettingsEntry extends DataClass implements Insertable { } SettingsEntry copyWith({String? key, String? value, DateTime? updatedAt}) => - SettingsEntry(key: key ?? this.key, value: value ?? this.value, updatedAt: updatedAt ?? this.updatedAt); + SettingsEntry( + key: key ?? this.key, + value: value ?? this.value, + updatedAt: updatedAt ?? this.updatedAt, + ); SettingsEntry copyWithCompanion(SettingsCompanion data) { return SettingsEntry( key: data.key.present ? data.key.value : this.key, @@ -1479,7 +1777,8 @@ class SettingsCompanion extends UpdateCompanion { } } -class $SavedFeedsTable extends SavedFeeds with TableInfo<$SavedFeedsTable, SavedFeedEntry> { +class $SavedFeedsTable extends SavedFeeds + with TableInfo<$SavedFeedsTable, SavedFeedEntry> { @override final GeneratedDatabase attachedDatabase; final String? _alias; @@ -1493,7 +1792,9 @@ class $SavedFeedsTable extends SavedFeeds with TableInfo<$SavedFeedsTable, Saved type: DriftSqlType.string, requiredDuringInsert: true, ); - static const VerificationMeta _accountDidMeta = const VerificationMeta('accountDid'); + static const VerificationMeta _accountDidMeta = const VerificationMeta( + 'accountDid', + ); @override late final GeneratedColumn accountDid = GeneratedColumn( 'account_did', @@ -1528,10 +1829,14 @@ class $SavedFeedsTable extends SavedFeeds with TableInfo<$SavedFeedsTable, Saved false, type: DriftSqlType.bool, requiredDuringInsert: false, - defaultConstraints: GeneratedColumn.constraintIsAlways('CHECK ("pinned" IN (0, 1))'), + defaultConstraints: GeneratedColumn.constraintIsAlways( + 'CHECK ("pinned" IN (0, 1))', + ), defaultValue: const Constant(false), ); - static const VerificationMeta _sortOrderMeta = const VerificationMeta('sortOrder'); + static const VerificationMeta _sortOrderMeta = const VerificationMeta( + 'sortOrder', + ); @override late final GeneratedColumn sortOrder = GeneratedColumn( 'sort_order', @@ -1541,7 +1846,9 @@ class $SavedFeedsTable extends SavedFeeds with TableInfo<$SavedFeedsTable, Saved requiredDuringInsert: false, defaultValue: const Constant(0), ); - static const VerificationMeta _updatedAtMeta = const VerificationMeta('updatedAt'); + static const VerificationMeta _updatedAtMeta = const VerificationMeta( + 'updatedAt', + ); @override late final GeneratedColumn updatedAt = GeneratedColumn( 'updated_at', @@ -1552,14 +1859,25 @@ class $SavedFeedsTable extends SavedFeeds with TableInfo<$SavedFeedsTable, Saved defaultValue: currentDateAndTime, ); @override - List get $columns => [id, accountDid, type, value, pinned, sortOrder, updatedAt]; + List get $columns => [ + id, + accountDid, + type, + value, + pinned, + sortOrder, + updatedAt, + ]; @override String get aliasedName => _alias ?? actualTableName; @override String get actualTableName => $name; static const String $name = 'saved_feeds'; @override - VerificationContext validateIntegrity(Insertable instance, {bool isInserting = false}) { + VerificationContext validateIntegrity( + Insertable instance, { + bool isInserting = false, + }) { final context = VerificationContext(); final data = instance.toColumns(true); if (data.containsKey('id')) { @@ -1568,28 +1886,46 @@ class $SavedFeedsTable extends SavedFeeds with TableInfo<$SavedFeedsTable, Saved context.missing(_idMeta); } if (data.containsKey('account_did')) { - context.handle(_accountDidMeta, accountDid.isAcceptableOrUnknown(data['account_did']!, _accountDidMeta)); + context.handle( + _accountDidMeta, + accountDid.isAcceptableOrUnknown(data['account_did']!, _accountDidMeta), + ); } else if (isInserting) { context.missing(_accountDidMeta); } if (data.containsKey('type')) { - context.handle(_typeMeta, type.isAcceptableOrUnknown(data['type']!, _typeMeta)); + context.handle( + _typeMeta, + type.isAcceptableOrUnknown(data['type']!, _typeMeta), + ); } else if (isInserting) { context.missing(_typeMeta); } if (data.containsKey('value')) { - context.handle(_valueMeta, value.isAcceptableOrUnknown(data['value']!, _valueMeta)); + context.handle( + _valueMeta, + value.isAcceptableOrUnknown(data['value']!, _valueMeta), + ); } else if (isInserting) { context.missing(_valueMeta); } if (data.containsKey('pinned')) { - context.handle(_pinnedMeta, pinned.isAcceptableOrUnknown(data['pinned']!, _pinnedMeta)); + context.handle( + _pinnedMeta, + pinned.isAcceptableOrUnknown(data['pinned']!, _pinnedMeta), + ); } if (data.containsKey('sort_order')) { - context.handle(_sortOrderMeta, sortOrder.isAcceptableOrUnknown(data['sort_order']!, _sortOrderMeta)); + context.handle( + _sortOrderMeta, + sortOrder.isAcceptableOrUnknown(data['sort_order']!, _sortOrderMeta), + ); } if (data.containsKey('updated_at')) { - context.handle(_updatedAtMeta, updatedAt.isAcceptableOrUnknown(data['updated_at']!, _updatedAtMeta)); + context.handle( + _updatedAtMeta, + updatedAt.isAcceptableOrUnknown(data['updated_at']!, _updatedAtMeta), + ); } return context; } @@ -1600,13 +1936,34 @@ class $SavedFeedsTable extends SavedFeeds with TableInfo<$SavedFeedsTable, Saved SavedFeedEntry map(Map data, {String? tablePrefix}) { final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; return SavedFeedEntry( - id: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}id'])!, - accountDid: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}account_did'])!, - type: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}type'])!, - value: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}value'])!, - pinned: attachedDatabase.typeMapping.read(DriftSqlType.bool, data['${effectivePrefix}pinned'])!, - sortOrder: attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}sort_order'])!, - updatedAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}updated_at'])!, + id: attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}id'], + )!, + accountDid: attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}account_did'], + )!, + type: attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}type'], + )!, + value: attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}value'], + )!, + pinned: attachedDatabase.typeMapping.read( + DriftSqlType.bool, + data['${effectivePrefix}pinned'], + )!, + sortOrder: attachedDatabase.typeMapping.read( + DriftSqlType.int, + data['${effectivePrefix}sort_order'], + )!, + updatedAt: attachedDatabase.typeMapping.read( + DriftSqlType.dateTime, + data['${effectivePrefix}updated_at'], + )!, ); } @@ -1658,7 +2015,10 @@ class SavedFeedEntry extends DataClass implements Insertable { ); } - factory SavedFeedEntry.fromJson(Map json, {ValueSerializer? serializer}) { + factory SavedFeedEntry.fromJson( + Map json, { + ValueSerializer? serializer, + }) { serializer ??= driftRuntimeOptions.defaultSerializer; return SavedFeedEntry( id: serializer.fromJson(json['id']), @@ -1704,7 +2064,9 @@ class SavedFeedEntry extends DataClass implements Insertable { SavedFeedEntry copyWithCompanion(SavedFeedsCompanion data) { return SavedFeedEntry( id: data.id.present ? data.id.value : this.id, - accountDid: data.accountDid.present ? data.accountDid.value : this.accountDid, + accountDid: data.accountDid.present + ? data.accountDid.value + : this.accountDid, type: data.type.present ? data.type.value : this.type, value: data.value.present ? data.value.value : this.value, pinned: data.pinned.present ? data.pinned.value : this.pinned, @@ -1728,7 +2090,8 @@ class SavedFeedEntry extends DataClass implements Insertable { } @override - int get hashCode => Object.hash(id, accountDid, type, value, pinned, sortOrder, updatedAt); + int get hashCode => + Object.hash(id, accountDid, type, value, pinned, sortOrder, updatedAt); @override bool operator ==(Object other) => identical(this, other) || @@ -1864,12 +2227,15 @@ class SavedFeedsCompanion extends UpdateCompanion { } } -class $CachedFeedPagesTable extends CachedFeedPages with TableInfo<$CachedFeedPagesTable, CachedFeedPage> { +class $CachedFeedPagesTable extends CachedFeedPages + with TableInfo<$CachedFeedPagesTable, CachedFeedPage> { @override final GeneratedDatabase attachedDatabase; final String? _alias; $CachedFeedPagesTable(this.attachedDatabase, [this._alias]); - static const VerificationMeta _accountDidMeta = const VerificationMeta('accountDid'); + static const VerificationMeta _accountDidMeta = const VerificationMeta( + 'accountDid', + ); @override late final GeneratedColumn accountDid = GeneratedColumn( 'account_did', @@ -1878,7 +2244,9 @@ class $CachedFeedPagesTable extends CachedFeedPages with TableInfo<$CachedFeedPa type: DriftSqlType.string, requiredDuringInsert: true, ); - static const VerificationMeta _feedKeyMeta = const VerificationMeta('feedKey'); + static const VerificationMeta _feedKeyMeta = const VerificationMeta( + 'feedKey', + ); @override late final GeneratedColumn feedKey = GeneratedColumn( 'feed_key', @@ -1887,7 +2255,9 @@ class $CachedFeedPagesTable extends CachedFeedPages with TableInfo<$CachedFeedPa type: DriftSqlType.string, requiredDuringInsert: true, ); - static const VerificationMeta _payloadMeta = const VerificationMeta('payload'); + static const VerificationMeta _payloadMeta = const VerificationMeta( + 'payload', + ); @override late final GeneratedColumn payload = GeneratedColumn( 'payload', @@ -1896,7 +2266,9 @@ class $CachedFeedPagesTable extends CachedFeedPages with TableInfo<$CachedFeedPa type: DriftSqlType.string, requiredDuringInsert: true, ); - static const VerificationMeta _fetchedAtMeta = const VerificationMeta('fetchedAt'); + static const VerificationMeta _fetchedAtMeta = const VerificationMeta( + 'fetchedAt', + ); @override late final GeneratedColumn fetchedAt = GeneratedColumn( 'fetched_at', @@ -1907,33 +2279,53 @@ class $CachedFeedPagesTable extends CachedFeedPages with TableInfo<$CachedFeedPa defaultValue: currentDateAndTime, ); @override - List get $columns => [accountDid, feedKey, payload, fetchedAt]; + List get $columns => [ + accountDid, + feedKey, + payload, + fetchedAt, + ]; @override String get aliasedName => _alias ?? actualTableName; @override String get actualTableName => $name; static const String $name = 'cached_feed_pages'; @override - VerificationContext validateIntegrity(Insertable instance, {bool isInserting = false}) { + VerificationContext validateIntegrity( + Insertable instance, { + bool isInserting = false, + }) { final context = VerificationContext(); final data = instance.toColumns(true); if (data.containsKey('account_did')) { - context.handle(_accountDidMeta, accountDid.isAcceptableOrUnknown(data['account_did']!, _accountDidMeta)); + context.handle( + _accountDidMeta, + accountDid.isAcceptableOrUnknown(data['account_did']!, _accountDidMeta), + ); } else if (isInserting) { context.missing(_accountDidMeta); } if (data.containsKey('feed_key')) { - context.handle(_feedKeyMeta, feedKey.isAcceptableOrUnknown(data['feed_key']!, _feedKeyMeta)); + context.handle( + _feedKeyMeta, + feedKey.isAcceptableOrUnknown(data['feed_key']!, _feedKeyMeta), + ); } else if (isInserting) { context.missing(_feedKeyMeta); } if (data.containsKey('payload')) { - context.handle(_payloadMeta, payload.isAcceptableOrUnknown(data['payload']!, _payloadMeta)); + context.handle( + _payloadMeta, + payload.isAcceptableOrUnknown(data['payload']!, _payloadMeta), + ); } else if (isInserting) { context.missing(_payloadMeta); } if (data.containsKey('fetched_at')) { - context.handle(_fetchedAtMeta, fetchedAt.isAcceptableOrUnknown(data['fetched_at']!, _fetchedAtMeta)); + context.handle( + _fetchedAtMeta, + fetchedAt.isAcceptableOrUnknown(data['fetched_at']!, _fetchedAtMeta), + ); } return context; } @@ -1944,10 +2336,22 @@ class $CachedFeedPagesTable extends CachedFeedPages with TableInfo<$CachedFeedPa CachedFeedPage map(Map data, {String? tablePrefix}) { final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; return CachedFeedPage( - accountDid: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}account_did'])!, - feedKey: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}feed_key'])!, - payload: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}payload'])!, - fetchedAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}fetched_at'])!, + accountDid: attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}account_did'], + )!, + feedKey: attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}feed_key'], + )!, + payload: attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}payload'], + )!, + fetchedAt: attachedDatabase.typeMapping.read( + DriftSqlType.dateTime, + data['${effectivePrefix}fetched_at'], + )!, ); } @@ -1987,7 +2391,10 @@ class CachedFeedPage extends DataClass implements Insertable { ); } - factory CachedFeedPage.fromJson(Map json, {ValueSerializer? serializer}) { + factory CachedFeedPage.fromJson( + Map json, { + ValueSerializer? serializer, + }) { serializer ??= driftRuntimeOptions.defaultSerializer; return CachedFeedPage( accountDid: serializer.fromJson(json['accountDid']), @@ -2007,16 +2414,22 @@ class CachedFeedPage extends DataClass implements Insertable { }; } - CachedFeedPage copyWith({String? accountDid, String? feedKey, String? payload, DateTime? fetchedAt}) => - CachedFeedPage( - accountDid: accountDid ?? this.accountDid, - feedKey: feedKey ?? this.feedKey, - payload: payload ?? this.payload, - fetchedAt: fetchedAt ?? this.fetchedAt, - ); + CachedFeedPage copyWith({ + String? accountDid, + String? feedKey, + String? payload, + DateTime? fetchedAt, + }) => CachedFeedPage( + accountDid: accountDid ?? this.accountDid, + feedKey: feedKey ?? this.feedKey, + payload: payload ?? this.payload, + fetchedAt: fetchedAt ?? this.fetchedAt, + ); CachedFeedPage copyWithCompanion(CachedFeedPagesCompanion data) { return CachedFeedPage( - accountDid: data.accountDid.present ? data.accountDid.value : this.accountDid, + accountDid: data.accountDid.present + ? data.accountDid.value + : this.accountDid, feedKey: data.feedKey.present ? data.feedKey.value : this.feedKey, payload: data.payload.present ? data.payload.value : this.payload, fetchedAt: data.fetchedAt.present ? data.fetchedAt.value : this.fetchedAt, @@ -2134,318 +2547,430 @@ class CachedFeedPagesCompanion extends UpdateCompanion { } } -class $SearchHistoryTable extends SearchHistory with TableInfo<$SearchHistoryTable, SearchHistoryEntry> { +class $CachedFeedPostsTable extends CachedFeedPosts + with TableInfo<$CachedFeedPostsTable, CachedFeedPost> { @override final GeneratedDatabase attachedDatabase; final String? _alias; - $SearchHistoryTable(this.attachedDatabase, [this._alias]); - static const VerificationMeta _idMeta = const VerificationMeta('id'); + $CachedFeedPostsTable(this.attachedDatabase, [this._alias]); + static const VerificationMeta _accountDidMeta = const VerificationMeta( + 'accountDid', + ); @override - late final GeneratedColumn id = GeneratedColumn( - 'id', + late final GeneratedColumn accountDid = GeneratedColumn( + 'account_did', aliasedName, false, - hasAutoIncrement: true, - type: DriftSqlType.int, - requiredDuringInsert: false, - defaultConstraints: GeneratedColumn.constraintIsAlways('PRIMARY KEY AUTOINCREMENT'), + type: DriftSqlType.string, + requiredDuringInsert: true, + ); + static const VerificationMeta _feedKeyMeta = const VerificationMeta( + 'feedKey', ); - static const VerificationMeta _queryMeta = const VerificationMeta('query'); @override - late final GeneratedColumn query = GeneratedColumn( - 'query', + late final GeneratedColumn feedKey = GeneratedColumn( + 'feed_key', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true, ); - static const VerificationMeta _typeMeta = const VerificationMeta('type'); + static const VerificationMeta _postUriMeta = const VerificationMeta( + 'postUri', + ); @override - late final GeneratedColumn type = GeneratedColumn( - 'type', + late final GeneratedColumn postUri = GeneratedColumn( + 'post_uri', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true, ); - static const VerificationMeta _searchedAtMeta = const VerificationMeta('searchedAt'); + static const VerificationMeta _postJsonMeta = const VerificationMeta( + 'postJson', + ); @override - late final GeneratedColumn searchedAt = GeneratedColumn( - 'searched_at', + late final GeneratedColumn postJson = GeneratedColumn( + 'post_json', aliasedName, false, - type: DriftSqlType.dateTime, - requiredDuringInsert: false, - defaultValue: currentDateAndTime, + type: DriftSqlType.string, + requiredDuringInsert: true, + ); + static const VerificationMeta _sortOrderMeta = const VerificationMeta( + 'sortOrder', ); - static const VerificationMeta _accountDidMeta = const VerificationMeta('accountDid'); @override - late final GeneratedColumn accountDid = GeneratedColumn( - 'account_did', + late final GeneratedColumn sortOrder = GeneratedColumn( + 'sort_order', aliasedName, false, - type: DriftSqlType.string, + type: DriftSqlType.int, requiredDuringInsert: true, ); + static const VerificationMeta _fetchedAtMeta = const VerificationMeta( + 'fetchedAt', + ); + @override + late final GeneratedColumn fetchedAt = GeneratedColumn( + 'fetched_at', + aliasedName, + false, + type: DriftSqlType.dateTime, + requiredDuringInsert: false, + defaultValue: currentDateAndTime, + ); @override - List get $columns => [id, query, type, searchedAt, accountDid]; + List get $columns => [ + accountDid, + feedKey, + postUri, + postJson, + sortOrder, + fetchedAt, + ]; @override String get aliasedName => _alias ?? actualTableName; @override String get actualTableName => $name; - static const String $name = 'search_history'; + static const String $name = 'cached_feed_posts'; @override - VerificationContext validateIntegrity(Insertable instance, {bool isInserting = false}) { + 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('query')) { - context.handle(_queryMeta, query.isAcceptableOrUnknown(data['query']!, _queryMeta)); + if (data.containsKey('account_did')) { + context.handle( + _accountDidMeta, + accountDid.isAcceptableOrUnknown(data['account_did']!, _accountDidMeta), + ); } else if (isInserting) { - context.missing(_queryMeta); + context.missing(_accountDidMeta); } - if (data.containsKey('type')) { - context.handle(_typeMeta, type.isAcceptableOrUnknown(data['type']!, _typeMeta)); + if (data.containsKey('feed_key')) { + context.handle( + _feedKeyMeta, + feedKey.isAcceptableOrUnknown(data['feed_key']!, _feedKeyMeta), + ); } else if (isInserting) { - context.missing(_typeMeta); + context.missing(_feedKeyMeta); } - if (data.containsKey('searched_at')) { - context.handle(_searchedAtMeta, searchedAt.isAcceptableOrUnknown(data['searched_at']!, _searchedAtMeta)); + if (data.containsKey('post_uri')) { + context.handle( + _postUriMeta, + postUri.isAcceptableOrUnknown(data['post_uri']!, _postUriMeta), + ); + } else if (isInserting) { + context.missing(_postUriMeta); } - if (data.containsKey('account_did')) { - context.handle(_accountDidMeta, accountDid.isAcceptableOrUnknown(data['account_did']!, _accountDidMeta)); + if (data.containsKey('post_json')) { + context.handle( + _postJsonMeta, + postJson.isAcceptableOrUnknown(data['post_json']!, _postJsonMeta), + ); } else if (isInserting) { - context.missing(_accountDidMeta); + context.missing(_postJsonMeta); + } + if (data.containsKey('sort_order')) { + context.handle( + _sortOrderMeta, + sortOrder.isAcceptableOrUnknown(data['sort_order']!, _sortOrderMeta), + ); + } else if (isInserting) { + context.missing(_sortOrderMeta); + } + if (data.containsKey('fetched_at')) { + context.handle( + _fetchedAtMeta, + fetchedAt.isAcceptableOrUnknown(data['fetched_at']!, _fetchedAtMeta), + ); } return context; } @override - Set get $primaryKey => {id}; + Set get $primaryKey => {accountDid, feedKey, postUri}; @override - SearchHistoryEntry map(Map data, {String? tablePrefix}) { + CachedFeedPost map(Map data, {String? tablePrefix}) { final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; - return SearchHistoryEntry( - id: attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}id'])!, - query: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}query'])!, - type: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}type'])!, - searchedAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}searched_at'])!, - accountDid: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}account_did'])!, + return CachedFeedPost( + accountDid: attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}account_did'], + )!, + feedKey: attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}feed_key'], + )!, + postUri: attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}post_uri'], + )!, + postJson: attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}post_json'], + )!, + sortOrder: attachedDatabase.typeMapping.read( + DriftSqlType.int, + data['${effectivePrefix}sort_order'], + )!, + fetchedAt: attachedDatabase.typeMapping.read( + DriftSqlType.dateTime, + data['${effectivePrefix}fetched_at'], + )!, ); } @override - $SearchHistoryTable createAlias(String alias) { - return $SearchHistoryTable(attachedDatabase, alias); + $CachedFeedPostsTable createAlias(String alias) { + return $CachedFeedPostsTable(attachedDatabase, alias); } } -class SearchHistoryEntry extends DataClass implements Insertable { - final int id; - final String query; - final String type; - final DateTime searchedAt; +class CachedFeedPost extends DataClass implements Insertable { final String accountDid; - const SearchHistoryEntry({ - required this.id, - required this.query, - required this.type, - required this.searchedAt, + final String feedKey; + final String postUri; + final String postJson; + final int sortOrder; + final DateTime fetchedAt; + const CachedFeedPost({ required this.accountDid, + required this.feedKey, + required this.postUri, + required this.postJson, + required this.sortOrder, + required this.fetchedAt, }); @override Map toColumns(bool nullToAbsent) { final map = {}; - map['id'] = Variable(id); - map['query'] = Variable(query); - map['type'] = Variable(type); - map['searched_at'] = Variable(searchedAt); map['account_did'] = Variable(accountDid); + map['feed_key'] = Variable(feedKey); + map['post_uri'] = Variable(postUri); + map['post_json'] = Variable(postJson); + map['sort_order'] = Variable(sortOrder); + map['fetched_at'] = Variable(fetchedAt); return map; } - SearchHistoryCompanion toCompanion(bool nullToAbsent) { - return SearchHistoryCompanion( - id: Value(id), - query: Value(query), - type: Value(type), - searchedAt: Value(searchedAt), + CachedFeedPostsCompanion toCompanion(bool nullToAbsent) { + return CachedFeedPostsCompanion( accountDid: Value(accountDid), + feedKey: Value(feedKey), + postUri: Value(postUri), + postJson: Value(postJson), + sortOrder: Value(sortOrder), + fetchedAt: Value(fetchedAt), ); } - factory SearchHistoryEntry.fromJson(Map json, {ValueSerializer? serializer}) { + factory CachedFeedPost.fromJson( + Map json, { + ValueSerializer? serializer, + }) { serializer ??= driftRuntimeOptions.defaultSerializer; - return SearchHistoryEntry( - id: serializer.fromJson(json['id']), - query: serializer.fromJson(json['query']), - type: serializer.fromJson(json['type']), - searchedAt: serializer.fromJson(json['searchedAt']), + return CachedFeedPost( accountDid: serializer.fromJson(json['accountDid']), + feedKey: serializer.fromJson(json['feedKey']), + postUri: serializer.fromJson(json['postUri']), + postJson: serializer.fromJson(json['postJson']), + sortOrder: serializer.fromJson(json['sortOrder']), + fetchedAt: serializer.fromJson(json['fetchedAt']), ); } @override Map toJson({ValueSerializer? serializer}) { serializer ??= driftRuntimeOptions.defaultSerializer; return { - 'id': serializer.toJson(id), - 'query': serializer.toJson(query), - 'type': serializer.toJson(type), - 'searchedAt': serializer.toJson(searchedAt), 'accountDid': serializer.toJson(accountDid), + 'feedKey': serializer.toJson(feedKey), + 'postUri': serializer.toJson(postUri), + 'postJson': serializer.toJson(postJson), + 'sortOrder': serializer.toJson(sortOrder), + 'fetchedAt': serializer.toJson(fetchedAt), }; } - SearchHistoryEntry copyWith({int? id, String? query, String? type, DateTime? searchedAt, String? accountDid}) => - SearchHistoryEntry( - id: id ?? this.id, - query: query ?? this.query, - type: type ?? this.type, - searchedAt: searchedAt ?? this.searchedAt, - accountDid: accountDid ?? this.accountDid, - ); - SearchHistoryEntry copyWithCompanion(SearchHistoryCompanion data) { - return SearchHistoryEntry( - id: data.id.present ? data.id.value : this.id, - query: data.query.present ? data.query.value : this.query, - type: data.type.present ? data.type.value : this.type, - searchedAt: data.searchedAt.present ? data.searchedAt.value : this.searchedAt, - accountDid: data.accountDid.present ? data.accountDid.value : this.accountDid, + CachedFeedPost copyWith({ + String? accountDid, + String? feedKey, + String? postUri, + String? postJson, + int? sortOrder, + DateTime? fetchedAt, + }) => CachedFeedPost( + accountDid: accountDid ?? this.accountDid, + feedKey: feedKey ?? this.feedKey, + postUri: postUri ?? this.postUri, + postJson: postJson ?? this.postJson, + sortOrder: sortOrder ?? this.sortOrder, + fetchedAt: fetchedAt ?? this.fetchedAt, + ); + CachedFeedPost copyWithCompanion(CachedFeedPostsCompanion data) { + return CachedFeedPost( + accountDid: data.accountDid.present + ? data.accountDid.value + : this.accountDid, + feedKey: data.feedKey.present ? data.feedKey.value : this.feedKey, + postUri: data.postUri.present ? data.postUri.value : this.postUri, + postJson: data.postJson.present ? data.postJson.value : this.postJson, + sortOrder: data.sortOrder.present ? data.sortOrder.value : this.sortOrder, + fetchedAt: data.fetchedAt.present ? data.fetchedAt.value : this.fetchedAt, ); } @override String toString() { - return (StringBuffer('SearchHistoryEntry(') - ..write('id: $id, ') - ..write('query: $query, ') - ..write('type: $type, ') - ..write('searchedAt: $searchedAt, ') - ..write('accountDid: $accountDid') + return (StringBuffer('CachedFeedPost(') + ..write('accountDid: $accountDid, ') + ..write('feedKey: $feedKey, ') + ..write('postUri: $postUri, ') + ..write('postJson: $postJson, ') + ..write('sortOrder: $sortOrder, ') + ..write('fetchedAt: $fetchedAt') ..write(')')) .toString(); } @override - int get hashCode => Object.hash(id, query, type, searchedAt, accountDid); + int get hashCode => + Object.hash(accountDid, feedKey, postUri, postJson, sortOrder, fetchedAt); @override bool operator ==(Object other) => identical(this, other) || - (other is SearchHistoryEntry && - other.id == this.id && - other.query == this.query && - other.type == this.type && - other.searchedAt == this.searchedAt && - other.accountDid == this.accountDid); + (other is CachedFeedPost && + other.accountDid == this.accountDid && + other.feedKey == this.feedKey && + other.postUri == this.postUri && + other.postJson == this.postJson && + other.sortOrder == this.sortOrder && + other.fetchedAt == this.fetchedAt); } -class SearchHistoryCompanion extends UpdateCompanion { - final Value id; - final Value query; - final Value type; - final Value searchedAt; +class CachedFeedPostsCompanion extends UpdateCompanion { final Value accountDid; - const SearchHistoryCompanion({ - this.id = const Value.absent(), - this.query = const Value.absent(), - this.type = const Value.absent(), - this.searchedAt = const Value.absent(), + final Value feedKey; + final Value postUri; + final Value postJson; + final Value sortOrder; + final Value fetchedAt; + final Value rowid; + const CachedFeedPostsCompanion({ this.accountDid = const Value.absent(), + this.feedKey = const Value.absent(), + this.postUri = const Value.absent(), + this.postJson = const Value.absent(), + this.sortOrder = const Value.absent(), + this.fetchedAt = const Value.absent(), + this.rowid = const Value.absent(), }); - SearchHistoryCompanion.insert({ - this.id = const Value.absent(), - required String query, - required String type, - this.searchedAt = const Value.absent(), + CachedFeedPostsCompanion.insert({ required String accountDid, - }) : query = Value(query), - type = Value(type), - accountDid = Value(accountDid); - static Insertable custom({ - Expression? id, - Expression? query, - Expression? type, - Expression? searchedAt, + required String feedKey, + required String postUri, + required String postJson, + required int sortOrder, + this.fetchedAt = const Value.absent(), + this.rowid = const Value.absent(), + }) : accountDid = Value(accountDid), + feedKey = Value(feedKey), + postUri = Value(postUri), + postJson = Value(postJson), + sortOrder = Value(sortOrder); + static Insertable custom({ Expression? accountDid, + Expression? feedKey, + Expression? postUri, + Expression? postJson, + Expression? sortOrder, + Expression? fetchedAt, + Expression? rowid, }) { return RawValuesInsertable({ - if (id != null) 'id': id, - if (query != null) 'query': query, - if (type != null) 'type': type, - if (searchedAt != null) 'searched_at': searchedAt, if (accountDid != null) 'account_did': accountDid, + if (feedKey != null) 'feed_key': feedKey, + if (postUri != null) 'post_uri': postUri, + if (postJson != null) 'post_json': postJson, + if (sortOrder != null) 'sort_order': sortOrder, + if (fetchedAt != null) 'fetched_at': fetchedAt, + if (rowid != null) 'rowid': rowid, }); } - SearchHistoryCompanion copyWith({ - Value? id, - Value? query, - Value? type, - Value? searchedAt, + CachedFeedPostsCompanion copyWith({ Value? accountDid, + Value? feedKey, + Value? postUri, + Value? postJson, + Value? sortOrder, + Value? fetchedAt, + Value? rowid, }) { - return SearchHistoryCompanion( - id: id ?? this.id, - query: query ?? this.query, - type: type ?? this.type, - searchedAt: searchedAt ?? this.searchedAt, + return CachedFeedPostsCompanion( accountDid: accountDid ?? this.accountDid, + feedKey: feedKey ?? this.feedKey, + postUri: postUri ?? this.postUri, + postJson: postJson ?? this.postJson, + sortOrder: sortOrder ?? this.sortOrder, + fetchedAt: fetchedAt ?? this.fetchedAt, + rowid: rowid ?? this.rowid, ); } @override Map toColumns(bool nullToAbsent) { final map = {}; - if (id.present) { - map['id'] = Variable(id.value); + if (accountDid.present) { + map['account_did'] = Variable(accountDid.value); } - if (query.present) { - map['query'] = Variable(query.value); + if (feedKey.present) { + map['feed_key'] = Variable(feedKey.value); } - if (type.present) { - map['type'] = Variable(type.value); + if (postUri.present) { + map['post_uri'] = Variable(postUri.value); } - if (searchedAt.present) { - map['searched_at'] = Variable(searchedAt.value); + if (postJson.present) { + map['post_json'] = Variable(postJson.value); } - if (accountDid.present) { - map['account_did'] = Variable(accountDid.value); + if (sortOrder.present) { + map['sort_order'] = Variable(sortOrder.value); + } + if (fetchedAt.present) { + map['fetched_at'] = Variable(fetchedAt.value); + } + if (rowid.present) { + map['rowid'] = Variable(rowid.value); } return map; } @override String toString() { - return (StringBuffer('SearchHistoryCompanion(') - ..write('id: $id, ') - ..write('query: $query, ') - ..write('type: $type, ') - ..write('searchedAt: $searchedAt, ') - ..write('accountDid: $accountDid') - ..write(')')) - .toString(); - } -} - -class $DraftsTable extends Drafts with TableInfo<$DraftsTable, DraftEntry> { + return (StringBuffer('CachedFeedPostsCompanion(') + ..write('accountDid: $accountDid, ') + ..write('feedKey: $feedKey, ') + ..write('postUri: $postUri, ') + ..write('postJson: $postJson, ') + ..write('sortOrder: $sortOrder, ') + ..write('fetchedAt: $fetchedAt, ') + ..write('rowid: $rowid') + ..write(')')) + .toString(); + } +} + +class $CachedThreadRootsTable extends CachedThreadRoots + with TableInfo<$CachedThreadRootsTable, CachedThreadRoot> { @override final GeneratedDatabase attachedDatabase; final String? _alias; - $DraftsTable(this.attachedDatabase, [this._alias]); - static const VerificationMeta _idMeta = const VerificationMeta('id'); - @override - late final GeneratedColumn id = GeneratedColumn( - 'id', - aliasedName, - false, - hasAutoIncrement: true, - type: DriftSqlType.int, - requiredDuringInsert: false, - defaultConstraints: GeneratedColumn.constraintIsAlways('PRIMARY KEY AUTOINCREMENT'), + $CachedThreadRootsTable(this.attachedDatabase, [this._alias]); + static const VerificationMeta _accountDidMeta = const VerificationMeta( + 'accountDid', ); - static const VerificationMeta _accountDidMeta = const VerificationMeta('accountDid'); @override late final GeneratedColumn accountDid = GeneratedColumn( 'account_did', @@ -2454,569 +2979,316 @@ class $DraftsTable extends Drafts with TableInfo<$DraftsTable, DraftEntry> { type: DriftSqlType.string, requiredDuringInsert: true, ); - static const VerificationMeta _contentMeta = const VerificationMeta('content'); - @override - late final GeneratedColumn content = GeneratedColumn( - 'content', - aliasedName, - false, - type: DriftSqlType.string, - requiredDuringInsert: true, - ); - static const VerificationMeta _replyUriMeta = const VerificationMeta('replyUri'); - @override - late final GeneratedColumn replyUri = GeneratedColumn( - 'reply_uri', - aliasedName, - true, - type: DriftSqlType.string, - requiredDuringInsert: false, - ); - static const VerificationMeta _replyCidMeta = const VerificationMeta('replyCid'); - @override - late final GeneratedColumn replyCid = GeneratedColumn( - 'reply_cid', - aliasedName, - true, - type: DriftSqlType.string, - requiredDuringInsert: false, + static const VerificationMeta _rootUriMeta = const VerificationMeta( + 'rootUri', ); - static const VerificationMeta _rootUriMeta = const VerificationMeta('rootUri'); @override late final GeneratedColumn rootUri = GeneratedColumn( 'root_uri', aliasedName, - true, - type: DriftSqlType.string, - requiredDuringInsert: false, - ); - static const VerificationMeta _rootCidMeta = const VerificationMeta('rootCid'); - @override - late final GeneratedColumn rootCid = GeneratedColumn( - 'root_cid', - aliasedName, - true, + false, type: DriftSqlType.string, - requiredDuringInsert: false, + requiredDuringInsert: true, ); - static const VerificationMeta _embedJsonMeta = const VerificationMeta('embedJson'); - @override - late final GeneratedColumn embedJson = GeneratedColumn( - 'embed_json', - aliasedName, - true, - type: DriftSqlType.string, - requiredDuringInsert: false, + static const VerificationMeta _payloadMeta = const VerificationMeta( + 'payload', ); - static const VerificationMeta _mediaPathsMeta = const VerificationMeta('mediaPaths'); @override - late final GeneratedColumn mediaPaths = GeneratedColumn( - 'media_paths', + late final GeneratedColumn payload = GeneratedColumn( + 'payload', aliasedName, - true, + false, type: DriftSqlType.string, - requiredDuringInsert: false, + requiredDuringInsert: true, ); - 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 _fetchedAtMeta = const VerificationMeta( + 'fetchedAt', ); - static const VerificationMeta _updatedAtMeta = const VerificationMeta('updatedAt'); @override - late final GeneratedColumn updatedAt = GeneratedColumn( - 'updated_at', + late final GeneratedColumn fetchedAt = GeneratedColumn( + 'fetched_at', aliasedName, false, type: DriftSqlType.dateTime, requiredDuringInsert: false, defaultValue: currentDateAndTime, ); - static const VerificationMeta _scheduledAtMeta = const VerificationMeta('scheduledAt'); - @override - late final GeneratedColumn scheduledAt = GeneratedColumn( - 'scheduled_at', - aliasedName, - true, - type: DriftSqlType.dateTime, - requiredDuringInsert: false, - ); @override List get $columns => [ - id, accountDid, - content, - replyUri, - replyCid, rootUri, - rootCid, - embedJson, - mediaPaths, - createdAt, - updatedAt, - scheduledAt, + payload, + fetchedAt, ]; @override String get aliasedName => _alias ?? actualTableName; @override String get actualTableName => $name; - static const String $name = 'drafts'; + static const String $name = 'cached_thread_roots'; @override - VerificationContext validateIntegrity(Insertable instance, {bool isInserting = false}) { + 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('account_did')) { - context.handle(_accountDidMeta, accountDid.isAcceptableOrUnknown(data['account_did']!, _accountDidMeta)); + context.handle( + _accountDidMeta, + accountDid.isAcceptableOrUnknown(data['account_did']!, _accountDidMeta), + ); } else if (isInserting) { context.missing(_accountDidMeta); } - if (data.containsKey('content')) { - context.handle(_contentMeta, content.isAcceptableOrUnknown(data['content']!, _contentMeta)); - } else if (isInserting) { - context.missing(_contentMeta); - } - if (data.containsKey('reply_uri')) { - context.handle(_replyUriMeta, replyUri.isAcceptableOrUnknown(data['reply_uri']!, _replyUriMeta)); - } - if (data.containsKey('reply_cid')) { - context.handle(_replyCidMeta, replyCid.isAcceptableOrUnknown(data['reply_cid']!, _replyCidMeta)); - } if (data.containsKey('root_uri')) { - context.handle(_rootUriMeta, rootUri.isAcceptableOrUnknown(data['root_uri']!, _rootUriMeta)); - } - if (data.containsKey('root_cid')) { - context.handle(_rootCidMeta, rootCid.isAcceptableOrUnknown(data['root_cid']!, _rootCidMeta)); - } - if (data.containsKey('embed_json')) { - context.handle(_embedJsonMeta, embedJson.isAcceptableOrUnknown(data['embed_json']!, _embedJsonMeta)); - } - if (data.containsKey('media_paths')) { - context.handle(_mediaPathsMeta, mediaPaths.isAcceptableOrUnknown(data['media_paths']!, _mediaPathsMeta)); - } - if (data.containsKey('created_at')) { - context.handle(_createdAtMeta, createdAt.isAcceptableOrUnknown(data['created_at']!, _createdAtMeta)); + context.handle( + _rootUriMeta, + rootUri.isAcceptableOrUnknown(data['root_uri']!, _rootUriMeta), + ); + } else if (isInserting) { + context.missing(_rootUriMeta); } - if (data.containsKey('updated_at')) { - context.handle(_updatedAtMeta, updatedAt.isAcceptableOrUnknown(data['updated_at']!, _updatedAtMeta)); + if (data.containsKey('payload')) { + context.handle( + _payloadMeta, + payload.isAcceptableOrUnknown(data['payload']!, _payloadMeta), + ); + } else if (isInserting) { + context.missing(_payloadMeta); } - if (data.containsKey('scheduled_at')) { - context.handle(_scheduledAtMeta, scheduledAt.isAcceptableOrUnknown(data['scheduled_at']!, _scheduledAtMeta)); + if (data.containsKey('fetched_at')) { + context.handle( + _fetchedAtMeta, + fetchedAt.isAcceptableOrUnknown(data['fetched_at']!, _fetchedAtMeta), + ); } return context; } @override - Set get $primaryKey => {id}; + Set get $primaryKey => {accountDid, rootUri}; @override - DraftEntry map(Map data, {String? tablePrefix}) { + CachedThreadRoot map(Map data, {String? tablePrefix}) { final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; - return DraftEntry( - id: attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}id'])!, - accountDid: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}account_did'])!, - content: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}content'])!, - replyUri: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}reply_uri']), - replyCid: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}reply_cid']), - rootUri: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}root_uri']), - rootCid: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}root_cid']), - embedJson: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}embed_json']), - mediaPaths: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}media_paths']), - createdAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}created_at'])!, - updatedAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}updated_at'])!, - scheduledAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}scheduled_at']), + return CachedThreadRoot( + accountDid: attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}account_did'], + )!, + rootUri: attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}root_uri'], + )!, + payload: attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}payload'], + )!, + fetchedAt: attachedDatabase.typeMapping.read( + DriftSqlType.dateTime, + data['${effectivePrefix}fetched_at'], + )!, ); } @override - $DraftsTable createAlias(String alias) { - return $DraftsTable(attachedDatabase, alias); + $CachedThreadRootsTable createAlias(String alias) { + return $CachedThreadRootsTable(attachedDatabase, alias); } } -class DraftEntry extends DataClass implements Insertable { - final int id; +class CachedThreadRoot extends DataClass + implements Insertable { final String accountDid; - final String content; - final String? replyUri; - final String? replyCid; - final String? rootUri; - final String? rootCid; - final String? embedJson; - final String? mediaPaths; - final DateTime createdAt; - final DateTime updatedAt; - final DateTime? scheduledAt; - const DraftEntry({ - required this.id, + final String rootUri; + final String payload; + final DateTime fetchedAt; + const CachedThreadRoot({ required this.accountDid, - required this.content, - this.replyUri, - this.replyCid, - this.rootUri, - this.rootCid, - this.embedJson, - this.mediaPaths, - required this.createdAt, - required this.updatedAt, - this.scheduledAt, + required this.rootUri, + required this.payload, + required this.fetchedAt, }); @override Map toColumns(bool nullToAbsent) { final map = {}; - map['id'] = Variable(id); map['account_did'] = Variable(accountDid); - map['content'] = Variable(content); - if (!nullToAbsent || replyUri != null) { - map['reply_uri'] = Variable(replyUri); - } - if (!nullToAbsent || replyCid != null) { - map['reply_cid'] = Variable(replyCid); - } - if (!nullToAbsent || rootUri != null) { - map['root_uri'] = Variable(rootUri); - } - if (!nullToAbsent || rootCid != null) { - map['root_cid'] = Variable(rootCid); - } - if (!nullToAbsent || embedJson != null) { - map['embed_json'] = Variable(embedJson); - } - if (!nullToAbsent || mediaPaths != null) { - map['media_paths'] = Variable(mediaPaths); - } - map['created_at'] = Variable(createdAt); - map['updated_at'] = Variable(updatedAt); - if (!nullToAbsent || scheduledAt != null) { - map['scheduled_at'] = Variable(scheduledAt); - } + map['root_uri'] = Variable(rootUri); + map['payload'] = Variable(payload); + map['fetched_at'] = Variable(fetchedAt); return map; } - DraftsCompanion toCompanion(bool nullToAbsent) { - return DraftsCompanion( - id: Value(id), + CachedThreadRootsCompanion toCompanion(bool nullToAbsent) { + return CachedThreadRootsCompanion( accountDid: Value(accountDid), - content: Value(content), - replyUri: replyUri == null && nullToAbsent ? const Value.absent() : Value(replyUri), - replyCid: replyCid == null && nullToAbsent ? const Value.absent() : Value(replyCid), - rootUri: rootUri == null && nullToAbsent ? const Value.absent() : Value(rootUri), - rootCid: rootCid == null && nullToAbsent ? const Value.absent() : Value(rootCid), - embedJson: embedJson == null && nullToAbsent ? const Value.absent() : Value(embedJson), - mediaPaths: mediaPaths == null && nullToAbsent ? const Value.absent() : Value(mediaPaths), - createdAt: Value(createdAt), - updatedAt: Value(updatedAt), - scheduledAt: scheduledAt == null && nullToAbsent ? const Value.absent() : Value(scheduledAt), + rootUri: Value(rootUri), + payload: Value(payload), + fetchedAt: Value(fetchedAt), ); } - factory DraftEntry.fromJson(Map json, {ValueSerializer? serializer}) { + factory CachedThreadRoot.fromJson( + Map json, { + ValueSerializer? serializer, + }) { serializer ??= driftRuntimeOptions.defaultSerializer; - return DraftEntry( - id: serializer.fromJson(json['id']), + return CachedThreadRoot( accountDid: serializer.fromJson(json['accountDid']), - content: serializer.fromJson(json['content']), - replyUri: serializer.fromJson(json['replyUri']), - replyCid: serializer.fromJson(json['replyCid']), - rootUri: serializer.fromJson(json['rootUri']), - rootCid: serializer.fromJson(json['rootCid']), - embedJson: serializer.fromJson(json['embedJson']), - mediaPaths: serializer.fromJson(json['mediaPaths']), - createdAt: serializer.fromJson(json['createdAt']), - updatedAt: serializer.fromJson(json['updatedAt']), - scheduledAt: serializer.fromJson(json['scheduledAt']), + rootUri: serializer.fromJson(json['rootUri']), + payload: serializer.fromJson(json['payload']), + fetchedAt: serializer.fromJson(json['fetchedAt']), ); } @override Map toJson({ValueSerializer? serializer}) { serializer ??= driftRuntimeOptions.defaultSerializer; return { - 'id': serializer.toJson(id), 'accountDid': serializer.toJson(accountDid), - 'content': serializer.toJson(content), - 'replyUri': serializer.toJson(replyUri), - 'replyCid': serializer.toJson(replyCid), - 'rootUri': serializer.toJson(rootUri), - 'rootCid': serializer.toJson(rootCid), - 'embedJson': serializer.toJson(embedJson), - 'mediaPaths': serializer.toJson(mediaPaths), - 'createdAt': serializer.toJson(createdAt), - 'updatedAt': serializer.toJson(updatedAt), - 'scheduledAt': serializer.toJson(scheduledAt), + 'rootUri': serializer.toJson(rootUri), + 'payload': serializer.toJson(payload), + 'fetchedAt': serializer.toJson(fetchedAt), }; } - DraftEntry copyWith({ - int? id, + CachedThreadRoot copyWith({ String? accountDid, - String? content, - Value replyUri = const Value.absent(), - Value replyCid = const Value.absent(), - Value rootUri = const Value.absent(), - Value rootCid = const Value.absent(), - Value embedJson = const Value.absent(), - Value mediaPaths = const Value.absent(), - DateTime? createdAt, - DateTime? updatedAt, - Value scheduledAt = const Value.absent(), - }) => DraftEntry( - id: id ?? this.id, + String? rootUri, + String? payload, + DateTime? fetchedAt, + }) => CachedThreadRoot( accountDid: accountDid ?? this.accountDid, - content: content ?? this.content, - replyUri: replyUri.present ? replyUri.value : this.replyUri, - replyCid: replyCid.present ? replyCid.value : this.replyCid, - rootUri: rootUri.present ? rootUri.value : this.rootUri, - rootCid: rootCid.present ? rootCid.value : this.rootCid, - embedJson: embedJson.present ? embedJson.value : this.embedJson, - mediaPaths: mediaPaths.present ? mediaPaths.value : this.mediaPaths, - createdAt: createdAt ?? this.createdAt, - updatedAt: updatedAt ?? this.updatedAt, - scheduledAt: scheduledAt.present ? scheduledAt.value : this.scheduledAt, + rootUri: rootUri ?? this.rootUri, + payload: payload ?? this.payload, + fetchedAt: fetchedAt ?? this.fetchedAt, ); - DraftEntry copyWithCompanion(DraftsCompanion data) { - return DraftEntry( - id: data.id.present ? data.id.value : this.id, - accountDid: data.accountDid.present ? data.accountDid.value : this.accountDid, - content: data.content.present ? data.content.value : this.content, - replyUri: data.replyUri.present ? data.replyUri.value : this.replyUri, - replyCid: data.replyCid.present ? data.replyCid.value : this.replyCid, + CachedThreadRoot copyWithCompanion(CachedThreadRootsCompanion data) { + return CachedThreadRoot( + accountDid: data.accountDid.present + ? data.accountDid.value + : this.accountDid, rootUri: data.rootUri.present ? data.rootUri.value : this.rootUri, - rootCid: data.rootCid.present ? data.rootCid.value : this.rootCid, - embedJson: data.embedJson.present ? data.embedJson.value : this.embedJson, - mediaPaths: data.mediaPaths.present ? data.mediaPaths.value : this.mediaPaths, - createdAt: data.createdAt.present ? data.createdAt.value : this.createdAt, - updatedAt: data.updatedAt.present ? data.updatedAt.value : this.updatedAt, - scheduledAt: data.scheduledAt.present ? data.scheduledAt.value : this.scheduledAt, + payload: data.payload.present ? data.payload.value : this.payload, + fetchedAt: data.fetchedAt.present ? data.fetchedAt.value : this.fetchedAt, ); } @override String toString() { - return (StringBuffer('DraftEntry(') - ..write('id: $id, ') + return (StringBuffer('CachedThreadRoot(') ..write('accountDid: $accountDid, ') - ..write('content: $content, ') - ..write('replyUri: $replyUri, ') - ..write('replyCid: $replyCid, ') ..write('rootUri: $rootUri, ') - ..write('rootCid: $rootCid, ') - ..write('embedJson: $embedJson, ') - ..write('mediaPaths: $mediaPaths, ') - ..write('createdAt: $createdAt, ') - ..write('updatedAt: $updatedAt, ') - ..write('scheduledAt: $scheduledAt') + ..write('payload: $payload, ') + ..write('fetchedAt: $fetchedAt') ..write(')')) .toString(); } @override - int get hashCode => Object.hash( - id, - accountDid, - content, - replyUri, - replyCid, - rootUri, - rootCid, - embedJson, - mediaPaths, - createdAt, - updatedAt, - scheduledAt, - ); + int get hashCode => Object.hash(accountDid, rootUri, payload, fetchedAt); @override bool operator ==(Object other) => identical(this, other) || - (other is DraftEntry && - other.id == this.id && + (other is CachedThreadRoot && other.accountDid == this.accountDid && - other.content == this.content && - other.replyUri == this.replyUri && - other.replyCid == this.replyCid && other.rootUri == this.rootUri && - other.rootCid == this.rootCid && - other.embedJson == this.embedJson && - other.mediaPaths == this.mediaPaths && - other.createdAt == this.createdAt && - other.updatedAt == this.updatedAt && - other.scheduledAt == this.scheduledAt); + other.payload == this.payload && + other.fetchedAt == this.fetchedAt); } -class DraftsCompanion extends UpdateCompanion { - final Value id; +class CachedThreadRootsCompanion extends UpdateCompanion { final Value accountDid; - final Value content; - final Value replyUri; - final Value replyCid; - final Value rootUri; - final Value rootCid; - final Value embedJson; - final Value mediaPaths; - final Value createdAt; - final Value updatedAt; - final Value scheduledAt; - const DraftsCompanion({ - this.id = const Value.absent(), + final Value rootUri; + final Value payload; + final Value fetchedAt; + final Value rowid; + const CachedThreadRootsCompanion({ this.accountDid = const Value.absent(), - this.content = const Value.absent(), - this.replyUri = const Value.absent(), - this.replyCid = const Value.absent(), this.rootUri = const Value.absent(), - this.rootCid = const Value.absent(), - this.embedJson = const Value.absent(), - this.mediaPaths = const Value.absent(), - this.createdAt = const Value.absent(), - this.updatedAt = const Value.absent(), - this.scheduledAt = const Value.absent(), + this.payload = const Value.absent(), + this.fetchedAt = const Value.absent(), + this.rowid = const Value.absent(), }); - DraftsCompanion.insert({ - this.id = const Value.absent(), + CachedThreadRootsCompanion.insert({ required String accountDid, - required String content, - this.replyUri = const Value.absent(), - this.replyCid = const Value.absent(), - this.rootUri = const Value.absent(), - this.rootCid = const Value.absent(), - this.embedJson = const Value.absent(), - this.mediaPaths = const Value.absent(), - this.createdAt = const Value.absent(), - this.updatedAt = const Value.absent(), - this.scheduledAt = const Value.absent(), + required String rootUri, + required String payload, + this.fetchedAt = const Value.absent(), + this.rowid = const Value.absent(), }) : accountDid = Value(accountDid), - content = Value(content); - static Insertable custom({ - Expression? id, + rootUri = Value(rootUri), + payload = Value(payload); + static Insertable custom({ Expression? accountDid, - Expression? content, - Expression? replyUri, - Expression? replyCid, Expression? rootUri, - Expression? rootCid, - Expression? embedJson, - Expression? mediaPaths, - Expression? createdAt, - Expression? updatedAt, - Expression? scheduledAt, + Expression? payload, + Expression? fetchedAt, + Expression? rowid, }) { return RawValuesInsertable({ - if (id != null) 'id': id, if (accountDid != null) 'account_did': accountDid, - if (content != null) 'content': content, - if (replyUri != null) 'reply_uri': replyUri, - if (replyCid != null) 'reply_cid': replyCid, if (rootUri != null) 'root_uri': rootUri, - if (rootCid != null) 'root_cid': rootCid, - if (embedJson != null) 'embed_json': embedJson, - if (mediaPaths != null) 'media_paths': mediaPaths, - if (createdAt != null) 'created_at': createdAt, - if (updatedAt != null) 'updated_at': updatedAt, - if (scheduledAt != null) 'scheduled_at': scheduledAt, + if (payload != null) 'payload': payload, + if (fetchedAt != null) 'fetched_at': fetchedAt, + if (rowid != null) 'rowid': rowid, }); } - DraftsCompanion copyWith({ - Value? id, + CachedThreadRootsCompanion copyWith({ Value? accountDid, - Value? content, - Value? replyUri, - Value? replyCid, - Value? rootUri, - Value? rootCid, - Value? embedJson, - Value? mediaPaths, - Value? createdAt, - Value? updatedAt, - Value? scheduledAt, + Value? rootUri, + Value? payload, + Value? fetchedAt, + Value? rowid, }) { - return DraftsCompanion( - id: id ?? this.id, + return CachedThreadRootsCompanion( accountDid: accountDid ?? this.accountDid, - content: content ?? this.content, - replyUri: replyUri ?? this.replyUri, - replyCid: replyCid ?? this.replyCid, rootUri: rootUri ?? this.rootUri, - rootCid: rootCid ?? this.rootCid, - embedJson: embedJson ?? this.embedJson, - mediaPaths: mediaPaths ?? this.mediaPaths, - createdAt: createdAt ?? this.createdAt, - updatedAt: updatedAt ?? this.updatedAt, - scheduledAt: scheduledAt ?? this.scheduledAt, + payload: payload ?? this.payload, + fetchedAt: fetchedAt ?? this.fetchedAt, + rowid: rowid ?? this.rowid, ); } @override Map toColumns(bool nullToAbsent) { final map = {}; - if (id.present) { - map['id'] = Variable(id.value); - } if (accountDid.present) { map['account_did'] = Variable(accountDid.value); } - if (content.present) { - map['content'] = Variable(content.value); - } - if (replyUri.present) { - map['reply_uri'] = Variable(replyUri.value); - } - if (replyCid.present) { - map['reply_cid'] = Variable(replyCid.value); - } if (rootUri.present) { map['root_uri'] = Variable(rootUri.value); } - if (rootCid.present) { - map['root_cid'] = Variable(rootCid.value); - } - if (embedJson.present) { - map['embed_json'] = Variable(embedJson.value); - } - if (mediaPaths.present) { - map['media_paths'] = Variable(mediaPaths.value); - } - if (createdAt.present) { - map['created_at'] = Variable(createdAt.value); + if (payload.present) { + map['payload'] = Variable(payload.value); } - if (updatedAt.present) { - map['updated_at'] = Variable(updatedAt.value); + if (fetchedAt.present) { + map['fetched_at'] = Variable(fetchedAt.value); } - if (scheduledAt.present) { - map['scheduled_at'] = Variable(scheduledAt.value); + if (rowid.present) { + map['rowid'] = Variable(rowid.value); } return map; } @override String toString() { - return (StringBuffer('DraftsCompanion(') - ..write('id: $id, ') + return (StringBuffer('CachedThreadRootsCompanion(') ..write('accountDid: $accountDid, ') - ..write('content: $content, ') - ..write('replyUri: $replyUri, ') - ..write('replyCid: $replyCid, ') ..write('rootUri: $rootUri, ') - ..write('rootCid: $rootCid, ') - ..write('embedJson: $embedJson, ') - ..write('mediaPaths: $mediaPaths, ') - ..write('createdAt: $createdAt, ') - ..write('updatedAt: $updatedAt, ') - ..write('scheduledAt: $scheduledAt') + ..write('payload: $payload, ') + ..write('fetchedAt: $fetchedAt, ') + ..write('rowid: $rowid') ..write(')')) .toString(); } } -class $SavedPostsTable extends SavedPosts with TableInfo<$SavedPostsTable, SavedPostEntry> { +class $SearchHistoryTable extends SearchHistory + with TableInfo<$SearchHistoryTable, SearchHistoryEntry> { @override final GeneratedDatabase attachedDatabase; final String? _alias; - $SavedPostsTable(this.attachedDatabase, [this._alias]); + $SearchHistoryTable(this.attachedDatabase, [this._alias]); static const VerificationMeta _idMeta = const VerificationMeta('id'); @override late final GeneratedColumn id = GeneratedColumn( @@ -3026,89 +3298,103 @@ class $SavedPostsTable extends SavedPosts with TableInfo<$SavedPostsTable, Saved hasAutoIncrement: true, type: DriftSqlType.int, requiredDuringInsert: false, - defaultConstraints: GeneratedColumn.constraintIsAlways('PRIMARY KEY AUTOINCREMENT'), + defaultConstraints: GeneratedColumn.constraintIsAlways( + 'PRIMARY KEY AUTOINCREMENT', + ), ); - static const VerificationMeta _accountDidMeta = const VerificationMeta('accountDid'); + static const VerificationMeta _queryMeta = const VerificationMeta('query'); @override - late final GeneratedColumn accountDid = GeneratedColumn( - 'account_did', + late final GeneratedColumn query = GeneratedColumn( + 'query', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true, ); - static const VerificationMeta _postUriMeta = const VerificationMeta('postUri'); + static const VerificationMeta _typeMeta = const VerificationMeta('type'); @override - late final GeneratedColumn postUri = GeneratedColumn( - 'post_uri', + late final GeneratedColumn type = GeneratedColumn( + 'type', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true, ); - static const VerificationMeta _postJsonMeta = const VerificationMeta('postJson'); - @override - late final GeneratedColumn postJson = GeneratedColumn( - 'post_json', - aliasedName, - false, - type: DriftSqlType.string, - requiredDuringInsert: true, + static const VerificationMeta _searchedAtMeta = const VerificationMeta( + 'searchedAt', ); - static const VerificationMeta _saveTypeMeta = const VerificationMeta('saveType'); @override - late final GeneratedColumn saveType = GeneratedColumn( - 'save_type', + late final GeneratedColumn searchedAt = GeneratedColumn( + 'searched_at', aliasedName, false, - type: DriftSqlType.string, + type: DriftSqlType.dateTime, requiredDuringInsert: false, - defaultValue: const Constant('local'), + defaultValue: currentDateAndTime, + ); + static const VerificationMeta _accountDidMeta = const VerificationMeta( + 'accountDid', ); - static const VerificationMeta _savedAtMeta = const VerificationMeta('savedAt'); @override - late final GeneratedColumn savedAt = GeneratedColumn( - 'saved_at', + late final GeneratedColumn accountDid = GeneratedColumn( + 'account_did', aliasedName, false, - type: DriftSqlType.dateTime, - requiredDuringInsert: false, - defaultValue: currentDateAndTime, + type: DriftSqlType.string, + requiredDuringInsert: true, ); @override - List get $columns => [id, accountDid, postUri, postJson, saveType, savedAt]; + List get $columns => [ + id, + query, + type, + searchedAt, + accountDid, + ]; @override String get aliasedName => _alias ?? actualTableName; @override String get actualTableName => $name; - static const String $name = 'saved_posts'; + static const String $name = 'search_history'; @override - VerificationContext validateIntegrity(Insertable instance, {bool isInserting = false}) { + 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('account_did')) { - context.handle(_accountDidMeta, accountDid.isAcceptableOrUnknown(data['account_did']!, _accountDidMeta)); - } else if (isInserting) { - context.missing(_accountDidMeta); - } - if (data.containsKey('post_uri')) { - context.handle(_postUriMeta, postUri.isAcceptableOrUnknown(data['post_uri']!, _postUriMeta)); + if (data.containsKey('query')) { + context.handle( + _queryMeta, + query.isAcceptableOrUnknown(data['query']!, _queryMeta), + ); } else if (isInserting) { - context.missing(_postUriMeta); + context.missing(_queryMeta); } - if (data.containsKey('post_json')) { - context.handle(_postJsonMeta, postJson.isAcceptableOrUnknown(data['post_json']!, _postJsonMeta)); + if (data.containsKey('type')) { + context.handle( + _typeMeta, + type.isAcceptableOrUnknown(data['type']!, _typeMeta), + ); } else if (isInserting) { - context.missing(_postJsonMeta); + context.missing(_typeMeta); } - if (data.containsKey('save_type')) { - context.handle(_saveTypeMeta, saveType.isAcceptableOrUnknown(data['save_type']!, _saveTypeMeta)); + if (data.containsKey('searched_at')) { + context.handle( + _searchedAtMeta, + searchedAt.isAcceptableOrUnknown(data['searched_at']!, _searchedAtMeta), + ); } - if (data.containsKey('saved_at')) { - context.handle(_savedAtMeta, savedAt.isAcceptableOrUnknown(data['saved_at']!, _savedAtMeta)); + if (data.containsKey('account_did')) { + context.handle( + _accountDidMeta, + accountDid.isAcceptableOrUnknown(data['account_did']!, _accountDidMeta), + ); + } else if (isInserting) { + context.missing(_accountDidMeta); } return context; } @@ -3116,71 +3402,84 @@ class $SavedPostsTable extends SavedPosts with TableInfo<$SavedPostsTable, Saved @override Set get $primaryKey => {id}; @override - SavedPostEntry map(Map data, {String? tablePrefix}) { + SearchHistoryEntry map(Map data, {String? tablePrefix}) { final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; - return SavedPostEntry( - id: attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}id'])!, - accountDid: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}account_did'])!, - postUri: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}post_uri'])!, - postJson: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}post_json'])!, - saveType: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}save_type'])!, - savedAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}saved_at'])!, + return SearchHistoryEntry( + id: attachedDatabase.typeMapping.read( + DriftSqlType.int, + data['${effectivePrefix}id'], + )!, + query: attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}query'], + )!, + type: attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}type'], + )!, + searchedAt: attachedDatabase.typeMapping.read( + DriftSqlType.dateTime, + data['${effectivePrefix}searched_at'], + )!, + accountDid: attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}account_did'], + )!, ); } @override - $SavedPostsTable createAlias(String alias) { - return $SavedPostsTable(attachedDatabase, alias); + $SearchHistoryTable createAlias(String alias) { + return $SearchHistoryTable(attachedDatabase, alias); } } -class SavedPostEntry extends DataClass implements Insertable { +class SearchHistoryEntry extends DataClass + implements Insertable { final int id; + final String query; + final String type; + final DateTime searchedAt; final String accountDid; - final String postUri; - final String postJson; - final String saveType; - final DateTime savedAt; - const SavedPostEntry({ + const SearchHistoryEntry({ required this.id, + required this.query, + required this.type, + required this.searchedAt, required this.accountDid, - required this.postUri, - required this.postJson, - required this.saveType, - required this.savedAt, }); @override Map toColumns(bool nullToAbsent) { final map = {}; map['id'] = Variable(id); + map['query'] = Variable(query); + map['type'] = Variable(type); + map['searched_at'] = Variable(searchedAt); map['account_did'] = Variable(accountDid); - map['post_uri'] = Variable(postUri); - map['post_json'] = Variable(postJson); - map['save_type'] = Variable(saveType); - map['saved_at'] = Variable(savedAt); return map; } - SavedPostsCompanion toCompanion(bool nullToAbsent) { - return SavedPostsCompanion( + SearchHistoryCompanion toCompanion(bool nullToAbsent) { + return SearchHistoryCompanion( id: Value(id), + query: Value(query), + type: Value(type), + searchedAt: Value(searchedAt), accountDid: Value(accountDid), - postUri: Value(postUri), - postJson: Value(postJson), - saveType: Value(saveType), - savedAt: Value(savedAt), ); } - factory SavedPostEntry.fromJson(Map json, {ValueSerializer? serializer}) { + factory SearchHistoryEntry.fromJson( + Map json, { + ValueSerializer? serializer, + }) { serializer ??= driftRuntimeOptions.defaultSerializer; - return SavedPostEntry( + return SearchHistoryEntry( id: serializer.fromJson(json['id']), + query: serializer.fromJson(json['query']), + type: serializer.fromJson(json['type']), + searchedAt: serializer.fromJson(json['searchedAt']), accountDid: serializer.fromJson(json['accountDid']), - postUri: serializer.fromJson(json['postUri']), - postJson: serializer.fromJson(json['postJson']), - saveType: serializer.fromJson(json['saveType']), - savedAt: serializer.fromJson(json['savedAt']), ); } @override @@ -3188,125 +3487,116 @@ class SavedPostEntry extends DataClass implements Insertable { serializer ??= driftRuntimeOptions.defaultSerializer; return { 'id': serializer.toJson(id), + 'query': serializer.toJson(query), + 'type': serializer.toJson(type), + 'searchedAt': serializer.toJson(searchedAt), 'accountDid': serializer.toJson(accountDid), - 'postUri': serializer.toJson(postUri), - 'postJson': serializer.toJson(postJson), - 'saveType': serializer.toJson(saveType), - 'savedAt': serializer.toJson(savedAt), }; } - SavedPostEntry copyWith({ + SearchHistoryEntry copyWith({ int? id, + String? query, + String? type, + DateTime? searchedAt, String? accountDid, - String? postUri, - String? postJson, - String? saveType, - DateTime? savedAt, - }) => SavedPostEntry( + }) => SearchHistoryEntry( id: id ?? this.id, + query: query ?? this.query, + type: type ?? this.type, + searchedAt: searchedAt ?? this.searchedAt, accountDid: accountDid ?? this.accountDid, - postUri: postUri ?? this.postUri, - postJson: postJson ?? this.postJson, - saveType: saveType ?? this.saveType, - savedAt: savedAt ?? this.savedAt, ); - SavedPostEntry copyWithCompanion(SavedPostsCompanion data) { - return SavedPostEntry( + SearchHistoryEntry copyWithCompanion(SearchHistoryCompanion data) { + return SearchHistoryEntry( id: data.id.present ? data.id.value : this.id, - accountDid: data.accountDid.present ? data.accountDid.value : this.accountDid, - postUri: data.postUri.present ? data.postUri.value : this.postUri, - postJson: data.postJson.present ? data.postJson.value : this.postJson, - saveType: data.saveType.present ? data.saveType.value : this.saveType, - savedAt: data.savedAt.present ? data.savedAt.value : this.savedAt, + query: data.query.present ? data.query.value : this.query, + type: data.type.present ? data.type.value : this.type, + searchedAt: data.searchedAt.present + ? data.searchedAt.value + : this.searchedAt, + accountDid: data.accountDid.present + ? data.accountDid.value + : this.accountDid, ); } @override String toString() { - return (StringBuffer('SavedPostEntry(') + return (StringBuffer('SearchHistoryEntry(') ..write('id: $id, ') - ..write('accountDid: $accountDid, ') - ..write('postUri: $postUri, ') - ..write('postJson: $postJson, ') - ..write('saveType: $saveType, ') - ..write('savedAt: $savedAt') + ..write('query: $query, ') + ..write('type: $type, ') + ..write('searchedAt: $searchedAt, ') + ..write('accountDid: $accountDid') ..write(')')) .toString(); } @override - int get hashCode => Object.hash(id, accountDid, postUri, postJson, saveType, savedAt); + int get hashCode => Object.hash(id, query, type, searchedAt, accountDid); @override bool operator ==(Object other) => identical(this, other) || - (other is SavedPostEntry && + (other is SearchHistoryEntry && other.id == this.id && - other.accountDid == this.accountDid && - other.postUri == this.postUri && - other.postJson == this.postJson && - other.saveType == this.saveType && - other.savedAt == this.savedAt); + other.query == this.query && + other.type == this.type && + other.searchedAt == this.searchedAt && + other.accountDid == this.accountDid); } -class SavedPostsCompanion extends UpdateCompanion { +class SearchHistoryCompanion extends UpdateCompanion { final Value id; + final Value query; + final Value type; + final Value searchedAt; final Value accountDid; - final Value postUri; - final Value postJson; - final Value saveType; - final Value savedAt; - const SavedPostsCompanion({ + const SearchHistoryCompanion({ this.id = const Value.absent(), + this.query = const Value.absent(), + this.type = const Value.absent(), + this.searchedAt = const Value.absent(), this.accountDid = const Value.absent(), - this.postUri = const Value.absent(), - this.postJson = const Value.absent(), - this.saveType = const Value.absent(), - this.savedAt = const Value.absent(), }); - SavedPostsCompanion.insert({ + SearchHistoryCompanion.insert({ this.id = const Value.absent(), + required String query, + required String type, + this.searchedAt = const Value.absent(), required String accountDid, - required String postUri, - required String postJson, - this.saveType = const Value.absent(), - this.savedAt = const Value.absent(), - }) : accountDid = Value(accountDid), - postUri = Value(postUri), - postJson = Value(postJson); - static Insertable custom({ + }) : query = Value(query), + type = Value(type), + accountDid = Value(accountDid); + static Insertable custom({ Expression? id, + Expression? query, + Expression? type, + Expression? searchedAt, Expression? accountDid, - Expression? postUri, - Expression? postJson, - Expression? saveType, - Expression? savedAt, }) { return RawValuesInsertable({ if (id != null) 'id': id, + if (query != null) 'query': query, + if (type != null) 'type': type, + if (searchedAt != null) 'searched_at': searchedAt, if (accountDid != null) 'account_did': accountDid, - if (postUri != null) 'post_uri': postUri, - if (postJson != null) 'post_json': postJson, - if (saveType != null) 'save_type': saveType, - if (savedAt != null) 'saved_at': savedAt, }); } - SavedPostsCompanion copyWith({ + SearchHistoryCompanion copyWith({ Value? id, + Value? query, + Value? type, + Value? searchedAt, Value? accountDid, - Value? postUri, - Value? postJson, - Value? saveType, - Value? savedAt, }) { - return SavedPostsCompanion( + return SearchHistoryCompanion( id: id ?? this.id, + query: query ?? this.query, + type: type ?? this.type, + searchedAt: searchedAt ?? this.searchedAt, accountDid: accountDid ?? this.accountDid, - postUri: postUri ?? this.postUri, - postJson: postJson ?? this.postJson, - saveType: saveType ?? this.saveType, - savedAt: savedAt ?? this.savedAt, ); } @@ -3316,271 +3606,745 @@ class SavedPostsCompanion extends UpdateCompanion { if (id.present) { map['id'] = Variable(id.value); } - if (accountDid.present) { - map['account_did'] = Variable(accountDid.value); - } - if (postUri.present) { - map['post_uri'] = Variable(postUri.value); + if (query.present) { + map['query'] = Variable(query.value); } - if (postJson.present) { - map['post_json'] = Variable(postJson.value); + if (type.present) { + map['type'] = Variable(type.value); } - if (saveType.present) { - map['save_type'] = Variable(saveType.value); + if (searchedAt.present) { + map['searched_at'] = Variable(searchedAt.value); } - if (savedAt.present) { - map['saved_at'] = Variable(savedAt.value); + if (accountDid.present) { + map['account_did'] = Variable(accountDid.value); } return map; } @override String toString() { - return (StringBuffer('SavedPostsCompanion(') + return (StringBuffer('SearchHistoryCompanion(') ..write('id: $id, ') - ..write('accountDid: $accountDid, ') - ..write('postUri: $postUri, ') - ..write('postJson: $postJson, ') - ..write('saveType: $saveType, ') - ..write('savedAt: $savedAt') + ..write('query: $query, ') + ..write('type: $type, ') + ..write('searchedAt: $searchedAt, ') + ..write('accountDid: $accountDid') ..write(')')) .toString(); } } -class $LabelerCacheTable extends LabelerCache with TableInfo<$LabelerCacheTable, LabelerCacheEntry> { +class $DraftsTable extends Drafts with TableInfo<$DraftsTable, DraftEntry> { @override final GeneratedDatabase attachedDatabase; final String? _alias; - $LabelerCacheTable(this.attachedDatabase, [this._alias]); - static const VerificationMeta _labelerDidMeta = const VerificationMeta('labelerDid'); + $DraftsTable(this.attachedDatabase, [this._alias]); + static const VerificationMeta _idMeta = const VerificationMeta('id'); @override - late final GeneratedColumn labelerDid = GeneratedColumn( - 'labeler_did', + late final GeneratedColumn id = GeneratedColumn( + 'id', aliasedName, false, - type: DriftSqlType.string, - requiredDuringInsert: true, + hasAutoIncrement: true, + type: DriftSqlType.int, + requiredDuringInsert: false, + defaultConstraints: GeneratedColumn.constraintIsAlways( + 'PRIMARY KEY AUTOINCREMENT', + ), + ); + static const VerificationMeta _accountDidMeta = const VerificationMeta( + 'accountDid', ); - static const VerificationMeta _policiesJsonMeta = const VerificationMeta('policiesJson'); @override - late final GeneratedColumn policiesJson = GeneratedColumn( - 'policies_json', + late final GeneratedColumn accountDid = GeneratedColumn( + 'account_did', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true, ); - static const VerificationMeta _fetchedAtMeta = const VerificationMeta('fetchedAt'); + static const VerificationMeta _contentMeta = const VerificationMeta( + 'content', + ); @override - late final GeneratedColumn fetchedAt = GeneratedColumn( - 'fetched_at', + late final GeneratedColumn content = GeneratedColumn( + 'content', aliasedName, false, - type: DriftSqlType.dateTime, + type: DriftSqlType.string, + requiredDuringInsert: true, + ); + static const VerificationMeta _replyUriMeta = const VerificationMeta( + 'replyUri', + ); + @override + late final GeneratedColumn replyUri = GeneratedColumn( + 'reply_uri', + aliasedName, + true, + type: DriftSqlType.string, + requiredDuringInsert: false, + ); + static const VerificationMeta _replyCidMeta = const VerificationMeta( + 'replyCid', + ); + @override + late final GeneratedColumn replyCid = GeneratedColumn( + 'reply_cid', + aliasedName, + true, + type: DriftSqlType.string, + requiredDuringInsert: false, + ); + static const VerificationMeta _rootUriMeta = const VerificationMeta( + 'rootUri', + ); + @override + late final GeneratedColumn rootUri = GeneratedColumn( + 'root_uri', + aliasedName, + true, + type: DriftSqlType.string, + requiredDuringInsert: false, + ); + static const VerificationMeta _rootCidMeta = const VerificationMeta( + 'rootCid', + ); + @override + late final GeneratedColumn rootCid = GeneratedColumn( + 'root_cid', + aliasedName, + true, + type: DriftSqlType.string, + requiredDuringInsert: false, + ); + static const VerificationMeta _embedJsonMeta = const VerificationMeta( + 'embedJson', + ); + @override + late final GeneratedColumn embedJson = GeneratedColumn( + 'embed_json', + aliasedName, + true, + type: DriftSqlType.string, + requiredDuringInsert: false, + ); + static const VerificationMeta _mediaPathsMeta = const VerificationMeta( + 'mediaPaths', + ); + @override + late final GeneratedColumn mediaPaths = GeneratedColumn( + 'media_paths', + 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: DriftSqlType.dateTime, requiredDuringInsert: false, defaultValue: currentDateAndTime, ); + static const VerificationMeta _updatedAtMeta = const VerificationMeta( + 'updatedAt', + ); @override - List get $columns => [labelerDid, policiesJson, fetchedAt]; + late final GeneratedColumn updatedAt = GeneratedColumn( + 'updated_at', + aliasedName, + false, + type: DriftSqlType.dateTime, + requiredDuringInsert: false, + defaultValue: currentDateAndTime, + ); + static const VerificationMeta _scheduledAtMeta = const VerificationMeta( + 'scheduledAt', + ); + @override + late final GeneratedColumn scheduledAt = GeneratedColumn( + 'scheduled_at', + aliasedName, + true, + type: DriftSqlType.dateTime, + requiredDuringInsert: false, + ); + @override + List get $columns => [ + id, + accountDid, + content, + replyUri, + replyCid, + rootUri, + rootCid, + embedJson, + mediaPaths, + createdAt, + updatedAt, + scheduledAt, + ]; @override String get aliasedName => _alias ?? actualTableName; @override String get actualTableName => $name; - static const String $name = 'labeler_cache'; + static const String $name = 'drafts'; @override - VerificationContext validateIntegrity(Insertable instance, {bool isInserting = false}) { + VerificationContext validateIntegrity( + Insertable instance, { + bool isInserting = false, + }) { final context = VerificationContext(); final data = instance.toColumns(true); - if (data.containsKey('labeler_did')) { - context.handle(_labelerDidMeta, labelerDid.isAcceptableOrUnknown(data['labeler_did']!, _labelerDidMeta)); + if (data.containsKey('id')) { + context.handle(_idMeta, id.isAcceptableOrUnknown(data['id']!, _idMeta)); + } + if (data.containsKey('account_did')) { + context.handle( + _accountDidMeta, + accountDid.isAcceptableOrUnknown(data['account_did']!, _accountDidMeta), + ); } else if (isInserting) { - context.missing(_labelerDidMeta); + context.missing(_accountDidMeta); } - if (data.containsKey('policies_json')) { - context.handle(_policiesJsonMeta, policiesJson.isAcceptableOrUnknown(data['policies_json']!, _policiesJsonMeta)); + if (data.containsKey('content')) { + context.handle( + _contentMeta, + content.isAcceptableOrUnknown(data['content']!, _contentMeta), + ); } else if (isInserting) { - context.missing(_policiesJsonMeta); + context.missing(_contentMeta); } - if (data.containsKey('fetched_at')) { - context.handle(_fetchedAtMeta, fetchedAt.isAcceptableOrUnknown(data['fetched_at']!, _fetchedAtMeta)); + if (data.containsKey('reply_uri')) { + context.handle( + _replyUriMeta, + replyUri.isAcceptableOrUnknown(data['reply_uri']!, _replyUriMeta), + ); + } + if (data.containsKey('reply_cid')) { + context.handle( + _replyCidMeta, + replyCid.isAcceptableOrUnknown(data['reply_cid']!, _replyCidMeta), + ); + } + if (data.containsKey('root_uri')) { + context.handle( + _rootUriMeta, + rootUri.isAcceptableOrUnknown(data['root_uri']!, _rootUriMeta), + ); + } + if (data.containsKey('root_cid')) { + context.handle( + _rootCidMeta, + rootCid.isAcceptableOrUnknown(data['root_cid']!, _rootCidMeta), + ); + } + if (data.containsKey('embed_json')) { + context.handle( + _embedJsonMeta, + embedJson.isAcceptableOrUnknown(data['embed_json']!, _embedJsonMeta), + ); + } + if (data.containsKey('media_paths')) { + context.handle( + _mediaPathsMeta, + mediaPaths.isAcceptableOrUnknown(data['media_paths']!, _mediaPathsMeta), + ); + } + 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('scheduled_at')) { + context.handle( + _scheduledAtMeta, + scheduledAt.isAcceptableOrUnknown( + data['scheduled_at']!, + _scheduledAtMeta, + ), + ); } return context; } @override - Set get $primaryKey => {labelerDid}; + Set get $primaryKey => {id}; @override - LabelerCacheEntry map(Map data, {String? tablePrefix}) { + DraftEntry map(Map data, {String? tablePrefix}) { final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; - return LabelerCacheEntry( - labelerDid: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}labeler_did'])!, - policiesJson: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}policies_json'])!, - fetchedAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}fetched_at'])!, + return DraftEntry( + id: attachedDatabase.typeMapping.read( + DriftSqlType.int, + data['${effectivePrefix}id'], + )!, + accountDid: attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}account_did'], + )!, + content: attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}content'], + )!, + replyUri: attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}reply_uri'], + ), + replyCid: attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}reply_cid'], + ), + rootUri: attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}root_uri'], + ), + rootCid: attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}root_cid'], + ), + embedJson: attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}embed_json'], + ), + mediaPaths: attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}media_paths'], + ), + createdAt: attachedDatabase.typeMapping.read( + DriftSqlType.dateTime, + data['${effectivePrefix}created_at'], + )!, + updatedAt: attachedDatabase.typeMapping.read( + DriftSqlType.dateTime, + data['${effectivePrefix}updated_at'], + )!, + scheduledAt: attachedDatabase.typeMapping.read( + DriftSqlType.dateTime, + data['${effectivePrefix}scheduled_at'], + ), ); } @override - $LabelerCacheTable createAlias(String alias) { - return $LabelerCacheTable(attachedDatabase, alias); + $DraftsTable createAlias(String alias) { + return $DraftsTable(attachedDatabase, alias); } } -class LabelerCacheEntry extends DataClass implements Insertable { - final String labelerDid; - final String policiesJson; - final DateTime fetchedAt; - const LabelerCacheEntry({required this.labelerDid, required this.policiesJson, required this.fetchedAt}); +class DraftEntry extends DataClass implements Insertable { + final int id; + final String accountDid; + final String content; + final String? replyUri; + final String? replyCid; + final String? rootUri; + final String? rootCid; + final String? embedJson; + final String? mediaPaths; + final DateTime createdAt; + final DateTime updatedAt; + final DateTime? scheduledAt; + const DraftEntry({ + required this.id, + required this.accountDid, + required this.content, + this.replyUri, + this.replyCid, + this.rootUri, + this.rootCid, + this.embedJson, + this.mediaPaths, + required this.createdAt, + required this.updatedAt, + this.scheduledAt, + }); @override Map toColumns(bool nullToAbsent) { final map = {}; - map['labeler_did'] = Variable(labelerDid); - map['policies_json'] = Variable(policiesJson); - map['fetched_at'] = Variable(fetchedAt); + map['id'] = Variable(id); + map['account_did'] = Variable(accountDid); + map['content'] = Variable(content); + if (!nullToAbsent || replyUri != null) { + map['reply_uri'] = Variable(replyUri); + } + if (!nullToAbsent || replyCid != null) { + map['reply_cid'] = Variable(replyCid); + } + if (!nullToAbsent || rootUri != null) { + map['root_uri'] = Variable(rootUri); + } + if (!nullToAbsent || rootCid != null) { + map['root_cid'] = Variable(rootCid); + } + if (!nullToAbsent || embedJson != null) { + map['embed_json'] = Variable(embedJson); + } + if (!nullToAbsent || mediaPaths != null) { + map['media_paths'] = Variable(mediaPaths); + } + map['created_at'] = Variable(createdAt); + map['updated_at'] = Variable(updatedAt); + if (!nullToAbsent || scheduledAt != null) { + map['scheduled_at'] = Variable(scheduledAt); + } return map; } - LabelerCacheCompanion toCompanion(bool nullToAbsent) { - return LabelerCacheCompanion( - labelerDid: Value(labelerDid), - policiesJson: Value(policiesJson), - fetchedAt: Value(fetchedAt), + DraftsCompanion toCompanion(bool nullToAbsent) { + return DraftsCompanion( + id: Value(id), + accountDid: Value(accountDid), + content: Value(content), + replyUri: replyUri == null && nullToAbsent + ? const Value.absent() + : Value(replyUri), + replyCid: replyCid == null && nullToAbsent + ? const Value.absent() + : Value(replyCid), + rootUri: rootUri == null && nullToAbsent + ? const Value.absent() + : Value(rootUri), + rootCid: rootCid == null && nullToAbsent + ? const Value.absent() + : Value(rootCid), + embedJson: embedJson == null && nullToAbsent + ? const Value.absent() + : Value(embedJson), + mediaPaths: mediaPaths == null && nullToAbsent + ? const Value.absent() + : Value(mediaPaths), + createdAt: Value(createdAt), + updatedAt: Value(updatedAt), + scheduledAt: scheduledAt == null && nullToAbsent + ? const Value.absent() + : Value(scheduledAt), ); } - factory LabelerCacheEntry.fromJson(Map json, {ValueSerializer? serializer}) { + factory DraftEntry.fromJson( + Map json, { + ValueSerializer? serializer, + }) { serializer ??= driftRuntimeOptions.defaultSerializer; - return LabelerCacheEntry( - labelerDid: serializer.fromJson(json['labelerDid']), - policiesJson: serializer.fromJson(json['policiesJson']), - fetchedAt: serializer.fromJson(json['fetchedAt']), - ); - } + return DraftEntry( + id: serializer.fromJson(json['id']), + accountDid: serializer.fromJson(json['accountDid']), + content: serializer.fromJson(json['content']), + replyUri: serializer.fromJson(json['replyUri']), + replyCid: serializer.fromJson(json['replyCid']), + rootUri: serializer.fromJson(json['rootUri']), + rootCid: serializer.fromJson(json['rootCid']), + embedJson: serializer.fromJson(json['embedJson']), + mediaPaths: serializer.fromJson(json['mediaPaths']), + createdAt: serializer.fromJson(json['createdAt']), + updatedAt: serializer.fromJson(json['updatedAt']), + scheduledAt: serializer.fromJson(json['scheduledAt']), + ); + } @override Map toJson({ValueSerializer? serializer}) { serializer ??= driftRuntimeOptions.defaultSerializer; return { - 'labelerDid': serializer.toJson(labelerDid), - 'policiesJson': serializer.toJson(policiesJson), - 'fetchedAt': serializer.toJson(fetchedAt), + 'id': serializer.toJson(id), + 'accountDid': serializer.toJson(accountDid), + 'content': serializer.toJson(content), + 'replyUri': serializer.toJson(replyUri), + 'replyCid': serializer.toJson(replyCid), + 'rootUri': serializer.toJson(rootUri), + 'rootCid': serializer.toJson(rootCid), + 'embedJson': serializer.toJson(embedJson), + 'mediaPaths': serializer.toJson(mediaPaths), + 'createdAt': serializer.toJson(createdAt), + 'updatedAt': serializer.toJson(updatedAt), + 'scheduledAt': serializer.toJson(scheduledAt), }; } - LabelerCacheEntry copyWith({String? labelerDid, String? policiesJson, DateTime? fetchedAt}) => LabelerCacheEntry( - labelerDid: labelerDid ?? this.labelerDid, - policiesJson: policiesJson ?? this.policiesJson, - fetchedAt: fetchedAt ?? this.fetchedAt, + DraftEntry copyWith({ + int? id, + String? accountDid, + String? content, + Value replyUri = const Value.absent(), + Value replyCid = const Value.absent(), + Value rootUri = const Value.absent(), + Value rootCid = const Value.absent(), + Value embedJson = const Value.absent(), + Value mediaPaths = const Value.absent(), + DateTime? createdAt, + DateTime? updatedAt, + Value scheduledAt = const Value.absent(), + }) => DraftEntry( + id: id ?? this.id, + accountDid: accountDid ?? this.accountDid, + content: content ?? this.content, + replyUri: replyUri.present ? replyUri.value : this.replyUri, + replyCid: replyCid.present ? replyCid.value : this.replyCid, + rootUri: rootUri.present ? rootUri.value : this.rootUri, + rootCid: rootCid.present ? rootCid.value : this.rootCid, + embedJson: embedJson.present ? embedJson.value : this.embedJson, + mediaPaths: mediaPaths.present ? mediaPaths.value : this.mediaPaths, + createdAt: createdAt ?? this.createdAt, + updatedAt: updatedAt ?? this.updatedAt, + scheduledAt: scheduledAt.present ? scheduledAt.value : this.scheduledAt, ); - LabelerCacheEntry copyWithCompanion(LabelerCacheCompanion data) { - return LabelerCacheEntry( - labelerDid: data.labelerDid.present ? data.labelerDid.value : this.labelerDid, - policiesJson: data.policiesJson.present ? data.policiesJson.value : this.policiesJson, - fetchedAt: data.fetchedAt.present ? data.fetchedAt.value : this.fetchedAt, + DraftEntry copyWithCompanion(DraftsCompanion data) { + return DraftEntry( + id: data.id.present ? data.id.value : this.id, + accountDid: data.accountDid.present + ? data.accountDid.value + : this.accountDid, + content: data.content.present ? data.content.value : this.content, + replyUri: data.replyUri.present ? data.replyUri.value : this.replyUri, + replyCid: data.replyCid.present ? data.replyCid.value : this.replyCid, + rootUri: data.rootUri.present ? data.rootUri.value : this.rootUri, + rootCid: data.rootCid.present ? data.rootCid.value : this.rootCid, + embedJson: data.embedJson.present ? data.embedJson.value : this.embedJson, + mediaPaths: data.mediaPaths.present + ? data.mediaPaths.value + : this.mediaPaths, + createdAt: data.createdAt.present ? data.createdAt.value : this.createdAt, + updatedAt: data.updatedAt.present ? data.updatedAt.value : this.updatedAt, + scheduledAt: data.scheduledAt.present + ? data.scheduledAt.value + : this.scheduledAt, ); } @override String toString() { - return (StringBuffer('LabelerCacheEntry(') - ..write('labelerDid: $labelerDid, ') - ..write('policiesJson: $policiesJson, ') - ..write('fetchedAt: $fetchedAt') + return (StringBuffer('DraftEntry(') + ..write('id: $id, ') + ..write('accountDid: $accountDid, ') + ..write('content: $content, ') + ..write('replyUri: $replyUri, ') + ..write('replyCid: $replyCid, ') + ..write('rootUri: $rootUri, ') + ..write('rootCid: $rootCid, ') + ..write('embedJson: $embedJson, ') + ..write('mediaPaths: $mediaPaths, ') + ..write('createdAt: $createdAt, ') + ..write('updatedAt: $updatedAt, ') + ..write('scheduledAt: $scheduledAt') ..write(')')) .toString(); } @override - int get hashCode => Object.hash(labelerDid, policiesJson, fetchedAt); + int get hashCode => Object.hash( + id, + accountDid, + content, + replyUri, + replyCid, + rootUri, + rootCid, + embedJson, + mediaPaths, + createdAt, + updatedAt, + scheduledAt, + ); @override bool operator ==(Object other) => identical(this, other) || - (other is LabelerCacheEntry && - other.labelerDid == this.labelerDid && - other.policiesJson == this.policiesJson && - other.fetchedAt == this.fetchedAt); + (other is DraftEntry && + other.id == this.id && + other.accountDid == this.accountDid && + other.content == this.content && + other.replyUri == this.replyUri && + other.replyCid == this.replyCid && + other.rootUri == this.rootUri && + other.rootCid == this.rootCid && + other.embedJson == this.embedJson && + other.mediaPaths == this.mediaPaths && + other.createdAt == this.createdAt && + other.updatedAt == this.updatedAt && + other.scheduledAt == this.scheduledAt); } -class LabelerCacheCompanion extends UpdateCompanion { - final Value labelerDid; - final Value policiesJson; - final Value fetchedAt; - final Value rowid; - const LabelerCacheCompanion({ - this.labelerDid = const Value.absent(), - this.policiesJson = const Value.absent(), - this.fetchedAt = const Value.absent(), - this.rowid = const Value.absent(), +class DraftsCompanion extends UpdateCompanion { + final Value id; + final Value accountDid; + final Value content; + final Value replyUri; + final Value replyCid; + final Value rootUri; + final Value rootCid; + final Value embedJson; + final Value mediaPaths; + final Value createdAt; + final Value updatedAt; + final Value scheduledAt; + const DraftsCompanion({ + this.id = const Value.absent(), + this.accountDid = const Value.absent(), + this.content = const Value.absent(), + this.replyUri = const Value.absent(), + this.replyCid = const Value.absent(), + this.rootUri = const Value.absent(), + this.rootCid = const Value.absent(), + this.embedJson = const Value.absent(), + this.mediaPaths = const Value.absent(), + this.createdAt = const Value.absent(), + this.updatedAt = const Value.absent(), + this.scheduledAt = const Value.absent(), }); - LabelerCacheCompanion.insert({ - required String labelerDid, - required String policiesJson, - this.fetchedAt = const Value.absent(), - this.rowid = const Value.absent(), - }) : labelerDid = Value(labelerDid), - policiesJson = Value(policiesJson); - static Insertable custom({ - Expression? labelerDid, - Expression? policiesJson, - Expression? fetchedAt, - Expression? rowid, + DraftsCompanion.insert({ + this.id = const Value.absent(), + required String accountDid, + required String content, + this.replyUri = const Value.absent(), + this.replyCid = const Value.absent(), + this.rootUri = const Value.absent(), + this.rootCid = const Value.absent(), + this.embedJson = const Value.absent(), + this.mediaPaths = const Value.absent(), + this.createdAt = const Value.absent(), + this.updatedAt = const Value.absent(), + this.scheduledAt = const Value.absent(), + }) : accountDid = Value(accountDid), + content = Value(content); + static Insertable custom({ + Expression? id, + Expression? accountDid, + Expression? content, + Expression? replyUri, + Expression? replyCid, + Expression? rootUri, + Expression? rootCid, + Expression? embedJson, + Expression? mediaPaths, + Expression? createdAt, + Expression? updatedAt, + Expression? scheduledAt, }) { return RawValuesInsertable({ - if (labelerDid != null) 'labeler_did': labelerDid, - if (policiesJson != null) 'policies_json': policiesJson, - if (fetchedAt != null) 'fetched_at': fetchedAt, - if (rowid != null) 'rowid': rowid, + if (id != null) 'id': id, + if (accountDid != null) 'account_did': accountDid, + if (content != null) 'content': content, + if (replyUri != null) 'reply_uri': replyUri, + if (replyCid != null) 'reply_cid': replyCid, + if (rootUri != null) 'root_uri': rootUri, + if (rootCid != null) 'root_cid': rootCid, + if (embedJson != null) 'embed_json': embedJson, + if (mediaPaths != null) 'media_paths': mediaPaths, + if (createdAt != null) 'created_at': createdAt, + if (updatedAt != null) 'updated_at': updatedAt, + if (scheduledAt != null) 'scheduled_at': scheduledAt, }); } - LabelerCacheCompanion copyWith({ - Value? labelerDid, - Value? policiesJson, - Value? fetchedAt, - Value? rowid, + DraftsCompanion copyWith({ + Value? id, + Value? accountDid, + Value? content, + Value? replyUri, + Value? replyCid, + Value? rootUri, + Value? rootCid, + Value? embedJson, + Value? mediaPaths, + Value? createdAt, + Value? updatedAt, + Value? scheduledAt, }) { - return LabelerCacheCompanion( - labelerDid: labelerDid ?? this.labelerDid, - policiesJson: policiesJson ?? this.policiesJson, - fetchedAt: fetchedAt ?? this.fetchedAt, - rowid: rowid ?? this.rowid, + return DraftsCompanion( + id: id ?? this.id, + accountDid: accountDid ?? this.accountDid, + content: content ?? this.content, + replyUri: replyUri ?? this.replyUri, + replyCid: replyCid ?? this.replyCid, + rootUri: rootUri ?? this.rootUri, + rootCid: rootCid ?? this.rootCid, + embedJson: embedJson ?? this.embedJson, + mediaPaths: mediaPaths ?? this.mediaPaths, + createdAt: createdAt ?? this.createdAt, + updatedAt: updatedAt ?? this.updatedAt, + scheduledAt: scheduledAt ?? this.scheduledAt, ); } @override Map toColumns(bool nullToAbsent) { final map = {}; - if (labelerDid.present) { - map['labeler_did'] = Variable(labelerDid.value); + if (id.present) { + map['id'] = Variable(id.value); } - if (policiesJson.present) { - map['policies_json'] = Variable(policiesJson.value); + if (accountDid.present) { + map['account_did'] = Variable(accountDid.value); } - if (fetchedAt.present) { - map['fetched_at'] = Variable(fetchedAt.value); + if (content.present) { + map['content'] = Variable(content.value); } - if (rowid.present) { - map['rowid'] = Variable(rowid.value); + if (replyUri.present) { + map['reply_uri'] = Variable(replyUri.value); + } + if (replyCid.present) { + map['reply_cid'] = Variable(replyCid.value); + } + if (rootUri.present) { + map['root_uri'] = Variable(rootUri.value); + } + if (rootCid.present) { + map['root_cid'] = Variable(rootCid.value); + } + if (embedJson.present) { + map['embed_json'] = Variable(embedJson.value); + } + if (mediaPaths.present) { + map['media_paths'] = Variable(mediaPaths.value); + } + if (createdAt.present) { + map['created_at'] = Variable(createdAt.value); + } + if (updatedAt.present) { + map['updated_at'] = Variable(updatedAt.value); + } + if (scheduledAt.present) { + map['scheduled_at'] = Variable(scheduledAt.value); } return map; } @override String toString() { - return (StringBuffer('LabelerCacheCompanion(') - ..write('labelerDid: $labelerDid, ') - ..write('policiesJson: $policiesJson, ') - ..write('fetchedAt: $fetchedAt, ') - ..write('rowid: $rowid') + return (StringBuffer('DraftsCompanion(') + ..write('id: $id, ') + ..write('accountDid: $accountDid, ') + ..write('content: $content, ') + ..write('replyUri: $replyUri, ') + ..write('replyCid: $replyCid, ') + ..write('rootUri: $rootUri, ') + ..write('rootCid: $rootCid, ') + ..write('embedJson: $embedJson, ') + ..write('mediaPaths: $mediaPaths, ') + ..write('createdAt: $createdAt, ') + ..write('updatedAt: $updatedAt, ') + ..write('scheduledAt: $scheduledAt') ..write(')')) .toString(); } } -class $LikedPostsTable extends LikedPosts with TableInfo<$LikedPostsTable, LikedPostEntry> { +class $SavedPostsTable extends SavedPosts + with TableInfo<$SavedPostsTable, SavedPostEntry> { @override final GeneratedDatabase attachedDatabase; final String? _alias; - $LikedPostsTable(this.attachedDatabase, [this._alias]); + $SavedPostsTable(this.attachedDatabase, [this._alias]); static const VerificationMeta _idMeta = const VerificationMeta('id'); @override late final GeneratedColumn id = GeneratedColumn( @@ -3590,9 +4354,13 @@ class $LikedPostsTable extends LikedPosts with TableInfo<$LikedPostsTable, Liked hasAutoIncrement: true, type: DriftSqlType.int, requiredDuringInsert: false, - defaultConstraints: GeneratedColumn.constraintIsAlways('PRIMARY KEY AUTOINCREMENT'), + defaultConstraints: GeneratedColumn.constraintIsAlways( + 'PRIMARY KEY AUTOINCREMENT', + ), + ); + static const VerificationMeta _accountDidMeta = const VerificationMeta( + 'accountDid', ); - static const VerificationMeta _accountDidMeta = const VerificationMeta('accountDid'); @override late final GeneratedColumn accountDid = GeneratedColumn( 'account_did', @@ -3601,7 +4369,9 @@ class $LikedPostsTable extends LikedPosts with TableInfo<$LikedPostsTable, Liked type: DriftSqlType.string, requiredDuringInsert: true, ); - static const VerificationMeta _postUriMeta = const VerificationMeta('postUri'); + static const VerificationMeta _postUriMeta = const VerificationMeta( + 'postUri', + ); @override late final GeneratedColumn postUri = GeneratedColumn( 'post_uri', @@ -3610,7 +4380,9 @@ class $LikedPostsTable extends LikedPosts with TableInfo<$LikedPostsTable, Liked type: DriftSqlType.string, requiredDuringInsert: true, ); - static const VerificationMeta _postJsonMeta = const VerificationMeta('postJson'); + static const VerificationMeta _postJsonMeta = const VerificationMeta( + 'postJson', + ); @override late final GeneratedColumn postJson = GeneratedColumn( 'post_json', @@ -3619,10 +4391,24 @@ class $LikedPostsTable extends LikedPosts with TableInfo<$LikedPostsTable, Liked type: DriftSqlType.string, requiredDuringInsert: true, ); - static const VerificationMeta _likedAtMeta = const VerificationMeta('likedAt'); + static const VerificationMeta _saveTypeMeta = const VerificationMeta( + 'saveType', + ); @override - late final GeneratedColumn likedAt = GeneratedColumn( - 'liked_at', + late final GeneratedColumn saveType = GeneratedColumn( + 'save_type', + aliasedName, + false, + type: DriftSqlType.string, + requiredDuringInsert: false, + defaultValue: const Constant('local'), + ); + static const VerificationMeta _savedAtMeta = const VerificationMeta( + 'savedAt', + ); + @override + late final GeneratedColumn savedAt = GeneratedColumn( + 'saved_at', aliasedName, false, type: DriftSqlType.dateTime, @@ -3630,36 +4416,64 @@ class $LikedPostsTable extends LikedPosts with TableInfo<$LikedPostsTable, Liked defaultValue: currentDateAndTime, ); @override - List get $columns => [id, accountDid, postUri, postJson, likedAt]; + List get $columns => [ + id, + accountDid, + postUri, + postJson, + saveType, + savedAt, + ]; @override String get aliasedName => _alias ?? actualTableName; @override String get actualTableName => $name; - static const String $name = 'liked_posts'; + static const String $name = 'saved_posts'; @override - VerificationContext validateIntegrity(Insertable instance, {bool isInserting = false}) { + 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('account_did')) { - context.handle(_accountDidMeta, accountDid.isAcceptableOrUnknown(data['account_did']!, _accountDidMeta)); + context.handle( + _accountDidMeta, + accountDid.isAcceptableOrUnknown(data['account_did']!, _accountDidMeta), + ); } else if (isInserting) { context.missing(_accountDidMeta); } if (data.containsKey('post_uri')) { - context.handle(_postUriMeta, postUri.isAcceptableOrUnknown(data['post_uri']!, _postUriMeta)); + context.handle( + _postUriMeta, + postUri.isAcceptableOrUnknown(data['post_uri']!, _postUriMeta), + ); } else if (isInserting) { context.missing(_postUriMeta); } if (data.containsKey('post_json')) { - context.handle(_postJsonMeta, postJson.isAcceptableOrUnknown(data['post_json']!, _postJsonMeta)); + context.handle( + _postJsonMeta, + postJson.isAcceptableOrUnknown(data['post_json']!, _postJsonMeta), + ); } else if (isInserting) { context.missing(_postJsonMeta); } - if (data.containsKey('liked_at')) { - context.handle(_likedAtMeta, likedAt.isAcceptableOrUnknown(data['liked_at']!, _likedAtMeta)); + if (data.containsKey('save_type')) { + context.handle( + _saveTypeMeta, + saveType.isAcceptableOrUnknown(data['save_type']!, _saveTypeMeta), + ); + } + if (data.containsKey('saved_at')) { + context.handle( + _savedAtMeta, + savedAt.isAcceptableOrUnknown(data['saved_at']!, _savedAtMeta), + ); } return context; } @@ -3667,35 +4481,56 @@ class $LikedPostsTable extends LikedPosts with TableInfo<$LikedPostsTable, Liked @override Set get $primaryKey => {id}; @override - LikedPostEntry map(Map data, {String? tablePrefix}) { + SavedPostEntry map(Map data, {String? tablePrefix}) { final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; - return LikedPostEntry( - id: attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}id'])!, - accountDid: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}account_did'])!, - postUri: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}post_uri'])!, - postJson: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}post_json'])!, - likedAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}liked_at'])!, + return SavedPostEntry( + id: attachedDatabase.typeMapping.read( + DriftSqlType.int, + data['${effectivePrefix}id'], + )!, + accountDid: attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}account_did'], + )!, + postUri: attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}post_uri'], + )!, + postJson: attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}post_json'], + )!, + saveType: attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}save_type'], + )!, + savedAt: attachedDatabase.typeMapping.read( + DriftSqlType.dateTime, + data['${effectivePrefix}saved_at'], + )!, ); } @override - $LikedPostsTable createAlias(String alias) { - return $LikedPostsTable(attachedDatabase, alias); + $SavedPostsTable createAlias(String alias) { + return $SavedPostsTable(attachedDatabase, alias); } } -class LikedPostEntry extends DataClass implements Insertable { +class SavedPostEntry extends DataClass implements Insertable { final int id; final String accountDid; final String postUri; final String postJson; - final DateTime likedAt; - const LikedPostEntry({ + final String saveType; + final DateTime savedAt; + const SavedPostEntry({ required this.id, required this.accountDid, required this.postUri, required this.postJson, - required this.likedAt, + required this.saveType, + required this.savedAt, }); @override Map toColumns(bool nullToAbsent) { @@ -3704,28 +4539,34 @@ class LikedPostEntry extends DataClass implements Insertable { map['account_did'] = Variable(accountDid); map['post_uri'] = Variable(postUri); map['post_json'] = Variable(postJson); - map['liked_at'] = Variable(likedAt); + map['save_type'] = Variable(saveType); + map['saved_at'] = Variable(savedAt); return map; } - LikedPostsCompanion toCompanion(bool nullToAbsent) { - return LikedPostsCompanion( + SavedPostsCompanion toCompanion(bool nullToAbsent) { + return SavedPostsCompanion( id: Value(id), accountDid: Value(accountDid), postUri: Value(postUri), postJson: Value(postJson), - likedAt: Value(likedAt), + saveType: Value(saveType), + savedAt: Value(savedAt), ); } - factory LikedPostEntry.fromJson(Map json, {ValueSerializer? serializer}) { + factory SavedPostEntry.fromJson( + Map json, { + ValueSerializer? serializer, + }) { serializer ??= driftRuntimeOptions.defaultSerializer; - return LikedPostEntry( + return SavedPostEntry( id: serializer.fromJson(json['id']), accountDid: serializer.fromJson(json['accountDid']), postUri: serializer.fromJson(json['postUri']), postJson: serializer.fromJson(json['postJson']), - likedAt: serializer.fromJson(json['likedAt']), + saveType: serializer.fromJson(json['saveType']), + savedAt: serializer.fromJson(json['savedAt']), ); } @override @@ -3736,104 +4577,125 @@ class LikedPostEntry extends DataClass implements Insertable { 'accountDid': serializer.toJson(accountDid), 'postUri': serializer.toJson(postUri), 'postJson': serializer.toJson(postJson), - 'likedAt': serializer.toJson(likedAt), + 'saveType': serializer.toJson(saveType), + 'savedAt': serializer.toJson(savedAt), }; } - LikedPostEntry copyWith({int? id, String? accountDid, String? postUri, String? postJson, DateTime? likedAt}) => - LikedPostEntry( - id: id ?? this.id, - accountDid: accountDid ?? this.accountDid, - postUri: postUri ?? this.postUri, - postJson: postJson ?? this.postJson, - likedAt: likedAt ?? this.likedAt, - ); - LikedPostEntry copyWithCompanion(LikedPostsCompanion data) { - return LikedPostEntry( + SavedPostEntry copyWith({ + int? id, + String? accountDid, + String? postUri, + String? postJson, + String? saveType, + DateTime? savedAt, + }) => SavedPostEntry( + id: id ?? this.id, + accountDid: accountDid ?? this.accountDid, + postUri: postUri ?? this.postUri, + postJson: postJson ?? this.postJson, + saveType: saveType ?? this.saveType, + savedAt: savedAt ?? this.savedAt, + ); + SavedPostEntry copyWithCompanion(SavedPostsCompanion data) { + return SavedPostEntry( id: data.id.present ? data.id.value : this.id, - accountDid: data.accountDid.present ? data.accountDid.value : this.accountDid, + accountDid: data.accountDid.present + ? data.accountDid.value + : this.accountDid, postUri: data.postUri.present ? data.postUri.value : this.postUri, postJson: data.postJson.present ? data.postJson.value : this.postJson, - likedAt: data.likedAt.present ? data.likedAt.value : this.likedAt, + saveType: data.saveType.present ? data.saveType.value : this.saveType, + savedAt: data.savedAt.present ? data.savedAt.value : this.savedAt, ); } @override String toString() { - return (StringBuffer('LikedPostEntry(') + return (StringBuffer('SavedPostEntry(') ..write('id: $id, ') ..write('accountDid: $accountDid, ') ..write('postUri: $postUri, ') ..write('postJson: $postJson, ') - ..write('likedAt: $likedAt') + ..write('saveType: $saveType, ') + ..write('savedAt: $savedAt') ..write(')')) .toString(); } @override - int get hashCode => Object.hash(id, accountDid, postUri, postJson, likedAt); + int get hashCode => + Object.hash(id, accountDid, postUri, postJson, saveType, savedAt); @override bool operator ==(Object other) => identical(this, other) || - (other is LikedPostEntry && + (other is SavedPostEntry && other.id == this.id && other.accountDid == this.accountDid && other.postUri == this.postUri && other.postJson == this.postJson && - other.likedAt == this.likedAt); + other.saveType == this.saveType && + other.savedAt == this.savedAt); } -class LikedPostsCompanion extends UpdateCompanion { +class SavedPostsCompanion extends UpdateCompanion { final Value id; final Value accountDid; final Value postUri; final Value postJson; - final Value likedAt; - const LikedPostsCompanion({ + final Value saveType; + final Value savedAt; + const SavedPostsCompanion({ this.id = const Value.absent(), this.accountDid = const Value.absent(), this.postUri = const Value.absent(), this.postJson = const Value.absent(), - this.likedAt = const Value.absent(), + this.saveType = const Value.absent(), + this.savedAt = const Value.absent(), }); - LikedPostsCompanion.insert({ + SavedPostsCompanion.insert({ this.id = const Value.absent(), required String accountDid, required String postUri, required String postJson, - this.likedAt = const Value.absent(), + this.saveType = const Value.absent(), + this.savedAt = const Value.absent(), }) : accountDid = Value(accountDid), postUri = Value(postUri), postJson = Value(postJson); - static Insertable custom({ + static Insertable custom({ Expression? id, Expression? accountDid, Expression? postUri, Expression? postJson, - Expression? likedAt, + Expression? saveType, + Expression? savedAt, }) { return RawValuesInsertable({ if (id != null) 'id': id, if (accountDid != null) 'account_did': accountDid, if (postUri != null) 'post_uri': postUri, if (postJson != null) 'post_json': postJson, - if (likedAt != null) 'liked_at': likedAt, + if (saveType != null) 'save_type': saveType, + if (savedAt != null) 'saved_at': savedAt, }); } - LikedPostsCompanion copyWith({ + SavedPostsCompanion copyWith({ Value? id, Value? accountDid, Value? postUri, Value? postJson, - Value? likedAt, + Value? saveType, + Value? savedAt, }) { - return LikedPostsCompanion( + return SavedPostsCompanion( id: id ?? this.id, accountDid: accountDid ?? this.accountDid, postUri: postUri ?? this.postUri, postJson: postJson ?? this.postJson, - likedAt: likedAt ?? this.likedAt, + saveType: saveType ?? this.saveType, + savedAt: savedAt ?? this.savedAt, ); } @@ -3852,1067 +4714,2427 @@ class LikedPostsCompanion extends UpdateCompanion { if (postJson.present) { map['post_json'] = Variable(postJson.value); } - if (likedAt.present) { - map['liked_at'] = Variable(likedAt.value); + if (saveType.present) { + map['save_type'] = Variable(saveType.value); + } + if (savedAt.present) { + map['saved_at'] = Variable(savedAt.value); } return map; } @override String toString() { - return (StringBuffer('LikedPostsCompanion(') + return (StringBuffer('SavedPostsCompanion(') ..write('id: $id, ') ..write('accountDid: $accountDid, ') ..write('postUri: $postUri, ') ..write('postJson: $postJson, ') - ..write('likedAt: $likedAt') + ..write('saveType: $saveType, ') + ..write('savedAt: $savedAt') ..write(')')) .toString(); } } -abstract class _$AppDatabase extends GeneratedDatabase { - _$AppDatabase(QueryExecutor e) : super(e); - $AppDatabaseManager get managers => $AppDatabaseManager(this); - late final $AccountsTable accounts = $AccountsTable(this); - late final $CachedProfilesTable cachedProfiles = $CachedProfilesTable(this); - late final $CachedPostsTable cachedPosts = $CachedPostsTable(this); - late final $SettingsTable settings = $SettingsTable(this); - late final $SavedFeedsTable savedFeeds = $SavedFeedsTable(this); - late final $CachedFeedPagesTable cachedFeedPages = $CachedFeedPagesTable(this); - late final $SearchHistoryTable searchHistory = $SearchHistoryTable(this); - late final $DraftsTable drafts = $DraftsTable(this); - late final $SavedPostsTable savedPosts = $SavedPostsTable(this); - late final $LabelerCacheTable labelerCache = $LabelerCacheTable(this); - late final $LikedPostsTable likedPosts = $LikedPostsTable(this); +class $LabelerCacheTable extends LabelerCache + with TableInfo<$LabelerCacheTable, LabelerCacheEntry> { @override - Iterable> get allTables => allSchemaEntities.whereType>(); + final GeneratedDatabase attachedDatabase; + final String? _alias; + $LabelerCacheTable(this.attachedDatabase, [this._alias]); + static const VerificationMeta _labelerDidMeta = const VerificationMeta( + 'labelerDid', + ); @override - List get allSchemaEntities => [ - accounts, - cachedProfiles, - cachedPosts, - settings, - savedFeeds, - cachedFeedPages, - searchHistory, - drafts, - savedPosts, - labelerCache, - likedPosts, - ]; -} - -typedef $$AccountsTableCreateCompanionBuilder = - AccountsCompanion Function({ - required String did, - required String handle, - Value displayName, - Value service, - Value oauthService, - required String accessToken, - Value refreshToken, - Value dpopPublicKey, - Value dpopPrivateKey, + late final GeneratedColumn labelerDid = GeneratedColumn( + 'labeler_did', + aliasedName, + false, + type: DriftSqlType.string, + requiredDuringInsert: true, + ); + static const VerificationMeta _policiesJsonMeta = const VerificationMeta( + 'policiesJson', + ); + @override + late final GeneratedColumn policiesJson = GeneratedColumn( + 'policies_json', + aliasedName, + false, + type: DriftSqlType.string, + requiredDuringInsert: true, + ); + static const VerificationMeta _fetchedAtMeta = const VerificationMeta( + 'fetchedAt', + ); + @override + late final GeneratedColumn fetchedAt = GeneratedColumn( + 'fetched_at', + aliasedName, + false, + type: DriftSqlType.dateTime, + requiredDuringInsert: false, + defaultValue: currentDateAndTime, + ); + @override + List get $columns => [labelerDid, policiesJson, fetchedAt]; + @override + String get aliasedName => _alias ?? actualTableName; + @override + String get actualTableName => $name; + static const String $name = 'labeler_cache'; + @override + VerificationContext validateIntegrity( + Insertable instance, { + bool isInserting = false, + }) { + final context = VerificationContext(); + final data = instance.toColumns(true); + if (data.containsKey('labeler_did')) { + context.handle( + _labelerDidMeta, + labelerDid.isAcceptableOrUnknown(data['labeler_did']!, _labelerDidMeta), + ); + } else if (isInserting) { + context.missing(_labelerDidMeta); + } + if (data.containsKey('policies_json')) { + context.handle( + _policiesJsonMeta, + policiesJson.isAcceptableOrUnknown( + data['policies_json']!, + _policiesJsonMeta, + ), + ); + } else if (isInserting) { + context.missing(_policiesJsonMeta); + } + if (data.containsKey('fetched_at')) { + context.handle( + _fetchedAtMeta, + fetchedAt.isAcceptableOrUnknown(data['fetched_at']!, _fetchedAtMeta), + ); + } + return context; + } + + @override + Set get $primaryKey => {labelerDid}; + @override + LabelerCacheEntry map(Map data, {String? tablePrefix}) { + final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; + return LabelerCacheEntry( + labelerDid: attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}labeler_did'], + )!, + policiesJson: attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}policies_json'], + )!, + fetchedAt: attachedDatabase.typeMapping.read( + DriftSqlType.dateTime, + data['${effectivePrefix}fetched_at'], + )!, + ); + } + + @override + $LabelerCacheTable createAlias(String alias) { + return $LabelerCacheTable(attachedDatabase, alias); + } +} + +class LabelerCacheEntry extends DataClass + implements Insertable { + final String labelerDid; + final String policiesJson; + final DateTime fetchedAt; + const LabelerCacheEntry({ + required this.labelerDid, + required this.policiesJson, + required this.fetchedAt, + }); + @override + Map toColumns(bool nullToAbsent) { + final map = {}; + map['labeler_did'] = Variable(labelerDid); + map['policies_json'] = Variable(policiesJson); + map['fetched_at'] = Variable(fetchedAt); + return map; + } + + LabelerCacheCompanion toCompanion(bool nullToAbsent) { + return LabelerCacheCompanion( + labelerDid: Value(labelerDid), + policiesJson: Value(policiesJson), + fetchedAt: Value(fetchedAt), + ); + } + + factory LabelerCacheEntry.fromJson( + Map json, { + ValueSerializer? serializer, + }) { + serializer ??= driftRuntimeOptions.defaultSerializer; + return LabelerCacheEntry( + labelerDid: serializer.fromJson(json['labelerDid']), + policiesJson: serializer.fromJson(json['policiesJson']), + fetchedAt: serializer.fromJson(json['fetchedAt']), + ); + } + @override + Map toJson({ValueSerializer? serializer}) { + serializer ??= driftRuntimeOptions.defaultSerializer; + return { + 'labelerDid': serializer.toJson(labelerDid), + 'policiesJson': serializer.toJson(policiesJson), + 'fetchedAt': serializer.toJson(fetchedAt), + }; + } + + LabelerCacheEntry copyWith({ + String? labelerDid, + String? policiesJson, + DateTime? fetchedAt, + }) => LabelerCacheEntry( + labelerDid: labelerDid ?? this.labelerDid, + policiesJson: policiesJson ?? this.policiesJson, + fetchedAt: fetchedAt ?? this.fetchedAt, + ); + LabelerCacheEntry copyWithCompanion(LabelerCacheCompanion data) { + return LabelerCacheEntry( + labelerDid: data.labelerDid.present + ? data.labelerDid.value + : this.labelerDid, + policiesJson: data.policiesJson.present + ? data.policiesJson.value + : this.policiesJson, + fetchedAt: data.fetchedAt.present ? data.fetchedAt.value : this.fetchedAt, + ); + } + + @override + String toString() { + return (StringBuffer('LabelerCacheEntry(') + ..write('labelerDid: $labelerDid, ') + ..write('policiesJson: $policiesJson, ') + ..write('fetchedAt: $fetchedAt') + ..write(')')) + .toString(); + } + + @override + int get hashCode => Object.hash(labelerDid, policiesJson, fetchedAt); + @override + bool operator ==(Object other) => + identical(this, other) || + (other is LabelerCacheEntry && + other.labelerDid == this.labelerDid && + other.policiesJson == this.policiesJson && + other.fetchedAt == this.fetchedAt); +} + +class LabelerCacheCompanion extends UpdateCompanion { + final Value labelerDid; + final Value policiesJson; + final Value fetchedAt; + final Value rowid; + const LabelerCacheCompanion({ + this.labelerDid = const Value.absent(), + this.policiesJson = const Value.absent(), + this.fetchedAt = const Value.absent(), + this.rowid = const Value.absent(), + }); + LabelerCacheCompanion.insert({ + required String labelerDid, + required String policiesJson, + this.fetchedAt = const Value.absent(), + this.rowid = const Value.absent(), + }) : labelerDid = Value(labelerDid), + policiesJson = Value(policiesJson); + static Insertable custom({ + Expression? labelerDid, + Expression? policiesJson, + Expression? fetchedAt, + Expression? rowid, + }) { + return RawValuesInsertable({ + if (labelerDid != null) 'labeler_did': labelerDid, + if (policiesJson != null) 'policies_json': policiesJson, + if (fetchedAt != null) 'fetched_at': fetchedAt, + if (rowid != null) 'rowid': rowid, + }); + } + + LabelerCacheCompanion copyWith({ + Value? labelerDid, + Value? policiesJson, + Value? fetchedAt, + Value? rowid, + }) { + return LabelerCacheCompanion( + labelerDid: labelerDid ?? this.labelerDid, + policiesJson: policiesJson ?? this.policiesJson, + fetchedAt: fetchedAt ?? this.fetchedAt, + rowid: rowid ?? this.rowid, + ); + } + + @override + Map toColumns(bool nullToAbsent) { + final map = {}; + if (labelerDid.present) { + map['labeler_did'] = Variable(labelerDid.value); + } + if (policiesJson.present) { + map['policies_json'] = Variable(policiesJson.value); + } + if (fetchedAt.present) { + map['fetched_at'] = Variable(fetchedAt.value); + } + if (rowid.present) { + map['rowid'] = Variable(rowid.value); + } + return map; + } + + @override + String toString() { + return (StringBuffer('LabelerCacheCompanion(') + ..write('labelerDid: $labelerDid, ') + ..write('policiesJson: $policiesJson, ') + ..write('fetchedAt: $fetchedAt, ') + ..write('rowid: $rowid') + ..write(')')) + .toString(); + } +} + +class $LikedPostsTable extends LikedPosts + with TableInfo<$LikedPostsTable, LikedPostEntry> { + @override + final GeneratedDatabase attachedDatabase; + final String? _alias; + $LikedPostsTable(this.attachedDatabase, [this._alias]); + static const VerificationMeta _idMeta = const VerificationMeta('id'); + @override + late final GeneratedColumn id = GeneratedColumn( + 'id', + aliasedName, + false, + hasAutoIncrement: true, + type: DriftSqlType.int, + requiredDuringInsert: false, + defaultConstraints: GeneratedColumn.constraintIsAlways( + 'PRIMARY KEY AUTOINCREMENT', + ), + ); + static const VerificationMeta _accountDidMeta = const VerificationMeta( + 'accountDid', + ); + @override + late final GeneratedColumn accountDid = GeneratedColumn( + 'account_did', + aliasedName, + false, + type: DriftSqlType.string, + requiredDuringInsert: true, + ); + static const VerificationMeta _postUriMeta = const VerificationMeta( + 'postUri', + ); + @override + late final GeneratedColumn postUri = GeneratedColumn( + 'post_uri', + aliasedName, + false, + type: DriftSqlType.string, + requiredDuringInsert: true, + ); + static const VerificationMeta _postJsonMeta = const VerificationMeta( + 'postJson', + ); + @override + late final GeneratedColumn postJson = GeneratedColumn( + 'post_json', + aliasedName, + false, + type: DriftSqlType.string, + requiredDuringInsert: true, + ); + static const VerificationMeta _likedAtMeta = const VerificationMeta( + 'likedAt', + ); + @override + late final GeneratedColumn likedAt = GeneratedColumn( + 'liked_at', + aliasedName, + false, + type: DriftSqlType.dateTime, + requiredDuringInsert: false, + defaultValue: currentDateAndTime, + ); + @override + List get $columns => [ + id, + accountDid, + postUri, + postJson, + likedAt, + ]; + @override + String get aliasedName => _alias ?? actualTableName; + @override + String get actualTableName => $name; + static const String $name = 'liked_posts'; + @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('account_did')) { + context.handle( + _accountDidMeta, + accountDid.isAcceptableOrUnknown(data['account_did']!, _accountDidMeta), + ); + } else if (isInserting) { + context.missing(_accountDidMeta); + } + if (data.containsKey('post_uri')) { + context.handle( + _postUriMeta, + postUri.isAcceptableOrUnknown(data['post_uri']!, _postUriMeta), + ); + } else if (isInserting) { + context.missing(_postUriMeta); + } + if (data.containsKey('post_json')) { + context.handle( + _postJsonMeta, + postJson.isAcceptableOrUnknown(data['post_json']!, _postJsonMeta), + ); + } else if (isInserting) { + context.missing(_postJsonMeta); + } + if (data.containsKey('liked_at')) { + context.handle( + _likedAtMeta, + likedAt.isAcceptableOrUnknown(data['liked_at']!, _likedAtMeta), + ); + } + return context; + } + + @override + Set get $primaryKey => {id}; + @override + LikedPostEntry map(Map data, {String? tablePrefix}) { + final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; + return LikedPostEntry( + id: attachedDatabase.typeMapping.read( + DriftSqlType.int, + data['${effectivePrefix}id'], + )!, + accountDid: attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}account_did'], + )!, + postUri: attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}post_uri'], + )!, + postJson: attachedDatabase.typeMapping.read( + DriftSqlType.string, + data['${effectivePrefix}post_json'], + )!, + likedAt: attachedDatabase.typeMapping.read( + DriftSqlType.dateTime, + data['${effectivePrefix}liked_at'], + )!, + ); + } + + @override + $LikedPostsTable createAlias(String alias) { + return $LikedPostsTable(attachedDatabase, alias); + } +} + +class LikedPostEntry extends DataClass implements Insertable { + final int id; + final String accountDid; + final String postUri; + final String postJson; + final DateTime likedAt; + const LikedPostEntry({ + required this.id, + required this.accountDid, + required this.postUri, + required this.postJson, + required this.likedAt, + }); + @override + Map toColumns(bool nullToAbsent) { + final map = {}; + map['id'] = Variable(id); + map['account_did'] = Variable(accountDid); + map['post_uri'] = Variable(postUri); + map['post_json'] = Variable(postJson); + map['liked_at'] = Variable(likedAt); + return map; + } + + LikedPostsCompanion toCompanion(bool nullToAbsent) { + return LikedPostsCompanion( + id: Value(id), + accountDid: Value(accountDid), + postUri: Value(postUri), + postJson: Value(postJson), + likedAt: Value(likedAt), + ); + } + + factory LikedPostEntry.fromJson( + Map json, { + ValueSerializer? serializer, + }) { + serializer ??= driftRuntimeOptions.defaultSerializer; + return LikedPostEntry( + id: serializer.fromJson(json['id']), + accountDid: serializer.fromJson(json['accountDid']), + postUri: serializer.fromJson(json['postUri']), + postJson: serializer.fromJson(json['postJson']), + likedAt: serializer.fromJson(json['likedAt']), + ); + } + @override + Map toJson({ValueSerializer? serializer}) { + serializer ??= driftRuntimeOptions.defaultSerializer; + return { + 'id': serializer.toJson(id), + 'accountDid': serializer.toJson(accountDid), + 'postUri': serializer.toJson(postUri), + 'postJson': serializer.toJson(postJson), + 'likedAt': serializer.toJson(likedAt), + }; + } + + LikedPostEntry copyWith({ + int? id, + String? accountDid, + String? postUri, + String? postJson, + DateTime? likedAt, + }) => LikedPostEntry( + id: id ?? this.id, + accountDid: accountDid ?? this.accountDid, + postUri: postUri ?? this.postUri, + postJson: postJson ?? this.postJson, + likedAt: likedAt ?? this.likedAt, + ); + LikedPostEntry copyWithCompanion(LikedPostsCompanion data) { + return LikedPostEntry( + id: data.id.present ? data.id.value : this.id, + accountDid: data.accountDid.present + ? data.accountDid.value + : this.accountDid, + postUri: data.postUri.present ? data.postUri.value : this.postUri, + postJson: data.postJson.present ? data.postJson.value : this.postJson, + likedAt: data.likedAt.present ? data.likedAt.value : this.likedAt, + ); + } + + @override + String toString() { + return (StringBuffer('LikedPostEntry(') + ..write('id: $id, ') + ..write('accountDid: $accountDid, ') + ..write('postUri: $postUri, ') + ..write('postJson: $postJson, ') + ..write('likedAt: $likedAt') + ..write(')')) + .toString(); + } + + @override + int get hashCode => Object.hash(id, accountDid, postUri, postJson, likedAt); + @override + bool operator ==(Object other) => + identical(this, other) || + (other is LikedPostEntry && + other.id == this.id && + other.accountDid == this.accountDid && + other.postUri == this.postUri && + other.postJson == this.postJson && + other.likedAt == this.likedAt); +} + +class LikedPostsCompanion extends UpdateCompanion { + final Value id; + final Value accountDid; + final Value postUri; + final Value postJson; + final Value likedAt; + const LikedPostsCompanion({ + this.id = const Value.absent(), + this.accountDid = const Value.absent(), + this.postUri = const Value.absent(), + this.postJson = const Value.absent(), + this.likedAt = const Value.absent(), + }); + LikedPostsCompanion.insert({ + this.id = const Value.absent(), + required String accountDid, + required String postUri, + required String postJson, + this.likedAt = const Value.absent(), + }) : accountDid = Value(accountDid), + postUri = Value(postUri), + postJson = Value(postJson); + static Insertable custom({ + Expression? id, + Expression? accountDid, + Expression? postUri, + Expression? postJson, + Expression? likedAt, + }) { + return RawValuesInsertable({ + if (id != null) 'id': id, + if (accountDid != null) 'account_did': accountDid, + if (postUri != null) 'post_uri': postUri, + if (postJson != null) 'post_json': postJson, + if (likedAt != null) 'liked_at': likedAt, + }); + } + + LikedPostsCompanion copyWith({ + Value? id, + Value? accountDid, + Value? postUri, + Value? postJson, + Value? likedAt, + }) { + return LikedPostsCompanion( + id: id ?? this.id, + accountDid: accountDid ?? this.accountDid, + postUri: postUri ?? this.postUri, + postJson: postJson ?? this.postJson, + likedAt: likedAt ?? this.likedAt, + ); + } + + @override + Map toColumns(bool nullToAbsent) { + final map = {}; + if (id.present) { + map['id'] = Variable(id.value); + } + if (accountDid.present) { + map['account_did'] = Variable(accountDid.value); + } + if (postUri.present) { + map['post_uri'] = Variable(postUri.value); + } + if (postJson.present) { + map['post_json'] = Variable(postJson.value); + } + if (likedAt.present) { + map['liked_at'] = Variable(likedAt.value); + } + return map; + } + + @override + String toString() { + return (StringBuffer('LikedPostsCompanion(') + ..write('id: $id, ') + ..write('accountDid: $accountDid, ') + ..write('postUri: $postUri, ') + ..write('postJson: $postJson, ') + ..write('likedAt: $likedAt') + ..write(')')) + .toString(); + } +} + +abstract class _$AppDatabase extends GeneratedDatabase { + _$AppDatabase(QueryExecutor e) : super(e); + $AppDatabaseManager get managers => $AppDatabaseManager(this); + late final $AccountsTable accounts = $AccountsTable(this); + late final $CachedProfilesTable cachedProfiles = $CachedProfilesTable(this); + late final $CachedPostsTable cachedPosts = $CachedPostsTable(this); + late final $SettingsTable settings = $SettingsTable(this); + late final $SavedFeedsTable savedFeeds = $SavedFeedsTable(this); + late final $CachedFeedPagesTable cachedFeedPages = $CachedFeedPagesTable( + this, + ); + late final $CachedFeedPostsTable cachedFeedPosts = $CachedFeedPostsTable( + this, + ); + late final $CachedThreadRootsTable cachedThreadRoots = + $CachedThreadRootsTable(this); + late final $SearchHistoryTable searchHistory = $SearchHistoryTable(this); + late final $DraftsTable drafts = $DraftsTable(this); + late final $SavedPostsTable savedPosts = $SavedPostsTable(this); + late final $LabelerCacheTable labelerCache = $LabelerCacheTable(this); + late final $LikedPostsTable likedPosts = $LikedPostsTable(this); + @override + Iterable> get allTables => + allSchemaEntities.whereType>(); + @override + List get allSchemaEntities => [ + accounts, + cachedProfiles, + cachedPosts, + settings, + savedFeeds, + cachedFeedPages, + cachedFeedPosts, + cachedThreadRoots, + searchHistory, + drafts, + savedPosts, + labelerCache, + likedPosts, + ]; +} + +typedef $$AccountsTableCreateCompanionBuilder = + AccountsCompanion Function({ + required String did, + required String handle, + Value displayName, + Value service, + Value oauthService, + required String accessToken, + Value refreshToken, + Value dpopPublicKey, + Value dpopPrivateKey, + Value dpopNonce, + Value expiresAt, + Value createdAt, + Value updatedAt, + Value rowid, + }); +typedef $$AccountsTableUpdateCompanionBuilder = + AccountsCompanion Function({ + Value did, + Value handle, + Value displayName, + Value service, + Value oauthService, + Value accessToken, + Value refreshToken, + Value dpopPublicKey, + Value dpopPrivateKey, Value dpopNonce, Value expiresAt, Value createdAt, Value updatedAt, Value rowid, }); -typedef $$AccountsTableUpdateCompanionBuilder = - AccountsCompanion Function({ - Value did, - Value handle, - Value displayName, - Value service, - Value oauthService, - Value accessToken, - Value refreshToken, - Value dpopPublicKey, - Value dpopPrivateKey, - Value dpopNonce, - Value expiresAt, - Value createdAt, - Value updatedAt, + +class $$AccountsTableFilterComposer + extends Composer<_$AppDatabase, $AccountsTable> { + $$AccountsTableFilterComposer({ + required super.$db, + required super.$table, + super.joinBuilder, + super.$addJoinBuilderToRootComposer, + super.$removeJoinBuilderFromRootComposer, + }); + ColumnFilters get did => $composableBuilder( + column: $table.did, + builder: (column) => ColumnFilters(column), + ); + + ColumnFilters get handle => $composableBuilder( + column: $table.handle, + builder: (column) => ColumnFilters(column), + ); + + ColumnFilters get displayName => $composableBuilder( + column: $table.displayName, + builder: (column) => ColumnFilters(column), + ); + + ColumnFilters get service => $composableBuilder( + column: $table.service, + builder: (column) => ColumnFilters(column), + ); + + ColumnFilters get oauthService => $composableBuilder( + column: $table.oauthService, + builder: (column) => ColumnFilters(column), + ); + + ColumnFilters get accessToken => $composableBuilder( + column: $table.accessToken, + builder: (column) => ColumnFilters(column), + ); + + ColumnFilters get refreshToken => $composableBuilder( + column: $table.refreshToken, + builder: (column) => ColumnFilters(column), + ); + + ColumnFilters get dpopPublicKey => $composableBuilder( + column: $table.dpopPublicKey, + builder: (column) => ColumnFilters(column), + ); + + ColumnFilters get dpopPrivateKey => $composableBuilder( + column: $table.dpopPrivateKey, + builder: (column) => ColumnFilters(column), + ); + + ColumnFilters get dpopNonce => $composableBuilder( + column: $table.dpopNonce, + builder: (column) => ColumnFilters(column), + ); + + ColumnFilters get expiresAt => $composableBuilder( + column: $table.expiresAt, + builder: (column) => ColumnFilters(column), + ); + + ColumnFilters get createdAt => $composableBuilder( + column: $table.createdAt, + builder: (column) => ColumnFilters(column), + ); + + ColumnFilters get updatedAt => $composableBuilder( + column: $table.updatedAt, + builder: (column) => ColumnFilters(column), + ); +} + +class $$AccountsTableOrderingComposer + extends Composer<_$AppDatabase, $AccountsTable> { + $$AccountsTableOrderingComposer({ + required super.$db, + required super.$table, + super.joinBuilder, + super.$addJoinBuilderToRootComposer, + super.$removeJoinBuilderFromRootComposer, + }); + ColumnOrderings get did => $composableBuilder( + column: $table.did, + builder: (column) => ColumnOrderings(column), + ); + + ColumnOrderings get handle => $composableBuilder( + column: $table.handle, + builder: (column) => ColumnOrderings(column), + ); + + ColumnOrderings get displayName => $composableBuilder( + column: $table.displayName, + builder: (column) => ColumnOrderings(column), + ); + + ColumnOrderings get service => $composableBuilder( + column: $table.service, + builder: (column) => ColumnOrderings(column), + ); + + ColumnOrderings get oauthService => $composableBuilder( + column: $table.oauthService, + builder: (column) => ColumnOrderings(column), + ); + + ColumnOrderings get accessToken => $composableBuilder( + column: $table.accessToken, + builder: (column) => ColumnOrderings(column), + ); + + ColumnOrderings get refreshToken => $composableBuilder( + column: $table.refreshToken, + builder: (column) => ColumnOrderings(column), + ); + + ColumnOrderings get dpopPublicKey => $composableBuilder( + column: $table.dpopPublicKey, + builder: (column) => ColumnOrderings(column), + ); + + ColumnOrderings get dpopPrivateKey => $composableBuilder( + column: $table.dpopPrivateKey, + builder: (column) => ColumnOrderings(column), + ); + + ColumnOrderings get dpopNonce => $composableBuilder( + column: $table.dpopNonce, + builder: (column) => ColumnOrderings(column), + ); + + ColumnOrderings get expiresAt => $composableBuilder( + column: $table.expiresAt, + builder: (column) => ColumnOrderings(column), + ); + + ColumnOrderings get createdAt => $composableBuilder( + column: $table.createdAt, + builder: (column) => ColumnOrderings(column), + ); + + ColumnOrderings get updatedAt => $composableBuilder( + column: $table.updatedAt, + builder: (column) => ColumnOrderings(column), + ); +} + +class $$AccountsTableAnnotationComposer + extends Composer<_$AppDatabase, $AccountsTable> { + $$AccountsTableAnnotationComposer({ + required super.$db, + required super.$table, + super.joinBuilder, + super.$addJoinBuilderToRootComposer, + super.$removeJoinBuilderFromRootComposer, + }); + GeneratedColumn get did => + $composableBuilder(column: $table.did, builder: (column) => column); + + GeneratedColumn get handle => + $composableBuilder(column: $table.handle, builder: (column) => column); + + GeneratedColumn get displayName => $composableBuilder( + column: $table.displayName, + builder: (column) => column, + ); + + GeneratedColumn get service => + $composableBuilder(column: $table.service, builder: (column) => column); + + GeneratedColumn get oauthService => $composableBuilder( + column: $table.oauthService, + builder: (column) => column, + ); + + GeneratedColumn get accessToken => $composableBuilder( + column: $table.accessToken, + builder: (column) => column, + ); + + GeneratedColumn get refreshToken => $composableBuilder( + column: $table.refreshToken, + builder: (column) => column, + ); + + GeneratedColumn get dpopPublicKey => $composableBuilder( + column: $table.dpopPublicKey, + builder: (column) => column, + ); + + GeneratedColumn get dpopPrivateKey => $composableBuilder( + column: $table.dpopPrivateKey, + builder: (column) => column, + ); + + GeneratedColumn get dpopNonce => + $composableBuilder(column: $table.dpopNonce, builder: (column) => column); + + GeneratedColumn get expiresAt => + $composableBuilder(column: $table.expiresAt, builder: (column) => column); + + GeneratedColumn get createdAt => + $composableBuilder(column: $table.createdAt, builder: (column) => column); + + GeneratedColumn get updatedAt => + $composableBuilder(column: $table.updatedAt, builder: (column) => column); +} + +class $$AccountsTableTableManager + extends + RootTableManager< + _$AppDatabase, + $AccountsTable, + Account, + $$AccountsTableFilterComposer, + $$AccountsTableOrderingComposer, + $$AccountsTableAnnotationComposer, + $$AccountsTableCreateCompanionBuilder, + $$AccountsTableUpdateCompanionBuilder, + (Account, BaseReferences<_$AppDatabase, $AccountsTable, Account>), + Account, + PrefetchHooks Function() + > { + $$AccountsTableTableManager(_$AppDatabase db, $AccountsTable table) + : super( + TableManagerState( + db: db, + table: table, + createFilteringComposer: () => + $$AccountsTableFilterComposer($db: db, $table: table), + createOrderingComposer: () => + $$AccountsTableOrderingComposer($db: db, $table: table), + createComputedFieldComposer: () => + $$AccountsTableAnnotationComposer($db: db, $table: table), + updateCompanionCallback: + ({ + Value did = const Value.absent(), + Value handle = const Value.absent(), + Value displayName = const Value.absent(), + Value service = const Value.absent(), + Value oauthService = const Value.absent(), + Value accessToken = const Value.absent(), + Value refreshToken = const Value.absent(), + Value dpopPublicKey = const Value.absent(), + Value dpopPrivateKey = const Value.absent(), + Value dpopNonce = const Value.absent(), + Value expiresAt = const Value.absent(), + Value createdAt = const Value.absent(), + Value updatedAt = const Value.absent(), + Value rowid = const Value.absent(), + }) => AccountsCompanion( + did: did, + handle: handle, + displayName: displayName, + service: service, + oauthService: oauthService, + accessToken: accessToken, + refreshToken: refreshToken, + dpopPublicKey: dpopPublicKey, + dpopPrivateKey: dpopPrivateKey, + dpopNonce: dpopNonce, + expiresAt: expiresAt, + createdAt: createdAt, + updatedAt: updatedAt, + rowid: rowid, + ), + createCompanionCallback: + ({ + required String did, + required String handle, + Value displayName = const Value.absent(), + Value service = const Value.absent(), + Value oauthService = const Value.absent(), + required String accessToken, + Value refreshToken = const Value.absent(), + Value dpopPublicKey = const Value.absent(), + Value dpopPrivateKey = const Value.absent(), + Value dpopNonce = const Value.absent(), + Value expiresAt = const Value.absent(), + Value createdAt = const Value.absent(), + Value updatedAt = const Value.absent(), + Value rowid = const Value.absent(), + }) => AccountsCompanion.insert( + did: did, + handle: handle, + displayName: displayName, + service: service, + oauthService: oauthService, + accessToken: accessToken, + refreshToken: refreshToken, + dpopPublicKey: dpopPublicKey, + dpopPrivateKey: dpopPrivateKey, + dpopNonce: dpopNonce, + expiresAt: expiresAt, + createdAt: createdAt, + updatedAt: updatedAt, + rowid: rowid, + ), + withReferenceMapper: (p0) => p0 + .map((e) => (e.readTable(table), BaseReferences(db, table, e))) + .toList(), + prefetchHooksCallback: null, + ), + ); +} + +typedef $$AccountsTableProcessedTableManager = + ProcessedTableManager< + _$AppDatabase, + $AccountsTable, + Account, + $$AccountsTableFilterComposer, + $$AccountsTableOrderingComposer, + $$AccountsTableAnnotationComposer, + $$AccountsTableCreateCompanionBuilder, + $$AccountsTableUpdateCompanionBuilder, + (Account, BaseReferences<_$AppDatabase, $AccountsTable, Account>), + Account, + PrefetchHooks Function() + >; +typedef $$CachedProfilesTableCreateCompanionBuilder = + CachedProfilesCompanion Function({ + required String did, + required String handle, + required String payload, + Value fetchedAt, + Value rowid, + }); +typedef $$CachedProfilesTableUpdateCompanionBuilder = + CachedProfilesCompanion Function({ + Value did, + Value handle, + Value payload, + Value fetchedAt, + Value rowid, + }); + +class $$CachedProfilesTableFilterComposer + extends Composer<_$AppDatabase, $CachedProfilesTable> { + $$CachedProfilesTableFilterComposer({ + required super.$db, + required super.$table, + super.joinBuilder, + super.$addJoinBuilderToRootComposer, + super.$removeJoinBuilderFromRootComposer, + }); + ColumnFilters get did => $composableBuilder( + column: $table.did, + builder: (column) => ColumnFilters(column), + ); + + ColumnFilters get handle => $composableBuilder( + column: $table.handle, + builder: (column) => ColumnFilters(column), + ); + + ColumnFilters get payload => $composableBuilder( + column: $table.payload, + builder: (column) => ColumnFilters(column), + ); + + ColumnFilters get fetchedAt => $composableBuilder( + column: $table.fetchedAt, + builder: (column) => ColumnFilters(column), + ); +} + +class $$CachedProfilesTableOrderingComposer + extends Composer<_$AppDatabase, $CachedProfilesTable> { + $$CachedProfilesTableOrderingComposer({ + required super.$db, + required super.$table, + super.joinBuilder, + super.$addJoinBuilderToRootComposer, + super.$removeJoinBuilderFromRootComposer, + }); + ColumnOrderings get did => $composableBuilder( + column: $table.did, + builder: (column) => ColumnOrderings(column), + ); + + ColumnOrderings get handle => $composableBuilder( + column: $table.handle, + builder: (column) => ColumnOrderings(column), + ); + + ColumnOrderings get payload => $composableBuilder( + column: $table.payload, + builder: (column) => ColumnOrderings(column), + ); + + ColumnOrderings get fetchedAt => $composableBuilder( + column: $table.fetchedAt, + builder: (column) => ColumnOrderings(column), + ); +} + +class $$CachedProfilesTableAnnotationComposer + extends Composer<_$AppDatabase, $CachedProfilesTable> { + $$CachedProfilesTableAnnotationComposer({ + required super.$db, + required super.$table, + super.joinBuilder, + super.$addJoinBuilderToRootComposer, + super.$removeJoinBuilderFromRootComposer, + }); + GeneratedColumn get did => + $composableBuilder(column: $table.did, builder: (column) => column); + + GeneratedColumn get handle => + $composableBuilder(column: $table.handle, builder: (column) => column); + + GeneratedColumn get payload => + $composableBuilder(column: $table.payload, builder: (column) => column); + + GeneratedColumn get fetchedAt => + $composableBuilder(column: $table.fetchedAt, builder: (column) => column); +} + +class $$CachedProfilesTableTableManager + extends + RootTableManager< + _$AppDatabase, + $CachedProfilesTable, + CachedProfile, + $$CachedProfilesTableFilterComposer, + $$CachedProfilesTableOrderingComposer, + $$CachedProfilesTableAnnotationComposer, + $$CachedProfilesTableCreateCompanionBuilder, + $$CachedProfilesTableUpdateCompanionBuilder, + ( + CachedProfile, + BaseReferences<_$AppDatabase, $CachedProfilesTable, CachedProfile>, + ), + CachedProfile, + PrefetchHooks Function() + > { + $$CachedProfilesTableTableManager( + _$AppDatabase db, + $CachedProfilesTable table, + ) : super( + TableManagerState( + db: db, + table: table, + createFilteringComposer: () => + $$CachedProfilesTableFilterComposer($db: db, $table: table), + createOrderingComposer: () => + $$CachedProfilesTableOrderingComposer($db: db, $table: table), + createComputedFieldComposer: () => + $$CachedProfilesTableAnnotationComposer($db: db, $table: table), + updateCompanionCallback: + ({ + Value did = const Value.absent(), + Value handle = const Value.absent(), + Value payload = const Value.absent(), + Value fetchedAt = const Value.absent(), + Value rowid = const Value.absent(), + }) => CachedProfilesCompanion( + did: did, + handle: handle, + payload: payload, + fetchedAt: fetchedAt, + rowid: rowid, + ), + createCompanionCallback: + ({ + required String did, + required String handle, + required String payload, + Value fetchedAt = const Value.absent(), + Value rowid = const Value.absent(), + }) => CachedProfilesCompanion.insert( + did: did, + handle: handle, + payload: payload, + fetchedAt: fetchedAt, + rowid: rowid, + ), + withReferenceMapper: (p0) => p0 + .map((e) => (e.readTable(table), BaseReferences(db, table, e))) + .toList(), + prefetchHooksCallback: null, + ), + ); +} + +typedef $$CachedProfilesTableProcessedTableManager = + ProcessedTableManager< + _$AppDatabase, + $CachedProfilesTable, + CachedProfile, + $$CachedProfilesTableFilterComposer, + $$CachedProfilesTableOrderingComposer, + $$CachedProfilesTableAnnotationComposer, + $$CachedProfilesTableCreateCompanionBuilder, + $$CachedProfilesTableUpdateCompanionBuilder, + ( + CachedProfile, + BaseReferences<_$AppDatabase, $CachedProfilesTable, CachedProfile>, + ), + CachedProfile, + PrefetchHooks Function() + >; +typedef $$CachedPostsTableCreateCompanionBuilder = + CachedPostsCompanion Function({ + required String uri, + required String authorDid, + Value accountDid, + required String payload, + Value createdAt, + Value fetchedAt, + Value rowid, + }); +typedef $$CachedPostsTableUpdateCompanionBuilder = + CachedPostsCompanion Function({ + Value uri, + Value authorDid, + Value accountDid, + Value payload, + Value createdAt, + Value fetchedAt, Value rowid, }); -class $$AccountsTableFilterComposer extends Composer<_$AppDatabase, $AccountsTable> { - $$AccountsTableFilterComposer({ +class $$CachedPostsTableFilterComposer + extends Composer<_$AppDatabase, $CachedPostsTable> { + $$CachedPostsTableFilterComposer({ required super.$db, required super.$table, super.joinBuilder, super.$addJoinBuilderToRootComposer, super.$removeJoinBuilderFromRootComposer, }); - ColumnFilters get did => $composableBuilder(column: $table.did, builder: (column) => ColumnFilters(column)); - - ColumnFilters get handle => - $composableBuilder(column: $table.handle, builder: (column) => ColumnFilters(column)); - - ColumnFilters get displayName => - $composableBuilder(column: $table.displayName, builder: (column) => ColumnFilters(column)); - - ColumnFilters get service => - $composableBuilder(column: $table.service, builder: (column) => ColumnFilters(column)); - - ColumnFilters get oauthService => - $composableBuilder(column: $table.oauthService, builder: (column) => ColumnFilters(column)); - - ColumnFilters get accessToken => - $composableBuilder(column: $table.accessToken, builder: (column) => ColumnFilters(column)); - - ColumnFilters get refreshToken => - $composableBuilder(column: $table.refreshToken, builder: (column) => ColumnFilters(column)); - - ColumnFilters get dpopPublicKey => - $composableBuilder(column: $table.dpopPublicKey, builder: (column) => ColumnFilters(column)); + ColumnFilters get uri => $composableBuilder( + column: $table.uri, + builder: (column) => ColumnFilters(column), + ); - ColumnFilters get dpopPrivateKey => - $composableBuilder(column: $table.dpopPrivateKey, builder: (column) => ColumnFilters(column)); + ColumnFilters get authorDid => $composableBuilder( + column: $table.authorDid, + builder: (column) => ColumnFilters(column), + ); - ColumnFilters get dpopNonce => - $composableBuilder(column: $table.dpopNonce, builder: (column) => ColumnFilters(column)); + ColumnFilters get accountDid => $composableBuilder( + column: $table.accountDid, + builder: (column) => ColumnFilters(column), + ); - ColumnFilters get expiresAt => - $composableBuilder(column: $table.expiresAt, builder: (column) => ColumnFilters(column)); + ColumnFilters get payload => $composableBuilder( + column: $table.payload, + builder: (column) => ColumnFilters(column), + ); - ColumnFilters get createdAt => - $composableBuilder(column: $table.createdAt, builder: (column) => ColumnFilters(column)); + ColumnFilters get createdAt => $composableBuilder( + column: $table.createdAt, + builder: (column) => ColumnFilters(column), + ); - ColumnFilters get updatedAt => - $composableBuilder(column: $table.updatedAt, builder: (column) => ColumnFilters(column)); + ColumnFilters get fetchedAt => $composableBuilder( + column: $table.fetchedAt, + builder: (column) => ColumnFilters(column), + ); } -class $$AccountsTableOrderingComposer extends Composer<_$AppDatabase, $AccountsTable> { - $$AccountsTableOrderingComposer({ +class $$CachedPostsTableOrderingComposer + extends Composer<_$AppDatabase, $CachedPostsTable> { + $$CachedPostsTableOrderingComposer({ required super.$db, required super.$table, super.joinBuilder, super.$addJoinBuilderToRootComposer, super.$removeJoinBuilderFromRootComposer, }); - ColumnOrderings get did => - $composableBuilder(column: $table.did, builder: (column) => ColumnOrderings(column)); - - ColumnOrderings get handle => - $composableBuilder(column: $table.handle, builder: (column) => ColumnOrderings(column)); - - ColumnOrderings get displayName => - $composableBuilder(column: $table.displayName, builder: (column) => ColumnOrderings(column)); - - ColumnOrderings get service => - $composableBuilder(column: $table.service, builder: (column) => ColumnOrderings(column)); - - ColumnOrderings get oauthService => - $composableBuilder(column: $table.oauthService, builder: (column) => ColumnOrderings(column)); - - ColumnOrderings get accessToken => - $composableBuilder(column: $table.accessToken, builder: (column) => ColumnOrderings(column)); - - ColumnOrderings get refreshToken => - $composableBuilder(column: $table.refreshToken, builder: (column) => ColumnOrderings(column)); - - ColumnOrderings get dpopPublicKey => - $composableBuilder(column: $table.dpopPublicKey, builder: (column) => ColumnOrderings(column)); + ColumnOrderings get uri => $composableBuilder( + column: $table.uri, + builder: (column) => ColumnOrderings(column), + ); - ColumnOrderings get dpopPrivateKey => - $composableBuilder(column: $table.dpopPrivateKey, builder: (column) => ColumnOrderings(column)); + ColumnOrderings get authorDid => $composableBuilder( + column: $table.authorDid, + builder: (column) => ColumnOrderings(column), + ); - ColumnOrderings get dpopNonce => - $composableBuilder(column: $table.dpopNonce, builder: (column) => ColumnOrderings(column)); + ColumnOrderings get accountDid => $composableBuilder( + column: $table.accountDid, + builder: (column) => ColumnOrderings(column), + ); - ColumnOrderings get expiresAt => - $composableBuilder(column: $table.expiresAt, builder: (column) => ColumnOrderings(column)); + ColumnOrderings get payload => $composableBuilder( + column: $table.payload, + builder: (column) => ColumnOrderings(column), + ); - ColumnOrderings get createdAt => - $composableBuilder(column: $table.createdAt, builder: (column) => ColumnOrderings(column)); + ColumnOrderings get createdAt => $composableBuilder( + column: $table.createdAt, + builder: (column) => ColumnOrderings(column), + ); - ColumnOrderings get updatedAt => - $composableBuilder(column: $table.updatedAt, builder: (column) => ColumnOrderings(column)); + ColumnOrderings get fetchedAt => $composableBuilder( + column: $table.fetchedAt, + builder: (column) => ColumnOrderings(column), + ); } -class $$AccountsTableAnnotationComposer extends Composer<_$AppDatabase, $AccountsTable> { - $$AccountsTableAnnotationComposer({ +class $$CachedPostsTableAnnotationComposer + extends Composer<_$AppDatabase, $CachedPostsTable> { + $$CachedPostsTableAnnotationComposer({ required super.$db, required super.$table, super.joinBuilder, super.$addJoinBuilderToRootComposer, super.$removeJoinBuilderFromRootComposer, }); - GeneratedColumn get did => $composableBuilder(column: $table.did, builder: (column) => column); + GeneratedColumn get uri => + $composableBuilder(column: $table.uri, builder: (column) => column); - GeneratedColumn get handle => $composableBuilder(column: $table.handle, builder: (column) => column); + GeneratedColumn get authorDid => + $composableBuilder(column: $table.authorDid, builder: (column) => column); - GeneratedColumn get displayName => - $composableBuilder(column: $table.displayName, builder: (column) => column); - - GeneratedColumn get service => $composableBuilder(column: $table.service, builder: (column) => column); - - GeneratedColumn get oauthService => - $composableBuilder(column: $table.oauthService, builder: (column) => column); - - GeneratedColumn get accessToken => - $composableBuilder(column: $table.accessToken, builder: (column) => column); - - GeneratedColumn get refreshToken => - $composableBuilder(column: $table.refreshToken, builder: (column) => column); - - GeneratedColumn get dpopPublicKey => - $composableBuilder(column: $table.dpopPublicKey, builder: (column) => column); - - GeneratedColumn get dpopPrivateKey => - $composableBuilder(column: $table.dpopPrivateKey, builder: (column) => column); - - GeneratedColumn get dpopNonce => $composableBuilder(column: $table.dpopNonce, builder: (column) => column); + GeneratedColumn get accountDid => $composableBuilder( + column: $table.accountDid, + builder: (column) => column, + ); - GeneratedColumn get expiresAt => $composableBuilder(column: $table.expiresAt, builder: (column) => column); + GeneratedColumn get payload => + $composableBuilder(column: $table.payload, builder: (column) => column); - GeneratedColumn get createdAt => $composableBuilder(column: $table.createdAt, builder: (column) => column); + GeneratedColumn get createdAt => + $composableBuilder(column: $table.createdAt, builder: (column) => column); - GeneratedColumn get updatedAt => $composableBuilder(column: $table.updatedAt, builder: (column) => column); + GeneratedColumn get fetchedAt => + $composableBuilder(column: $table.fetchedAt, builder: (column) => column); } -class $$AccountsTableTableManager +class $$CachedPostsTableTableManager extends RootTableManager< _$AppDatabase, - $AccountsTable, - Account, - $$AccountsTableFilterComposer, - $$AccountsTableOrderingComposer, - $$AccountsTableAnnotationComposer, - $$AccountsTableCreateCompanionBuilder, - $$AccountsTableUpdateCompanionBuilder, - (Account, BaseReferences<_$AppDatabase, $AccountsTable, Account>), - Account, + $CachedPostsTable, + CachedPost, + $$CachedPostsTableFilterComposer, + $$CachedPostsTableOrderingComposer, + $$CachedPostsTableAnnotationComposer, + $$CachedPostsTableCreateCompanionBuilder, + $$CachedPostsTableUpdateCompanionBuilder, + ( + CachedPost, + BaseReferences<_$AppDatabase, $CachedPostsTable, CachedPost>, + ), + CachedPost, PrefetchHooks Function() > { - $$AccountsTableTableManager(_$AppDatabase db, $AccountsTable table) + $$CachedPostsTableTableManager(_$AppDatabase db, $CachedPostsTable table) : super( TableManagerState( db: db, table: table, - createFilteringComposer: () => $$AccountsTableFilterComposer($db: db, $table: table), - createOrderingComposer: () => $$AccountsTableOrderingComposer($db: db, $table: table), - createComputedFieldComposer: () => $$AccountsTableAnnotationComposer($db: db, $table: table), + createFilteringComposer: () => + $$CachedPostsTableFilterComposer($db: db, $table: table), + createOrderingComposer: () => + $$CachedPostsTableOrderingComposer($db: db, $table: table), + createComputedFieldComposer: () => + $$CachedPostsTableAnnotationComposer($db: db, $table: table), updateCompanionCallback: ({ - Value did = const Value.absent(), - Value handle = const Value.absent(), - Value displayName = const Value.absent(), - Value service = const Value.absent(), - Value oauthService = const Value.absent(), - Value accessToken = const Value.absent(), - Value refreshToken = const Value.absent(), - Value dpopPublicKey = const Value.absent(), - Value dpopPrivateKey = const Value.absent(), - Value dpopNonce = const Value.absent(), - Value expiresAt = const Value.absent(), - Value createdAt = const Value.absent(), - Value updatedAt = const Value.absent(), + Value uri = const Value.absent(), + Value authorDid = const Value.absent(), + Value accountDid = const Value.absent(), + Value payload = const Value.absent(), + Value createdAt = const Value.absent(), + Value fetchedAt = const Value.absent(), Value rowid = const Value.absent(), - }) => AccountsCompanion( - did: did, - handle: handle, - displayName: displayName, - service: service, - oauthService: oauthService, - accessToken: accessToken, - refreshToken: refreshToken, - dpopPublicKey: dpopPublicKey, - dpopPrivateKey: dpopPrivateKey, - dpopNonce: dpopNonce, - expiresAt: expiresAt, + }) => CachedPostsCompanion( + uri: uri, + authorDid: authorDid, + accountDid: accountDid, + payload: payload, createdAt: createdAt, - updatedAt: updatedAt, + fetchedAt: fetchedAt, rowid: rowid, ), createCompanionCallback: ({ - required String did, - required String handle, - Value displayName = const Value.absent(), - Value service = const Value.absent(), - Value oauthService = const Value.absent(), - required String accessToken, - Value refreshToken = const Value.absent(), - Value dpopPublicKey = const Value.absent(), - Value dpopPrivateKey = const Value.absent(), - Value dpopNonce = const Value.absent(), - Value expiresAt = const Value.absent(), - Value createdAt = const Value.absent(), - Value updatedAt = const Value.absent(), + required String uri, + required String authorDid, + Value accountDid = const Value.absent(), + required String payload, + Value createdAt = const Value.absent(), + Value fetchedAt = const Value.absent(), Value rowid = const Value.absent(), - }) => AccountsCompanion.insert( - did: did, - handle: handle, - displayName: displayName, - service: service, - oauthService: oauthService, - accessToken: accessToken, - refreshToken: refreshToken, - dpopPublicKey: dpopPublicKey, - dpopPrivateKey: dpopPrivateKey, - dpopNonce: dpopNonce, - expiresAt: expiresAt, + }) => CachedPostsCompanion.insert( + uri: uri, + authorDid: authorDid, + accountDid: accountDid, + payload: payload, createdAt: createdAt, - updatedAt: updatedAt, + fetchedAt: fetchedAt, rowid: rowid, ), - withReferenceMapper: (p0) => p0.map((e) => (e.readTable(table), BaseReferences(db, table, e))).toList(), + withReferenceMapper: (p0) => p0 + .map((e) => (e.readTable(table), BaseReferences(db, table, e))) + .toList(), prefetchHooksCallback: null, ), ); } -typedef $$AccountsTableProcessedTableManager = +typedef $$CachedPostsTableProcessedTableManager = ProcessedTableManager< _$AppDatabase, - $AccountsTable, - Account, - $$AccountsTableFilterComposer, - $$AccountsTableOrderingComposer, - $$AccountsTableAnnotationComposer, - $$AccountsTableCreateCompanionBuilder, - $$AccountsTableUpdateCompanionBuilder, - (Account, BaseReferences<_$AppDatabase, $AccountsTable, Account>), - Account, + $CachedPostsTable, + CachedPost, + $$CachedPostsTableFilterComposer, + $$CachedPostsTableOrderingComposer, + $$CachedPostsTableAnnotationComposer, + $$CachedPostsTableCreateCompanionBuilder, + $$CachedPostsTableUpdateCompanionBuilder, + ( + CachedPost, + BaseReferences<_$AppDatabase, $CachedPostsTable, CachedPost>, + ), + CachedPost, PrefetchHooks Function() >; -typedef $$CachedProfilesTableCreateCompanionBuilder = - CachedProfilesCompanion Function({ - required String did, - required String handle, - required String payload, - Value fetchedAt, +typedef $$SettingsTableCreateCompanionBuilder = + SettingsCompanion Function({ + required String key, + required String value, + Value updatedAt, Value rowid, }); -typedef $$CachedProfilesTableUpdateCompanionBuilder = - CachedProfilesCompanion Function({ - Value did, - Value handle, - Value payload, - Value fetchedAt, +typedef $$SettingsTableUpdateCompanionBuilder = + SettingsCompanion Function({ + Value key, + Value value, + Value updatedAt, Value rowid, }); -class $$CachedProfilesTableFilterComposer extends Composer<_$AppDatabase, $CachedProfilesTable> { - $$CachedProfilesTableFilterComposer({ +class $$SettingsTableFilterComposer + extends Composer<_$AppDatabase, $SettingsTable> { + $$SettingsTableFilterComposer({ required super.$db, required super.$table, super.joinBuilder, super.$addJoinBuilderToRootComposer, super.$removeJoinBuilderFromRootComposer, }); - ColumnFilters get did => $composableBuilder(column: $table.did, builder: (column) => ColumnFilters(column)); - - ColumnFilters get handle => - $composableBuilder(column: $table.handle, builder: (column) => ColumnFilters(column)); + ColumnFilters get key => $composableBuilder( + column: $table.key, + builder: (column) => ColumnFilters(column), + ); - ColumnFilters get payload => - $composableBuilder(column: $table.payload, builder: (column) => ColumnFilters(column)); + ColumnFilters get value => $composableBuilder( + column: $table.value, + builder: (column) => ColumnFilters(column), + ); - ColumnFilters get fetchedAt => - $composableBuilder(column: $table.fetchedAt, builder: (column) => ColumnFilters(column)); + ColumnFilters get updatedAt => $composableBuilder( + column: $table.updatedAt, + builder: (column) => ColumnFilters(column), + ); } -class $$CachedProfilesTableOrderingComposer extends Composer<_$AppDatabase, $CachedProfilesTable> { - $$CachedProfilesTableOrderingComposer({ +class $$SettingsTableOrderingComposer + extends Composer<_$AppDatabase, $SettingsTable> { + $$SettingsTableOrderingComposer({ required super.$db, required super.$table, super.joinBuilder, super.$addJoinBuilderToRootComposer, super.$removeJoinBuilderFromRootComposer, }); - ColumnOrderings get did => - $composableBuilder(column: $table.did, builder: (column) => ColumnOrderings(column)); - - ColumnOrderings get handle => - $composableBuilder(column: $table.handle, builder: (column) => ColumnOrderings(column)); + ColumnOrderings get key => $composableBuilder( + column: $table.key, + builder: (column) => ColumnOrderings(column), + ); - ColumnOrderings get payload => - $composableBuilder(column: $table.payload, builder: (column) => ColumnOrderings(column)); + ColumnOrderings get value => $composableBuilder( + column: $table.value, + builder: (column) => ColumnOrderings(column), + ); - ColumnOrderings get fetchedAt => - $composableBuilder(column: $table.fetchedAt, builder: (column) => ColumnOrderings(column)); + ColumnOrderings get updatedAt => $composableBuilder( + column: $table.updatedAt, + builder: (column) => ColumnOrderings(column), + ); } -class $$CachedProfilesTableAnnotationComposer extends Composer<_$AppDatabase, $CachedProfilesTable> { - $$CachedProfilesTableAnnotationComposer({ +class $$SettingsTableAnnotationComposer + extends Composer<_$AppDatabase, $SettingsTable> { + $$SettingsTableAnnotationComposer({ required super.$db, required super.$table, super.joinBuilder, super.$addJoinBuilderToRootComposer, super.$removeJoinBuilderFromRootComposer, }); - GeneratedColumn get did => $composableBuilder(column: $table.did, builder: (column) => column); + GeneratedColumn get key => + $composableBuilder(column: $table.key, builder: (column) => column); - GeneratedColumn get handle => $composableBuilder(column: $table.handle, builder: (column) => column); + GeneratedColumn get value => + $composableBuilder(column: $table.value, builder: (column) => column); - GeneratedColumn get payload => $composableBuilder(column: $table.payload, builder: (column) => column); - - GeneratedColumn get fetchedAt => $composableBuilder(column: $table.fetchedAt, builder: (column) => column); + GeneratedColumn get updatedAt => + $composableBuilder(column: $table.updatedAt, builder: (column) => column); } -class $$CachedProfilesTableTableManager +class $$SettingsTableTableManager extends RootTableManager< _$AppDatabase, - $CachedProfilesTable, - CachedProfile, - $$CachedProfilesTableFilterComposer, - $$CachedProfilesTableOrderingComposer, - $$CachedProfilesTableAnnotationComposer, - $$CachedProfilesTableCreateCompanionBuilder, - $$CachedProfilesTableUpdateCompanionBuilder, - (CachedProfile, BaseReferences<_$AppDatabase, $CachedProfilesTable, CachedProfile>), - CachedProfile, + $SettingsTable, + SettingsEntry, + $$SettingsTableFilterComposer, + $$SettingsTableOrderingComposer, + $$SettingsTableAnnotationComposer, + $$SettingsTableCreateCompanionBuilder, + $$SettingsTableUpdateCompanionBuilder, + ( + SettingsEntry, + BaseReferences<_$AppDatabase, $SettingsTable, SettingsEntry>, + ), + SettingsEntry, PrefetchHooks Function() > { - $$CachedProfilesTableTableManager(_$AppDatabase db, $CachedProfilesTable table) + $$SettingsTableTableManager(_$AppDatabase db, $SettingsTable table) : super( TableManagerState( db: db, table: table, - createFilteringComposer: () => $$CachedProfilesTableFilterComposer($db: db, $table: table), - createOrderingComposer: () => $$CachedProfilesTableOrderingComposer($db: db, $table: table), - createComputedFieldComposer: () => $$CachedProfilesTableAnnotationComposer($db: db, $table: table), + createFilteringComposer: () => + $$SettingsTableFilterComposer($db: db, $table: table), + createOrderingComposer: () => + $$SettingsTableOrderingComposer($db: db, $table: table), + createComputedFieldComposer: () => + $$SettingsTableAnnotationComposer($db: db, $table: table), updateCompanionCallback: ({ - Value did = const Value.absent(), - Value handle = const Value.absent(), - Value payload = const Value.absent(), - Value fetchedAt = const Value.absent(), + Value key = const Value.absent(), + Value value = const Value.absent(), + Value updatedAt = const Value.absent(), Value rowid = const Value.absent(), - }) => CachedProfilesCompanion( - did: did, - handle: handle, - payload: payload, - fetchedAt: fetchedAt, + }) => SettingsCompanion( + key: key, + value: value, + updatedAt: updatedAt, rowid: rowid, ), - createCompanionCallback: - ({ - required String did, - required String handle, - required String payload, - Value fetchedAt = const Value.absent(), + createCompanionCallback: + ({ + required String key, + required String value, + Value updatedAt = const Value.absent(), Value rowid = const Value.absent(), - }) => CachedProfilesCompanion.insert( - did: did, - handle: handle, - payload: payload, - fetchedAt: fetchedAt, + }) => SettingsCompanion.insert( + key: key, + value: value, + updatedAt: updatedAt, rowid: rowid, ), - withReferenceMapper: (p0) => p0.map((e) => (e.readTable(table), BaseReferences(db, table, e))).toList(), + withReferenceMapper: (p0) => p0 + .map((e) => (e.readTable(table), BaseReferences(db, table, e))) + .toList(), prefetchHooksCallback: null, ), ); } -typedef $$CachedProfilesTableProcessedTableManager = +typedef $$SettingsTableProcessedTableManager = ProcessedTableManager< _$AppDatabase, - $CachedProfilesTable, - CachedProfile, - $$CachedProfilesTableFilterComposer, - $$CachedProfilesTableOrderingComposer, - $$CachedProfilesTableAnnotationComposer, - $$CachedProfilesTableCreateCompanionBuilder, - $$CachedProfilesTableUpdateCompanionBuilder, - (CachedProfile, BaseReferences<_$AppDatabase, $CachedProfilesTable, CachedProfile>), - CachedProfile, + $SettingsTable, + SettingsEntry, + $$SettingsTableFilterComposer, + $$SettingsTableOrderingComposer, + $$SettingsTableAnnotationComposer, + $$SettingsTableCreateCompanionBuilder, + $$SettingsTableUpdateCompanionBuilder, + ( + SettingsEntry, + BaseReferences<_$AppDatabase, $SettingsTable, SettingsEntry>, + ), + SettingsEntry, PrefetchHooks Function() >; -typedef $$CachedPostsTableCreateCompanionBuilder = - CachedPostsCompanion Function({ - required String uri, - required String authorDid, - Value accountDid, - required String payload, - Value createdAt, - Value fetchedAt, +typedef $$SavedFeedsTableCreateCompanionBuilder = + SavedFeedsCompanion Function({ + required String id, + required String accountDid, + required String type, + required String value, + Value pinned, + Value sortOrder, + Value updatedAt, Value rowid, }); -typedef $$CachedPostsTableUpdateCompanionBuilder = - CachedPostsCompanion Function({ - Value uri, - Value authorDid, - Value accountDid, - Value payload, - Value createdAt, - Value fetchedAt, +typedef $$SavedFeedsTableUpdateCompanionBuilder = + SavedFeedsCompanion Function({ + Value id, + Value accountDid, + Value type, + Value value, + Value pinned, + Value sortOrder, + Value updatedAt, Value rowid, }); -class $$CachedPostsTableFilterComposer extends Composer<_$AppDatabase, $CachedPostsTable> { - $$CachedPostsTableFilterComposer({ +class $$SavedFeedsTableFilterComposer + extends Composer<_$AppDatabase, $SavedFeedsTable> { + $$SavedFeedsTableFilterComposer({ required super.$db, required super.$table, super.joinBuilder, super.$addJoinBuilderToRootComposer, super.$removeJoinBuilderFromRootComposer, }); - ColumnFilters get uri => $composableBuilder(column: $table.uri, builder: (column) => ColumnFilters(column)); + ColumnFilters get id => $composableBuilder( + column: $table.id, + builder: (column) => ColumnFilters(column), + ); - ColumnFilters get authorDid => - $composableBuilder(column: $table.authorDid, builder: (column) => ColumnFilters(column)); + ColumnFilters get accountDid => $composableBuilder( + column: $table.accountDid, + builder: (column) => ColumnFilters(column), + ); + + ColumnFilters get type => $composableBuilder( + column: $table.type, + builder: (column) => ColumnFilters(column), + ); - ColumnFilters get accountDid => - $composableBuilder(column: $table.accountDid, builder: (column) => ColumnFilters(column)); + ColumnFilters get value => $composableBuilder( + column: $table.value, + builder: (column) => ColumnFilters(column), + ); - ColumnFilters get payload => - $composableBuilder(column: $table.payload, builder: (column) => ColumnFilters(column)); + ColumnFilters get pinned => $composableBuilder( + column: $table.pinned, + builder: (column) => ColumnFilters(column), + ); - ColumnFilters get createdAt => - $composableBuilder(column: $table.createdAt, builder: (column) => ColumnFilters(column)); + ColumnFilters get sortOrder => $composableBuilder( + column: $table.sortOrder, + builder: (column) => ColumnFilters(column), + ); - ColumnFilters get fetchedAt => - $composableBuilder(column: $table.fetchedAt, builder: (column) => ColumnFilters(column)); + ColumnFilters get updatedAt => $composableBuilder( + column: $table.updatedAt, + builder: (column) => ColumnFilters(column), + ); } -class $$CachedPostsTableOrderingComposer extends Composer<_$AppDatabase, $CachedPostsTable> { - $$CachedPostsTableOrderingComposer({ +class $$SavedFeedsTableOrderingComposer + extends Composer<_$AppDatabase, $SavedFeedsTable> { + $$SavedFeedsTableOrderingComposer({ required super.$db, required super.$table, super.joinBuilder, super.$addJoinBuilderToRootComposer, super.$removeJoinBuilderFromRootComposer, }); - ColumnOrderings get uri => - $composableBuilder(column: $table.uri, builder: (column) => ColumnOrderings(column)); + ColumnOrderings get id => $composableBuilder( + column: $table.id, + builder: (column) => ColumnOrderings(column), + ); + + ColumnOrderings get accountDid => $composableBuilder( + column: $table.accountDid, + builder: (column) => ColumnOrderings(column), + ); - ColumnOrderings get authorDid => - $composableBuilder(column: $table.authorDid, builder: (column) => ColumnOrderings(column)); + ColumnOrderings get type => $composableBuilder( + column: $table.type, + builder: (column) => ColumnOrderings(column), + ); - ColumnOrderings get accountDid => - $composableBuilder(column: $table.accountDid, builder: (column) => ColumnOrderings(column)); + ColumnOrderings get value => $composableBuilder( + column: $table.value, + builder: (column) => ColumnOrderings(column), + ); - ColumnOrderings get payload => - $composableBuilder(column: $table.payload, builder: (column) => ColumnOrderings(column)); + ColumnOrderings get pinned => $composableBuilder( + column: $table.pinned, + builder: (column) => ColumnOrderings(column), + ); - ColumnOrderings get createdAt => - $composableBuilder(column: $table.createdAt, builder: (column) => ColumnOrderings(column)); + ColumnOrderings get sortOrder => $composableBuilder( + column: $table.sortOrder, + builder: (column) => ColumnOrderings(column), + ); - ColumnOrderings get fetchedAt => - $composableBuilder(column: $table.fetchedAt, builder: (column) => ColumnOrderings(column)); + ColumnOrderings get updatedAt => $composableBuilder( + column: $table.updatedAt, + builder: (column) => ColumnOrderings(column), + ); } -class $$CachedPostsTableAnnotationComposer extends Composer<_$AppDatabase, $CachedPostsTable> { - $$CachedPostsTableAnnotationComposer({ +class $$SavedFeedsTableAnnotationComposer + extends Composer<_$AppDatabase, $SavedFeedsTable> { + $$SavedFeedsTableAnnotationComposer({ required super.$db, required super.$table, super.joinBuilder, super.$addJoinBuilderToRootComposer, super.$removeJoinBuilderFromRootComposer, }); - GeneratedColumn get uri => $composableBuilder(column: $table.uri, builder: (column) => column); + GeneratedColumn get id => + $composableBuilder(column: $table.id, builder: (column) => column); + + GeneratedColumn get accountDid => $composableBuilder( + column: $table.accountDid, + builder: (column) => column, + ); - GeneratedColumn get authorDid => $composableBuilder(column: $table.authorDid, builder: (column) => column); + GeneratedColumn get type => + $composableBuilder(column: $table.type, builder: (column) => column); - GeneratedColumn get accountDid => $composableBuilder(column: $table.accountDid, builder: (column) => column); + GeneratedColumn get value => + $composableBuilder(column: $table.value, builder: (column) => column); - GeneratedColumn get payload => $composableBuilder(column: $table.payload, builder: (column) => column); + GeneratedColumn get pinned => + $composableBuilder(column: $table.pinned, builder: (column) => column); - GeneratedColumn get createdAt => $composableBuilder(column: $table.createdAt, builder: (column) => column); + GeneratedColumn get sortOrder => + $composableBuilder(column: $table.sortOrder, builder: (column) => column); - GeneratedColumn get fetchedAt => $composableBuilder(column: $table.fetchedAt, builder: (column) => column); + GeneratedColumn get updatedAt => + $composableBuilder(column: $table.updatedAt, builder: (column) => column); } -class $$CachedPostsTableTableManager +class $$SavedFeedsTableTableManager extends RootTableManager< _$AppDatabase, - $CachedPostsTable, - CachedPost, - $$CachedPostsTableFilterComposer, - $$CachedPostsTableOrderingComposer, - $$CachedPostsTableAnnotationComposer, - $$CachedPostsTableCreateCompanionBuilder, - $$CachedPostsTableUpdateCompanionBuilder, - (CachedPost, BaseReferences<_$AppDatabase, $CachedPostsTable, CachedPost>), - CachedPost, + $SavedFeedsTable, + SavedFeedEntry, + $$SavedFeedsTableFilterComposer, + $$SavedFeedsTableOrderingComposer, + $$SavedFeedsTableAnnotationComposer, + $$SavedFeedsTableCreateCompanionBuilder, + $$SavedFeedsTableUpdateCompanionBuilder, + ( + SavedFeedEntry, + BaseReferences<_$AppDatabase, $SavedFeedsTable, SavedFeedEntry>, + ), + SavedFeedEntry, PrefetchHooks Function() > { - $$CachedPostsTableTableManager(_$AppDatabase db, $CachedPostsTable table) + $$SavedFeedsTableTableManager(_$AppDatabase db, $SavedFeedsTable table) : super( TableManagerState( db: db, table: table, - createFilteringComposer: () => $$CachedPostsTableFilterComposer($db: db, $table: table), - createOrderingComposer: () => $$CachedPostsTableOrderingComposer($db: db, $table: table), - createComputedFieldComposer: () => $$CachedPostsTableAnnotationComposer($db: db, $table: table), + createFilteringComposer: () => + $$SavedFeedsTableFilterComposer($db: db, $table: table), + createOrderingComposer: () => + $$SavedFeedsTableOrderingComposer($db: db, $table: table), + createComputedFieldComposer: () => + $$SavedFeedsTableAnnotationComposer($db: db, $table: table), updateCompanionCallback: ({ - Value uri = const Value.absent(), - Value authorDid = const Value.absent(), - Value accountDid = const Value.absent(), - Value payload = const Value.absent(), - Value createdAt = const Value.absent(), - Value fetchedAt = const Value.absent(), + Value id = const Value.absent(), + Value accountDid = const Value.absent(), + Value type = const Value.absent(), + Value value = const Value.absent(), + Value pinned = const Value.absent(), + Value sortOrder = const Value.absent(), + Value updatedAt = const Value.absent(), Value rowid = const Value.absent(), - }) => CachedPostsCompanion( - uri: uri, - authorDid: authorDid, + }) => SavedFeedsCompanion( + id: id, accountDid: accountDid, - payload: payload, - createdAt: createdAt, - fetchedAt: fetchedAt, + type: type, + value: value, + pinned: pinned, + sortOrder: sortOrder, + updatedAt: updatedAt, rowid: rowid, ), createCompanionCallback: ({ - required String uri, - required String authorDid, - Value accountDid = const Value.absent(), - required String payload, - Value createdAt = const Value.absent(), - Value fetchedAt = const Value.absent(), + required String id, + required String accountDid, + required String type, + required String value, + Value pinned = const Value.absent(), + Value sortOrder = const Value.absent(), + Value updatedAt = const Value.absent(), Value rowid = const Value.absent(), - }) => CachedPostsCompanion.insert( - uri: uri, - authorDid: authorDid, + }) => SavedFeedsCompanion.insert( + id: id, accountDid: accountDid, - payload: payload, - createdAt: createdAt, - fetchedAt: fetchedAt, + type: type, + value: value, + pinned: pinned, + sortOrder: sortOrder, + updatedAt: updatedAt, rowid: rowid, ), - withReferenceMapper: (p0) => p0.map((e) => (e.readTable(table), BaseReferences(db, table, e))).toList(), + withReferenceMapper: (p0) => p0 + .map((e) => (e.readTable(table), BaseReferences(db, table, e))) + .toList(), prefetchHooksCallback: null, ), ); } -typedef $$CachedPostsTableProcessedTableManager = +typedef $$SavedFeedsTableProcessedTableManager = ProcessedTableManager< _$AppDatabase, - $CachedPostsTable, - CachedPost, - $$CachedPostsTableFilterComposer, - $$CachedPostsTableOrderingComposer, - $$CachedPostsTableAnnotationComposer, - $$CachedPostsTableCreateCompanionBuilder, - $$CachedPostsTableUpdateCompanionBuilder, - (CachedPost, BaseReferences<_$AppDatabase, $CachedPostsTable, CachedPost>), - CachedPost, + $SavedFeedsTable, + SavedFeedEntry, + $$SavedFeedsTableFilterComposer, + $$SavedFeedsTableOrderingComposer, + $$SavedFeedsTableAnnotationComposer, + $$SavedFeedsTableCreateCompanionBuilder, + $$SavedFeedsTableUpdateCompanionBuilder, + ( + SavedFeedEntry, + BaseReferences<_$AppDatabase, $SavedFeedsTable, SavedFeedEntry>, + ), + SavedFeedEntry, PrefetchHooks Function() >; -typedef $$SettingsTableCreateCompanionBuilder = - SettingsCompanion Function({ - required String key, - required String value, - Value updatedAt, +typedef $$CachedFeedPagesTableCreateCompanionBuilder = + CachedFeedPagesCompanion Function({ + required String accountDid, + required String feedKey, + required String payload, + Value fetchedAt, + Value rowid, + }); +typedef $$CachedFeedPagesTableUpdateCompanionBuilder = + CachedFeedPagesCompanion Function({ + Value accountDid, + Value feedKey, + Value payload, + Value fetchedAt, Value rowid, }); -typedef $$SettingsTableUpdateCompanionBuilder = - SettingsCompanion Function({Value key, Value value, Value updatedAt, Value rowid}); -class $$SettingsTableFilterComposer extends Composer<_$AppDatabase, $SettingsTable> { - $$SettingsTableFilterComposer({ +class $$CachedFeedPagesTableFilterComposer + extends Composer<_$AppDatabase, $CachedFeedPagesTable> { + $$CachedFeedPagesTableFilterComposer({ required super.$db, required super.$table, super.joinBuilder, super.$addJoinBuilderToRootComposer, super.$removeJoinBuilderFromRootComposer, }); - ColumnFilters get key => $composableBuilder(column: $table.key, builder: (column) => ColumnFilters(column)); + ColumnFilters get accountDid => $composableBuilder( + column: $table.accountDid, + builder: (column) => ColumnFilters(column), + ); + + ColumnFilters get feedKey => $composableBuilder( + column: $table.feedKey, + builder: (column) => ColumnFilters(column), + ); - ColumnFilters get value => - $composableBuilder(column: $table.value, builder: (column) => ColumnFilters(column)); + ColumnFilters get payload => $composableBuilder( + column: $table.payload, + builder: (column) => ColumnFilters(column), + ); - ColumnFilters get updatedAt => - $composableBuilder(column: $table.updatedAt, builder: (column) => ColumnFilters(column)); + ColumnFilters get fetchedAt => $composableBuilder( + column: $table.fetchedAt, + builder: (column) => ColumnFilters(column), + ); } -class $$SettingsTableOrderingComposer extends Composer<_$AppDatabase, $SettingsTable> { - $$SettingsTableOrderingComposer({ +class $$CachedFeedPagesTableOrderingComposer + extends Composer<_$AppDatabase, $CachedFeedPagesTable> { + $$CachedFeedPagesTableOrderingComposer({ required super.$db, required super.$table, super.joinBuilder, super.$addJoinBuilderToRootComposer, super.$removeJoinBuilderFromRootComposer, }); - ColumnOrderings get key => - $composableBuilder(column: $table.key, builder: (column) => ColumnOrderings(column)); + ColumnOrderings get accountDid => $composableBuilder( + column: $table.accountDid, + builder: (column) => ColumnOrderings(column), + ); + + ColumnOrderings get feedKey => $composableBuilder( + column: $table.feedKey, + builder: (column) => ColumnOrderings(column), + ); - ColumnOrderings get value => - $composableBuilder(column: $table.value, builder: (column) => ColumnOrderings(column)); + ColumnOrderings get payload => $composableBuilder( + column: $table.payload, + builder: (column) => ColumnOrderings(column), + ); - ColumnOrderings get updatedAt => - $composableBuilder(column: $table.updatedAt, builder: (column) => ColumnOrderings(column)); + ColumnOrderings get fetchedAt => $composableBuilder( + column: $table.fetchedAt, + builder: (column) => ColumnOrderings(column), + ); } -class $$SettingsTableAnnotationComposer extends Composer<_$AppDatabase, $SettingsTable> { - $$SettingsTableAnnotationComposer({ +class $$CachedFeedPagesTableAnnotationComposer + extends Composer<_$AppDatabase, $CachedFeedPagesTable> { + $$CachedFeedPagesTableAnnotationComposer({ required super.$db, required super.$table, super.joinBuilder, super.$addJoinBuilderToRootComposer, super.$removeJoinBuilderFromRootComposer, }); - GeneratedColumn get key => $composableBuilder(column: $table.key, builder: (column) => column); + GeneratedColumn get accountDid => $composableBuilder( + column: $table.accountDid, + builder: (column) => column, + ); + + GeneratedColumn get feedKey => + $composableBuilder(column: $table.feedKey, builder: (column) => column); - GeneratedColumn get value => $composableBuilder(column: $table.value, builder: (column) => column); + GeneratedColumn get payload => + $composableBuilder(column: $table.payload, builder: (column) => column); - GeneratedColumn get updatedAt => $composableBuilder(column: $table.updatedAt, builder: (column) => column); + GeneratedColumn get fetchedAt => + $composableBuilder(column: $table.fetchedAt, builder: (column) => column); } -class $$SettingsTableTableManager +class $$CachedFeedPagesTableTableManager extends RootTableManager< _$AppDatabase, - $SettingsTable, - SettingsEntry, - $$SettingsTableFilterComposer, - $$SettingsTableOrderingComposer, - $$SettingsTableAnnotationComposer, - $$SettingsTableCreateCompanionBuilder, - $$SettingsTableUpdateCompanionBuilder, - (SettingsEntry, BaseReferences<_$AppDatabase, $SettingsTable, SettingsEntry>), - SettingsEntry, + $CachedFeedPagesTable, + CachedFeedPage, + $$CachedFeedPagesTableFilterComposer, + $$CachedFeedPagesTableOrderingComposer, + $$CachedFeedPagesTableAnnotationComposer, + $$CachedFeedPagesTableCreateCompanionBuilder, + $$CachedFeedPagesTableUpdateCompanionBuilder, + ( + CachedFeedPage, + BaseReferences< + _$AppDatabase, + $CachedFeedPagesTable, + CachedFeedPage + >, + ), + CachedFeedPage, PrefetchHooks Function() > { - $$SettingsTableTableManager(_$AppDatabase db, $SettingsTable table) - : super( + $$CachedFeedPagesTableTableManager( + _$AppDatabase db, + $CachedFeedPagesTable table, + ) : super( TableManagerState( db: db, table: table, - createFilteringComposer: () => $$SettingsTableFilterComposer($db: db, $table: table), - createOrderingComposer: () => $$SettingsTableOrderingComposer($db: db, $table: table), - createComputedFieldComposer: () => $$SettingsTableAnnotationComposer($db: db, $table: table), + createFilteringComposer: () => + $$CachedFeedPagesTableFilterComposer($db: db, $table: table), + createOrderingComposer: () => + $$CachedFeedPagesTableOrderingComposer($db: db, $table: table), + createComputedFieldComposer: () => + $$CachedFeedPagesTableAnnotationComposer($db: db, $table: table), updateCompanionCallback: ({ - Value key = const Value.absent(), - Value value = const Value.absent(), - Value updatedAt = const Value.absent(), + Value accountDid = const Value.absent(), + Value feedKey = const Value.absent(), + Value payload = const Value.absent(), + Value fetchedAt = const Value.absent(), Value rowid = const Value.absent(), - }) => SettingsCompanion(key: key, value: value, updatedAt: updatedAt, rowid: rowid), + }) => CachedFeedPagesCompanion( + accountDid: accountDid, + feedKey: feedKey, + payload: payload, + fetchedAt: fetchedAt, + rowid: rowid, + ), createCompanionCallback: - ({ - required String key, - required String value, - Value updatedAt = const Value.absent(), + ({ + required String accountDid, + required String feedKey, + required String payload, + Value fetchedAt = const Value.absent(), Value rowid = const Value.absent(), - }) => SettingsCompanion.insert(key: key, value: value, updatedAt: updatedAt, rowid: rowid), - withReferenceMapper: (p0) => p0.map((e) => (e.readTable(table), BaseReferences(db, table, e))).toList(), + }) => CachedFeedPagesCompanion.insert( + accountDid: accountDid, + feedKey: feedKey, + payload: payload, + fetchedAt: fetchedAt, + rowid: rowid, + ), + withReferenceMapper: (p0) => p0 + .map((e) => (e.readTable(table), BaseReferences(db, table, e))) + .toList(), prefetchHooksCallback: null, ), ); } -typedef $$SettingsTableProcessedTableManager = +typedef $$CachedFeedPagesTableProcessedTableManager = ProcessedTableManager< _$AppDatabase, - $SettingsTable, - SettingsEntry, - $$SettingsTableFilterComposer, - $$SettingsTableOrderingComposer, - $$SettingsTableAnnotationComposer, - $$SettingsTableCreateCompanionBuilder, - $$SettingsTableUpdateCompanionBuilder, - (SettingsEntry, BaseReferences<_$AppDatabase, $SettingsTable, SettingsEntry>), - SettingsEntry, + $CachedFeedPagesTable, + CachedFeedPage, + $$CachedFeedPagesTableFilterComposer, + $$CachedFeedPagesTableOrderingComposer, + $$CachedFeedPagesTableAnnotationComposer, + $$CachedFeedPagesTableCreateCompanionBuilder, + $$CachedFeedPagesTableUpdateCompanionBuilder, + ( + CachedFeedPage, + BaseReferences<_$AppDatabase, $CachedFeedPagesTable, CachedFeedPage>, + ), + CachedFeedPage, PrefetchHooks Function() >; -typedef $$SavedFeedsTableCreateCompanionBuilder = - SavedFeedsCompanion Function({ - required String id, +typedef $$CachedFeedPostsTableCreateCompanionBuilder = + CachedFeedPostsCompanion Function({ required String accountDid, - required String type, - required String value, - Value pinned, - Value sortOrder, - Value updatedAt, + required String feedKey, + required String postUri, + required String postJson, + required int sortOrder, + Value fetchedAt, Value rowid, }); -typedef $$SavedFeedsTableUpdateCompanionBuilder = - SavedFeedsCompanion Function({ - Value id, +typedef $$CachedFeedPostsTableUpdateCompanionBuilder = + CachedFeedPostsCompanion Function({ Value accountDid, - Value type, - Value value, - Value pinned, + Value feedKey, + Value postUri, + Value postJson, Value sortOrder, - Value updatedAt, + Value fetchedAt, Value rowid, }); -class $$SavedFeedsTableFilterComposer extends Composer<_$AppDatabase, $SavedFeedsTable> { - $$SavedFeedsTableFilterComposer({ +class $$CachedFeedPostsTableFilterComposer + extends Composer<_$AppDatabase, $CachedFeedPostsTable> { + $$CachedFeedPostsTableFilterComposer({ required super.$db, required super.$table, super.joinBuilder, super.$addJoinBuilderToRootComposer, super.$removeJoinBuilderFromRootComposer, }); - ColumnFilters get id => $composableBuilder(column: $table.id, builder: (column) => ColumnFilters(column)); - - ColumnFilters get accountDid => - $composableBuilder(column: $table.accountDid, builder: (column) => ColumnFilters(column)); + ColumnFilters get accountDid => $composableBuilder( + column: $table.accountDid, + builder: (column) => ColumnFilters(column), + ); - ColumnFilters get type => $composableBuilder(column: $table.type, builder: (column) => ColumnFilters(column)); + ColumnFilters get feedKey => $composableBuilder( + column: $table.feedKey, + builder: (column) => ColumnFilters(column), + ); - ColumnFilters get value => - $composableBuilder(column: $table.value, builder: (column) => ColumnFilters(column)); + ColumnFilters get postUri => $composableBuilder( + column: $table.postUri, + builder: (column) => ColumnFilters(column), + ); - ColumnFilters get pinned => - $composableBuilder(column: $table.pinned, builder: (column) => ColumnFilters(column)); + ColumnFilters get postJson => $composableBuilder( + column: $table.postJson, + builder: (column) => ColumnFilters(column), + ); - ColumnFilters get sortOrder => - $composableBuilder(column: $table.sortOrder, builder: (column) => ColumnFilters(column)); + ColumnFilters get sortOrder => $composableBuilder( + column: $table.sortOrder, + builder: (column) => ColumnFilters(column), + ); - ColumnFilters get updatedAt => - $composableBuilder(column: $table.updatedAt, builder: (column) => ColumnFilters(column)); + ColumnFilters get fetchedAt => $composableBuilder( + column: $table.fetchedAt, + builder: (column) => ColumnFilters(column), + ); } -class $$SavedFeedsTableOrderingComposer extends Composer<_$AppDatabase, $SavedFeedsTable> { - $$SavedFeedsTableOrderingComposer({ +class $$CachedFeedPostsTableOrderingComposer + extends Composer<_$AppDatabase, $CachedFeedPostsTable> { + $$CachedFeedPostsTableOrderingComposer({ required super.$db, required super.$table, super.joinBuilder, super.$addJoinBuilderToRootComposer, super.$removeJoinBuilderFromRootComposer, }); - ColumnOrderings get id => $composableBuilder(column: $table.id, builder: (column) => ColumnOrderings(column)); - - ColumnOrderings get accountDid => - $composableBuilder(column: $table.accountDid, builder: (column) => ColumnOrderings(column)); + ColumnOrderings get accountDid => $composableBuilder( + column: $table.accountDid, + builder: (column) => ColumnOrderings(column), + ); - ColumnOrderings get type => - $composableBuilder(column: $table.type, builder: (column) => ColumnOrderings(column)); + ColumnOrderings get feedKey => $composableBuilder( + column: $table.feedKey, + builder: (column) => ColumnOrderings(column), + ); - ColumnOrderings get value => - $composableBuilder(column: $table.value, builder: (column) => ColumnOrderings(column)); + ColumnOrderings get postUri => $composableBuilder( + column: $table.postUri, + builder: (column) => ColumnOrderings(column), + ); - ColumnOrderings get pinned => - $composableBuilder(column: $table.pinned, builder: (column) => ColumnOrderings(column)); + ColumnOrderings get postJson => $composableBuilder( + column: $table.postJson, + builder: (column) => ColumnOrderings(column), + ); - ColumnOrderings get sortOrder => - $composableBuilder(column: $table.sortOrder, builder: (column) => ColumnOrderings(column)); + ColumnOrderings get sortOrder => $composableBuilder( + column: $table.sortOrder, + builder: (column) => ColumnOrderings(column), + ); - ColumnOrderings get updatedAt => - $composableBuilder(column: $table.updatedAt, builder: (column) => ColumnOrderings(column)); + ColumnOrderings get fetchedAt => $composableBuilder( + column: $table.fetchedAt, + builder: (column) => ColumnOrderings(column), + ); } -class $$SavedFeedsTableAnnotationComposer extends Composer<_$AppDatabase, $SavedFeedsTable> { - $$SavedFeedsTableAnnotationComposer({ +class $$CachedFeedPostsTableAnnotationComposer + extends Composer<_$AppDatabase, $CachedFeedPostsTable> { + $$CachedFeedPostsTableAnnotationComposer({ required super.$db, required super.$table, super.joinBuilder, super.$addJoinBuilderToRootComposer, super.$removeJoinBuilderFromRootComposer, }); - GeneratedColumn get id => $composableBuilder(column: $table.id, builder: (column) => column); - - GeneratedColumn get accountDid => $composableBuilder(column: $table.accountDid, builder: (column) => column); + GeneratedColumn get accountDid => $composableBuilder( + column: $table.accountDid, + builder: (column) => column, + ); - GeneratedColumn get type => $composableBuilder(column: $table.type, builder: (column) => column); + GeneratedColumn get feedKey => + $composableBuilder(column: $table.feedKey, builder: (column) => column); - GeneratedColumn get value => $composableBuilder(column: $table.value, builder: (column) => column); + GeneratedColumn get postUri => + $composableBuilder(column: $table.postUri, builder: (column) => column); - GeneratedColumn get pinned => $composableBuilder(column: $table.pinned, builder: (column) => column); + GeneratedColumn get postJson => + $composableBuilder(column: $table.postJson, builder: (column) => column); - GeneratedColumn get sortOrder => $composableBuilder(column: $table.sortOrder, builder: (column) => column); + GeneratedColumn get sortOrder => + $composableBuilder(column: $table.sortOrder, builder: (column) => column); - GeneratedColumn get updatedAt => $composableBuilder(column: $table.updatedAt, builder: (column) => column); + GeneratedColumn get fetchedAt => + $composableBuilder(column: $table.fetchedAt, builder: (column) => column); } -class $$SavedFeedsTableTableManager +class $$CachedFeedPostsTableTableManager extends RootTableManager< _$AppDatabase, - $SavedFeedsTable, - SavedFeedEntry, - $$SavedFeedsTableFilterComposer, - $$SavedFeedsTableOrderingComposer, - $$SavedFeedsTableAnnotationComposer, - $$SavedFeedsTableCreateCompanionBuilder, - $$SavedFeedsTableUpdateCompanionBuilder, - (SavedFeedEntry, BaseReferences<_$AppDatabase, $SavedFeedsTable, SavedFeedEntry>), - SavedFeedEntry, + $CachedFeedPostsTable, + CachedFeedPost, + $$CachedFeedPostsTableFilterComposer, + $$CachedFeedPostsTableOrderingComposer, + $$CachedFeedPostsTableAnnotationComposer, + $$CachedFeedPostsTableCreateCompanionBuilder, + $$CachedFeedPostsTableUpdateCompanionBuilder, + ( + CachedFeedPost, + BaseReferences< + _$AppDatabase, + $CachedFeedPostsTable, + CachedFeedPost + >, + ), + CachedFeedPost, PrefetchHooks Function() > { - $$SavedFeedsTableTableManager(_$AppDatabase db, $SavedFeedsTable table) - : super( + $$CachedFeedPostsTableTableManager( + _$AppDatabase db, + $CachedFeedPostsTable table, + ) : super( TableManagerState( db: db, table: table, - createFilteringComposer: () => $$SavedFeedsTableFilterComposer($db: db, $table: table), - createOrderingComposer: () => $$SavedFeedsTableOrderingComposer($db: db, $table: table), - createComputedFieldComposer: () => $$SavedFeedsTableAnnotationComposer($db: db, $table: table), + createFilteringComposer: () => + $$CachedFeedPostsTableFilterComposer($db: db, $table: table), + createOrderingComposer: () => + $$CachedFeedPostsTableOrderingComposer($db: db, $table: table), + createComputedFieldComposer: () => + $$CachedFeedPostsTableAnnotationComposer($db: db, $table: table), updateCompanionCallback: ({ - Value id = const Value.absent(), Value accountDid = const Value.absent(), - Value type = const Value.absent(), - Value value = const Value.absent(), - Value pinned = const Value.absent(), + Value feedKey = const Value.absent(), + Value postUri = const Value.absent(), + Value postJson = const Value.absent(), Value sortOrder = const Value.absent(), - Value updatedAt = const Value.absent(), + Value fetchedAt = const Value.absent(), Value rowid = const Value.absent(), - }) => SavedFeedsCompanion( - id: id, + }) => CachedFeedPostsCompanion( accountDid: accountDid, - type: type, - value: value, - pinned: pinned, + feedKey: feedKey, + postUri: postUri, + postJson: postJson, sortOrder: sortOrder, - updatedAt: updatedAt, + fetchedAt: fetchedAt, rowid: rowid, ), createCompanionCallback: ({ - required String id, required String accountDid, - required String type, - required String value, - Value pinned = const Value.absent(), - Value sortOrder = const Value.absent(), - Value updatedAt = const Value.absent(), + required String feedKey, + required String postUri, + required String postJson, + required int sortOrder, + Value fetchedAt = const Value.absent(), Value rowid = const Value.absent(), - }) => SavedFeedsCompanion.insert( - id: id, + }) => CachedFeedPostsCompanion.insert( accountDid: accountDid, - type: type, - value: value, - pinned: pinned, + feedKey: feedKey, + postUri: postUri, + postJson: postJson, sortOrder: sortOrder, - updatedAt: updatedAt, + fetchedAt: fetchedAt, rowid: rowid, ), - withReferenceMapper: (p0) => p0.map((e) => (e.readTable(table), BaseReferences(db, table, e))).toList(), + withReferenceMapper: (p0) => p0 + .map((e) => (e.readTable(table), BaseReferences(db, table, e))) + .toList(), prefetchHooksCallback: null, ), ); } -typedef $$SavedFeedsTableProcessedTableManager = +typedef $$CachedFeedPostsTableProcessedTableManager = ProcessedTableManager< _$AppDatabase, - $SavedFeedsTable, - SavedFeedEntry, - $$SavedFeedsTableFilterComposer, - $$SavedFeedsTableOrderingComposer, - $$SavedFeedsTableAnnotationComposer, - $$SavedFeedsTableCreateCompanionBuilder, - $$SavedFeedsTableUpdateCompanionBuilder, - (SavedFeedEntry, BaseReferences<_$AppDatabase, $SavedFeedsTable, SavedFeedEntry>), - SavedFeedEntry, + $CachedFeedPostsTable, + CachedFeedPost, + $$CachedFeedPostsTableFilterComposer, + $$CachedFeedPostsTableOrderingComposer, + $$CachedFeedPostsTableAnnotationComposer, + $$CachedFeedPostsTableCreateCompanionBuilder, + $$CachedFeedPostsTableUpdateCompanionBuilder, + ( + CachedFeedPost, + BaseReferences<_$AppDatabase, $CachedFeedPostsTable, CachedFeedPost>, + ), + CachedFeedPost, PrefetchHooks Function() >; -typedef $$CachedFeedPagesTableCreateCompanionBuilder = - CachedFeedPagesCompanion Function({ +typedef $$CachedThreadRootsTableCreateCompanionBuilder = + CachedThreadRootsCompanion Function({ required String accountDid, - required String feedKey, + required String rootUri, required String payload, Value fetchedAt, Value rowid, }); -typedef $$CachedFeedPagesTableUpdateCompanionBuilder = - CachedFeedPagesCompanion Function({ +typedef $$CachedThreadRootsTableUpdateCompanionBuilder = + CachedThreadRootsCompanion Function({ Value accountDid, - Value feedKey, + Value rootUri, Value payload, Value fetchedAt, Value rowid, }); -class $$CachedFeedPagesTableFilterComposer extends Composer<_$AppDatabase, $CachedFeedPagesTable> { - $$CachedFeedPagesTableFilterComposer({ +class $$CachedThreadRootsTableFilterComposer + extends Composer<_$AppDatabase, $CachedThreadRootsTable> { + $$CachedThreadRootsTableFilterComposer({ required super.$db, required super.$table, super.joinBuilder, super.$addJoinBuilderToRootComposer, super.$removeJoinBuilderFromRootComposer, }); - ColumnFilters get accountDid => - $composableBuilder(column: $table.accountDid, builder: (column) => ColumnFilters(column)); + ColumnFilters get accountDid => $composableBuilder( + column: $table.accountDid, + builder: (column) => ColumnFilters(column), + ); - ColumnFilters get feedKey => - $composableBuilder(column: $table.feedKey, builder: (column) => ColumnFilters(column)); + ColumnFilters get rootUri => $composableBuilder( + column: $table.rootUri, + builder: (column) => ColumnFilters(column), + ); - ColumnFilters get payload => - $composableBuilder(column: $table.payload, builder: (column) => ColumnFilters(column)); + ColumnFilters get payload => $composableBuilder( + column: $table.payload, + builder: (column) => ColumnFilters(column), + ); - ColumnFilters get fetchedAt => - $composableBuilder(column: $table.fetchedAt, builder: (column) => ColumnFilters(column)); + ColumnFilters get fetchedAt => $composableBuilder( + column: $table.fetchedAt, + builder: (column) => ColumnFilters(column), + ); } -class $$CachedFeedPagesTableOrderingComposer extends Composer<_$AppDatabase, $CachedFeedPagesTable> { - $$CachedFeedPagesTableOrderingComposer({ +class $$CachedThreadRootsTableOrderingComposer + extends Composer<_$AppDatabase, $CachedThreadRootsTable> { + $$CachedThreadRootsTableOrderingComposer({ required super.$db, required super.$table, super.joinBuilder, super.$addJoinBuilderToRootComposer, super.$removeJoinBuilderFromRootComposer, }); - ColumnOrderings get accountDid => - $composableBuilder(column: $table.accountDid, builder: (column) => ColumnOrderings(column)); + ColumnOrderings get accountDid => $composableBuilder( + column: $table.accountDid, + builder: (column) => ColumnOrderings(column), + ); - ColumnOrderings get feedKey => - $composableBuilder(column: $table.feedKey, builder: (column) => ColumnOrderings(column)); + ColumnOrderings get rootUri => $composableBuilder( + column: $table.rootUri, + builder: (column) => ColumnOrderings(column), + ); - ColumnOrderings get payload => - $composableBuilder(column: $table.payload, builder: (column) => ColumnOrderings(column)); + ColumnOrderings get payload => $composableBuilder( + column: $table.payload, + builder: (column) => ColumnOrderings(column), + ); - ColumnOrderings get fetchedAt => - $composableBuilder(column: $table.fetchedAt, builder: (column) => ColumnOrderings(column)); + ColumnOrderings get fetchedAt => $composableBuilder( + column: $table.fetchedAt, + builder: (column) => ColumnOrderings(column), + ); } -class $$CachedFeedPagesTableAnnotationComposer extends Composer<_$AppDatabase, $CachedFeedPagesTable> { - $$CachedFeedPagesTableAnnotationComposer({ +class $$CachedThreadRootsTableAnnotationComposer + extends Composer<_$AppDatabase, $CachedThreadRootsTable> { + $$CachedThreadRootsTableAnnotationComposer({ required super.$db, required super.$table, super.joinBuilder, super.$addJoinBuilderToRootComposer, super.$removeJoinBuilderFromRootComposer, }); - GeneratedColumn get accountDid => $composableBuilder(column: $table.accountDid, builder: (column) => column); + GeneratedColumn get accountDid => $composableBuilder( + column: $table.accountDid, + builder: (column) => column, + ); - GeneratedColumn get feedKey => $composableBuilder(column: $table.feedKey, builder: (column) => column); + GeneratedColumn get rootUri => + $composableBuilder(column: $table.rootUri, builder: (column) => column); - GeneratedColumn get payload => $composableBuilder(column: $table.payload, builder: (column) => column); + GeneratedColumn get payload => + $composableBuilder(column: $table.payload, builder: (column) => column); - GeneratedColumn get fetchedAt => $composableBuilder(column: $table.fetchedAt, builder: (column) => column); + GeneratedColumn get fetchedAt => + $composableBuilder(column: $table.fetchedAt, builder: (column) => column); } -class $$CachedFeedPagesTableTableManager +class $$CachedThreadRootsTableTableManager extends RootTableManager< _$AppDatabase, - $CachedFeedPagesTable, - CachedFeedPage, - $$CachedFeedPagesTableFilterComposer, - $$CachedFeedPagesTableOrderingComposer, - $$CachedFeedPagesTableAnnotationComposer, - $$CachedFeedPagesTableCreateCompanionBuilder, - $$CachedFeedPagesTableUpdateCompanionBuilder, - (CachedFeedPage, BaseReferences<_$AppDatabase, $CachedFeedPagesTable, CachedFeedPage>), - CachedFeedPage, + $CachedThreadRootsTable, + CachedThreadRoot, + $$CachedThreadRootsTableFilterComposer, + $$CachedThreadRootsTableOrderingComposer, + $$CachedThreadRootsTableAnnotationComposer, + $$CachedThreadRootsTableCreateCompanionBuilder, + $$CachedThreadRootsTableUpdateCompanionBuilder, + ( + CachedThreadRoot, + BaseReferences< + _$AppDatabase, + $CachedThreadRootsTable, + CachedThreadRoot + >, + ), + CachedThreadRoot, PrefetchHooks Function() > { - $$CachedFeedPagesTableTableManager(_$AppDatabase db, $CachedFeedPagesTable table) - : super( + $$CachedThreadRootsTableTableManager( + _$AppDatabase db, + $CachedThreadRootsTable table, + ) : super( TableManagerState( db: db, table: table, - createFilteringComposer: () => $$CachedFeedPagesTableFilterComposer($db: db, $table: table), - createOrderingComposer: () => $$CachedFeedPagesTableOrderingComposer($db: db, $table: table), - createComputedFieldComposer: () => $$CachedFeedPagesTableAnnotationComposer($db: db, $table: table), + createFilteringComposer: () => + $$CachedThreadRootsTableFilterComposer($db: db, $table: table), + createOrderingComposer: () => + $$CachedThreadRootsTableOrderingComposer($db: db, $table: table), + createComputedFieldComposer: () => + $$CachedThreadRootsTableAnnotationComposer( + $db: db, + $table: table, + ), updateCompanionCallback: ({ Value accountDid = const Value.absent(), - Value feedKey = const Value.absent(), + Value rootUri = const Value.absent(), Value payload = const Value.absent(), Value fetchedAt = const Value.absent(), Value rowid = const Value.absent(), - }) => CachedFeedPagesCompanion( + }) => CachedThreadRootsCompanion( accountDid: accountDid, - feedKey: feedKey, + rootUri: rootUri, payload: payload, fetchedAt: fetchedAt, rowid: rowid, @@ -4920,35 +7142,44 @@ class $$CachedFeedPagesTableTableManager createCompanionCallback: ({ required String accountDid, - required String feedKey, + required String rootUri, required String payload, Value fetchedAt = const Value.absent(), Value rowid = const Value.absent(), - }) => CachedFeedPagesCompanion.insert( + }) => CachedThreadRootsCompanion.insert( accountDid: accountDid, - feedKey: feedKey, + rootUri: rootUri, payload: payload, fetchedAt: fetchedAt, rowid: rowid, ), - withReferenceMapper: (p0) => p0.map((e) => (e.readTable(table), BaseReferences(db, table, e))).toList(), + withReferenceMapper: (p0) => p0 + .map((e) => (e.readTable(table), BaseReferences(db, table, e))) + .toList(), prefetchHooksCallback: null, ), ); } -typedef $$CachedFeedPagesTableProcessedTableManager = +typedef $$CachedThreadRootsTableProcessedTableManager = ProcessedTableManager< _$AppDatabase, - $CachedFeedPagesTable, - CachedFeedPage, - $$CachedFeedPagesTableFilterComposer, - $$CachedFeedPagesTableOrderingComposer, - $$CachedFeedPagesTableAnnotationComposer, - $$CachedFeedPagesTableCreateCompanionBuilder, - $$CachedFeedPagesTableUpdateCompanionBuilder, - (CachedFeedPage, BaseReferences<_$AppDatabase, $CachedFeedPagesTable, CachedFeedPage>), - CachedFeedPage, + $CachedThreadRootsTable, + CachedThreadRoot, + $$CachedThreadRootsTableFilterComposer, + $$CachedThreadRootsTableOrderingComposer, + $$CachedThreadRootsTableAnnotationComposer, + $$CachedThreadRootsTableCreateCompanionBuilder, + $$CachedThreadRootsTableUpdateCompanionBuilder, + ( + CachedThreadRoot, + BaseReferences< + _$AppDatabase, + $CachedThreadRootsTable, + CachedThreadRoot + >, + ), + CachedThreadRoot, PrefetchHooks Function() >; typedef $$SearchHistoryTableCreateCompanionBuilder = @@ -4968,7 +7199,8 @@ typedef $$SearchHistoryTableUpdateCompanionBuilder = Value accountDid, }); -class $$SearchHistoryTableFilterComposer extends Composer<_$AppDatabase, $SearchHistoryTable> { +class $$SearchHistoryTableFilterComposer + extends Composer<_$AppDatabase, $SearchHistoryTable> { $$SearchHistoryTableFilterComposer({ required super.$db, required super.$table, @@ -4976,21 +7208,34 @@ class $$SearchHistoryTableFilterComposer extends Composer<_$AppDatabase, $Search super.$addJoinBuilderToRootComposer, super.$removeJoinBuilderFromRootComposer, }); - ColumnFilters get id => $composableBuilder(column: $table.id, builder: (column) => ColumnFilters(column)); + ColumnFilters get id => $composableBuilder( + column: $table.id, + builder: (column) => ColumnFilters(column), + ); - ColumnFilters get query => - $composableBuilder(column: $table.query, builder: (column) => ColumnFilters(column)); + ColumnFilters get query => $composableBuilder( + column: $table.query, + builder: (column) => ColumnFilters(column), + ); - ColumnFilters get type => $composableBuilder(column: $table.type, builder: (column) => ColumnFilters(column)); + ColumnFilters get type => $composableBuilder( + column: $table.type, + builder: (column) => ColumnFilters(column), + ); - ColumnFilters get searchedAt => - $composableBuilder(column: $table.searchedAt, builder: (column) => ColumnFilters(column)); + ColumnFilters get searchedAt => $composableBuilder( + column: $table.searchedAt, + builder: (column) => ColumnFilters(column), + ); - ColumnFilters get accountDid => - $composableBuilder(column: $table.accountDid, builder: (column) => ColumnFilters(column)); + ColumnFilters get accountDid => $composableBuilder( + column: $table.accountDid, + builder: (column) => ColumnFilters(column), + ); } -class $$SearchHistoryTableOrderingComposer extends Composer<_$AppDatabase, $SearchHistoryTable> { +class $$SearchHistoryTableOrderingComposer + extends Composer<_$AppDatabase, $SearchHistoryTable> { $$SearchHistoryTableOrderingComposer({ required super.$db, required super.$table, @@ -4998,22 +7243,34 @@ class $$SearchHistoryTableOrderingComposer extends Composer<_$AppDatabase, $Sear super.$addJoinBuilderToRootComposer, super.$removeJoinBuilderFromRootComposer, }); - ColumnOrderings get id => $composableBuilder(column: $table.id, builder: (column) => ColumnOrderings(column)); + ColumnOrderings get id => $composableBuilder( + column: $table.id, + builder: (column) => ColumnOrderings(column), + ); - ColumnOrderings get query => - $composableBuilder(column: $table.query, builder: (column) => ColumnOrderings(column)); + ColumnOrderings get query => $composableBuilder( + column: $table.query, + builder: (column) => ColumnOrderings(column), + ); - ColumnOrderings get type => - $composableBuilder(column: $table.type, builder: (column) => ColumnOrderings(column)); + ColumnOrderings get type => $composableBuilder( + column: $table.type, + builder: (column) => ColumnOrderings(column), + ); - ColumnOrderings get searchedAt => - $composableBuilder(column: $table.searchedAt, builder: (column) => ColumnOrderings(column)); + ColumnOrderings get searchedAt => $composableBuilder( + column: $table.searchedAt, + builder: (column) => ColumnOrderings(column), + ); - ColumnOrderings get accountDid => - $composableBuilder(column: $table.accountDid, builder: (column) => ColumnOrderings(column)); + ColumnOrderings get accountDid => $composableBuilder( + column: $table.accountDid, + builder: (column) => ColumnOrderings(column), + ); } -class $$SearchHistoryTableAnnotationComposer extends Composer<_$AppDatabase, $SearchHistoryTable> { +class $$SearchHistoryTableAnnotationComposer + extends Composer<_$AppDatabase, $SearchHistoryTable> { $$SearchHistoryTableAnnotationComposer({ required super.$db, required super.$table, @@ -5021,16 +7278,24 @@ class $$SearchHistoryTableAnnotationComposer extends Composer<_$AppDatabase, $Se super.$addJoinBuilderToRootComposer, super.$removeJoinBuilderFromRootComposer, }); - GeneratedColumn get id => $composableBuilder(column: $table.id, builder: (column) => column); + GeneratedColumn get id => + $composableBuilder(column: $table.id, builder: (column) => column); - GeneratedColumn get query => $composableBuilder(column: $table.query, builder: (column) => column); + GeneratedColumn get query => + $composableBuilder(column: $table.query, builder: (column) => column); - GeneratedColumn get type => $composableBuilder(column: $table.type, builder: (column) => column); + GeneratedColumn get type => + $composableBuilder(column: $table.type, builder: (column) => column); - GeneratedColumn get searchedAt => - $composableBuilder(column: $table.searchedAt, builder: (column) => column); + GeneratedColumn get searchedAt => $composableBuilder( + column: $table.searchedAt, + builder: (column) => column, + ); - GeneratedColumn get accountDid => $composableBuilder(column: $table.accountDid, builder: (column) => column); + GeneratedColumn get accountDid => $composableBuilder( + column: $table.accountDid, + builder: (column) => column, + ); } class $$SearchHistoryTableTableManager @@ -5044,7 +7309,14 @@ class $$SearchHistoryTableTableManager $$SearchHistoryTableAnnotationComposer, $$SearchHistoryTableCreateCompanionBuilder, $$SearchHistoryTableUpdateCompanionBuilder, - (SearchHistoryEntry, BaseReferences<_$AppDatabase, $SearchHistoryTable, SearchHistoryEntry>), + ( + SearchHistoryEntry, + BaseReferences< + _$AppDatabase, + $SearchHistoryTable, + SearchHistoryEntry + >, + ), SearchHistoryEntry, PrefetchHooks Function() > { @@ -5053,9 +7325,12 @@ class $$SearchHistoryTableTableManager TableManagerState( db: db, table: table, - createFilteringComposer: () => $$SearchHistoryTableFilterComposer($db: db, $table: table), - createOrderingComposer: () => $$SearchHistoryTableOrderingComposer($db: db, $table: table), - createComputedFieldComposer: () => $$SearchHistoryTableAnnotationComposer($db: db, $table: table), + createFilteringComposer: () => + $$SearchHistoryTableFilterComposer($db: db, $table: table), + createOrderingComposer: () => + $$SearchHistoryTableOrderingComposer($db: db, $table: table), + createComputedFieldComposer: () => + $$SearchHistoryTableAnnotationComposer($db: db, $table: table), updateCompanionCallback: ({ Value id = const Value.absent(), @@ -5084,7 +7359,9 @@ class $$SearchHistoryTableTableManager searchedAt: searchedAt, accountDid: accountDid, ), - withReferenceMapper: (p0) => p0.map((e) => (e.readTable(table), BaseReferences(db, table, e))).toList(), + withReferenceMapper: (p0) => p0 + .map((e) => (e.readTable(table), BaseReferences(db, table, e))) + .toList(), prefetchHooksCallback: null, ), ); @@ -5100,7 +7377,10 @@ typedef $$SearchHistoryTableProcessedTableManager = $$SearchHistoryTableAnnotationComposer, $$SearchHistoryTableCreateCompanionBuilder, $$SearchHistoryTableUpdateCompanionBuilder, - (SearchHistoryEntry, BaseReferences<_$AppDatabase, $SearchHistoryTable, SearchHistoryEntry>), + ( + SearchHistoryEntry, + BaseReferences<_$AppDatabase, $SearchHistoryTable, SearchHistoryEntry>, + ), SearchHistoryEntry, PrefetchHooks Function() >; @@ -5135,7 +7415,8 @@ typedef $$DraftsTableUpdateCompanionBuilder = Value scheduledAt, }); -class $$DraftsTableFilterComposer extends Composer<_$AppDatabase, $DraftsTable> { +class $$DraftsTableFilterComposer + extends Composer<_$AppDatabase, $DraftsTable> { $$DraftsTableFilterComposer({ required super.$db, required super.$table, @@ -5143,43 +7424,69 @@ class $$DraftsTableFilterComposer extends Composer<_$AppDatabase, $DraftsTable> super.$addJoinBuilderToRootComposer, super.$removeJoinBuilderFromRootComposer, }); - ColumnFilters get id => $composableBuilder(column: $table.id, builder: (column) => ColumnFilters(column)); + ColumnFilters get id => $composableBuilder( + column: $table.id, + builder: (column) => ColumnFilters(column), + ); - ColumnFilters get accountDid => - $composableBuilder(column: $table.accountDid, builder: (column) => ColumnFilters(column)); + ColumnFilters get accountDid => $composableBuilder( + column: $table.accountDid, + builder: (column) => ColumnFilters(column), + ); - ColumnFilters get content => - $composableBuilder(column: $table.content, builder: (column) => ColumnFilters(column)); + ColumnFilters get content => $composableBuilder( + column: $table.content, + builder: (column) => ColumnFilters(column), + ); - ColumnFilters get replyUri => - $composableBuilder(column: $table.replyUri, builder: (column) => ColumnFilters(column)); + ColumnFilters get replyUri => $composableBuilder( + column: $table.replyUri, + builder: (column) => ColumnFilters(column), + ); - ColumnFilters get replyCid => - $composableBuilder(column: $table.replyCid, builder: (column) => ColumnFilters(column)); + ColumnFilters get replyCid => $composableBuilder( + column: $table.replyCid, + builder: (column) => ColumnFilters(column), + ); - ColumnFilters get rootUri => - $composableBuilder(column: $table.rootUri, builder: (column) => ColumnFilters(column)); + ColumnFilters get rootUri => $composableBuilder( + column: $table.rootUri, + builder: (column) => ColumnFilters(column), + ); - ColumnFilters get rootCid => - $composableBuilder(column: $table.rootCid, builder: (column) => ColumnFilters(column)); + ColumnFilters get rootCid => $composableBuilder( + column: $table.rootCid, + builder: (column) => ColumnFilters(column), + ); - ColumnFilters get embedJson => - $composableBuilder(column: $table.embedJson, builder: (column) => ColumnFilters(column)); + ColumnFilters get embedJson => $composableBuilder( + column: $table.embedJson, + builder: (column) => ColumnFilters(column), + ); - ColumnFilters get mediaPaths => - $composableBuilder(column: $table.mediaPaths, builder: (column) => ColumnFilters(column)); + ColumnFilters get mediaPaths => $composableBuilder( + column: $table.mediaPaths, + builder: (column) => ColumnFilters(column), + ); - ColumnFilters get createdAt => - $composableBuilder(column: $table.createdAt, builder: (column) => ColumnFilters(column)); + ColumnFilters get createdAt => $composableBuilder( + column: $table.createdAt, + builder: (column) => ColumnFilters(column), + ); - ColumnFilters get updatedAt => - $composableBuilder(column: $table.updatedAt, builder: (column) => ColumnFilters(column)); + ColumnFilters get updatedAt => $composableBuilder( + column: $table.updatedAt, + builder: (column) => ColumnFilters(column), + ); - ColumnFilters get scheduledAt => - $composableBuilder(column: $table.scheduledAt, builder: (column) => ColumnFilters(column)); + ColumnFilters get scheduledAt => $composableBuilder( + column: $table.scheduledAt, + builder: (column) => ColumnFilters(column), + ); } -class $$DraftsTableOrderingComposer extends Composer<_$AppDatabase, $DraftsTable> { +class $$DraftsTableOrderingComposer + extends Composer<_$AppDatabase, $DraftsTable> { $$DraftsTableOrderingComposer({ required super.$db, required super.$table, @@ -5187,43 +7494,69 @@ class $$DraftsTableOrderingComposer extends Composer<_$AppDatabase, $DraftsTable super.$addJoinBuilderToRootComposer, super.$removeJoinBuilderFromRootComposer, }); - ColumnOrderings get id => $composableBuilder(column: $table.id, builder: (column) => ColumnOrderings(column)); + ColumnOrderings get id => $composableBuilder( + column: $table.id, + builder: (column) => ColumnOrderings(column), + ); - ColumnOrderings get accountDid => - $composableBuilder(column: $table.accountDid, builder: (column) => ColumnOrderings(column)); + ColumnOrderings get accountDid => $composableBuilder( + column: $table.accountDid, + builder: (column) => ColumnOrderings(column), + ); - ColumnOrderings get content => - $composableBuilder(column: $table.content, builder: (column) => ColumnOrderings(column)); + ColumnOrderings get content => $composableBuilder( + column: $table.content, + builder: (column) => ColumnOrderings(column), + ); - ColumnOrderings get replyUri => - $composableBuilder(column: $table.replyUri, builder: (column) => ColumnOrderings(column)); + ColumnOrderings get replyUri => $composableBuilder( + column: $table.replyUri, + builder: (column) => ColumnOrderings(column), + ); - ColumnOrderings get replyCid => - $composableBuilder(column: $table.replyCid, builder: (column) => ColumnOrderings(column)); + ColumnOrderings get replyCid => $composableBuilder( + column: $table.replyCid, + builder: (column) => ColumnOrderings(column), + ); - ColumnOrderings get rootUri => - $composableBuilder(column: $table.rootUri, builder: (column) => ColumnOrderings(column)); + ColumnOrderings get rootUri => $composableBuilder( + column: $table.rootUri, + builder: (column) => ColumnOrderings(column), + ); - ColumnOrderings get rootCid => - $composableBuilder(column: $table.rootCid, builder: (column) => ColumnOrderings(column)); + ColumnOrderings get rootCid => $composableBuilder( + column: $table.rootCid, + builder: (column) => ColumnOrderings(column), + ); - ColumnOrderings get embedJson => - $composableBuilder(column: $table.embedJson, builder: (column) => ColumnOrderings(column)); + ColumnOrderings get embedJson => $composableBuilder( + column: $table.embedJson, + builder: (column) => ColumnOrderings(column), + ); - ColumnOrderings get mediaPaths => - $composableBuilder(column: $table.mediaPaths, builder: (column) => ColumnOrderings(column)); + ColumnOrderings get mediaPaths => $composableBuilder( + column: $table.mediaPaths, + builder: (column) => ColumnOrderings(column), + ); - ColumnOrderings get createdAt => - $composableBuilder(column: $table.createdAt, builder: (column) => ColumnOrderings(column)); + ColumnOrderings get createdAt => $composableBuilder( + column: $table.createdAt, + builder: (column) => ColumnOrderings(column), + ); - ColumnOrderings get updatedAt => - $composableBuilder(column: $table.updatedAt, builder: (column) => ColumnOrderings(column)); + ColumnOrderings get updatedAt => $composableBuilder( + column: $table.updatedAt, + builder: (column) => ColumnOrderings(column), + ); - ColumnOrderings get scheduledAt => - $composableBuilder(column: $table.scheduledAt, builder: (column) => ColumnOrderings(column)); + ColumnOrderings get scheduledAt => $composableBuilder( + column: $table.scheduledAt, + builder: (column) => ColumnOrderings(column), + ); } -class $$DraftsTableAnnotationComposer extends Composer<_$AppDatabase, $DraftsTable> { +class $$DraftsTableAnnotationComposer + extends Composer<_$AppDatabase, $DraftsTable> { $$DraftsTableAnnotationComposer({ required super.$db, required super.$table, @@ -5231,30 +7564,47 @@ class $$DraftsTableAnnotationComposer extends Composer<_$AppDatabase, $DraftsTab super.$addJoinBuilderToRootComposer, super.$removeJoinBuilderFromRootComposer, }); - GeneratedColumn get id => $composableBuilder(column: $table.id, builder: (column) => column); + GeneratedColumn get id => + $composableBuilder(column: $table.id, builder: (column) => column); - GeneratedColumn get accountDid => $composableBuilder(column: $table.accountDid, builder: (column) => column); + GeneratedColumn get accountDid => $composableBuilder( + column: $table.accountDid, + builder: (column) => column, + ); - GeneratedColumn get content => $composableBuilder(column: $table.content, builder: (column) => column); + GeneratedColumn get content => + $composableBuilder(column: $table.content, builder: (column) => column); - GeneratedColumn get replyUri => $composableBuilder(column: $table.replyUri, builder: (column) => column); + GeneratedColumn get replyUri => + $composableBuilder(column: $table.replyUri, builder: (column) => column); - GeneratedColumn get replyCid => $composableBuilder(column: $table.replyCid, builder: (column) => column); + GeneratedColumn get replyCid => + $composableBuilder(column: $table.replyCid, builder: (column) => column); - GeneratedColumn get rootUri => $composableBuilder(column: $table.rootUri, builder: (column) => column); + GeneratedColumn get rootUri => + $composableBuilder(column: $table.rootUri, builder: (column) => column); - GeneratedColumn get rootCid => $composableBuilder(column: $table.rootCid, builder: (column) => column); + GeneratedColumn get rootCid => + $composableBuilder(column: $table.rootCid, builder: (column) => column); - GeneratedColumn get embedJson => $composableBuilder(column: $table.embedJson, builder: (column) => column); + GeneratedColumn get embedJson => + $composableBuilder(column: $table.embedJson, builder: (column) => column); - GeneratedColumn get mediaPaths => $composableBuilder(column: $table.mediaPaths, builder: (column) => column); + GeneratedColumn get mediaPaths => $composableBuilder( + column: $table.mediaPaths, + builder: (column) => column, + ); - GeneratedColumn get createdAt => $composableBuilder(column: $table.createdAt, builder: (column) => column); + GeneratedColumn get createdAt => + $composableBuilder(column: $table.createdAt, builder: (column) => column); - GeneratedColumn get updatedAt => $composableBuilder(column: $table.updatedAt, builder: (column) => column); + GeneratedColumn get updatedAt => + $composableBuilder(column: $table.updatedAt, builder: (column) => column); - GeneratedColumn get scheduledAt => - $composableBuilder(column: $table.scheduledAt, builder: (column) => column); + GeneratedColumn get scheduledAt => $composableBuilder( + column: $table.scheduledAt, + builder: (column) => column, + ); } class $$DraftsTableTableManager @@ -5277,9 +7627,12 @@ class $$DraftsTableTableManager TableManagerState( db: db, table: table, - createFilteringComposer: () => $$DraftsTableFilterComposer($db: db, $table: table), - createOrderingComposer: () => $$DraftsTableOrderingComposer($db: db, $table: table), - createComputedFieldComposer: () => $$DraftsTableAnnotationComposer($db: db, $table: table), + createFilteringComposer: () => + $$DraftsTableFilterComposer($db: db, $table: table), + createOrderingComposer: () => + $$DraftsTableOrderingComposer($db: db, $table: table), + createComputedFieldComposer: () => + $$DraftsTableAnnotationComposer($db: db, $table: table), updateCompanionCallback: ({ Value id = const Value.absent(), @@ -5336,7 +7689,9 @@ class $$DraftsTableTableManager updatedAt: updatedAt, scheduledAt: scheduledAt, ), - withReferenceMapper: (p0) => p0.map((e) => (e.readTable(table), BaseReferences(db, table, e))).toList(), + withReferenceMapper: (p0) => p0 + .map((e) => (e.readTable(table), BaseReferences(db, table, e))) + .toList(), prefetchHooksCallback: null, ), ); @@ -5375,7 +7730,8 @@ typedef $$SavedPostsTableUpdateCompanionBuilder = Value savedAt, }); -class $$SavedPostsTableFilterComposer extends Composer<_$AppDatabase, $SavedPostsTable> { +class $$SavedPostsTableFilterComposer + extends Composer<_$AppDatabase, $SavedPostsTable> { $$SavedPostsTableFilterComposer({ required super.$db, required super.$table, @@ -5383,25 +7739,39 @@ class $$SavedPostsTableFilterComposer extends Composer<_$AppDatabase, $SavedPost super.$addJoinBuilderToRootComposer, super.$removeJoinBuilderFromRootComposer, }); - ColumnFilters get id => $composableBuilder(column: $table.id, builder: (column) => ColumnFilters(column)); + ColumnFilters get id => $composableBuilder( + column: $table.id, + builder: (column) => ColumnFilters(column), + ); - ColumnFilters get accountDid => - $composableBuilder(column: $table.accountDid, builder: (column) => ColumnFilters(column)); + ColumnFilters get accountDid => $composableBuilder( + column: $table.accountDid, + builder: (column) => ColumnFilters(column), + ); - ColumnFilters get postUri => - $composableBuilder(column: $table.postUri, builder: (column) => ColumnFilters(column)); + ColumnFilters get postUri => $composableBuilder( + column: $table.postUri, + builder: (column) => ColumnFilters(column), + ); - ColumnFilters get postJson => - $composableBuilder(column: $table.postJson, builder: (column) => ColumnFilters(column)); + ColumnFilters get postJson => $composableBuilder( + column: $table.postJson, + builder: (column) => ColumnFilters(column), + ); - ColumnFilters get saveType => - $composableBuilder(column: $table.saveType, builder: (column) => ColumnFilters(column)); + ColumnFilters get saveType => $composableBuilder( + column: $table.saveType, + builder: (column) => ColumnFilters(column), + ); - ColumnFilters get savedAt => - $composableBuilder(column: $table.savedAt, builder: (column) => ColumnFilters(column)); + ColumnFilters get savedAt => $composableBuilder( + column: $table.savedAt, + builder: (column) => ColumnFilters(column), + ); } -class $$SavedPostsTableOrderingComposer extends Composer<_$AppDatabase, $SavedPostsTable> { +class $$SavedPostsTableOrderingComposer + extends Composer<_$AppDatabase, $SavedPostsTable> { $$SavedPostsTableOrderingComposer({ required super.$db, required super.$table, @@ -5409,25 +7779,39 @@ class $$SavedPostsTableOrderingComposer extends Composer<_$AppDatabase, $SavedPo super.$addJoinBuilderToRootComposer, super.$removeJoinBuilderFromRootComposer, }); - ColumnOrderings get id => $composableBuilder(column: $table.id, builder: (column) => ColumnOrderings(column)); + ColumnOrderings get id => $composableBuilder( + column: $table.id, + builder: (column) => ColumnOrderings(column), + ); - ColumnOrderings get accountDid => - $composableBuilder(column: $table.accountDid, builder: (column) => ColumnOrderings(column)); + ColumnOrderings get accountDid => $composableBuilder( + column: $table.accountDid, + builder: (column) => ColumnOrderings(column), + ); - ColumnOrderings get postUri => - $composableBuilder(column: $table.postUri, builder: (column) => ColumnOrderings(column)); + ColumnOrderings get postUri => $composableBuilder( + column: $table.postUri, + builder: (column) => ColumnOrderings(column), + ); - ColumnOrderings get postJson => - $composableBuilder(column: $table.postJson, builder: (column) => ColumnOrderings(column)); + ColumnOrderings get postJson => $composableBuilder( + column: $table.postJson, + builder: (column) => ColumnOrderings(column), + ); - ColumnOrderings get saveType => - $composableBuilder(column: $table.saveType, builder: (column) => ColumnOrderings(column)); + ColumnOrderings get saveType => $composableBuilder( + column: $table.saveType, + builder: (column) => ColumnOrderings(column), + ); - ColumnOrderings get savedAt => - $composableBuilder(column: $table.savedAt, builder: (column) => ColumnOrderings(column)); + ColumnOrderings get savedAt => $composableBuilder( + column: $table.savedAt, + builder: (column) => ColumnOrderings(column), + ); } -class $$SavedPostsTableAnnotationComposer extends Composer<_$AppDatabase, $SavedPostsTable> { +class $$SavedPostsTableAnnotationComposer + extends Composer<_$AppDatabase, $SavedPostsTable> { $$SavedPostsTableAnnotationComposer({ required super.$db, required super.$table, @@ -5435,17 +7819,25 @@ class $$SavedPostsTableAnnotationComposer extends Composer<_$AppDatabase, $Saved super.$addJoinBuilderToRootComposer, super.$removeJoinBuilderFromRootComposer, }); - GeneratedColumn get id => $composableBuilder(column: $table.id, builder: (column) => column); + GeneratedColumn get id => + $composableBuilder(column: $table.id, builder: (column) => column); - GeneratedColumn get accountDid => $composableBuilder(column: $table.accountDid, builder: (column) => column); + GeneratedColumn get accountDid => $composableBuilder( + column: $table.accountDid, + builder: (column) => column, + ); - GeneratedColumn get postUri => $composableBuilder(column: $table.postUri, builder: (column) => column); + GeneratedColumn get postUri => + $composableBuilder(column: $table.postUri, builder: (column) => column); - GeneratedColumn get postJson => $composableBuilder(column: $table.postJson, builder: (column) => column); + GeneratedColumn get postJson => + $composableBuilder(column: $table.postJson, builder: (column) => column); - GeneratedColumn get saveType => $composableBuilder(column: $table.saveType, builder: (column) => column); + GeneratedColumn get saveType => + $composableBuilder(column: $table.saveType, builder: (column) => column); - GeneratedColumn get savedAt => $composableBuilder(column: $table.savedAt, builder: (column) => column); + GeneratedColumn get savedAt => + $composableBuilder(column: $table.savedAt, builder: (column) => column); } class $$SavedPostsTableTableManager @@ -5459,7 +7851,10 @@ class $$SavedPostsTableTableManager $$SavedPostsTableAnnotationComposer, $$SavedPostsTableCreateCompanionBuilder, $$SavedPostsTableUpdateCompanionBuilder, - (SavedPostEntry, BaseReferences<_$AppDatabase, $SavedPostsTable, SavedPostEntry>), + ( + SavedPostEntry, + BaseReferences<_$AppDatabase, $SavedPostsTable, SavedPostEntry>, + ), SavedPostEntry, PrefetchHooks Function() > { @@ -5468,9 +7863,12 @@ class $$SavedPostsTableTableManager TableManagerState( db: db, table: table, - createFilteringComposer: () => $$SavedPostsTableFilterComposer($db: db, $table: table), - createOrderingComposer: () => $$SavedPostsTableOrderingComposer($db: db, $table: table), - createComputedFieldComposer: () => $$SavedPostsTableAnnotationComposer($db: db, $table: table), + createFilteringComposer: () => + $$SavedPostsTableFilterComposer($db: db, $table: table), + createOrderingComposer: () => + $$SavedPostsTableOrderingComposer($db: db, $table: table), + createComputedFieldComposer: () => + $$SavedPostsTableAnnotationComposer($db: db, $table: table), updateCompanionCallback: ({ Value id = const Value.absent(), @@ -5503,7 +7901,9 @@ class $$SavedPostsTableTableManager saveType: saveType, savedAt: savedAt, ), - withReferenceMapper: (p0) => p0.map((e) => (e.readTable(table), BaseReferences(db, table, e))).toList(), + withReferenceMapper: (p0) => p0 + .map((e) => (e.readTable(table), BaseReferences(db, table, e))) + .toList(), prefetchHooksCallback: null, ), ); @@ -5519,7 +7919,10 @@ typedef $$SavedPostsTableProcessedTableManager = $$SavedPostsTableAnnotationComposer, $$SavedPostsTableCreateCompanionBuilder, $$SavedPostsTableUpdateCompanionBuilder, - (SavedPostEntry, BaseReferences<_$AppDatabase, $SavedPostsTable, SavedPostEntry>), + ( + SavedPostEntry, + BaseReferences<_$AppDatabase, $SavedPostsTable, SavedPostEntry>, + ), SavedPostEntry, PrefetchHooks Function() >; @@ -5538,7 +7941,8 @@ typedef $$LabelerCacheTableUpdateCompanionBuilder = Value rowid, }); -class $$LabelerCacheTableFilterComposer extends Composer<_$AppDatabase, $LabelerCacheTable> { +class $$LabelerCacheTableFilterComposer + extends Composer<_$AppDatabase, $LabelerCacheTable> { $$LabelerCacheTableFilterComposer({ required super.$db, required super.$table, @@ -5546,17 +7950,24 @@ class $$LabelerCacheTableFilterComposer extends Composer<_$AppDatabase, $Labeler super.$addJoinBuilderToRootComposer, super.$removeJoinBuilderFromRootComposer, }); - ColumnFilters get labelerDid => - $composableBuilder(column: $table.labelerDid, builder: (column) => ColumnFilters(column)); + ColumnFilters get labelerDid => $composableBuilder( + column: $table.labelerDid, + builder: (column) => ColumnFilters(column), + ); - ColumnFilters get policiesJson => - $composableBuilder(column: $table.policiesJson, builder: (column) => ColumnFilters(column)); + ColumnFilters get policiesJson => $composableBuilder( + column: $table.policiesJson, + builder: (column) => ColumnFilters(column), + ); - ColumnFilters get fetchedAt => - $composableBuilder(column: $table.fetchedAt, builder: (column) => ColumnFilters(column)); + ColumnFilters get fetchedAt => $composableBuilder( + column: $table.fetchedAt, + builder: (column) => ColumnFilters(column), + ); } -class $$LabelerCacheTableOrderingComposer extends Composer<_$AppDatabase, $LabelerCacheTable> { +class $$LabelerCacheTableOrderingComposer + extends Composer<_$AppDatabase, $LabelerCacheTable> { $$LabelerCacheTableOrderingComposer({ required super.$db, required super.$table, @@ -5564,17 +7975,24 @@ class $$LabelerCacheTableOrderingComposer extends Composer<_$AppDatabase, $Label super.$addJoinBuilderToRootComposer, super.$removeJoinBuilderFromRootComposer, }); - ColumnOrderings get labelerDid => - $composableBuilder(column: $table.labelerDid, builder: (column) => ColumnOrderings(column)); + ColumnOrderings get labelerDid => $composableBuilder( + column: $table.labelerDid, + builder: (column) => ColumnOrderings(column), + ); - ColumnOrderings get policiesJson => - $composableBuilder(column: $table.policiesJson, builder: (column) => ColumnOrderings(column)); + ColumnOrderings get policiesJson => $composableBuilder( + column: $table.policiesJson, + builder: (column) => ColumnOrderings(column), + ); - ColumnOrderings get fetchedAt => - $composableBuilder(column: $table.fetchedAt, builder: (column) => ColumnOrderings(column)); + ColumnOrderings get fetchedAt => $composableBuilder( + column: $table.fetchedAt, + builder: (column) => ColumnOrderings(column), + ); } -class $$LabelerCacheTableAnnotationComposer extends Composer<_$AppDatabase, $LabelerCacheTable> { +class $$LabelerCacheTableAnnotationComposer + extends Composer<_$AppDatabase, $LabelerCacheTable> { $$LabelerCacheTableAnnotationComposer({ required super.$db, required super.$table, @@ -5582,12 +8000,18 @@ class $$LabelerCacheTableAnnotationComposer extends Composer<_$AppDatabase, $Lab super.$addJoinBuilderToRootComposer, super.$removeJoinBuilderFromRootComposer, }); - GeneratedColumn get labelerDid => $composableBuilder(column: $table.labelerDid, builder: (column) => column); + GeneratedColumn get labelerDid => $composableBuilder( + column: $table.labelerDid, + builder: (column) => column, + ); - GeneratedColumn get policiesJson => - $composableBuilder(column: $table.policiesJson, builder: (column) => column); + GeneratedColumn get policiesJson => $composableBuilder( + column: $table.policiesJson, + builder: (column) => column, + ); - GeneratedColumn get fetchedAt => $composableBuilder(column: $table.fetchedAt, builder: (column) => column); + GeneratedColumn get fetchedAt => + $composableBuilder(column: $table.fetchedAt, builder: (column) => column); } class $$LabelerCacheTableTableManager @@ -5601,7 +8025,14 @@ class $$LabelerCacheTableTableManager $$LabelerCacheTableAnnotationComposer, $$LabelerCacheTableCreateCompanionBuilder, $$LabelerCacheTableUpdateCompanionBuilder, - (LabelerCacheEntry, BaseReferences<_$AppDatabase, $LabelerCacheTable, LabelerCacheEntry>), + ( + LabelerCacheEntry, + BaseReferences< + _$AppDatabase, + $LabelerCacheTable, + LabelerCacheEntry + >, + ), LabelerCacheEntry, PrefetchHooks Function() > { @@ -5610,9 +8041,12 @@ class $$LabelerCacheTableTableManager TableManagerState( db: db, table: table, - createFilteringComposer: () => $$LabelerCacheTableFilterComposer($db: db, $table: table), - createOrderingComposer: () => $$LabelerCacheTableOrderingComposer($db: db, $table: table), - createComputedFieldComposer: () => $$LabelerCacheTableAnnotationComposer($db: db, $table: table), + createFilteringComposer: () => + $$LabelerCacheTableFilterComposer($db: db, $table: table), + createOrderingComposer: () => + $$LabelerCacheTableOrderingComposer($db: db, $table: table), + createComputedFieldComposer: () => + $$LabelerCacheTableAnnotationComposer($db: db, $table: table), updateCompanionCallback: ({ Value labelerDid = const Value.absent(), @@ -5637,7 +8071,9 @@ class $$LabelerCacheTableTableManager fetchedAt: fetchedAt, rowid: rowid, ), - withReferenceMapper: (p0) => p0.map((e) => (e.readTable(table), BaseReferences(db, table, e))).toList(), + withReferenceMapper: (p0) => p0 + .map((e) => (e.readTable(table), BaseReferences(db, table, e))) + .toList(), prefetchHooksCallback: null, ), ); @@ -5653,7 +8089,10 @@ typedef $$LabelerCacheTableProcessedTableManager = $$LabelerCacheTableAnnotationComposer, $$LabelerCacheTableCreateCompanionBuilder, $$LabelerCacheTableUpdateCompanionBuilder, - (LabelerCacheEntry, BaseReferences<_$AppDatabase, $LabelerCacheTable, LabelerCacheEntry>), + ( + LabelerCacheEntry, + BaseReferences<_$AppDatabase, $LabelerCacheTable, LabelerCacheEntry>, + ), LabelerCacheEntry, PrefetchHooks Function() >; @@ -5674,7 +8113,8 @@ typedef $$LikedPostsTableUpdateCompanionBuilder = Value likedAt, }); -class $$LikedPostsTableFilterComposer extends Composer<_$AppDatabase, $LikedPostsTable> { +class $$LikedPostsTableFilterComposer + extends Composer<_$AppDatabase, $LikedPostsTable> { $$LikedPostsTableFilterComposer({ required super.$db, required super.$table, @@ -5682,22 +8122,34 @@ class $$LikedPostsTableFilterComposer extends Composer<_$AppDatabase, $LikedPost super.$addJoinBuilderToRootComposer, super.$removeJoinBuilderFromRootComposer, }); - ColumnFilters get id => $composableBuilder(column: $table.id, builder: (column) => ColumnFilters(column)); + ColumnFilters get id => $composableBuilder( + column: $table.id, + builder: (column) => ColumnFilters(column), + ); - ColumnFilters get accountDid => - $composableBuilder(column: $table.accountDid, builder: (column) => ColumnFilters(column)); + ColumnFilters get accountDid => $composableBuilder( + column: $table.accountDid, + builder: (column) => ColumnFilters(column), + ); - ColumnFilters get postUri => - $composableBuilder(column: $table.postUri, builder: (column) => ColumnFilters(column)); + ColumnFilters get postUri => $composableBuilder( + column: $table.postUri, + builder: (column) => ColumnFilters(column), + ); - ColumnFilters get postJson => - $composableBuilder(column: $table.postJson, builder: (column) => ColumnFilters(column)); + ColumnFilters get postJson => $composableBuilder( + column: $table.postJson, + builder: (column) => ColumnFilters(column), + ); - ColumnFilters get likedAt => - $composableBuilder(column: $table.likedAt, builder: (column) => ColumnFilters(column)); + ColumnFilters get likedAt => $composableBuilder( + column: $table.likedAt, + builder: (column) => ColumnFilters(column), + ); } -class $$LikedPostsTableOrderingComposer extends Composer<_$AppDatabase, $LikedPostsTable> { +class $$LikedPostsTableOrderingComposer + extends Composer<_$AppDatabase, $LikedPostsTable> { $$LikedPostsTableOrderingComposer({ required super.$db, required super.$table, @@ -5705,22 +8157,34 @@ class $$LikedPostsTableOrderingComposer extends Composer<_$AppDatabase, $LikedPo super.$addJoinBuilderToRootComposer, super.$removeJoinBuilderFromRootComposer, }); - ColumnOrderings get id => $composableBuilder(column: $table.id, builder: (column) => ColumnOrderings(column)); + ColumnOrderings get id => $composableBuilder( + column: $table.id, + builder: (column) => ColumnOrderings(column), + ); - ColumnOrderings get accountDid => - $composableBuilder(column: $table.accountDid, builder: (column) => ColumnOrderings(column)); + ColumnOrderings get accountDid => $composableBuilder( + column: $table.accountDid, + builder: (column) => ColumnOrderings(column), + ); - ColumnOrderings get postUri => - $composableBuilder(column: $table.postUri, builder: (column) => ColumnOrderings(column)); + ColumnOrderings get postUri => $composableBuilder( + column: $table.postUri, + builder: (column) => ColumnOrderings(column), + ); - ColumnOrderings get postJson => - $composableBuilder(column: $table.postJson, builder: (column) => ColumnOrderings(column)); + ColumnOrderings get postJson => $composableBuilder( + column: $table.postJson, + builder: (column) => ColumnOrderings(column), + ); - ColumnOrderings get likedAt => - $composableBuilder(column: $table.likedAt, builder: (column) => ColumnOrderings(column)); + ColumnOrderings get likedAt => $composableBuilder( + column: $table.likedAt, + builder: (column) => ColumnOrderings(column), + ); } -class $$LikedPostsTableAnnotationComposer extends Composer<_$AppDatabase, $LikedPostsTable> { +class $$LikedPostsTableAnnotationComposer + extends Composer<_$AppDatabase, $LikedPostsTable> { $$LikedPostsTableAnnotationComposer({ required super.$db, required super.$table, @@ -5728,15 +8192,22 @@ class $$LikedPostsTableAnnotationComposer extends Composer<_$AppDatabase, $Liked super.$addJoinBuilderToRootComposer, super.$removeJoinBuilderFromRootComposer, }); - GeneratedColumn get id => $composableBuilder(column: $table.id, builder: (column) => column); + GeneratedColumn get id => + $composableBuilder(column: $table.id, builder: (column) => column); - GeneratedColumn get accountDid => $composableBuilder(column: $table.accountDid, builder: (column) => column); + GeneratedColumn get accountDid => $composableBuilder( + column: $table.accountDid, + builder: (column) => column, + ); - GeneratedColumn get postUri => $composableBuilder(column: $table.postUri, builder: (column) => column); + GeneratedColumn get postUri => + $composableBuilder(column: $table.postUri, builder: (column) => column); - GeneratedColumn get postJson => $composableBuilder(column: $table.postJson, builder: (column) => column); + GeneratedColumn get postJson => + $composableBuilder(column: $table.postJson, builder: (column) => column); - GeneratedColumn get likedAt => $composableBuilder(column: $table.likedAt, builder: (column) => column); + GeneratedColumn get likedAt => + $composableBuilder(column: $table.likedAt, builder: (column) => column); } class $$LikedPostsTableTableManager @@ -5750,7 +8221,10 @@ class $$LikedPostsTableTableManager $$LikedPostsTableAnnotationComposer, $$LikedPostsTableCreateCompanionBuilder, $$LikedPostsTableUpdateCompanionBuilder, - (LikedPostEntry, BaseReferences<_$AppDatabase, $LikedPostsTable, LikedPostEntry>), + ( + LikedPostEntry, + BaseReferences<_$AppDatabase, $LikedPostsTable, LikedPostEntry>, + ), LikedPostEntry, PrefetchHooks Function() > { @@ -5759,9 +8233,12 @@ class $$LikedPostsTableTableManager TableManagerState( db: db, table: table, - createFilteringComposer: () => $$LikedPostsTableFilterComposer($db: db, $table: table), - createOrderingComposer: () => $$LikedPostsTableOrderingComposer($db: db, $table: table), - createComputedFieldComposer: () => $$LikedPostsTableAnnotationComposer($db: db, $table: table), + createFilteringComposer: () => + $$LikedPostsTableFilterComposer($db: db, $table: table), + createOrderingComposer: () => + $$LikedPostsTableOrderingComposer($db: db, $table: table), + createComputedFieldComposer: () => + $$LikedPostsTableAnnotationComposer($db: db, $table: table), updateCompanionCallback: ({ Value id = const Value.absent(), @@ -5790,7 +8267,9 @@ class $$LikedPostsTableTableManager postJson: postJson, likedAt: likedAt, ), - withReferenceMapper: (p0) => p0.map((e) => (e.readTable(table), BaseReferences(db, table, e))).toList(), + withReferenceMapper: (p0) => p0 + .map((e) => (e.readTable(table), BaseReferences(db, table, e))) + .toList(), prefetchHooksCallback: null, ), ); @@ -5806,7 +8285,10 @@ typedef $$LikedPostsTableProcessedTableManager = $$LikedPostsTableAnnotationComposer, $$LikedPostsTableCreateCompanionBuilder, $$LikedPostsTableUpdateCompanionBuilder, - (LikedPostEntry, BaseReferences<_$AppDatabase, $LikedPostsTable, LikedPostEntry>), + ( + LikedPostEntry, + BaseReferences<_$AppDatabase, $LikedPostsTable, LikedPostEntry>, + ), LikedPostEntry, PrefetchHooks Function() >; @@ -5814,16 +8296,30 @@ typedef $$LikedPostsTableProcessedTableManager = class $AppDatabaseManager { final _$AppDatabase _db; $AppDatabaseManager(this._db); - $$AccountsTableTableManager get accounts => $$AccountsTableTableManager(_db, _db.accounts); - $$CachedProfilesTableTableManager get cachedProfiles => $$CachedProfilesTableTableManager(_db, _db.cachedProfiles); - $$CachedPostsTableTableManager get cachedPosts => $$CachedPostsTableTableManager(_db, _db.cachedPosts); - $$SettingsTableTableManager get settings => $$SettingsTableTableManager(_db, _db.settings); - $$SavedFeedsTableTableManager get savedFeeds => $$SavedFeedsTableTableManager(_db, _db.savedFeeds); + $$AccountsTableTableManager get accounts => + $$AccountsTableTableManager(_db, _db.accounts); + $$CachedProfilesTableTableManager get cachedProfiles => + $$CachedProfilesTableTableManager(_db, _db.cachedProfiles); + $$CachedPostsTableTableManager get cachedPosts => + $$CachedPostsTableTableManager(_db, _db.cachedPosts); + $$SettingsTableTableManager get settings => + $$SettingsTableTableManager(_db, _db.settings); + $$SavedFeedsTableTableManager get savedFeeds => + $$SavedFeedsTableTableManager(_db, _db.savedFeeds); $$CachedFeedPagesTableTableManager get cachedFeedPages => $$CachedFeedPagesTableTableManager(_db, _db.cachedFeedPages); - $$SearchHistoryTableTableManager get searchHistory => $$SearchHistoryTableTableManager(_db, _db.searchHistory); - $$DraftsTableTableManager get drafts => $$DraftsTableTableManager(_db, _db.drafts); - $$SavedPostsTableTableManager get savedPosts => $$SavedPostsTableTableManager(_db, _db.savedPosts); - $$LabelerCacheTableTableManager get labelerCache => $$LabelerCacheTableTableManager(_db, _db.labelerCache); - $$LikedPostsTableTableManager get likedPosts => $$LikedPostsTableTableManager(_db, _db.likedPosts); + $$CachedFeedPostsTableTableManager get cachedFeedPosts => + $$CachedFeedPostsTableTableManager(_db, _db.cachedFeedPosts); + $$CachedThreadRootsTableTableManager get cachedThreadRoots => + $$CachedThreadRootsTableTableManager(_db, _db.cachedThreadRoots); + $$SearchHistoryTableTableManager get searchHistory => + $$SearchHistoryTableTableManager(_db, _db.searchHistory); + $$DraftsTableTableManager get drafts => + $$DraftsTableTableManager(_db, _db.drafts); + $$SavedPostsTableTableManager get savedPosts => + $$SavedPostsTableTableManager(_db, _db.savedPosts); + $$LabelerCacheTableTableManager get labelerCache => + $$LabelerCacheTableTableManager(_db, _db.labelerCache); + $$LikedPostsTableTableManager get likedPosts => + $$LikedPostsTableTableManager(_db, _db.likedPosts); } diff --git a/lib/core/database/tables.dart b/lib/core/database/tables.dart index 0375368..f4a4342 100644 --- a/lib/core/database/tables.dart +++ b/lib/core/database/tables.dart @@ -79,6 +79,30 @@ class CachedFeedPages extends Table { Set get primaryKey => {accountDid, feedKey}; } +@DataClassName('CachedFeedPost') +class CachedFeedPosts extends Table { + TextColumn get accountDid => text()(); + TextColumn get feedKey => text()(); + TextColumn get postUri => text()(); + TextColumn get postJson => text()(); + IntColumn get sortOrder => integer()(); + DateTimeColumn get fetchedAt => dateTime().withDefault(currentDateAndTime)(); + + @override + Set get primaryKey => {accountDid, feedKey, postUri}; +} + +@DataClassName('CachedThreadRoot') +class CachedThreadRoots extends Table { + TextColumn get accountDid => text()(); + TextColumn get rootUri => text()(); + TextColumn get payload => text()(); + DateTimeColumn get fetchedAt => dateTime().withDefault(currentDateAndTime)(); + + @override + Set get primaryKey => {accountDid, rootUri}; +} + @DataClassName('SearchHistoryEntry') class SearchHistory extends Table { IntColumn get id => integer().autoIncrement()(); diff --git a/lib/features/feed/data/feed_repository.dart b/lib/features/feed/data/feed_repository.dart index 7620b55..48e6b2b 100644 --- a/lib/features/feed/data/feed_repository.dart +++ b/lib/features/feed/data/feed_repository.dart @@ -6,6 +6,7 @@ import 'package:bluesky/app_bsky_feed_defs.dart'; import 'package:bluesky/app_bsky_feed_getauthorfeed.dart'; import 'package:bluesky/app_bsky_unspecced_defs.dart'; import 'package:flutter/foundation.dart'; +import 'package:lazurite/core/cache/offline_cache_policy.dart'; import 'package:lazurite/core/database/app_database.dart'; import 'package:lazurite/core/logging/app_logger.dart'; import 'package:lazurite/core/network/app_view_fallback_service.dart'; @@ -98,7 +99,7 @@ class FeedRepository { ); final result = FeedResult(posts: _filterFeedPosts(response.data.feed), cursor: response.data.cursor); - await _cacheFirstPageIfNeeded(feedKey: timelineCacheKey, result: result, cursor: cursor); + await _cacheFeedWindow(feedKey: timelineCacheKey, result: result, cursor: cursor); return result; } @@ -114,23 +115,27 @@ class FeedRepository { ); final result = FeedResult(posts: _filterFeedPosts(response.data.feed), cursor: response.data.cursor); - await _cacheFirstPageIfNeeded(feedKey: 'feed:${feedUri.toString()}', result: result, cursor: cursor); + await _cacheFeedWindow(feedKey: 'feed:${feedUri.toString()}', result: result, cursor: cursor); return result; } Future getCachedFeedPage(String feedKey) async { - final cached = await _database.getCachedFeedPage(_accountDid, feedKey); - if (cached == null) { + final cachedPosts = await _database.getCachedFeedPosts(_accountDid, feedKey); + if (cachedPosts.isEmpty) { return null; } - final decoded = jsonDecode(cached.payload) as Map; - final rawPosts = decoded['posts'] as List? ?? const []; - final posts = rawPosts - .map((entry) => FeedViewPost.fromJson(Map.from(entry as Map))) + final posts = cachedPosts + .map((entry) => FeedViewPost.fromJson(jsonDecode(entry.postJson) as Map)) .toList(growable: false); + final pageMeta = await _database.getCachedFeedPage(_accountDid, feedKey); + String? cursor; + if (pageMeta != null) { + final decoded = jsonDecode(pageMeta.payload) as Map; + cursor = decoded['cursor'] as String?; + } - return FeedResult(posts: posts, cursor: decoded['cursor'] as String?); + return FeedResult(posts: posts, cursor: cursor); } Future getPreferences() async { @@ -310,23 +315,72 @@ class FeedRepository { return posts.where((post) => !moderationService.shouldFilterFeedViewPostInList(post)).toList(); } - Future _cacheFirstPageIfNeeded({ - required String feedKey, - required FeedResult result, - required String? cursor, - }) async { - if (cursor != null) { - return; + Future _cacheFeedWindow({required String feedKey, required FeedResult result, required String? cursor}) async { + final existingPosts = await _database.getCachedFeedPosts(_accountDid, feedKey); + + final merged = []; + final seen = {}; + + void addPost(FeedViewPost post) { + final uri = post.post.uri.toString(); + if (seen.add(uri)) { + merged.add(post); + } } - await _database.cacheFeedPage( - accountDid: _accountDid, - feedKey: feedKey, - payload: jsonEncode({ - 'cursor': result.cursor, - 'posts': result.posts.map((post) => post.toJson()).toList(growable: false), - }), - ); + if (cursor == null) { + // Refresh: newest page goes first. + for (final post in result.posts) { + addPost(post); + } + for (final cached in existingPosts) { + if (seen.contains(cached.postUri)) { + continue; + } + addPost(FeedViewPost.fromJson(jsonDecode(cached.postJson) as Map)); + } + } else { + // Pagination: append older page at the end. + for (final cached in existingPosts) { + addPost(FeedViewPost.fromJson(jsonDecode(cached.postJson) as Map)); + } + for (final post in result.posts) { + addPost(post); + } + } + + final limited = merged.take(OfflineCachePolicy.feedPostLimit).toList(growable: false); + final companions = []; + for (var i = 0; i < limited.length; i++) { + final post = limited[i]; + final uri = post.post.uri.toString(); + // Large sort numbers mean newer items come first in DESC sort. + final sortOrder = OfflineCachePolicy.feedPostLimit - i; + companions.add( + CachedFeedPostsCompanion.insert( + accountDid: _accountDid, + feedKey: feedKey, + postUri: uri, + postJson: jsonEncode(post.toJson()), + sortOrder: sortOrder, + ), + ); + } + + await _database.transaction(() async { + await _database.deleteCachedFeedPostsForFeed(_accountDid, feedKey); + await _database.upsertCachedFeedPosts(accountDid: _accountDid, feedKey: feedKey, posts: companions); + await _database.cacheFeedPage( + accountDid: _accountDid, + feedKey: feedKey, + payload: jsonEncode({'cursor': result.cursor, 'lastRequestCursor': cursor}), + ); + await _database.pruneCachedFeedPosts( + accountDid: _accountDid, + feedKey: feedKey, + maxCount: OfflineCachePolicy.feedPostLimit, + ); + }); } } diff --git a/lib/features/feed/data/post_thread_repository.dart b/lib/features/feed/data/post_thread_repository.dart index 9c328e6..94b3d77 100644 --- a/lib/features/feed/data/post_thread_repository.dart +++ b/lib/features/feed/data/post_thread_repository.dart @@ -1,55 +1,134 @@ import 'package:atproto_core/atproto_core.dart'; import 'package:bluesky/app_bsky_feed_defs.dart'; import 'package:bluesky/app_bsky_feed_getpostthread.dart'; -import 'package:bluesky/bluesky.dart'; +import 'package:lazurite/core/cache/offline_cache_policy.dart'; +import 'package:lazurite/core/database/app_database.dart'; +import 'package:lazurite/core/logging/app_logger.dart'; import 'package:lazurite/core/network/app_view_request_context.dart'; import 'package:lazurite/features/moderation/data/moderation_service.dart'; +import 'dart:convert'; class PostThreadRepository { PostThreadRepository({ - required Bluesky bluesky, + required dynamic bluesky, + required AppDatabase database, + required String accountDid, ModerationService? moderationService, String? appViewProvider, String Function()? appViewProviderResolver, }) : _bluesky = bluesky, + _database = database, + _accountDid = accountDid, _moderationService = moderationService, _appViewContext = AppViewRequestContext( appViewProvider: appViewProvider, appViewProviderResolver: appViewProviderResolver, ); - final Bluesky _bluesky; + final dynamic _bluesky; + final AppDatabase _database; + final String _accountDid; final ModerationService? _moderationService; final AppViewRequestContext _appViewContext; Future getPostThread(String uri) async { - final response = await _bluesky.feed.getPostThread( - uri: AtUri.parse(uri), - $headers: _appViewContext.appBskyHeadersForEndpoint( - 'app.bsky.feed.getPostThread', - await _moderationService?.headersForRequest(), - ), - ); - final thread = response.data.thread; - - if (thread.isThreadViewPost) { - final threadViewPost = thread.threadViewPost!; - if (_moderationService?.shouldFilterPostInView(threadViewPost.post) ?? false) { - throw Exception('Post hidden by moderation preferences'); + try { + final response = await _bluesky.feed.getPostThread( + uri: AtUri.parse(uri), + $headers: _appViewContext.appBskyHeadersForEndpoint( + 'app.bsky.feed.getPostThread', + await _moderationService?.headersForRequest(), + ), + ); + final thread = response.data.thread as UFeedGetPostThreadThread; + + if (thread.isThreadViewPost) { + final threadViewPost = thread.threadViewPost!; + if (_moderationService?.shouldFilterPostInView(threadViewPost.post) ?? false) { + throw Exception('Post hidden by moderation preferences'); + } + + final pruned = _pruneThread(threadViewPost); + await _cacheThread(pruned); + return pruned; } - return _pruneThread(threadViewPost); + if (thread.isNotFoundPost) { + throw Exception('Post not found'); + } + + if (thread.isBlockedPost) { + throw Exception('Post is from a blocked account'); + } + } catch (error, stackTrace) { + final cached = await _loadCachedThread(uri); + if (cached != null) { + log.w('Using cached thread after request failure: $error', error: error, stackTrace: stackTrace); + return cached; + } + rethrow; + } + + throw Exception('Unable to load thread'); + } + + Future _cacheThread(ThreadViewPost thread) async { + final rootUri = _threadRoot(thread).post.uri.toString(); + await _database.cacheThreadRoot(accountDid: _accountDid, rootUri: rootUri, payload: jsonEncode(thread.toJson())); + await _database.pruneCachedThreadRoots(_accountDid, OfflineCachePolicy.threadRootLimit); + } + + Future _loadCachedThread(String requestedUri) async { + final direct = await _database.getCachedThreadRoot(_accountDid, requestedUri); + if (direct != null) { + try { + return ThreadViewPost.fromJson(jsonDecode(direct.payload) as Map); + } catch (_) { + // Ignore malformed cache rows and continue scanning. + } } - if (thread.isNotFoundPost) { - throw Exception('Post not found'); + final all = await (_database.select( + _database.cachedThreadRoots, + )..where((row) => row.accountDid.equals(_accountDid))).get(); + for (final candidate in all) { + try { + final decoded = ThreadViewPost.fromJson(jsonDecode(candidate.payload) as Map); + if (_containsPostUri(decoded, requestedUri)) { + return decoded; + } + } catch (_) { + // Ignore malformed cache rows and keep scanning valid snapshots. + } } + return null; + } - if (thread.isBlockedPost) { - throw Exception('Post is from a blocked account'); + bool _containsPostUri(ThreadViewPost thread, String postUri) { + if (thread.post.uri.toString() == postUri) { + return true; + } + final parent = thread.parent; + if (parent != null && parent.isThreadViewPost && _containsPostUri(parent.threadViewPost!, postUri)) { + return true; } + final replies = thread.replies; + if (replies != null) { + for (final reply in replies) { + if (reply.isThreadViewPost && _containsPostUri(reply.threadViewPost!, postUri)) { + return true; + } + } + } + return false; + } - throw Exception('Unable to load thread'); + ThreadViewPost _threadRoot(ThreadViewPost thread) { + var current = thread; + while (current.parent != null && current.parent!.isThreadViewPost) { + current = current.parent!.threadViewPost!; + } + return current; } ThreadViewPost _pruneThread(ThreadViewPost thread) { diff --git a/lib/features/feed/presentation/feed_management_screen.dart b/lib/features/feed/presentation/feed_management_screen.dart index 388dea3..f0db638 100644 --- a/lib/features/feed/presentation/feed_management_screen.dart +++ b/lib/features/feed/presentation/feed_management_screen.dart @@ -1,7 +1,9 @@ import 'package:bluesky/app_bsky_actor_defs.dart'; import 'package:bluesky/app_bsky_feed_defs.dart'; +import 'package:cached_network_image/cached_network_image.dart'; import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; +import 'package:lazurite/core/cache/lazurite_image_cache.dart'; import 'package:lazurite/features/feed/cubit/feed_preferences_cubit.dart'; import 'package:lazurite/features/feed/data/feed_repository.dart'; import 'package:lazurite/shared/presentation/helpers/snackbar_helper.dart'; @@ -312,10 +314,11 @@ class _FeedManagementScreenState extends State { child: avatarUrl != null ? ClipRRect( borderRadius: BorderRadius.circular(10), - child: Image.network( - avatarUrl, + child: CachedNetworkImage( + imageUrl: avatarUrl, + cacheManager: LazuriteImageCacheManager.instance, fit: BoxFit.cover, - errorBuilder: (_, _, _) => const Icon(Icons.rss_feed, color: Colors.white), + errorWidget: (_, _, _) => const Icon(Icons.rss_feed, color: Colors.white), ), ) : const Icon(Icons.rss_feed, color: Colors.white), diff --git a/lib/features/feed/presentation/media/image_viewer_screen.dart b/lib/features/feed/presentation/media/image_viewer_screen.dart index 74c7ca7..47ec9af 100644 --- a/lib/features/feed/presentation/media/image_viewer_screen.dart +++ b/lib/features/feed/presentation/media/image_viewer_screen.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; +import 'package:lazurite/core/cache/lazurite_image_cache.dart'; import 'package:photo_view/photo_view.dart'; import 'package:lazurite/features/feed/presentation/media/image_viewer_route_args.dart'; import 'package:lazurite/features/feed/presentation/media/media_actions.dart'; @@ -115,7 +116,7 @@ class _ImageViewerScreenState extends State { builder: (context, index) { final item = widget.args.images[index]; return PhotoViewGalleryPageOptions( - imageProvider: NetworkImage(item.fullsizeUrl), + imageProvider: appCachedImageProvider(item.fullsizeUrl)!, heroAttributes: PhotoViewHeroAttributes(tag: item.heroTag), minScale: PhotoViewComputedScale.contained, maxScale: PhotoViewComputedScale.covered * 2.6, diff --git a/lib/features/feed/presentation/media/video_player_screen.dart b/lib/features/feed/presentation/media/video_player_screen.dart index 4910dd9..cf3f2fe 100644 --- a/lib/features/feed/presentation/media/video_player_screen.dart +++ b/lib/features/feed/presentation/media/video_player_screen.dart @@ -1,5 +1,7 @@ import 'package:chewie/chewie.dart'; +import 'package:cached_network_image/cached_network_image.dart'; import 'package:flutter/material.dart'; +import 'package:lazurite/core/cache/lazurite_image_cache.dart'; import 'package:lazurite/features/feed/presentation/media/media_actions.dart'; import 'package:lazurite/features/feed/presentation/media/video_player_route_args.dart'; import 'package:video_player/video_player.dart'; @@ -95,10 +97,11 @@ class _VideoPlayerScreenState extends State { alignment: Alignment.center, children: [ if (widget.args.thumbnailUrl != null) - Image.network( - widget.args.thumbnailUrl!, + CachedNetworkImage( + imageUrl: widget.args.thumbnailUrl!, + cacheManager: LazuriteImageCacheManager.instance, fit: BoxFit.cover, - errorBuilder: (_, _, _) => const ColoredBox(color: Colors.black26), + errorWidget: (_, _, _) => const ColoredBox(color: Colors.black26), ) else const ColoredBox(color: Colors.black26), diff --git a/lib/features/feed/presentation/widgets/grid_post_card.dart b/lib/features/feed/presentation/widgets/grid_post_card.dart index 52a0ddd..24629b0 100644 --- a/lib/features/feed/presentation/widgets/grid_post_card.dart +++ b/lib/features/feed/presentation/widgets/grid_post_card.dart @@ -3,7 +3,9 @@ import 'package:bluesky/app_bsky_embed_recordwithmedia.dart'; import 'package:bluesky/app_bsky_feed_defs.dart'; import 'package:bluesky/app_bsky_feed_post.dart'; import 'package:bluesky/moderation.dart' as bsky_moderation; +import 'package:cached_network_image/cached_network_image.dart'; import 'package:flutter/material.dart'; +import 'package:lazurite/core/cache/lazurite_image_cache.dart'; import 'package:lazurite/core/theme/color_filters.dart'; import 'package:lazurite/core/theme/spacing.dart'; import 'package:lazurite/core/theme/theme_extensions.dart'; @@ -86,11 +88,12 @@ class GridPostCard extends StatelessWidget { aspectRatio: 1.0, child: ColorFiltered( colorFilter: AppColorFilters.greyscale, - child: Image.network( - primaryImageUrl, + child: CachedNetworkImage( + imageUrl: primaryImageUrl, + cacheManager: LazuriteImageCacheManager.instance, fit: BoxFit.cover, width: double.infinity, - errorBuilder: (_, _, _) => + errorWidget: (_, _, _) => ColoredBox(color: colorScheme.surfaceContainerHigh, child: const SizedBox.expand()), ), ), diff --git a/lib/features/feed/presentation/widgets/post_embed_view.dart b/lib/features/feed/presentation/widgets/post_embed_view.dart index 9ee99b5..4da79d1 100644 --- a/lib/features/feed/presentation/widgets/post_embed_view.dart +++ b/lib/features/feed/presentation/widgets/post_embed_view.dart @@ -6,8 +6,10 @@ import 'package:bluesky/app_bsky_embed_video.dart'; import 'package:bluesky/app_bsky_feed_defs.dart'; import 'package:bluesky/app_bsky_feed_post.dart'; import 'package:bluesky/moderation.dart' as bsky_moderation; +import 'package:cached_network_image/cached_network_image.dart'; import 'package:flutter/material.dart'; import 'package:go_router/go_router.dart'; +import 'package:lazurite/core/cache/lazurite_image_cache.dart'; import 'package:lazurite/core/router/in_app_link_resolver.dart'; import 'package:lazurite/features/feed/presentation/media/image_viewer_route_args.dart'; import 'package:lazurite/features/feed/presentation/media/media_actions.dart'; @@ -118,10 +120,11 @@ class PostEmbedView extends StatelessWidget { onTap: () => _openImageViewer(context, images, initialIndex: index, heroNamespace: heroNamespace), child: Hero( tag: heroTag, - child: Image.network( - image.thumb, + child: CachedNetworkImage( + imageUrl: image.thumb, + cacheManager: LazuriteImageCacheManager.instance, fit: BoxFit.cover, - errorBuilder: (_, _, _) => ColoredBox( + errorWidget: (_, _, _) => ColoredBox( color: context.colorScheme.surfaceContainerHighest, child: const Center(child: Icon(Icons.image_not_supported_outlined)), ), @@ -151,12 +154,13 @@ class PostEmbedView extends StatelessWidget { crossAxisAlignment: CrossAxisAlignment.start, children: [ if (external.thumb != null) - Image.network( - external.thumb!, + CachedNetworkImage( + imageUrl: external.thumb!, + cacheManager: LazuriteImageCacheManager.instance, height: compact ? 140 : 180, width: double.infinity, fit: BoxFit.cover, - errorBuilder: (_, _, _) => const SizedBox(height: 0), + errorWidget: (_, _, _) => const SizedBox(height: 0), ), Padding( padding: const EdgeInsets.all(12), @@ -211,10 +215,11 @@ class PostEmbedView extends StatelessWidget { aspectRatio: video.aspectRatio == null ? 16 / 9 : video.aspectRatio!.width / video.aspectRatio!.height, child: video.thumbnail == null ? ColoredBox(color: context.colorScheme.surfaceContainerHighest, child: const SizedBox.expand()) - : Image.network( - video.thumbnail!, + : CachedNetworkImage( + imageUrl: video.thumbnail!, + cacheManager: LazuriteImageCacheManager.instance, fit: BoxFit.cover, - errorBuilder: (_, _, _) => ColoredBox( + errorWidget: (_, _, _) => ColoredBox( color: context.colorScheme.surfaceContainerHighest, child: const SizedBox.expand(), ), diff --git a/lib/features/feed/presentation/widgets/post_interactions_sheet.dart b/lib/features/feed/presentation/widgets/post_interactions_sheet.dart index 706ccd3..646ae0f 100644 --- a/lib/features/feed/presentation/widgets/post_interactions_sheet.dart +++ b/lib/features/feed/presentation/widgets/post_interactions_sheet.dart @@ -1,8 +1,9 @@ import 'package:atproto_core/atproto_core.dart'; import 'package:bluesky/app_bsky_actor_defs.dart'; import 'package:flutter/material.dart'; -import 'package:lazurite/features/feed/data/post_action_repository.dart'; +import 'package:lazurite/core/cache/lazurite_image_cache.dart'; import 'package:lazurite/core/theme/theme_extensions.dart'; +import 'package:lazurite/features/feed/data/post_action_repository.dart'; import 'package:lazurite/shared/presentation/helpers/navigation_helpers.dart'; enum InteractionTab { likes, reposts } @@ -251,7 +252,7 @@ class _PostInteractionsSheetState extends State { return ListTile( leading: CircleAvatar( - backgroundImage: profile.avatar != null ? NetworkImage(profile.avatar!) : null, + backgroundImage: appCachedImageProvider(profile.avatar), backgroundColor: colorScheme.surfaceContainerHighest, child: profile.avatar == null ? Text(initials) : null, ), diff --git a/lib/features/moderation/presentation/widgets/moderated_avatar.dart b/lib/features/moderation/presentation/widgets/moderated_avatar.dart index 8f4bb82..ee02e89 100644 --- a/lib/features/moderation/presentation/widgets/moderated_avatar.dart +++ b/lib/features/moderation/presentation/widgets/moderated_avatar.dart @@ -1,5 +1,7 @@ import 'package:bluesky/moderation.dart' as bsky_moderation; +import 'package:cached_network_image/cached_network_image.dart'; import 'package:flutter/material.dart'; +import 'package:lazurite/core/cache/lazurite_image_cache.dart'; import 'package:lazurite/core/theme/theme_extensions.dart'; class ModeratedAvatar extends StatelessWidget { @@ -42,7 +44,12 @@ class ModeratedAvatar extends StatelessWidget { child: shouldMask ? Icon(Icons.shield_outlined, color: colorScheme.onSurfaceVariant, size: size * 0.44) : imageUrl != null - ? Image.network(imageUrl!, fit: BoxFit.cover, errorBuilder: (_, _, _) => _buildFallback(context)) + ? CachedNetworkImage( + imageUrl: imageUrl!, + cacheManager: LazuriteImageCacheManager.instance, + fit: BoxFit.cover, + errorWidget: (_, _, _) => _buildFallback(context), + ) : _buildFallback(context), ); } diff --git a/lib/main.dart b/lib/main.dart index 0664d3e..51b113a 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -6,6 +6,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:go_router/go_router.dart'; import 'package:lazurite/core/bootstrap/auth_bootstrap.dart'; +import 'package:lazurite/core/cache/offline_cache_policy.dart'; import 'package:lazurite/core/database/app_database.dart'; import 'package:lazurite/core/embedding/embedding_service.dart'; import 'package:lazurite/core/logging/app_logger.dart'; @@ -57,6 +58,8 @@ import 'package:lazurite/features/typeahead/data/typeahead_repository.dart'; Future main() async { WidgetsFlutterBinding.ensureInitialized(); + imageCache.maximumSize = OfflineCachePolicy.imageMemoryEntryLimit; + imageCache.maximumSizeBytes = OfflineCachePolicy.imageMemoryByteLimit; await log.initialize(); await PostScheduler.initialize(); @@ -418,6 +421,8 @@ class _LazuriteAppState extends State { RepositoryProvider( create: (context) => PostThreadRepository( bluesky: bluesky, + database: widget.database, + accountDid: accountDid, moderationService: context.read(), appViewProviderResolver: () => context.read().state.appViewProvider, ), diff --git a/lib/objectbox.g.dart b/lib/objectbox.g.dart index e275338..109aecc 100644 --- a/lib/objectbox.g.dart +++ b/lib/objectbox.g.dart @@ -9,7 +9,8 @@ import 'dart:typed_data'; import 'package:flat_buffers/flat_buffers.dart' as fb; -import 'package:objectbox/internal.dart' as obx_int; // generated code can access "internal" functionality +import 'package:objectbox/internal.dart' + as obx_int; // generated code can access "internal" functionality import 'package:objectbox/objectbox.dart' as obx; import 'package:objectbox_flutter_libs/objectbox_flutter_libs.dart'; @@ -24,7 +25,12 @@ final _entities = [ lastPropertyId: const obx_int.IdUid(7, 8430059363224486218), flags: 0, properties: [ - obx_int.ModelProperty(id: const obx_int.IdUid(1, 2023883478741600837), name: 'id', type: 6, flags: 1), + obx_int.ModelProperty( + id: const obx_int.IdUid(1, 2023883478741600837), + name: 'id', + type: 6, + flags: 1, + ), obx_int.ModelProperty( id: const obx_int.IdUid(2, 3549521277099340373), name: 'postUri', @@ -32,9 +38,24 @@ final _entities = [ flags: 2080, indexId: const obx_int.IdUid(1, 4682420966856057445), ), - obx_int.ModelProperty(id: const obx_int.IdUid(3, 115219216497020018), name: 'accountDid', type: 9, flags: 0), - obx_int.ModelProperty(id: const obx_int.IdUid(4, 2084589381727568380), name: 'source', type: 9, flags: 0), - obx_int.ModelProperty(id: const obx_int.IdUid(5, 4494373135934411874), name: 'indexedText', type: 9, flags: 0), + obx_int.ModelProperty( + id: const obx_int.IdUid(3, 115219216497020018), + name: 'accountDid', + type: 9, + flags: 0, + ), + obx_int.ModelProperty( + id: const obx_int.IdUid(4, 2084589381727568380), + name: 'source', + type: 9, + flags: 0, + ), + obx_int.ModelProperty( + id: const obx_int.IdUid(5, 4494373135934411874), + name: 'indexedText', + type: 9, + flags: 0, + ), obx_int.ModelProperty( id: const obx_int.IdUid(6, 7790743710249736574), name: 'embedding', @@ -43,7 +64,12 @@ final _entities = [ indexId: const obx_int.IdUid(2, 7649439792027952584), hnswParams: obx_int.ModelHnswParams(dimensions: 384, distanceType: 2), ), - obx_int.ModelProperty(id: const obx_int.IdUid(7, 8430059363224486218), name: 'embeddedAt', type: 12, flags: 0), + obx_int.ModelProperty( + id: const obx_int.IdUid(7, 8430059363224486218), + name: 'embeddedAt', + type: 12, + flags: 0, + ), ], relations: [], backlinks: [], @@ -120,7 +146,9 @@ obx_int.ModelDefinition getObjectBoxModel() { final accountDidOffset = fbb.writeString(object.accountDid); final sourceOffset = fbb.writeString(object.source); final indexedTextOffset = fbb.writeString(object.indexedText); - final embeddingOffset = object.embedding == null ? null : fbb.writeListFloat32(object.embedding!); + final embeddingOffset = object.embedding == null + ? null + : fbb.writeListFloat32(object.embedding!); fbb.startTable(8); fbb.addInt64(0, object.id); fbb.addOffset(1, postUriOffset); @@ -135,17 +163,31 @@ obx_int.ModelDefinition getObjectBoxModel() { objectFromFB: (obx.Store store, ByteData fbData) { final buffer = fb.BufferContext(fbData); final rootOffset = buffer.derefObject(0); - final idParam = const fb.Int64Reader().vTableGet(buffer, rootOffset, 4, 0); - final postUriParam = const fb.StringReader(asciiOptimization: true).vTableGet(buffer, rootOffset, 6, ''); - final accountDidParam = const fb.StringReader(asciiOptimization: true).vTableGet(buffer, rootOffset, 8, ''); - final sourceParam = const fb.StringReader(asciiOptimization: true).vTableGet(buffer, rootOffset, 10, ''); - final indexedTextParam = const fb.StringReader(asciiOptimization: true).vTableGet(buffer, rootOffset, 12, ''); + final idParam = const fb.Int64Reader().vTableGet( + buffer, + rootOffset, + 4, + 0, + ); + final postUriParam = const fb.StringReader( + asciiOptimization: true, + ).vTableGet(buffer, rootOffset, 6, ''); + final accountDidParam = const fb.StringReader( + asciiOptimization: true, + ).vTableGet(buffer, rootOffset, 8, ''); + final sourceParam = const fb.StringReader( + asciiOptimization: true, + ).vTableGet(buffer, rootOffset, 10, ''); + final indexedTextParam = const fb.StringReader( + asciiOptimization: true, + ).vTableGet(buffer, rootOffset, 12, ''); final embeddingParam = const fb.ListReader( fb.Float32Reader(), lazy: false, ).vTableGetNullable(buffer, rootOffset, 14); final embeddedAtParam = DateTime.fromMicrosecondsSinceEpoch( - (const fb.Int64Reader().vTableGet(buffer, rootOffset, 16, 0) / 1000).round(), + (const fb.Int64Reader().vTableGet(buffer, rootOffset, 16, 0) / 1000) + .round(), ); final object = EmbeddedPost( id: idParam, @@ -168,23 +210,37 @@ obx_int.ModelDefinition getObjectBoxModel() { /// [EmbeddedPost] entity fields to define ObjectBox queries. class EmbeddedPost_ { /// See [EmbeddedPost.id]. - static final id = obx.QueryIntegerProperty(_entities[0].properties[0]); + static final id = obx.QueryIntegerProperty( + _entities[0].properties[0], + ); /// See [EmbeddedPost.postUri]. - static final postUri = obx.QueryStringProperty(_entities[0].properties[1]); + static final postUri = obx.QueryStringProperty( + _entities[0].properties[1], + ); /// See [EmbeddedPost.accountDid]. - static final accountDid = obx.QueryStringProperty(_entities[0].properties[2]); + static final accountDid = obx.QueryStringProperty( + _entities[0].properties[2], + ); /// See [EmbeddedPost.source]. - static final source = obx.QueryStringProperty(_entities[0].properties[3]); + static final source = obx.QueryStringProperty( + _entities[0].properties[3], + ); /// See [EmbeddedPost.indexedText]. - static final indexedText = obx.QueryStringProperty(_entities[0].properties[4]); + static final indexedText = obx.QueryStringProperty( + _entities[0].properties[4], + ); /// See [EmbeddedPost.embedding]. - static final embedding = obx.QueryHnswProperty(_entities[0].properties[5]); + static final embedding = obx.QueryHnswProperty( + _entities[0].properties[5], + ); /// See [EmbeddedPost.embeddedAt]. - static final embeddedAt = obx.QueryDateNanoProperty(_entities[0].properties[6]); + static final embeddedAt = obx.QueryDateNanoProperty( + _entities[0].properties[6], + ); } diff --git a/lib/shared/presentation/widgets/profile_avatar.dart b/lib/shared/presentation/widgets/profile_avatar.dart index 0d9c4f5..b3b6e7b 100644 --- a/lib/shared/presentation/widgets/profile_avatar.dart +++ b/lib/shared/presentation/widgets/profile_avatar.dart @@ -1,5 +1,7 @@ import 'package:bluesky/moderation.dart' as bsky_moderation; +import 'package:cached_network_image/cached_network_image.dart'; import 'package:flutter/material.dart'; +import 'package:lazurite/core/cache/lazurite_image_cache.dart'; import 'package:lazurite/core/theme/theme_extensions.dart'; import 'package:lazurite/shared/utils/format_utils.dart'; @@ -48,10 +50,11 @@ class ProfileAvatar extends StatelessWidget { child: shouldMask ? Icon(Icons.shield_outlined, color: colorScheme.onSurfaceVariant, size: size * 0.44) : imageUrl != null - ? Image.network( - imageUrl!, + ? CachedNetworkImage( + imageUrl: imageUrl!, + cacheManager: LazuriteImageCacheManager.instance, fit: BoxFit.cover, - errorBuilder: (_, _, _) => _buildFallback(context, containerColor), + errorWidget: (_, _, _) => _buildFallback(context, containerColor), ) : _buildFallback(context, containerColor), ); diff --git a/pubspec.lock b/pubspec.lock index cf2b04a..de98ab9 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -185,6 +185,30 @@ packages: url: "https://pub.dev" source: hosted version: "8.12.5" + cached_network_image: + dependency: "direct main" + description: + name: cached_network_image + sha256: "7c1183e361e5c8b0a0f21a28401eecdbde252441106a9816400dd4c2b2424916" + url: "https://pub.dev" + source: hosted + version: "3.4.1" + cached_network_image_platform_interface: + dependency: transitive + description: + name: cached_network_image_platform_interface + sha256: "35814b016e37fbdc91f7ae18c8caf49ba5c88501813f73ce8a07027a395e2829" + url: "https://pub.dev" + source: hosted + version: "4.1.1" + cached_network_image_web: + dependency: transitive + description: + name: cached_network_image_web + sha256: "980842f4e8e2535b8dbd3d5ca0b1f0ba66bf61d14cc3a17a9b4788a3685ba062" + url: "https://pub.dev" + source: hosted + version: "1.3.1" cbor: dependency: transitive description: @@ -502,6 +526,14 @@ packages: url: "https://pub.dev" source: hosted version: "9.1.1" + flutter_cache_manager: + dependency: "direct main" + description: + name: flutter_cache_manager + sha256: "400b6592f16a4409a7f2bb929a9a7e38c72cceb8ffb99ee57bbf2cb2cecf8386" + url: "https://pub.dev" + source: hosted + version: "3.4.1" flutter_lints: dependency: "direct dev" description: @@ -952,6 +984,14 @@ packages: url: "https://pub.dev" source: hosted version: "9.3.0" + octo_image: + dependency: transitive + description: + name: octo_image + sha256: "34faa6639a78c7e3cbe79be6f9f96535867e879748ade7d17c9b1ae7536293bd" + url: "https://pub.dev" + source: hosted + version: "2.1.0" package_config: dependency: transitive description: @@ -1192,6 +1232,14 @@ packages: url: "https://pub.dev" source: hosted version: "0.6.0" + rxdart: + dependency: transitive + description: + name: rxdart + sha256: "5c3004a4a8dbb94bd4bf5412a4def4acdaa12e12f269737a5751369e12d1a962" + url: "https://pub.dev" + source: hosted + version: "0.28.0" share_plus: dependency: "direct main" description: @@ -1285,6 +1333,46 @@ packages: url: "https://pub.dev" source: hosted version: "1.10.2" + sqflite: + dependency: transitive + description: + name: sqflite + sha256: "564cfed0746fe53140c23b70b308e045c3b31f17778f2f326ccb7d804ea0250a" + url: "https://pub.dev" + source: hosted + version: "2.4.2+1" + sqflite_android: + dependency: transitive + description: + name: sqflite_android + sha256: "881e28efdcc9950fd8e9bb42713dcf1103e62a2e7168f23c9338d82db13dec40" + url: "https://pub.dev" + source: hosted + version: "2.4.2+3" + sqflite_common: + dependency: transitive + description: + name: sqflite_common + sha256: "5e8377564d95166761a968ed96104e0569b6b6cc611faac92a36ab8a169112c3" + url: "https://pub.dev" + source: hosted + version: "2.5.6+1" + sqflite_darwin: + dependency: transitive + description: + name: sqflite_darwin + sha256: "279832e5cde3fe99e8571879498c9211f3ca6391b0d818df4e17d9fff5c6ccb3" + url: "https://pub.dev" + source: hosted + version: "2.4.2" + sqflite_platform_interface: + dependency: transitive + description: + name: sqflite_platform_interface + sha256: "8dd4515c7bdcae0a785b0062859336de775e8c65db81ae33dd5445f35be61920" + url: "https://pub.dev" + source: hosted + version: "2.4.0" sqlite3: dependency: transitive description: @@ -1341,6 +1429,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.4.1" + synchronized: + dependency: transitive + description: + name: synchronized + sha256: "63896c27e81b28f8cb4e69ead0d3e8f03f1d1e5fc531a3e579cabed6a2c7c9e5" + url: "https://pub.dev" + source: hosted + version: "3.4.0+1" term_glyph: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 8f4c8bf..8a01296 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -51,6 +51,8 @@ dependencies: objectbox_flutter_libs: ^5.3.1 tflite_flutter: ^0.12.1 flutter_animate: ^4.5.2 + cached_network_image: ^3.4.1 + flutter_cache_manager: ^3.4.1 dev_dependencies: flutter_test: diff --git a/test/core/database/app_database_test.dart b/test/core/database/app_database_test.dart index 4f0611b..0e99ec8 100644 --- a/test/core/database/app_database_test.dart +++ b/test/core/database/app_database_test.dart @@ -220,6 +220,48 @@ void main() { expect(cached, isNotNull); expect(cached!.payload, equals('{"cursor":"next","posts":[]}')); }); + + test('should upsert and prune cached feed posts', () async { + final posts = List.generate( + 3, + (index) => CachedFeedPostsCompanion.insert( + accountDid: 'did:plc:test', + feedKey: 'timeline', + postUri: 'at://did:plc:test/app.bsky.feed.post/$index', + postJson: '{"uri":"$index"}', + sortOrder: 3 - index, + ), + ); + await database.upsertCachedFeedPosts(accountDid: 'did:plc:test', feedKey: 'timeline', posts: posts); + await database.pruneCachedFeedPosts(accountDid: 'did:plc:test', feedKey: 'timeline', maxCount: 2); + + final cached = await database.getCachedFeedPosts('did:plc:test', 'timeline'); + expect(cached.length, 2); + expect(cached.first.postUri, 'at://did:plc:test/app.bsky.feed.post/0'); + expect(cached.last.postUri, 'at://did:plc:test/app.bsky.feed.post/1'); + }); + + test('should cache and prune thread roots by recency', () async { + await database.cacheThreadRoot( + accountDid: 'did:plc:test', + rootUri: 'at://did:plc:test/app.bsky.feed.post/old', + payload: '{"uri":"old"}', + fetchedAt: DateTime.utc(2026, 5, 1, 10), + ); + await database.cacheThreadRoot( + accountDid: 'did:plc:test', + rootUri: 'at://did:plc:test/app.bsky.feed.post/new', + payload: '{"uri":"new"}', + fetchedAt: DateTime.utc(2026, 5, 1, 11), + ); + + await database.pruneCachedThreadRoots('did:plc:test', 1); + + final newest = await database.getCachedThreadRoot('did:plc:test', 'at://did:plc:test/app.bsky.feed.post/new'); + final oldest = await database.getCachedThreadRoot('did:plc:test', 'at://did:plc:test/app.bsky.feed.post/old'); + expect(newest, isNotNull); + expect(oldest, isNull); + }); }); group('Settings operations', () { diff --git a/test/features/feed/data/feed_repository_cache_test.dart b/test/features/feed/data/feed_repository_cache_test.dart new file mode 100644 index 0000000..4bbe048 --- /dev/null +++ b/test/features/feed/data/feed_repository_cache_test.dart @@ -0,0 +1,126 @@ +import 'dart:collection'; + +import 'package:atproto_core/atproto_core.dart'; +import 'package:bluesky/app_bsky_actor_defs.dart'; +import 'package:bluesky/app_bsky_feed_defs.dart'; +import 'package:drift/native.dart'; +import 'package:flutter_test/flutter_test.dart'; +import 'package:lazurite/core/cache/offline_cache_policy.dart'; +import 'package:lazurite/core/database/app_database.dart'; +import 'package:lazurite/features/feed/data/feed_repository.dart'; + +class _FakeFeedData { + _FakeFeedData({required this.feed, this.cursor}); + + final List feed; + final String? cursor; +} + +class _FakeFeedResponse { + _FakeFeedResponse(this.data); + + final _FakeFeedData data; +} + +class _QueuedFeedApi { + _QueuedFeedApi({List<_FakeFeedResponse>? timelineResponses}) + : _timelineResponses = Queue<_FakeFeedResponse>.from(timelineResponses ?? const []); + + final Queue<_FakeFeedResponse> _timelineResponses; + + Future<_FakeFeedResponse> getTimeline({String? cursor, int? limit, Map? $headers}) async { + if (_timelineResponses.isEmpty) { + throw StateError('No timeline response queued for cursor=$cursor'); + } + return _timelineResponses.removeFirst(); + } +} + +class _FakeBluesky { + _FakeBluesky(this.feed); + + final _QueuedFeedApi feed; +} + +void main() { + late AppDatabase database; + + setUp(() { + database = AppDatabase(executor: NativeDatabase.memory()); + }); + + tearDown(() async { + await database.close(); + }); + + group('FeedRepository cache window', () { + test('pagination deduplicates by URI and appends older posts', () async { + final feedApi = _QueuedFeedApi( + timelineResponses: [ + _FakeFeedResponse(_FakeFeedData(feed: [_post(100), _post(99), _post(98)], cursor: 'cursor-1')), + _FakeFeedResponse(_FakeFeedData(feed: [_post(98), _post(97), _post(96)], cursor: 'cursor-2')), + ], + ); + final repository = FeedRepository(bluesky: _FakeBluesky(feedApi), database: database, accountDid: 'did:plc:test'); + + await repository.getTimeline(); + await repository.getTimeline(cursor: 'cursor-1'); + + final cached = await repository.getCachedFeedPage(FeedRepository.timelineCacheKey); + expect(cached, isNotNull); + expect(_uris(cached!.posts), equals(_uris([_post(100), _post(99), _post(98), _post(97), _post(96)]))); + expect(cached.cursor, equals('cursor-2')); + }); + + test('refresh prepends latest page while preserving older cached posts', () async { + final feedApi = _QueuedFeedApi( + timelineResponses: [ + _FakeFeedResponse(_FakeFeedData(feed: [_post(30), _post(29), _post(28)], cursor: 'cursor-old')), + _FakeFeedResponse(_FakeFeedData(feed: [_post(40), _post(29), _post(39)], cursor: 'cursor-new')), + ], + ); + final repository = FeedRepository(bluesky: _FakeBluesky(feedApi), database: database, accountDid: 'did:plc:test'); + + await repository.getTimeline(); + await repository.getTimeline(); + + final cached = await repository.getCachedFeedPage(FeedRepository.timelineCacheKey); + expect(cached, isNotNull); + expect(_uris(cached!.posts), equals(_uris([_post(40), _post(29), _post(39), _post(30), _post(28)]))); + expect(cached.cursor, equals('cursor-new')); + }); + + test('refresh enforces OfflineCachePolicy feed post cap', () async { + final posts = List.generate(OfflineCachePolicy.feedPostLimit + 10, _post); + final feedApi = _QueuedFeedApi(timelineResponses: [_FakeFeedResponse(_FakeFeedData(feed: posts, cursor: null))]); + final repository = FeedRepository(bluesky: _FakeBluesky(feedApi), database: database, accountDid: 'did:plc:test'); + + await repository.getTimeline(); + + final cached = await repository.getCachedFeedPage(FeedRepository.timelineCacheKey); + expect(cached, isNotNull); + expect(cached!.posts.length, OfflineCachePolicy.feedPostLimit); + expect(cached.posts.first.post.uri.toString(), _post(0).post.uri.toString()); + expect(cached.posts.last.post.uri.toString(), _post(OfflineCachePolicy.feedPostLimit - 1).post.uri.toString()); + + final rows = await database.getCachedFeedPosts('did:plc:test', FeedRepository.timelineCacheKey); + expect(rows.length, OfflineCachePolicy.feedPostLimit); + }); + }); +} + +FeedViewPost _post(int index) { + final timestamp = DateTime.utc(2026, 5, 1, 12).subtract(Duration(minutes: index)); + final did = 'did:plc:author$index'; + return FeedViewPost( + post: PostView( + uri: AtUri('at://$did/app.bsky.feed.post/$index'), + cid: 'cid-$index', + author: ProfileViewBasic(did: did, handle: 'author$index.bsky.social'), + record: {r'$type': 'app.bsky.feed.post', 'text': 'Post $index', 'createdAt': timestamp.toIso8601String()}, + indexedAt: timestamp, + ), + ); +} + +List _uris(List posts) => posts.map((post) => post.post.uri.toString()).toList(growable: false); diff --git a/test/features/feed/data/post_thread_repository_cache_test.dart b/test/features/feed/data/post_thread_repository_cache_test.dart new file mode 100644 index 0000000..0e17e89 --- /dev/null +++ b/test/features/feed/data/post_thread_repository_cache_test.dart @@ -0,0 +1,153 @@ +import 'dart:convert'; + +import 'package:atproto_core/atproto_core.dart'; +import 'package:bluesky/app_bsky_actor_defs.dart'; +import 'package:bluesky/app_bsky_feed_defs.dart'; +import 'package:bluesky/app_bsky_feed_getpostthread.dart'; +import 'package:drift/native.dart'; +import 'package:flutter_test/flutter_test.dart'; +import 'package:lazurite/core/cache/offline_cache_policy.dart'; +import 'package:lazurite/core/database/app_database.dart'; +import 'package:lazurite/features/feed/data/post_thread_repository.dart'; + +class _FakeThreadResponse { + _FakeThreadResponse(this.data); + + final FeedGetPostThreadOutput data; +} + +class _FakeThreadFeedApi { + _FakeThreadFeedApi({required this.getPostThreadHandler}); + + final Future<_FakeThreadResponse> Function({required AtUri uri}) getPostThreadHandler; + + Future<_FakeThreadResponse> getPostThread({ + required AtUri uri, + int? depth, + int? parentHeight, + String? $service, + Map? $headers, + Map? $unknown, + }) { + return getPostThreadHandler(uri: uri); + } +} + +class _FakeBluesky { + _FakeBluesky(this.feed); + + final _FakeThreadFeedApi feed; +} + +void main() { + late AppDatabase database; + + setUp(() { + database = AppDatabase(executor: NativeDatabase.memory()); + }); + + tearDown(() async { + await database.close(); + }); + + group('PostThreadRepository cache', () { + test('caches successful thread fetch by root URI', () async { + final root = _thread(uri: 'at://did:plc:root/app.bsky.feed.post/root', cid: 'cid-root', text: 'Root'); + final childPost = _post(uri: 'at://did:plc:child/app.bsky.feed.post/child', cid: 'cid-child', text: 'Child'); + final thread = ThreadViewPost( + post: childPost, + parent: UThreadViewPostParent.threadViewPost(data: root), + ); + final feedApi = _FakeThreadFeedApi( + getPostThreadHandler: ({required uri}) async => + _FakeThreadResponse(FeedGetPostThreadOutput(thread: UFeedGetPostThreadThread.threadViewPost(data: thread))), + ); + final repository = PostThreadRepository( + bluesky: _FakeBluesky(feedApi), + database: database, + accountDid: 'did:plc:test', + ); + + await repository.getPostThread(childPost.uri.toString()); + + final cached = await database.getCachedThreadRoot('did:plc:test', root.post.uri.toString()); + expect(cached, isNotNull); + final decoded = ThreadViewPost.fromJson(jsonDecode(cached!.payload) as Map); + expect(decoded.post.uri.toString(), childPost.uri.toString()); + }); + + test('returns cached thread when network request fails', () async { + final child = _thread(uri: 'at://did:plc:child/app.bsky.feed.post/child', cid: 'cid-child', text: 'Child'); + final root = ThreadViewPost( + post: _post(uri: 'at://did:plc:root/app.bsky.feed.post/root', cid: 'cid-root', text: 'Root'), + replies: [UThreadViewPostReplies.threadViewPost(data: child)], + ); + await database.cacheThreadRoot( + accountDid: 'did:plc:test', + rootUri: root.post.uri.toString(), + payload: jsonEncode(root.toJson()), + ); + final feedApi = _FakeThreadFeedApi(getPostThreadHandler: ({required uri}) async => throw Exception('offline')); + final repository = PostThreadRepository( + bluesky: _FakeBluesky(feedApi), + database: database, + accountDid: 'did:plc:test', + ); + + final resolved = await repository.getPostThread(child.post.uri.toString()); + + expect(resolved.post.uri.toString(), root.post.uri.toString()); + expect(resolved.replies, isNotNull); + expect(resolved.replies!.length, 1); + }); + + test('prunes thread cache to OfflineCachePolicy.threadRootLimit', () async { + for (var i = 0; i < OfflineCachePolicy.threadRootLimit; i++) { + await database.cacheThreadRoot( + accountDid: 'did:plc:test', + rootUri: 'at://did:plc:seed/app.bsky.feed.post/$i', + payload: '{}', + fetchedAt: DateTime.utc(2026, 1, 1).add(Duration(minutes: i)), + ); + } + + final newest = _thread(uri: 'at://did:plc:new/app.bsky.feed.post/newest', cid: 'cid-new', text: 'Newest'); + final feedApi = _FakeThreadFeedApi( + getPostThreadHandler: ({required uri}) async => + _FakeThreadResponse(FeedGetPostThreadOutput(thread: UFeedGetPostThreadThread.threadViewPost(data: newest))), + ); + final repository = PostThreadRepository( + bluesky: _FakeBluesky(feedApi), + database: database, + accountDid: 'did:plc:test', + ); + + await repository.getPostThread(newest.post.uri.toString()); + + final all = await (database.select( + database.cachedThreadRoots, + )..where((entry) => entry.accountDid.equals('did:plc:test'))).get(); + expect(all.length, OfflineCachePolicy.threadRootLimit); + final newestEntry = await database.getCachedThreadRoot('did:plc:test', newest.post.uri.toString()); + expect(newestEntry, isNotNull); + }); + }); +} + +ThreadViewPost _thread({required String uri, required String cid, required String text}) { + return ThreadViewPost( + post: _post(uri: uri, cid: cid, text: text), + ); +} + +PostView _post({required String uri, required String cid, required String text}) { + final timestamp = DateTime.utc(2026, 5, 1, 12); + final did = AtUri.parse(uri).hostname; + return PostView( + uri: AtUri(uri), + cid: cid, + author: ProfileViewBasic(did: did, handle: '$did.bsky.social'), + record: {r'$type': 'app.bsky.feed.post', 'text': text, 'createdAt': timestamp.toIso8601String()}, + indexedAt: timestamp, + ); +}