-- 修改 asset_likes 表唯一约束（幂等）
-- 原约束: (user_id, asset_id) - 用户对某藏品只能点赞一次
-- 新约束: (user_id, asset_id, exhibition_id) - 用户对某藏品在同一展出中只能点赞一次
--         下架后重新展出，用户可以再次点赞

-- 删除旧约束（如果存在）
DO $$
BEGIN
    IF EXISTS (
        SELECT 1 FROM pg_constraint
        WHERE conname = 'uk_asset_likes_user_asset'
    ) THEN
        ALTER TABLE asset_likes DROP CONSTRAINT uk_asset_likes_user_asset;
    END IF;
END $$;

-- 添加新约束（如果不存在）
DO $$
BEGIN
    IF NOT EXISTS (
        SELECT 1 FROM pg_constraint
        WHERE conname = 'uk_asset_likes_user_asset_exhibition'
    ) THEN
        ALTER TABLE asset_likes ADD CONSTRAINT uk_asset_likes_user_asset_exhibition UNIQUE (user_id, asset_id, exhibition_id);
    END IF;
END $$;