File size: 1,796 Bytes
0762fba 5f7dc7e 0762fba | 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 53 54 55 56 57 58 59 60 61 62 | -- Run these in Supabase SQL editor before starting
CREATE TABLE companies (
id TEXT PRIMARY KEY,
name TEXT NOT NULL,
industry TEXT,
company_size TEXT,
description TEXT,
created_at TIMESTAMPTZ DEFAULT now()
);
INSERT INTO companies VALUES ('rivanly-inc', 'Rivanly Inc.', now());
CREATE TABLE skills_files (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
company_id TEXT REFERENCES companies(id),
version TEXT NOT NULL,
brain_json JSONB NOT NULL,
source_hashes JSONB NOT NULL,
compiled_at TIMESTAMPTZ DEFAULT now(),
is_current BOOLEAN DEFAULT false
);
CREATE UNIQUE INDEX idx_skills_files_current ON skills_files(company_id) WHERE is_current = true;
CREATE TABLE skills (
id TEXT NOT NULL,
company_id TEXT REFERENCES companies(id),
skills_file_id UUID REFERENCES skills_files(id),
name TEXT NOT NULL,
domain TEXT NOT NULL,
version TEXT NOT NULL,
confidence FLOAT NOT NULL,
stale BOOLEAN DEFAULT false,
review_required BOOLEAN DEFAULT false,
skill_json JSONB NOT NULL,
PRIMARY KEY (id, company_id, skills_file_id)
);
CREATE TABLE source_files (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
company_id TEXT REFERENCES companies(id),
filename TEXT NOT NULL,
sha256 TEXT NOT NULL,
storage_path TEXT NOT NULL,
uploaded_at TIMESTAMPTZ DEFAULT now()
);
CREATE TABLE compile_runs (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
company_id TEXT REFERENCES companies(id),
status TEXT NOT NULL CHECK (status IN ('started','running','complete','error')),
started_at TIMESTAMPTZ DEFAULT now(),
completed_at TIMESTAMPTZ,
duration_ms INTEGER,
result_version TEXT,
error_detail TEXT
);
CREATE INDEX idx_skills_files_company ON skills_files(company_id, compiled_at DESC);
CREATE INDEX idx_skills_company ON skills(company_id);
|