39 lines
1.7 KiB
SQL
39 lines
1.7 KiB
SQL
CREATE TABLE inbox_items_next (
|
|
id TEXT PRIMARY KEY,
|
|
project_id TEXT NOT NULL REFERENCES projects(id),
|
|
task_id TEXT NOT NULL REFERENCES tasks(id),
|
|
agent_session_id TEXT NOT NULL REFERENCES agent_sessions(id),
|
|
thread_id TEXT NOT NULL,
|
|
kind TEXT NOT NULL,
|
|
priority INTEGER NOT NULL DEFAULT 0,
|
|
blocking INTEGER NOT NULL DEFAULT 1,
|
|
payload TEXT NOT NULL,
|
|
state TEXT NOT NULL,
|
|
snoozed_until TEXT,
|
|
created_at TEXT NOT NULL,
|
|
resolved_by TEXT REFERENCES users(login),
|
|
resolved_at TEXT
|
|
);
|
|
INSERT INTO inbox_items_next SELECT id, project_id, task_id, agent_session_id, thread_id, kind, priority, blocking, payload, state, snoozed_until, created_at, resolved_by, resolved_at FROM inbox_items;
|
|
DROP TABLE inbox_items;
|
|
ALTER TABLE inbox_items_next RENAME TO inbox_items;
|
|
CREATE INDEX inbox_items_open ON inbox_items(state, created_at);
|
|
CREATE INDEX inbox_items_session ON inbox_items(agent_session_id, state);
|
|
|
|
CREATE TABLE users_next (
|
|
login TEXT PRIMARY KEY,
|
|
display_name TEXT NOT NULL,
|
|
git_name TEXT NOT NULL DEFAULT '',
|
|
git_email TEXT NOT NULL DEFAULT '',
|
|
created_at TEXT NOT NULL,
|
|
notification_prefs TEXT NOT NULL DEFAULT '{"questions":true,"reports":false,"errors":false,"rate_limits":false}',
|
|
focus TEXT NOT NULL DEFAULT '{"tabs":["transcript"],"tab":"transcript"}'
|
|
);
|
|
INSERT INTO users_next (login, display_name, git_name, git_email, created_at, notification_prefs, focus)
|
|
SELECT login, display_name, git_name, git_email, created_at,
|
|
json_remove(json_set(notification_prefs, '$.questions', json(CASE WHEN json_extract(notification_prefs, '$.blocking_questions') THEN 'true' ELSE 'false' END)), '$.blocking_questions'),
|
|
focus
|
|
FROM users;
|
|
DROP TABLE users;
|
|
ALTER TABLE users_next RENAME TO users;
|