paperclip/packages/plugins/plugin-llm-wiki/migrations/001_llm_wiki.sql

102 lines
3.6 KiB
SQL

CREATE TABLE plugin_llm_wiki_8f50da974f.wiki_instances (
id uuid PRIMARY KEY,
company_id uuid NOT NULL REFERENCES public.companies(id) ON DELETE CASCADE,
wiki_id text NOT NULL,
root_folder_key text NOT NULL DEFAULT 'wiki-root',
configured_root_path text,
schema_version integer NOT NULL DEFAULT 1,
settings jsonb NOT NULL DEFAULT '{}'::jsonb,
managed_agent_key text,
managed_project_key text,
created_at timestamptz NOT NULL DEFAULT now(),
updated_at timestamptz NOT NULL DEFAULT now(),
UNIQUE (company_id, wiki_id)
);
CREATE TABLE plugin_llm_wiki_8f50da974f.wiki_sources (
id uuid PRIMARY KEY,
company_id uuid NOT NULL REFERENCES public.companies(id) ON DELETE CASCADE,
wiki_id text NOT NULL,
source_type text NOT NULL,
title text,
url text,
raw_path text NOT NULL,
content_hash text NOT NULL,
status text NOT NULL DEFAULT 'captured',
metadata jsonb NOT NULL DEFAULT '{}'::jsonb,
created_at timestamptz NOT NULL DEFAULT now(),
updated_at timestamptz NOT NULL DEFAULT now()
);
CREATE TABLE plugin_llm_wiki_8f50da974f.wiki_pages (
id uuid PRIMARY KEY,
company_id uuid NOT NULL REFERENCES public.companies(id) ON DELETE CASCADE,
wiki_id text NOT NULL,
path text NOT NULL,
title text,
page_type text,
frontmatter jsonb NOT NULL DEFAULT '{}'::jsonb,
source_refs jsonb NOT NULL DEFAULT '[]'::jsonb,
backlinks jsonb NOT NULL DEFAULT '[]'::jsonb,
content_hash text,
current_revision_id uuid,
created_at timestamptz NOT NULL DEFAULT now(),
updated_at timestamptz NOT NULL DEFAULT now(),
UNIQUE (company_id, wiki_id, path)
);
CREATE TABLE plugin_llm_wiki_8f50da974f.wiki_page_revisions (
id uuid PRIMARY KEY,
company_id uuid NOT NULL REFERENCES public.companies(id) ON DELETE CASCADE,
wiki_id text NOT NULL,
page_id uuid REFERENCES plugin_llm_wiki_8f50da974f.wiki_pages(id) ON DELETE CASCADE,
operation_id uuid,
path text NOT NULL,
content_hash text NOT NULL,
summary text,
metadata jsonb NOT NULL DEFAULT '{}'::jsonb,
created_at timestamptz NOT NULL DEFAULT now()
);
CREATE TABLE plugin_llm_wiki_8f50da974f.wiki_operations (
id uuid PRIMARY KEY,
company_id uuid NOT NULL REFERENCES public.companies(id) ON DELETE CASCADE,
wiki_id text NOT NULL,
operation_type text NOT NULL,
status text NOT NULL,
hidden_issue_id uuid REFERENCES public.issues(id) ON DELETE SET NULL,
project_id uuid REFERENCES public.projects(id) ON DELETE SET NULL,
run_ids jsonb NOT NULL DEFAULT '[]'::jsonb,
cost_cents integer NOT NULL DEFAULT 0,
warnings jsonb NOT NULL DEFAULT '[]'::jsonb,
affected_pages jsonb NOT NULL DEFAULT '[]'::jsonb,
metadata jsonb NOT NULL DEFAULT '{}'::jsonb,
created_at timestamptz NOT NULL DEFAULT now(),
updated_at timestamptz NOT NULL DEFAULT now()
);
CREATE TABLE plugin_llm_wiki_8f50da974f.wiki_query_sessions (
id uuid PRIMARY KEY,
company_id uuid NOT NULL REFERENCES public.companies(id) ON DELETE CASCADE,
wiki_id text NOT NULL,
hidden_issue_id uuid REFERENCES public.issues(id) ON DELETE SET NULL,
agent_session_id text,
status text NOT NULL DEFAULT 'active',
filed_outputs jsonb NOT NULL DEFAULT '[]'::jsonb,
created_at timestamptz NOT NULL DEFAULT now(),
updated_at timestamptz NOT NULL DEFAULT now()
);
CREATE TABLE plugin_llm_wiki_8f50da974f.wiki_resource_bindings (
id uuid PRIMARY KEY,
company_id uuid NOT NULL REFERENCES public.companies(id) ON DELETE CASCADE,
wiki_id text NOT NULL,
resource_kind text NOT NULL,
resource_key text NOT NULL,
resolved_id uuid,
metadata jsonb NOT NULL DEFAULT '{}'::jsonb,
created_at timestamptz NOT NULL DEFAULT now(),
updated_at timestamptz NOT NULL DEFAULT now(),
UNIQUE (company_id, wiki_id, resource_kind, resource_key)
);