-- LLM Provider Registry CREATE TABLE IF NOT EXISTS llm_providers ( id SERIAL PRIMARY KEY, organization_id INTEGER NOT NULL REFERENCES organizations(id) ON DELETE CASCADE, name VARCHAR(200) NOT NULL, provider_type VARCHAR(50) NOT NULL DEFAULT 'openai', base_url TEXT, api_key TEXT, enabled_models JSONB DEFAULT '[]', is_active BOOLEAN DEFAULT TRUE, created_at TIMESTAMP DEFAULT NOW(), updated_at TIMESTAMP DEFAULT NOW() ); -- Add LLM provider reference to bots ALTER TABLE bots ADD COLUMN IF NOT EXISTS llm_provider_id INTEGER REFERENCES llm_providers(id) ON DELETE SET NULL; ALTER TABLE bots ADD COLUMN IF NOT EXISTS llm_model VARCHAR(200); -- Add provider references to rag_settings ALTER TABLE rag_settings ADD COLUMN IF NOT EXISTS embedding_provider_id INTEGER REFERENCES llm_providers(id) ON DELETE SET NULL; ALTER TABLE rag_settings ADD COLUMN IF NOT EXISTS chat_provider_id INTEGER REFERENCES llm_providers(id) ON DELETE SET NULL; -- Allow embedding_model to be NULL when registry provider is selected ALTER TABLE rag_settings ALTER COLUMN embedding_model DROP NOT NULL;