intermediate
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
import 'package:lensai/features/bangs/data/database/drift/converters/bang_format.dart';
|
||||
import 'package:lensai/features/bangs/data/models/bang_data.dart';
|
||||
import 'package:lensai/features/bangs/data/models/bang.dart';
|
||||
import 'package:lensai/features/bangs/data/models/search_history_entry.dart';
|
||||
|
||||
CREATE TABLE bang (
|
||||
"trigger" TEXT PRIMARY KEY NOT NULL,
|
||||
@@ -24,10 +25,10 @@ CREATE TABLE bang_frequency (
|
||||
last_used DATETIME NOT NULL
|
||||
);
|
||||
|
||||
CREATE TABLE bang_icon (
|
||||
"trigger" TEXT PRIMARY KEY NOT NULL REFERENCES bang ("trigger") ON DELETE CASCADE,
|
||||
icon_data BLOB NOT NULL,
|
||||
fetch_date DATETIME NOT NULL
|
||||
CREATE TABLE bang_history (
|
||||
search_query TEXT UNIQUE NOT NULL,
|
||||
"trigger" TEXT NOT NULL REFERENCES bang ("trigger"),
|
||||
search_date DATETIME NOT NULL
|
||||
);
|
||||
|
||||
CREATE VIRTUAL TABLE bang_fts
|
||||
@@ -42,14 +43,11 @@ CREATE VIEW bang_data_view WITH BangData AS
|
||||
SELECT
|
||||
b.*,
|
||||
bf.frequency,
|
||||
bf.last_used,
|
||||
bi.icon_data
|
||||
bf.last_used
|
||||
FROM
|
||||
bang b
|
||||
LEFT JOIN
|
||||
bang_frequency bf ON b."trigger" = bf."trigger"
|
||||
LEFT JOIN
|
||||
bang_icon bi ON b."trigger" = bi."trigger";
|
||||
bang_frequency bf ON b."trigger" = bf."trigger";
|
||||
|
||||
-- Triggers to keep the FTS index up to date.
|
||||
CREATE TRIGGER bang_after_insert AFTER INSERT ON bang BEGIN
|
||||
@@ -78,16 +76,13 @@ bangQuery WITH BangData:
|
||||
SELECT
|
||||
b.*,
|
||||
bf.frequency,
|
||||
bf.last_used,
|
||||
bi.icon_data
|
||||
bf.last_used
|
||||
FROM
|
||||
bang_fts(:query) fts
|
||||
INNER JOIN
|
||||
bang b ON b.rowid = fts.rowid
|
||||
LEFT JOIN
|
||||
bang_frequency bf ON b."trigger" = bf."trigger"
|
||||
LEFT JOIN
|
||||
bang_icon bi ON b."trigger" = bi."trigger"
|
||||
ORDER BY
|
||||
RANK,
|
||||
bf.frequency NULLS LAST;
|
||||
@@ -113,4 +108,19 @@ categoriesJson:
|
||||
c.category,
|
||||
json(c.sub_categories)
|
||||
) AS categories_json
|
||||
FROM categories c;
|
||||
FROM categories c;
|
||||
|
||||
searchHistoryEntries WITH SearchHistoryEntry:
|
||||
SELECT *
|
||||
FROM bang_history
|
||||
ORDER BY search_date DESC
|
||||
LIMIT :limit;
|
||||
|
||||
evictHistoryEntries:
|
||||
DELETE FROM bang_history
|
||||
WHERE rowid IN (
|
||||
SELECT rowid
|
||||
FROM bang_history
|
||||
ORDER BY search_date DESC
|
||||
LIMIT -1 OFFSET :limit
|
||||
);
|
||||
Reference in New Issue
Block a user