51 lines · 1.7 KB
CREATE TABLE repo_mergefix_settings (
  repo_id TEXT PRIMARY KEY REFERENCES repos(id) ON DELETE CASCADE,
  queue_enabled INTEGER NOT NULL DEFAULT 0,
  allow_private INTEGER NOT NULL DEFAULT 0,
  min_confidence REAL NOT NULL DEFAULT 0.8,
  min_margin REAL NOT NULL DEFAULT 0.3,
  updated_at INTEGER NOT NULL
);

CREATE TABLE account_ai_keys (
  account_id TEXT PRIMARY KEY REFERENCES accounts(id) ON DELETE CASCADE,
  provider TEXT NOT NULL,
  model TEXT NOT NULL,
  key_ciphertext TEXT NOT NULL,
  key_iv TEXT NOT NULL,
  updated_by TEXT,
  updated_at INTEGER NOT NULL
);

CREATE TABLE ai_usage (
  account_id TEXT NOT NULL REFERENCES accounts(id) ON DELETE CASCADE,
  month TEXT NOT NULL,
  calls INTEGER NOT NULL DEFAULT 0,
  input_tokens INTEGER NOT NULL DEFAULT 0,
  output_tokens INTEGER NOT NULL DEFAULT 0,
  byok_calls INTEGER NOT NULL DEFAULT 0,
  PRIMARY KEY (account_id, month)
);

CREATE TABLE mergefix_runs (
  id TEXT PRIMARY KEY,
  pull_issue_id TEXT NOT NULL REFERENCES issues(id) ON DELETE CASCADE,
  repo_id TEXT NOT NULL REFERENCES repos(id) ON DELETE CASCADE,
  account_id TEXT NOT NULL,
  actor_id TEXT NOT NULL,
  trigger TEXT NOT NULL CHECK (trigger IN ('button', 'queue')),
  status TEXT NOT NULL CHECK (status IN ('queued', 'running', 'applying', 'applied', 'suggested', 'failed')),
  head_sha TEXT NOT NULL,
  base_sha TEXT,
  commit_sha TEXT,