-- =====================================================================================
-- 为没有SKU的商品生成默认SKU
-- 说明：购物车逻辑依赖SKU ID，如果商品没有SKU数据，前端生成的模拟SKU ID会导致数据库外键约束错误
-- =====================================================================================

DO $$
DECLARE
    v_product RECORD;
    v_sku_id UUID;
    v_count INT := 0;
BEGIN
    -- 遍历所有没有SKU的商品
    FOR v_product IN 
        SELECT p.id, p.product_code, p.base_price, p.total_stock 
        FROM public.ml_products p
        LEFT JOIN public.ml_product_skus s ON p.id = s.product_id
        WHERE s.id IS NULL
    LOOP
        -- 生成默认SKU
        INSERT INTO public.ml_product_skus (
            product_id, 
            sku_code, 
            specifications, 
            price, 
            stock, 
            status
        ) VALUES (
            v_product.id,
            v_product.product_code || '-DEF',
            '{"默认": "标准规格"}',
            v_product.base_price,
            v_product.total_stock,
            1
        );
        
        v_count := v_count + 1;
    END LOOP;

    RAISE NOTICE '已为 % 个商品生成默认SKU', v_count;
END $$;
