-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathschema.sql
More file actions
52 lines (48 loc) · 1.7 KB
/
Copy pathschema.sql
File metadata and controls
52 lines (48 loc) · 1.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
PRAGMA foreign_keys = ON;
PRAGMA journal_mode = WAL;
CREATE TABLE IF NOT EXISTS guides (
id TEXT PRIMARY KEY,
source_type TEXT NOT NULL,
source_uri TEXT NOT NULL,
source_id TEXT NOT NULL,
title TEXT NOT NULL,
overview TEXT NOT NULL,
content_json TEXT NOT NULL CHECK (json_valid(content_json)),
created_at TEXT NOT NULL,
updated_at TEXT NOT NULL
);
CREATE INDEX IF NOT EXISTS idx_guides_created_at ON guides(created_at DESC);
CREATE INDEX IF NOT EXISTS idx_guides_source ON guides(source_type, source_id);
CREATE TABLE IF NOT EXISTS schema_migrations (
version INTEGER PRIMARY KEY,
applied_at TEXT NOT NULL
);
CREATE TABLE IF NOT EXISTS jobs (
id TEXT PRIMARY KEY,
source_type TEXT NOT NULL,
source_uri TEXT NOT NULL,
status TEXT NOT NULL,
stage TEXT NOT NULL,
current INTEGER NOT NULL DEFAULT 0,
total INTEGER NOT NULL DEFAULT 0,
error TEXT NOT NULL DEFAULT '',
guide_id TEXT NOT NULL DEFAULT '',
created_at TEXT NOT NULL,
updated_at TEXT NOT NULL,
completed_at TEXT
);
CREATE INDEX IF NOT EXISTS idx_jobs_created_at ON jobs(created_at DESC);
CREATE TABLE IF NOT EXISTS job_segments (
job_id TEXT NOT NULL REFERENCES jobs(id) ON DELETE CASCADE,
segment_index INTEGER NOT NULL,
transcript_json TEXT NOT NULL CHECK (json_valid(transcript_json)),
guide_json TEXT CHECK (guide_json IS NULL OR json_valid(guide_json)),
status TEXT NOT NULL,
model TEXT NOT NULL DEFAULT '',
prompt_tokens INTEGER NOT NULL DEFAULT 0,
output_tokens INTEGER NOT NULL DEFAULT 0,
duration_ms INTEGER NOT NULL DEFAULT 0,
raw_response TEXT NOT NULL DEFAULT '',
error TEXT NOT NULL DEFAULT '',
PRIMARY KEY(job_id, segment_index)
);