35 lines
995 B
SQL
35 lines
995 B
SQL
CREATE TABLE inbox_items (
|
|
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,
|
|
blocking INTEGER NOT NULL,
|
|
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
|
|
);
|
|
|
|
CREATE INDEX inbox_items_open ON inbox_items(state, priority, created_at);
|
|
CREATE INDEX inbox_items_session ON inbox_items(agent_session_id, state);
|
|
|
|
CREATE TABLE inbox_responses (
|
|
id TEXT PRIMARY KEY,
|
|
item_id TEXT NOT NULL REFERENCES inbox_items(id),
|
|
user_login TEXT NOT NULL REFERENCES users(login),
|
|
type TEXT NOT NULL,
|
|
option TEXT,
|
|
text TEXT,
|
|
attachments TEXT NOT NULL,
|
|
snooze_until TEXT,
|
|
created_at TEXT NOT NULL,
|
|
delivered_at TEXT
|
|
);
|
|
|
|
CREATE INDEX inbox_responses_item ON inbox_responses(item_id, created_at);
|