-- 迁移文件: 005_modify_models_columns.sql
-- 描述: 修改models表字段：重命名type为category，添加supplier和price字段

-- ============================================
-- 正向迁移: 修改字段
-- ============================================

-- 1. 重命名 type 字段为 category
ALTER TABLE aigcspace.models RENAME COLUMN type TO category;

-- 更新字段注释
COMMENT ON COLUMN aigcspace.models.category IS '模型分类: 0=语言模型, 1=多模态模型, 2=TTS模型, 3=STT模型, 4=生图模型, 5=生视频模型';

-- 2. 添加 supplier 字段，默认值 'Qwen'
ALTER TABLE aigcspace.models ADD COLUMN IF NOT EXISTS supplier VARCHAR(100) DEFAULT 'Qwen' NOT NULL;

-- 添加字段注释
COMMENT ON COLUMN aigcspace.models.supplier IS '供应商名称，默认Qwen';

-- 3. 添加 price_id 字段，关联 model_price 表
ALTER TABLE aigcspace.models ADD COLUMN IF NOT EXISTS price_id INTEGER;

-- 添加字段注释
COMMENT ON COLUMN aigcspace.models.price_id IS '价格ID，关联model_price表';

-- 4. 添加外键约束
ALTER TABLE aigcspace.models ADD CONSTRAINT fk_models_price_id
    FOREIGN KEY (price_id) REFERENCES aigcspace.model_price(id) ON DELETE SET NULL;

-- 5. 创建索引优化查询
CREATE INDEX IF NOT EXISTS idx_models_supplier ON aigcspace.models(supplier);
CREATE INDEX IF NOT EXISTS idx_models_category ON aigcspace.models(category);

-- ============================================
-- 回滚迁移: 恢复修改
-- ============================================
-- DROP INDEX IF EXISTS aigcspace.idx_models_supplier;
-- DROP INDEX IF EXISTS aigcspace.idx_models_category;
-- ALTER TABLE aigcspace.models DROP CONSTRAINT IF EXISTS fk_models_price_id;
-- ALTER TABLE aigcspace.models DROP COLUMN IF EXISTS price_id;
-- ALTER TABLE aigcspace.models DROP COLUMN IF EXISTS supplier;
-- ALTER TABLE aigcspace.models RENAME COLUMN category TO type;
