-- 迁移文件: 044_extend_models_for_local_models.sql
-- 描述: 扩展models表支持本地模型功能
-- 需求: 3.1, 3.2, 3.3, 3.4

-- ============================================
-- 正向迁移: 添加本地模型相关字段和索引
-- ============================================

-- 添加is_local字段：区分本地和云端模型
ALTER TABLE aigcspace.models ADD COLUMN IF NOT EXISTS is_local BOOLEAN NOT NULL DEFAULT FALSE;
COMMENT ON COLUMN aigcspace.models.is_local IS '是否为本地模型';

-- 添加user_id字段：关联上传用户
ALTER TABLE aigcspace.models ADD COLUMN IF NOT EXISTS user_id VARCHAR(50) NULL;
COMMENT ON COLUMN aigcspace.models.user_id IS '上传用户ID（本地模型必填）';

-- 添加base_url字段：存储本地模型API地址
ALTER TABLE aigcspace.models ADD COLUMN IF NOT EXISTS base_url VARCHAR(500) NULL;
COMMENT ON COLUMN aigcspace.models.base_url IS '本地模型API地址';

-- 添加local_api_key字段：存储加密后的本地模型访问密钥
ALTER TABLE aigcspace.models ADD COLUMN IF NOT EXISTS local_api_key VARCHAR(500) NULL;
COMMENT ON COLUMN aigcspace.models.local_api_key IS '本地模型访问密钥（AES加密）';

-- 创建索引：优化本地模型查询
CREATE INDEX IF NOT EXISTS idx_models_is_local ON aigcspace.models(is_local);
CREATE INDEX IF NOT EXISTS idx_models_user_id ON aigcspace.models(user_id);

-- ============================================
-- 回滚迁移: 删除字段和索引
-- ============================================
-- DROP INDEX IF EXISTS aigcspace.idx_models_user_id;
-- DROP INDEX IF EXISTS aigcspace.idx_models_is_local;
-- ALTER TABLE aigcspace.models DROP COLUMN IF EXISTS local_api_key;
-- ALTER TABLE aigcspace.models DROP COLUMN IF EXISTS base_url;
-- ALTER TABLE aigcspace.models DROP COLUMN IF EXISTS user_id;
-- ALTER TABLE aigcspace.models DROP COLUMN IF EXISTS is_local;
