-- 04-model-provider.sql
-- OpenAI-API-Compatible 模型供应商管理
-- 支持 LLM / Embedding / Rerank 三种模型类型，每种独立配置

CREATE TABLE IF NOT EXISTS model_providers (
    id            UUID PRIMARY KEY DEFAULT gen_random_uuid(),
    name          VARCHAR(100) NOT NULL,
    provider_type VARCHAR(50) NOT NULL,
    base_url      VARCHAR(500),
    api_key       TEXT,
    extra_config  JSONB DEFAULT '{}',
    is_active     BOOLEAN DEFAULT TRUE,
    created_at    TIMESTAMPTZ NOT NULL DEFAULT NOW()
);

CREATE TABLE IF NOT EXISTS model_instances (
    id             UUID PRIMARY KEY DEFAULT gen_random_uuid(),
    provider_id    UUID NOT NULL REFERENCES model_providers(id) ON DELETE CASCADE,
    model_name     VARCHAR(100) NOT NULL,
    model_type     VARCHAR(30) NOT NULL,
    display_name   VARCHAR(200),
    capabilities   JSONB DEFAULT '{}',
    default_params JSONB DEFAULT '{}',
    is_default     BOOLEAN DEFAULT FALSE,
    is_active      BOOLEAN DEFAULT TRUE,
    created_at     TIMESTAMPTZ NOT NULL DEFAULT NOW()
);

CREATE INDEX IF NOT EXISTS idx_model_instances_type ON model_instances(model_type, is_active);
CREATE INDEX IF NOT EXISTS idx_model_instances_provider ON model_instances(provider_id);