-- =====================================================================================
-- 批量添加商品数据脚本
-- 用途: 为每个二级分类额外添加6个商品，用于测试上拉加载更多功能
-- =====================================================================================

DO $$
DECLARE
    cat_rec RECORD;
    merchant_rec RECORD;
    brand_rec RECORD;
    i INT;
    v_product_name TEXT;
    v_image_url TEXT;
    v_price DECIMAL;
BEGIN
    -- 1. 获取一个商户ID (优先选择已有店铺的商户)
    SELECT merchant_id INTO merchant_rec FROM public.ml_shops LIMIT 1;
    
    IF merchant_rec.merchant_id IS NULL THEN
        RAISE NOTICE '未找到商户，请先运行 mock_data_insert.sql 初始化商户数据';
        RETURN;
    END IF;

    -- 2. 获取一个默认品牌ID
    SELECT id INTO brand_rec FROM public.ml_brands LIMIT 1;
    
    -- 3. 遍历所有二级分类
    FOR cat_rec IN SELECT id, name, slug FROM public.ml_categories WHERE level = 2 LOOP
        
        RAISE NOTICE '正在为分类 [%] 添加商品...', cat_rec.name;
        
        -- 为每个分类添加6个商品
        FOR i IN 1..6 LOOP
            -- 生成随机价格
            v_price := (random() * 500 + 50)::numeric(10, 2);
            
            -- 根据分类名称生成简单的商品名称
            v_product_name := cat_rec.name || '精选优品 ' || i || '号 - ' || 
                              (CASE (i % 3) 
                                WHEN 0 THEN '高品质' 
                                WHEN 1 THEN '超值装' 
                                ELSE '家庭装' 
                              END);
            
            -- 使用随机图片
            v_image_url := 'https://picsum.photos/600/600?random=' || floor(random() * 10000)::text;

            -- 插入商品
            INSERT INTO public.ml_products (
                merchant_id, 
                category_id, 
                brand_id, 
                name, 
                subtitle,
                description,
                base_price, 
                market_price, 
                main_image_url, 
                status, 
                is_featured, 
                is_hot, 
                sale_count,
                total_stock,
                available_stock,
                product_code
            ) VALUES (
                merchant_rec.merchant_id,
                cat_rec.id,
                brand_rec.id,
                v_product_name,
                '热销爆款 限时特惠',
                '这是一款测试商品，用于展示分类列表的加载更多功能。优质选材，精心制作，值得信赖。',
                v_price,
                v_price * 1.2, -- 市场价稍高
                v_image_url,
                1, -- 1: 上架状态
                (random() > 0.8), -- 20%概率推荐
                (random() > 0.7), -- 30%概率热销
                floor(random() * 1000)::int,
                999,
                999,
                'TEST-' || substring(md5(random()::text) from 1 for 8)
            );
        END LOOP;
    END LOOP;
    
    RAISE NOTICE '数据生成完成！';
END $$;
