madari-oss/lib/database/quries/watch_history_queries.dart
Madari Developers e8e1c5e046 Project import generated by Copybara.
GitOrigin-RevId: 478aa0586cb2eea16867f7ca78cdf7913e5d3795
2025-01-05 13:47:07 +00:00

42 lines
1.3 KiB
Dart

import 'package:drift/drift.dart';
import '../app_database.dart';
import '../tables/watch_history_table.dart';
part 'watch_history_queries.g.dart';
@DriftAccessor(tables: [WatchHistoryTable])
class WatchHistoryQueries extends DatabaseAccessor<AppDatabase>
with _$WatchHistoryQueriesMixin {
WatchHistoryQueries(super.db);
Future<List<WatchHistoryTableData>> getWatchHistoryByIds(List<String> ids) {
return (select(watchHistoryTable)..where((t) => t.id.isIn(ids))).get();
}
Future<List<WatchHistoryTableData>> getUnsyncedRecords() {
return (select(watchHistoryTable)
..where((t) =>
t.lastSyncedAt.isNull() |
t.updatedAt.isBiggerThan(t.lastSyncedAt)))
.get();
}
Future<void> insertOrUpdateWatchHistory(WatchHistoryTableCompanion entry) {
return into(watchHistoryTable).insertOnConflictUpdate(entry);
}
Future<void> updateSyncStatus(String id, DateTime syncTime) {
return (update(watchHistoryTable)..where((t) => t.id.equals(id)))
.write(WatchHistoryTableCompanion(lastSyncedAt: Value(syncTime)));
}
Future<WatchHistoryTableData?> getWatchHistoryById(String id) {
return (select(watchHistoryTable)..where((t) => t.id.equals(id)))
.getSingleOrNull();
}
Future<void> clearWatchHistory() async {
await delete(watchHistoryTable).go();
}
}