-- ============================================================
-- 表16：documents（文档存储表）
-- 用途：Notion导出存储，支持嵌套结构和树形路径
-- 导入工作流：霜砚整理 → Notion API导出 → 写入本地documents表
-- ============================================================

CREATE TABLE IF NOT EXISTS documents (
  document_id       VARCHAR(64)   PRIMARY KEY,
  persona_id        VARCHAR(32)
                    REFERENCES persona_identity(persona_id),
  parent_id         VARCHAR(64)   REFERENCES documents(document_id),
  path              TEXT          NOT NULL,        -- 树形路径，如 "/root/folder/doc"
  title             VARCHAR(256)  NOT NULL,
  content           TEXT,                          -- markdown内容
  content_type      VARCHAR(32)   NOT NULL DEFAULT 'markdown'
                    CHECK (content_type IN ('markdown', 'json', 'plain', 'notion')),
  source            VARCHAR(32)   NOT NULL DEFAULT 'local'
                    CHECK (source IN ('local', 'notion_import', 'api')),
  tags              TEXT,                          -- JSON array
  version           INTEGER       NOT NULL DEFAULT 1,
  checksum          VARCHAR(64),
  created_at        TIMESTAMP     NOT NULL DEFAULT CURRENT_TIMESTAMP,
  updated_at        TIMESTAMP     NOT NULL DEFAULT CURRENT_TIMESTAMP
);

CREATE INDEX IF NOT EXISTS idx_doc_persona ON documents(persona_id);
CREATE INDEX IF NOT EXISTS idx_doc_parent ON documents(parent_id);
CREATE INDEX IF NOT EXISTS idx_doc_path ON documents(path);
CREATE INDEX IF NOT EXISTS idx_doc_source ON documents(source);
