intermediate

This commit is contained in:
Fabian Freund
2025-01-07 00:06:31 +01:00
parent ea0880b97a
commit 4a2191b01d
84 changed files with 2655 additions and 1383 deletions
@@ -0,0 +1,42 @@
import 'package:drift/drift.dart';
import 'package:lensai/extensions/database_table_size.dart';
import 'package:lensai/features/user/data/database/database.dart';
part 'cache.g.dart';
@DriftAccessor()
class CacheDao extends DatabaseAccessor<UserDatabase> with _$CacheDaoMixin {
CacheDao(super.attachedDatabase);
SingleSelectable<double> iconCacheSize() {
return db.tableSize(db.iconCache);
}
Future<int> clearIconCache() {
return db.iconCache.deleteAll();
}
SingleOrNullSelectable<Uint8List?> getCachedIcon(String origin) {
final query = selectOnly(db.iconCache)
..addColumns([db.iconCache.iconData])
..where(db.iconCache.origin.equals(origin));
return query.map((row) => row.read(db.iconCache.iconData));
}
Future<int> cacheIcon(String origin, Uint8List bytes) {
return db.iconCache.insertOne(
IconCacheCompanion.insert(
origin: origin,
iconData: bytes,
fetchDate: DateTime.now(),
),
onConflict: DoUpdate(
(old) => IconCacheCompanion.custom(
iconData: Variable(bytes),
fetchDate: Variable(DateTime.now()),
),
),
);
}
}
@@ -0,0 +1,6 @@
// GENERATED CODE - DO NOT MODIFY BY HAND
part of 'cache.dart';
// ignore_for_file: type=lint
mixin _$CacheDaoMixin on DatabaseAccessor<UserDatabase> {}
@@ -0,0 +1,27 @@
import 'package:drift/drift.dart';
import 'package:lensai/features/user/data/database/database.dart';
part 'setting.g.dart';
@DriftAccessor()
class SettingDao extends DatabaseAccessor<UserDatabase> with _$SettingDaoMixin {
SettingDao(super.attachedDatabase);
Future<int> updateSetting(String key, Object? value) {
final driftvalue = (value != null) ? DriftAny(value) : null;
return db.setting.insertOne(
SettingCompanion.insert(
key: key,
value: Value(driftvalue),
),
onConflict: DoUpdate(
(old) => SettingCompanion.custom(value: Variable(driftvalue)),
),
);
}
Selectable<MapEntry<String, DriftAny?>> allSettings() {
return db.setting.select().map((row) => MapEntry(row.key, row.value));
}
}
@@ -0,0 +1,6 @@
// GENERATED CODE - DO NOT MODIFY BY HAND
part of 'setting.dart';
// ignore_for_file: type=lint
mixin _$SettingDaoMixin on DatabaseAccessor<UserDatabase> {}