Skip to main content

max / goingson

821 B · 20 lines History Blame Raw
1 -- Saved views / filters for quick access
2 CREATE TABLE IF NOT EXISTS saved_views (
3 id TEXT PRIMARY KEY NOT NULL,
4 user_id TEXT NOT NULL,
5 name TEXT NOT NULL,
6 view_type TEXT NOT NULL, -- 'tasks', 'emails', 'events'
7 filters TEXT NOT NULL, -- JSON object with filter criteria
8 sort_by TEXT, -- Sort field
9 sort_order TEXT DEFAULT 'asc', -- 'asc' or 'desc'
10 is_pinned INTEGER DEFAULT 0, -- Show in sidebar
11 position INTEGER DEFAULT 0, -- Order in sidebar
12 created_at TEXT NOT NULL,
13 updated_at TEXT NOT NULL,
14 FOREIGN KEY (user_id) REFERENCES users(id)
15 );
16
17 -- Index for quick lookup
18 CREATE INDEX IF NOT EXISTS idx_saved_views_user ON saved_views(user_id);
19 CREATE INDEX IF NOT EXISTS idx_saved_views_pinned ON saved_views(user_id, is_pinned) WHERE is_pinned = 1;
20