-- ============================================ -- CONTEXT MANAGER - BASE TYPES -- Sistema local de gestión de contexto para IA -- ============================================ -- Extension para UUIDs CREATE EXTENSION IF NOT EXISTS "pgcrypto"; -- ============================================ -- TIPOS ENUMERADOS -- ============================================ CREATE TYPE mensaje_role AS ENUM ('user', 'assistant', 'system', 'tool'); CREATE TYPE context_source AS ENUM ('memory', 'knowledge', 'history', 'ambient', 'dataset'); CREATE TYPE algorithm_status AS ENUM ('draft', 'testing', 'active', 'deprecated'); CREATE TYPE metric_type AS ENUM ('relevance', 'token_efficiency', 'response_quality', 'latency'); -- ============================================ -- FUNCIÓN: Timestamp de actualización -- ============================================ CREATE OR REPLACE FUNCTION update_updated_at_column() RETURNS TRIGGER AS $$ BEGIN NEW.updated_at = CURRENT_TIMESTAMP; RETURN NEW; END; $$ LANGUAGE plpgsql; -- ============================================ -- FUNCIÓN: Hash SHA-256 -- ============================================ CREATE OR REPLACE FUNCTION sha256_hash(content TEXT) RETURNS VARCHAR(64) AS $$ BEGIN RETURN encode(digest(content, 'sha256'), 'hex'); END; $$ LANGUAGE plpgsql IMMUTABLE;