36 lines
1.3 KiB
SQL
36 lines
1.3 KiB
SQL
CREATE TABLE memories (
|
|
id INTEGER PRIMARY KEY,
|
|
owner_id TEXT NOT NULL,
|
|
chat_id TEXT NOT NULL,
|
|
scene_id INTEGER,
|
|
pov_summary TEXT NOT NULL,
|
|
witness_you INTEGER NOT NULL,
|
|
witness_host INTEGER NOT NULL,
|
|
witness_guest INTEGER NOT NULL,
|
|
chat_clock_at TEXT,
|
|
source TEXT,
|
|
reliability REAL NOT NULL DEFAULT 1.0,
|
|
significance INTEGER NOT NULL DEFAULT 1,
|
|
pinned INTEGER NOT NULL DEFAULT 0,
|
|
auto_pinned INTEGER NOT NULL DEFAULT 0,
|
|
created_at TEXT NOT NULL DEFAULT (datetime('now'))
|
|
);
|
|
CREATE INDEX idx_memories_owner ON memories(owner_id);
|
|
|
|
CREATE VIRTUAL TABLE memories_fts USING fts5(
|
|
pov_summary, content='memories', content_rowid='id'
|
|
);
|
|
|
|
CREATE TRIGGER memories_ai AFTER INSERT ON memories BEGIN
|
|
INSERT INTO memories_fts(rowid, pov_summary) VALUES (new.id, new.pov_summary);
|
|
END;
|
|
CREATE TRIGGER memories_au AFTER UPDATE ON memories BEGIN
|
|
INSERT INTO memories_fts(memories_fts, rowid, pov_summary)
|
|
VALUES('delete', old.id, old.pov_summary);
|
|
INSERT INTO memories_fts(rowid, pov_summary) VALUES (new.id, new.pov_summary);
|
|
END;
|
|
CREATE TRIGGER memories_ad AFTER DELETE ON memories BEGIN
|
|
INSERT INTO memories_fts(memories_fts, rowid, pov_summary)
|
|
VALUES('delete', old.id, old.pov_summary);
|
|
END;
|