Skip to main content

max / balanced_breakfast

1.5 KB · 46 lines History Blame Raw
1 -- Feature: Query feeds
2 -- Query feeds: saved filter rules that act as virtual sources.
3
4 CREATE TABLE IF NOT EXISTS query_feeds (
5 id TEXT PRIMARY KEY,
6 name TEXT NOT NULL,
7 rules TEXT NOT NULL DEFAULT '[]',
8 created_at TEXT NOT NULL,
9 updated_at TEXT NOT NULL
10 );
11
12 -- Sync triggers (same pattern as feeds/feed_tags in migrations 007/008).
13
14 CREATE TRIGGER IF NOT EXISTS sync_query_feeds_insert AFTER INSERT ON query_feeds
15 WHEN (SELECT value FROM sync_state WHERE key = 'applying_remote') != '1'
16 BEGIN
17 INSERT INTO sync_changelog (table_name, op, row_id, data)
18 VALUES ('query_feeds', 'INSERT', NEW.id, json_object(
19 'id', NEW.id,
20 'name', NEW.name,
21 'rules', NEW.rules,
22 'created_at', NEW.created_at,
23 'updated_at', NEW.updated_at
24 ));
25 END;
26
27 CREATE TRIGGER IF NOT EXISTS sync_query_feeds_update AFTER UPDATE ON query_feeds
28 WHEN (SELECT value FROM sync_state WHERE key = 'applying_remote') != '1'
29 BEGIN
30 INSERT INTO sync_changelog (table_name, op, row_id, data)
31 VALUES ('query_feeds', 'UPDATE', NEW.id, json_object(
32 'id', NEW.id,
33 'name', NEW.name,
34 'rules', NEW.rules,
35 'created_at', NEW.created_at,
36 'updated_at', NEW.updated_at
37 ));
38 END;
39
40 CREATE TRIGGER IF NOT EXISTS sync_query_feeds_delete AFTER DELETE ON query_feeds
41 WHEN (SELECT value FROM sync_state WHERE key = 'applying_remote') != '1'
42 BEGIN
43 INSERT INTO sync_changelog (table_name, op, row_id, data)
44 VALUES ('query_feeds', 'DELETE', OLD.id, NULL);
45 END;
46