-- 快速修复脚本：修复 user_scenarios 表约束
-- 在生产 PostgreSQL 容器中执行此文件

-- 1. 允许 description 为空
ALTER TABLE user_scenarios
    ALTER COLUMN description DROP NOT NULL;

-- 2. 修复 prompt 长度约束（从 50 改为 10，与代码一致）
ALTER TABLE user_scenarios
    DROP CONSTRAINT IF EXISTS check_prompt_length;

ALTER TABLE user_scenarios
    ADD CONSTRAINT check_prompt_length CHECK (char_length(prompt) >= 10 AND char_length(prompt) <= 2000);

-- 更新注释
COMMENT ON COLUMN user_scenarios.description IS '简短描述，可选，显示在情景卡片上（允许为空）';
COMMENT ON COLUMN user_scenarios.prompt IS '角色 System Prompt，定义 AI 行为（10-2000 字符）';

-- 验证修改
SELECT
    con.conname AS constraint_name,
    pg_get_constraintdef(con.oid) AS constraint_definition
FROM pg_constraint con
JOIN pg_class rel ON rel.oid = con.conrelid
WHERE rel.relname = 'user_scenarios'
    AND con.conname = 'check_prompt_length';
