-- ============ Workspace Run Profiles ============
-- 每个 workspace 下可配置多个运行档（dev/prod/test）。后端把每个 profile
-- 作为长驻进程拉起；运行态（running/stopped/crashed）在 RunSupervisor 内存中维护，
-- 不落库。下列三个 last_* 字段仅记录最近一次运行的历史，供前端展示与排障。
CREATE TABLE workspace_run_profiles (
  id              UUID PRIMARY KEY,
  workspace_id    UUID NOT NULL REFERENCES workspaces(id) ON DELETE CASCADE,
  slug            TEXT NOT NULL,
  name            TEXT NOT NULL,
  description     TEXT NOT NULL DEFAULT '',
  command         TEXT NOT NULL,                                  -- 启动命令（exec 的 argv[0] 或 shell -c 串）
  args            TEXT[] NOT NULL DEFAULT '{}',                   -- 额外参数
  encrypted_env   BYTEA,                                          -- AES-GCM 密文（profile env 覆盖，map[string]string 的 JSON）
  enabled         BOOLEAN NOT NULL DEFAULT TRUE,
  last_started_at TIMESTAMPTZ,                                    -- 最近一次 start 时间
  last_exit_code  INTEGER,                                        -- 最近一次退出码（NULL=从未退出/从未运行）
  last_error      TEXT NOT NULL DEFAULT '',                       -- 最近一次 stderr 尾部 / 启动错误
  created_by      UUID NOT NULL REFERENCES users(id) ON DELETE RESTRICT,
  created_at      TIMESTAMPTZ NOT NULL DEFAULT now(),
  updated_at      TIMESTAMPTZ NOT NULL DEFAULT now(),
  UNIQUE (workspace_id, slug)
);
CREATE INDEX idx_run_profiles_workspace ON workspace_run_profiles(workspace_id);
