42 lines
1.9 KiB
SQL
42 lines
1.9 KiB
SQL
-- Phase 4: OpenClaw — Tabelas de detecção de padrões e sugestões de skills emergentes
|
|
-- Executar se as tabelas ainda não existirem (schema já definido em shared/schema.ts)
|
|
|
|
CREATE TABLE IF NOT EXISTS detected_patterns (
|
|
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
tenant_id INTEGER REFERENCES tenants(id),
|
|
user_id VARCHAR REFERENCES users(id),
|
|
action_type VARCHAR(100) NOT NULL,
|
|
description TEXT,
|
|
frequency INTEGER NOT NULL DEFAULT 0,
|
|
confidence NUMERIC(4,3) NOT NULL DEFAULT 0,
|
|
first_seen_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
last_seen_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
metadata JSONB DEFAULT '{}',
|
|
status VARCHAR(20) NOT NULL DEFAULT 'active',
|
|
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS skill_suggestions (
|
|
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
pattern_id UUID REFERENCES detected_patterns(id) ON DELETE CASCADE,
|
|
tenant_id INTEGER REFERENCES tenants(id),
|
|
user_id VARCHAR REFERENCES users(id),
|
|
suggested_skill_name VARCHAR(200) NOT NULL,
|
|
suggested_description TEXT,
|
|
estimated_automation TEXT,
|
|
confidence NUMERIC(4,3) NOT NULL DEFAULT 0,
|
|
generated_skill_id UUID REFERENCES arcadia_skills(id),
|
|
status VARCHAR(20) NOT NULL DEFAULT 'pending',
|
|
source VARCHAR(50) NOT NULL DEFAULT 'openclaw',
|
|
reviewed_by VARCHAR REFERENCES users(id),
|
|
reviewed_at TIMESTAMP,
|
|
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
|
|
);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_detected_patterns_status ON detected_patterns(status);
|
|
CREATE INDEX IF NOT EXISTS idx_detected_patterns_user ON detected_patterns(user_id, action_type);
|
|
CREATE INDEX IF NOT EXISTS idx_skill_suggestions_status ON skill_suggestions(status);
|
|
CREATE INDEX IF NOT EXISTS idx_skill_suggestions_pattern ON skill_suggestions(pattern_id);
|