-- =============================================================================
-- allbets_site_and_catalog_seed.sql — Onboard allBETs (AB2 Global) as a public
-- website + merch storefront inside ABOS's Web module, same shape as
-- seed_larcare_business_and_site.sql / larcare_store_products_seed.sql.
--
-- Uses the existing 'AB2 Global' business (tenant_id=1, businesses.id=4) rather
-- than creating a new one — confirmed via businesses table, no prior web site or
-- products existed for it.
--
-- Source of truth for the catalog: AllBets/catalog-raw.json (Shopify export,
-- 29 products). Shipping/COD config values match the design's stated rules
-- (Formwork Store.dc.html): standard $8 flat / free at $120+, express $18 flat,
-- COD $3 fee / $400 max / US only.
--
-- Stock quantities are a placeholder (50 units, no default variant) — the source
-- catalog has no real inventory counts. Adjust via the Store admin panel
-- (StoreProducts.tsx) once real stock levels are known.
--
-- Idempotent: every INSERT is guarded with WHERE NOT EXISTS against the natural
-- key, matching this repo's seed-file convention. Safe to re-run.
--
-- Deploy: mysql -u root -p db_abos_v0.1 < db/allbets_site_and_catalog_seed.sql
-- =============================================================================

SET @tenant_id := 1;
SET @business_id := 4; -- AB2 Global (see businesses table; tenant_id=1, matches LarCare's tenant)

-- ── 1. Site ──────────────────────────────────────────────────────────────────
INSERT INTO dim_web_sites (
    tenant_id, business_id, name, slug, primary_domain, public_site_key,
    default_locale, is_published,
    company_name, tagline, contact_phone, contact_email, address,
    social_links_json,
    standard_shipping_cents, free_shipping_threshold_cents, express_shipping_cents,
    cod_fee_cents, cod_max_order_cents, cod_countries_json,
    created_by, updated_by, is_deleted
)
SELECT
    @tenant_id, @business_id, 'allBETs', 'allbets', 'allbetsgo.com',
    REPLACE(UUID(), '-', ''),
    'en', 1,
    'All Bets LLC', 'The app where allBETs matter!', '+1 202-207-6775', 'shop@allbetsgo.com',
    'Washington, DC',
    JSON_OBJECT(),
    800, 12000, 1800,
    300, 40000, JSON_ARRAY('US'),
    NULL, NULL, 0
WHERE NOT EXISTS (
    SELECT 1 FROM dim_web_sites WHERE primary_domain = 'allbetsgo.com'
);

SET @site_id := (SELECT id FROM dim_web_sites WHERE primary_domain = 'allbetsgo.com' LIMIT 1);

-- ── 1b. Default warehouse ────────────────────────────────────────────────────
-- InventoryService.resolveDefaultWarehouseForSite requires a dim_warehouses row scoped to
-- (tenant_id, site_id) with is_default=1 (or a tenant-wide one with site_id NULL) before any
-- stock reservation/decrement can happen — confirmed by testing checkout live: without this,
-- PublicWebService.checkout() logs "No default warehouse... placed without a stock decrement"
-- and silently skips inventory tracking entirely (both ONLINE and COD). Tenant 1's only
-- existing default warehouse (id 3, "Main Warehouse") is scoped to LarCare's business/site, not
-- this one — dim_warehouses has no tenant-wide fallback either.
INSERT INTO dim_warehouses (tenant_id, business_id, site_id, name, code, is_default, is_active)
SELECT @tenant_id, @business_id, @site_id, 'allBETs Go Fulfillment', 'ALLBETS-MAIN', 1, 1
WHERE @site_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_warehouses WHERE tenant_id = @tenant_id AND site_id = @site_id AND is_default = 1 AND is_deleted = 0);

SET @warehouse_id := (SELECT id FROM dim_warehouses WHERE tenant_id = @tenant_id AND site_id = @site_id AND is_default = 1 AND is_deleted = 0 LIMIT 1);

-- ── 2. Catalog (dim_web_products + one variant per color, or one default variant) ──


-- ---- all:BETs Performance Tank Top ----
INSERT INTO dim_web_products (tenant_id, business_id, site_id, slug, name, description, images_json, status, category_key, currency, base_price, product_type, fabric, gender, age_group, sort_order)
SELECT @tenant_id, @business_id, @site_id, 'allbets-performance-tank-top', 'all:BETs Performance Tank Top',
  'all:BETs Performance Tank Top — allBETs Go merch.',
  JSON_ARRAY('https://cdn.shopify.com/s/files/1/0705/1883/3396/files/girl_tankkk_4.png?v=1779069358'), 'active', 'merch', 'USD', 30, 'PHYSICAL',
  NULL, 'Unisex', 'Adult', 1
WHERE @site_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_products WHERE site_id = @site_id AND slug = 'allbets-performance-tank-top');

SET @p1_id := (SELECT id FROM dim_web_products WHERE site_id = @site_id AND slug = 'allbets-performance-tank-top');

INSERT INTO dim_web_product_variants (tenant_id, business_id, site_id, product_id, sku, option_values_json, price, stock_qty, is_default, sort_order)
SELECT @tenant_id, @business_id, @site_id, @p1_id, 'ALLBETS_PERFORMANCE_TANK_BLACK', JSON_OBJECT('color', 'black'), 30, 50, 1, 1
WHERE @p1_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_product_variants WHERE product_id = @p1_id AND sku = 'ALLBETS_PERFORMANCE_TANK_BLACK');
INSERT INTO dim_web_product_variants (tenant_id, business_id, site_id, product_id, sku, option_values_json, price, stock_qty, is_default, sort_order)
SELECT @tenant_id, @business_id, @site_id, @p1_id, 'ALLBETS_PERFORMANCE_TANK_BUBBLEGUMPINK', JSON_OBJECT('color', 'bubblegum pink'), 30, 50, 0, 2
WHERE @p1_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_product_variants WHERE product_id = @p1_id AND sku = 'ALLBETS_PERFORMANCE_TANK_BUBBLEGUMPINK');
INSERT INTO dim_web_product_variants (tenant_id, business_id, site_id, product_id, sku, option_values_json, price, stock_qty, is_default, sort_order)
SELECT @tenant_id, @business_id, @site_id, @p1_id, 'ALLBETS_PERFORMANCE_TANK_NAVY', JSON_OBJECT('color', 'navy'), 30, 50, 0, 3
WHERE @p1_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_product_variants WHERE product_id = @p1_id AND sku = 'ALLBETS_PERFORMANCE_TANK_NAVY');
INSERT INTO dim_web_product_variants (tenant_id, business_id, site_id, product_id, sku, option_values_json, price, stock_qty, is_default, sort_order)
SELECT @tenant_id, @business_id, @site_id, @p1_id, 'ALLBETS_PERFORMANCE_TANK_WHITE', JSON_OBJECT('color', 'white'), 30, 50, 0, 4
WHERE @p1_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_product_variants WHERE product_id = @p1_id AND sku = 'ALLBETS_PERFORMANCE_TANK_WHITE');
INSERT INTO dim_web_product_variants (tenant_id, business_id, site_id, product_id, sku, option_values_json, price, stock_qty, is_default, sort_order)
SELECT @tenant_id, @business_id, @site_id, @p1_id, 'ALLBETS_PERFORMANCE_TANK_GOLDENYELLOW', JSON_OBJECT('color', 'golden yellow'), 30, 50, 0, 5
WHERE @p1_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_product_variants WHERE product_id = @p1_id AND sku = 'ALLBETS_PERFORMANCE_TANK_GOLDENYELLOW');
INSERT INTO dim_web_product_variants (tenant_id, business_id, site_id, product_id, sku, option_values_json, price, stock_qty, is_default, sort_order)
SELECT @tenant_id, @business_id, @site_id, @p1_id, 'ALLBETS_PERFORMANCE_TANK_GRAY', JSON_OBJECT('color', 'gray'), 30, 50, 0, 6
WHERE @p1_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_product_variants WHERE product_id = @p1_id AND sku = 'ALLBETS_PERFORMANCE_TANK_GRAY');
INSERT INTO dim_web_product_variants (tenant_id, business_id, site_id, product_id, sku, option_values_json, price, stock_qty, is_default, sort_order)
SELECT @tenant_id, @business_id, @site_id, @p1_id, 'ALLBETS_PERFORMANCE_TANK_SKYBLUE', JSON_OBJECT('color', 'sky blue'), 30, 50, 0, 7
WHERE @p1_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_product_variants WHERE product_id = @p1_id AND sku = 'ALLBETS_PERFORMANCE_TANK_SKYBLUE');
INSERT INTO dim_web_product_variants (tenant_id, business_id, site_id, product_id, sku, option_values_json, price, stock_qty, is_default, sort_order)
SELECT @tenant_id, @business_id, @site_id, @p1_id, 'ALLBETS_PERFORMANCE_TANK_GOLD', JSON_OBJECT('color', 'gold'), 30, 50, 0, 8
WHERE @p1_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_product_variants WHERE product_id = @p1_id AND sku = 'ALLBETS_PERFORMANCE_TANK_GOLD');
INSERT INTO dim_web_product_variants (tenant_id, business_id, site_id, product_id, sku, option_values_json, price, stock_qty, is_default, sort_order)
SELECT @tenant_id, @business_id, @site_id, @p1_id, 'ALLBETS_PERFORMANCE_TANK_GOLDEN', JSON_OBJECT('color', 'golden'), 30, 50, 0, 9
WHERE @p1_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_product_variants WHERE product_id = @p1_id AND sku = 'ALLBETS_PERFORMANCE_TANK_GOLDEN');

-- ---- all:BETs Performance Polo ----
INSERT INTO dim_web_products (tenant_id, business_id, site_id, slug, name, description, images_json, status, category_key, currency, base_price, product_type, fabric, gender, age_group, sort_order)
SELECT @tenant_id, @business_id, @site_id, 'allbets-performance-polo', 'all:BETs Performance Polo',
  'all:BETs Performance Polo — allBETs Go merch.',
  JSON_ARRAY('https://cdn.shopify.com/s/files/1/0705/1883/3396/files/manpolo.png?v=1779061956'), 'active', 'merch', 'USD', 35, 'PHYSICAL',
  'mesh', 'Men', 'Adult', 2
WHERE @site_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_products WHERE site_id = @site_id AND slug = 'allbets-performance-polo');

SET @p2_id := (SELECT id FROM dim_web_products WHERE site_id = @site_id AND slug = 'allbets-performance-polo');

INSERT INTO dim_web_product_variants (tenant_id, business_id, site_id, product_id, sku, option_values_json, price, stock_qty, is_default, sort_order)
SELECT @tenant_id, @business_id, @site_id, @p2_id, 'ALLBETS_PERFORMANCE_POLO_BLUE', JSON_OBJECT('color', 'blue'), 35, 50, 1, 1
WHERE @p2_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_product_variants WHERE product_id = @p2_id AND sku = 'ALLBETS_PERFORMANCE_POLO_BLUE');
INSERT INTO dim_web_product_variants (tenant_id, business_id, site_id, product_id, sku, option_values_json, price, stock_qty, is_default, sort_order)
SELECT @tenant_id, @business_id, @site_id, @p2_id, 'ALLBETS_PERFORMANCE_POLO_NAVY', JSON_OBJECT('color', 'navy'), 35, 50, 0, 2
WHERE @p2_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_product_variants WHERE product_id = @p2_id AND sku = 'ALLBETS_PERFORMANCE_POLO_NAVY');
INSERT INTO dim_web_product_variants (tenant_id, business_id, site_id, product_id, sku, option_values_json, price, stock_qty, is_default, sort_order)
SELECT @tenant_id, @business_id, @site_id, @p2_id, 'ALLBETS_PERFORMANCE_POLO_BLACK', JSON_OBJECT('color', 'black'), 35, 50, 0, 3
WHERE @p2_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_product_variants WHERE product_id = @p2_id AND sku = 'ALLBETS_PERFORMANCE_POLO_BLACK');
INSERT INTO dim_web_product_variants (tenant_id, business_id, site_id, product_id, sku, option_values_json, price, stock_qty, is_default, sort_order)
SELECT @tenant_id, @business_id, @site_id, @p2_id, 'ALLBETS_PERFORMANCE_POLO_RED', JSON_OBJECT('color', 'red'), 35, 50, 0, 4
WHERE @p2_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_product_variants WHERE product_id = @p2_id AND sku = 'ALLBETS_PERFORMANCE_POLO_RED');
INSERT INTO dim_web_product_variants (tenant_id, business_id, site_id, product_id, sku, option_values_json, price, stock_qty, is_default, sort_order)
SELECT @tenant_id, @business_id, @site_id, @p2_id, 'ALLBETS_PERFORMANCE_POLO_GREEN', JSON_OBJECT('color', 'green'), 35, 50, 0, 5
WHERE @p2_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_product_variants WHERE product_id = @p2_id AND sku = 'ALLBETS_PERFORMANCE_POLO_GREEN');
INSERT INTO dim_web_product_variants (tenant_id, business_id, site_id, product_id, sku, option_values_json, price, stock_qty, is_default, sort_order)
SELECT @tenant_id, @business_id, @site_id, @p2_id, 'ALLBETS_PERFORMANCE_POLO_WHITE', JSON_OBJECT('color', 'white'), 35, 50, 0, 6
WHERE @p2_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_product_variants WHERE product_id = @p2_id AND sku = 'ALLBETS_PERFORMANCE_POLO_WHITE');
INSERT INTO dim_web_product_variants (tenant_id, business_id, site_id, product_id, sku, option_values_json, price, stock_qty, is_default, sort_order)
SELECT @tenant_id, @business_id, @site_id, @p2_id, 'ALLBETS_PERFORMANCE_POLO_GRAY', JSON_OBJECT('color', 'gray'), 35, 50, 0, 7
WHERE @p2_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_product_variants WHERE product_id = @p2_id AND sku = 'ALLBETS_PERFORMANCE_POLO_GRAY');
INSERT INTO dim_web_product_variants (tenant_id, business_id, site_id, product_id, sku, option_values_json, price, stock_qty, is_default, sort_order)
SELECT @tenant_id, @business_id, @site_id, @p2_id, 'ALLBETS_PERFORMANCE_POLO_SKYBLUE', JSON_OBJECT('color', 'sky blue'), 35, 50, 0, 8
WHERE @p2_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_product_variants WHERE product_id = @p2_id AND sku = 'ALLBETS_PERFORMANCE_POLO_SKYBLUE');

-- ---- all:BETs Performance Tees ----
INSERT INTO dim_web_products (tenant_id, business_id, site_id, slug, name, description, images_json, status, category_key, currency, base_price, product_type, fabric, gender, age_group, sort_order)
SELECT @tenant_id, @business_id, @site_id, 'allbets-performance-tees', 'all:BETs Performance Tees',
  'all:BETs Performance Tees — allBETs Go merch.',
  JSON_ARRAY('https://cdn.shopify.com/s/files/1/0705/1883/3396/files/man_tees_2.png?v=1779063114'), 'active', 'merch', 'USD', 28, 'PHYSICAL',
  'mesh', 'Unisex', 'Adult', 3
WHERE @site_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_products WHERE site_id = @site_id AND slug = 'allbets-performance-tees');

SET @p3_id := (SELECT id FROM dim_web_products WHERE site_id = @site_id AND slug = 'allbets-performance-tees');

INSERT INTO dim_web_product_variants (tenant_id, business_id, site_id, product_id, sku, option_values_json, price, stock_qty, is_default, sort_order)
SELECT @tenant_id, @business_id, @site_id, @p3_id, 'ALLBETS_PERFORMANCE_TEES_GRAY', JSON_OBJECT('color', 'gray'), 28, 50, 1, 1
WHERE @p3_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_product_variants WHERE product_id = @p3_id AND sku = 'ALLBETS_PERFORMANCE_TEES_GRAY');
INSERT INTO dim_web_product_variants (tenant_id, business_id, site_id, product_id, sku, option_values_json, price, stock_qty, is_default, sort_order)
SELECT @tenant_id, @business_id, @site_id, @p3_id, 'ALLBETS_PERFORMANCE_TEES_WHITE', JSON_OBJECT('color', 'white'), 28, 50, 0, 2
WHERE @p3_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_product_variants WHERE product_id = @p3_id AND sku = 'ALLBETS_PERFORMANCE_TEES_WHITE');
INSERT INTO dim_web_product_variants (tenant_id, business_id, site_id, product_id, sku, option_values_json, price, stock_qty, is_default, sort_order)
SELECT @tenant_id, @business_id, @site_id, @p3_id, 'ALLBETS_PERFORMANCE_TEES_SKYBLUE', JSON_OBJECT('color', 'sky blue'), 28, 50, 0, 3
WHERE @p3_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_product_variants WHERE product_id = @p3_id AND sku = 'ALLBETS_PERFORMANCE_TEES_SKYBLUE');
INSERT INTO dim_web_product_variants (tenant_id, business_id, site_id, product_id, sku, option_values_json, price, stock_qty, is_default, sort_order)
SELECT @tenant_id, @business_id, @site_id, @p3_id, 'ALLBETS_PERFORMANCE_TEES_GREEN', JSON_OBJECT('color', 'green'), 28, 50, 0, 4
WHERE @p3_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_product_variants WHERE product_id = @p3_id AND sku = 'ALLBETS_PERFORMANCE_TEES_GREEN');
INSERT INTO dim_web_product_variants (tenant_id, business_id, site_id, product_id, sku, option_values_json, price, stock_qty, is_default, sort_order)
SELECT @tenant_id, @business_id, @site_id, @p3_id, 'ALLBETS_PERFORMANCE_TEES_BLUE', JSON_OBJECT('color', 'blue'), 28, 50, 0, 5
WHERE @p3_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_product_variants WHERE product_id = @p3_id AND sku = 'ALLBETS_PERFORMANCE_TEES_BLUE');
INSERT INTO dim_web_product_variants (tenant_id, business_id, site_id, product_id, sku, option_values_json, price, stock_qty, is_default, sort_order)
SELECT @tenant_id, @business_id, @site_id, @p3_id, 'ALLBETS_PERFORMANCE_TEES_RED', JSON_OBJECT('color', 'red'), 28, 50, 0, 6
WHERE @p3_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_product_variants WHERE product_id = @p3_id AND sku = 'ALLBETS_PERFORMANCE_TEES_RED');
INSERT INTO dim_web_product_variants (tenant_id, business_id, site_id, product_id, sku, option_values_json, price, stock_qty, is_default, sort_order)
SELECT @tenant_id, @business_id, @site_id, @p3_id, 'ALLBETS_PERFORMANCE_TEES_BLACK', JSON_OBJECT('color', 'black'), 28, 50, 0, 7
WHERE @p3_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_product_variants WHERE product_id = @p3_id AND sku = 'ALLBETS_PERFORMANCE_TEES_BLACK');
INSERT INTO dim_web_product_variants (tenant_id, business_id, site_id, product_id, sku, option_values_json, price, stock_qty, is_default, sort_order)
SELECT @tenant_id, @business_id, @site_id, @p3_id, 'ALLBETS_PERFORMANCE_TEES_NAVY', JSON_OBJECT('color', 'navy'), 28, 50, 0, 8
WHERE @p3_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_product_variants WHERE product_id = @p3_id AND sku = 'ALLBETS_PERFORMANCE_TEES_NAVY');

-- ---- all:BETs Athletic Shorts ----
INSERT INTO dim_web_products (tenant_id, business_id, site_id, slug, name, description, images_json, status, category_key, currency, base_price, product_type, fabric, gender, age_group, sort_order)
SELECT @tenant_id, @business_id, @site_id, 'allbets-athletic-shorts', 'all:BETs Athletic Shorts',
  'all:BETs Athletic Shorts — allBETs Go merch.',
  JSON_ARRAY('https://cdn.shopify.com/s/files/1/0705/1883/3396/files/teenshorts.png?v=1778679638'), 'active', 'merch', 'USD', 38, 'PHYSICAL',
  NULL, 'Men', 'Adult', 4
WHERE @site_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_products WHERE site_id = @site_id AND slug = 'allbets-athletic-shorts');

SET @p4_id := (SELECT id FROM dim_web_products WHERE site_id = @site_id AND slug = 'allbets-athletic-shorts');

INSERT INTO dim_web_product_variants (tenant_id, business_id, site_id, product_id, sku, option_values_json, price, stock_qty, is_default, sort_order)
SELECT @tenant_id, @business_id, @site_id, @p4_id, 'ALLBETS_ATHLETIC_SHORTS_RED', JSON_OBJECT('color', 'red'), 38, 50, 1, 1
WHERE @p4_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_product_variants WHERE product_id = @p4_id AND sku = 'ALLBETS_ATHLETIC_SHORTS_RED');
INSERT INTO dim_web_product_variants (tenant_id, business_id, site_id, product_id, sku, option_values_json, price, stock_qty, is_default, sort_order)
SELECT @tenant_id, @business_id, @site_id, @p4_id, 'ALLBETS_ATHLETIC_SHORTS_SAGEGREEN', JSON_OBJECT('color', 'sage green'), 38, 50, 0, 2
WHERE @p4_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_product_variants WHERE product_id = @p4_id AND sku = 'ALLBETS_ATHLETIC_SHORTS_SAGEGREEN');
INSERT INTO dim_web_product_variants (tenant_id, business_id, site_id, product_id, sku, option_values_json, price, stock_qty, is_default, sort_order)
SELECT @tenant_id, @business_id, @site_id, @p4_id, 'ALLBETS_ATHLETIC_SHORTS_STEELBLUE', JSON_OBJECT('color', 'steel blue'), 38, 50, 0, 3
WHERE @p4_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_product_variants WHERE product_id = @p4_id AND sku = 'ALLBETS_ATHLETIC_SHORTS_STEELBLUE');
INSERT INTO dim_web_product_variants (tenant_id, business_id, site_id, product_id, sku, option_values_json, price, stock_qty, is_default, sort_order)
SELECT @tenant_id, @business_id, @site_id, @p4_id, 'ALLBETS_ATHLETIC_SHORTS_BLUE', JSON_OBJECT('color', 'blue'), 38, 50, 0, 4
WHERE @p4_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_product_variants WHERE product_id = @p4_id AND sku = 'ALLBETS_ATHLETIC_SHORTS_BLUE');
INSERT INTO dim_web_product_variants (tenant_id, business_id, site_id, product_id, sku, option_values_json, price, stock_qty, is_default, sort_order)
SELECT @tenant_id, @business_id, @site_id, @p4_id, 'ALLBETS_ATHLETIC_SHORTS_GREY', JSON_OBJECT('color', 'grey'), 38, 50, 0, 5
WHERE @p4_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_product_variants WHERE product_id = @p4_id AND sku = 'ALLBETS_ATHLETIC_SHORTS_GREY');
INSERT INTO dim_web_product_variants (tenant_id, business_id, site_id, product_id, sku, option_values_json, price, stock_qty, is_default, sort_order)
SELECT @tenant_id, @business_id, @site_id, @p4_id, 'ALLBETS_ATHLETIC_SHORTS_BLACK', JSON_OBJECT('color', 'black'), 38, 50, 0, 6
WHERE @p4_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_product_variants WHERE product_id = @p4_id AND sku = 'ALLBETS_ATHLETIC_SHORTS_BLACK');
INSERT INTO dim_web_product_variants (tenant_id, business_id, site_id, product_id, sku, option_values_json, price, stock_qty, is_default, sort_order)
SELECT @tenant_id, @business_id, @site_id, @p4_id, 'ALLBETS_ATHLETIC_SHORTS_NAVY', JSON_OBJECT('color', 'navy'), 38, 50, 0, 7
WHERE @p4_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_product_variants WHERE product_id = @p4_id AND sku = 'ALLBETS_ATHLETIC_SHORTS_NAVY');

-- ---- all:BETs Performance Skirt ----
INSERT INTO dim_web_products (tenant_id, business_id, site_id, slug, name, description, images_json, status, category_key, currency, base_price, product_type, fabric, gender, age_group, sort_order)
SELECT @tenant_id, @business_id, @site_id, 'allbets-performance-skirt', 'all:BETs Performance Skirt',
  'all:BETs Performance Skirt — allBETs Go merch.',
  JSON_ARRAY('https://cdn.shopify.com/s/files/1/0705/1883/3396/files/whiteskirtTplay.png?v=1778600946'), 'active', 'merch', 'USD', 52, 'PHYSICAL',
  NULL, 'Unisex', 'Adult', 5
WHERE @site_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_products WHERE site_id = @site_id AND slug = 'allbets-performance-skirt');

SET @p5_id := (SELECT id FROM dim_web_products WHERE site_id = @site_id AND slug = 'allbets-performance-skirt');

INSERT INTO dim_web_product_variants (tenant_id, business_id, site_id, product_id, sku, option_values_json, price, stock_qty, is_default, sort_order)
SELECT @tenant_id, @business_id, @site_id, @p5_id, 'ALLBETS_PERFORMANCE_SKIR_WHITE', JSON_OBJECT('color', 'white'), 52, 50, 1, 1
WHERE @p5_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_product_variants WHERE product_id = @p5_id AND sku = 'ALLBETS_PERFORMANCE_SKIR_WHITE');
INSERT INTO dim_web_product_variants (tenant_id, business_id, site_id, product_id, sku, option_values_json, price, stock_qty, is_default, sort_order)
SELECT @tenant_id, @business_id, @site_id, @p5_id, 'ALLBETS_PERFORMANCE_SKIR_LAVENDER', JSON_OBJECT('color', 'lavender'), 52, 50, 0, 2
WHERE @p5_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_product_variants WHERE product_id = @p5_id AND sku = 'ALLBETS_PERFORMANCE_SKIR_LAVENDER');
INSERT INTO dim_web_product_variants (tenant_id, business_id, site_id, product_id, sku, option_values_json, price, stock_qty, is_default, sort_order)
SELECT @tenant_id, @business_id, @site_id, @p5_id, 'ALLBETS_PERFORMANCE_SKIR_MINTGREEN', JSON_OBJECT('color', 'mint green'), 52, 50, 0, 3
WHERE @p5_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_product_variants WHERE product_id = @p5_id AND sku = 'ALLBETS_PERFORMANCE_SKIR_MINTGREEN');
INSERT INTO dim_web_product_variants (tenant_id, business_id, site_id, product_id, sku, option_values_json, price, stock_qty, is_default, sort_order)
SELECT @tenant_id, @business_id, @site_id, @p5_id, 'ALLBETS_PERFORMANCE_SKIR_SKYBLUE', JSON_OBJECT('color', 'sky blue'), 52, 50, 0, 4
WHERE @p5_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_product_variants WHERE product_id = @p5_id AND sku = 'ALLBETS_PERFORMANCE_SKIR_SKYBLUE');
INSERT INTO dim_web_product_variants (tenant_id, business_id, site_id, product_id, sku, option_values_json, price, stock_qty, is_default, sort_order)
SELECT @tenant_id, @business_id, @site_id, @p5_id, 'ALLBETS_PERFORMANCE_SKIR_PINK', JSON_OBJECT('color', 'pink'), 52, 50, 0, 5
WHERE @p5_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_product_variants WHERE product_id = @p5_id AND sku = 'ALLBETS_PERFORMANCE_SKIR_PINK');
INSERT INTO dim_web_product_variants (tenant_id, business_id, site_id, product_id, sku, option_values_json, price, stock_qty, is_default, sort_order)
SELECT @tenant_id, @business_id, @site_id, @p5_id, 'ALLBETS_PERFORMANCE_SKIR_NAVY', JSON_OBJECT('color', 'navy'), 52, 50, 0, 6
WHERE @p5_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_product_variants WHERE product_id = @p5_id AND sku = 'ALLBETS_PERFORMANCE_SKIR_NAVY');
INSERT INTO dim_web_product_variants (tenant_id, business_id, site_id, product_id, sku, option_values_json, price, stock_qty, is_default, sort_order)
SELECT @tenant_id, @business_id, @site_id, @p5_id, 'ALLBETS_PERFORMANCE_SKIR_GOLDENYELLOW', JSON_OBJECT('color', 'golden yellow'), 52, 50, 0, 7
WHERE @p5_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_product_variants WHERE product_id = @p5_id AND sku = 'ALLBETS_PERFORMANCE_SKIR_GOLDENYELLOW');

-- ---- all:BETs Essential Fleece Hoodie ----
INSERT INTO dim_web_products (tenant_id, business_id, site_id, slug, name, description, images_json, status, category_key, currency, base_price, product_type, fabric, gender, age_group, sort_order)
SELECT @tenant_id, @business_id, @site_id, 'allbets-essential-fleece-hoodie', 'all:BETs Essential Fleece Hoodie',
  'all:BETs Essential Fleece Hoodie — allBETs Go merch.',
  JSON_ARRAY('https://cdn.shopify.com/s/files/1/0705/1883/3396/files/hoodiemsizechart_2.png?v=1778518426'), 'active', 'merch', 'USD', 65, 'PHYSICAL',
  'fleece', 'Unisex', 'Adult', 6
WHERE @site_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_products WHERE site_id = @site_id AND slug = 'allbets-essential-fleece-hoodie');

SET @p6_id := (SELECT id FROM dim_web_products WHERE site_id = @site_id AND slug = 'allbets-essential-fleece-hoodie');

INSERT INTO dim_web_product_variants (tenant_id, business_id, site_id, product_id, sku, option_values_json, price, stock_qty, is_default, sort_order)
SELECT @tenant_id, @business_id, @site_id, @p6_id, 'ALLBETS_ESSENTIAL_FLEECE_SILVER', JSON_OBJECT('color', 'silver'), 65, 50, 1, 1
WHERE @p6_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_product_variants WHERE product_id = @p6_id AND sku = 'ALLBETS_ESSENTIAL_FLEECE_SILVER');
INSERT INTO dim_web_product_variants (tenant_id, business_id, site_id, product_id, sku, option_values_json, price, stock_qty, is_default, sort_order)
SELECT @tenant_id, @business_id, @site_id, @p6_id, 'ALLBETS_ESSENTIAL_FLEECE_MAROON', JSON_OBJECT('color', 'maroon'), 65, 50, 0, 2
WHERE @p6_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_product_variants WHERE product_id = @p6_id AND sku = 'ALLBETS_ESSENTIAL_FLEECE_MAROON');
INSERT INTO dim_web_product_variants (tenant_id, business_id, site_id, product_id, sku, option_values_json, price, stock_qty, is_default, sort_order)
SELECT @tenant_id, @business_id, @site_id, @p6_id, 'ALLBETS_ESSENTIAL_FLEECE_GREEN', JSON_OBJECT('color', 'green'), 65, 50, 0, 3
WHERE @p6_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_product_variants WHERE product_id = @p6_id AND sku = 'ALLBETS_ESSENTIAL_FLEECE_GREEN');
INSERT INTO dim_web_product_variants (tenant_id, business_id, site_id, product_id, sku, option_values_json, price, stock_qty, is_default, sort_order)
SELECT @tenant_id, @business_id, @site_id, @p6_id, 'ALLBETS_ESSENTIAL_FLEECE_PINK', JSON_OBJECT('color', 'pink'), 65, 50, 0, 4
WHERE @p6_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_product_variants WHERE product_id = @p6_id AND sku = 'ALLBETS_ESSENTIAL_FLEECE_PINK');
INSERT INTO dim_web_product_variants (tenant_id, business_id, site_id, product_id, sku, option_values_json, price, stock_qty, is_default, sort_order)
SELECT @tenant_id, @business_id, @site_id, @p6_id, 'ALLBETS_ESSENTIAL_FLEECE_SKYBLUE', JSON_OBJECT('color', 'sky blue'), 65, 50, 0, 5
WHERE @p6_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_product_variants WHERE product_id = @p6_id AND sku = 'ALLBETS_ESSENTIAL_FLEECE_SKYBLUE');
INSERT INTO dim_web_product_variants (tenant_id, business_id, site_id, product_id, sku, option_values_json, price, stock_qty, is_default, sort_order)
SELECT @tenant_id, @business_id, @site_id, @p6_id, 'ALLBETS_ESSENTIAL_FLEECE_BEIGE', JSON_OBJECT('color', 'beige'), 65, 50, 0, 6
WHERE @p6_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_product_variants WHERE product_id = @p6_id AND sku = 'ALLBETS_ESSENTIAL_FLEECE_BEIGE');
INSERT INTO dim_web_product_variants (tenant_id, business_id, site_id, product_id, sku, option_values_json, price, stock_qty, is_default, sort_order)
SELECT @tenant_id, @business_id, @site_id, @p6_id, 'ALLBETS_ESSENTIAL_FLEECE_GREY', JSON_OBJECT('color', 'grey'), 65, 50, 0, 7
WHERE @p6_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_product_variants WHERE product_id = @p6_id AND sku = 'ALLBETS_ESSENTIAL_FLEECE_GREY');
INSERT INTO dim_web_product_variants (tenant_id, business_id, site_id, product_id, sku, option_values_json, price, stock_qty, is_default, sort_order)
SELECT @tenant_id, @business_id, @site_id, @p6_id, 'ALLBETS_ESSENTIAL_FLEECE_BLACK', JSON_OBJECT('color', 'black'), 65, 50, 0, 8
WHERE @p6_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_product_variants WHERE product_id = @p6_id AND sku = 'ALLBETS_ESSENTIAL_FLEECE_BLACK');
INSERT INTO dim_web_product_variants (tenant_id, business_id, site_id, product_id, sku, option_values_json, price, stock_qty, is_default, sort_order)
SELECT @tenant_id, @business_id, @site_id, @p6_id, 'ALLBETS_ESSENTIAL_FLEECE_NAVY', JSON_OBJECT('color', 'navy'), 65, 50, 0, 9
WHERE @p6_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_product_variants WHERE product_id = @p6_id AND sku = 'ALLBETS_ESSENTIAL_FLEECE_NAVY');
INSERT INTO dim_web_product_variants (tenant_id, business_id, site_id, product_id, sku, option_values_json, price, stock_qty, is_default, sort_order)
SELECT @tenant_id, @business_id, @site_id, @p6_id, 'ALLBETS_ESSENTIAL_FLEECE_RED', JSON_OBJECT('color', 'red'), 65, 50, 0, 10
WHERE @p6_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_product_variants WHERE product_id = @p6_id AND sku = 'ALLBETS_ESSENTIAL_FLEECE_RED');

-- ---- Performance Skirts Pro ----
INSERT INTO dim_web_products (tenant_id, business_id, site_id, slug, name, description, images_json, status, category_key, currency, base_price, product_type, fabric, gender, age_group, sort_order)
SELECT @tenant_id, @business_id, @site_id, 'performance-skirts-pro', 'Performance Skirts Pro',
  'Performance Skirts Pro — allBETs Go merch.',
  JSON_ARRAY('https://cdn.shopify.com/s/files/1/0705/1883/3396/files/allbets_performance_skirts_pro_goldenyellow_1.png?v=1777672490'), 'active', 'merch', 'USD', 75, 'PHYSICAL',
  NULL, 'Unisex', 'Adult', 7
WHERE @site_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_products WHERE site_id = @site_id AND slug = 'performance-skirts-pro');

SET @p7_id := (SELECT id FROM dim_web_products WHERE site_id = @site_id AND slug = 'performance-skirts-pro');

INSERT INTO dim_web_product_variants (tenant_id, business_id, site_id, product_id, sku, option_values_json, price, stock_qty, is_default, sort_order)
SELECT @tenant_id, @business_id, @site_id, @p7_id, 'PERFORMANCE_SKIRTS_PRO', JSON_OBJECT(), 75, 50, 1, 1
WHERE @p7_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_product_variants WHERE product_id = @p7_id AND sku = 'PERFORMANCE_SKIRTS_PRO');

-- ---- Performance Skirts ----
INSERT INTO dim_web_products (tenant_id, business_id, site_id, slug, name, description, images_json, status, category_key, currency, base_price, product_type, fabric, gender, age_group, sort_order)
SELECT @tenant_id, @business_id, @site_id, 'performance-skirts', 'Performance Skirts',
  'Performance Skirts — allBETs Go merch.',
  JSON_ARRAY('https://cdn.shopify.com/s/files/1/0705/1883/3396/files/allbets_performance_skirts_pro_mintgreen_6.png?v=1777670470'), 'active', 'merch', 'USD', 75, 'PHYSICAL',
  NULL, 'Unisex', 'Adult', 8
WHERE @site_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_products WHERE site_id = @site_id AND slug = 'performance-skirts');

SET @p8_id := (SELECT id FROM dim_web_products WHERE site_id = @site_id AND slug = 'performance-skirts');

INSERT INTO dim_web_product_variants (tenant_id, business_id, site_id, product_id, sku, option_values_json, price, stock_qty, is_default, sort_order)
SELECT @tenant_id, @business_id, @site_id, @p8_id, 'PERFORMANCE_SKIRTS_TEAL', JSON_OBJECT('color', 'teal'), 75, 50, 1, 1
WHERE @p8_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_product_variants WHERE product_id = @p8_id AND sku = 'PERFORMANCE_SKIRTS_TEAL');

-- ---- Paddles ----
INSERT INTO dim_web_products (tenant_id, business_id, site_id, slug, name, description, images_json, status, category_key, currency, base_price, product_type, fabric, gender, age_group, sort_order)
SELECT @tenant_id, @business_id, @site_id, 'paddles', 'Paddles',
  'Paddles — allBETs Go merch.',
  JSON_ARRAY('https://cdn.shopify.com/s/files/1/0705/1883/3396/files/pk_3.png?v=1776866994'), 'active', 'merch', 'USD', 109, 'PHYSICAL',
  NULL, NULL, NULL, 9
WHERE @site_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_products WHERE site_id = @site_id AND slug = 'paddles');

SET @p9_id := (SELECT id FROM dim_web_products WHERE site_id = @site_id AND slug = 'paddles');

INSERT INTO dim_web_product_variants (tenant_id, business_id, site_id, product_id, sku, option_values_json, price, stock_qty, is_default, sort_order)
SELECT @tenant_id, @business_id, @site_id, @p9_id, 'PADDLES', JSON_OBJECT(), 109, 50, 1, 1
WHERE @p9_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_product_variants WHERE product_id = @p9_id AND sku = 'PADDLES');

-- ---- Pickleball (Pack of 3) ----
INSERT INTO dim_web_products (tenant_id, business_id, site_id, slug, name, description, images_json, status, category_key, currency, base_price, product_type, fabric, gender, age_group, sort_order)
SELECT @tenant_id, @business_id, @site_id, 'pickleball-pack-of-3', 'Pickleball (Pack of 3)',
  'Pickleball (Pack of 3) — allBETs Go merch.',
  JSON_ARRAY('https://cdn.shopify.com/s/files/1/0705/1883/3396/files/pickball.png?v=1776867829'), 'active', 'merch', 'USD', 25, 'PHYSICAL',
  NULL, NULL, NULL, 10
WHERE @site_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_products WHERE site_id = @site_id AND slug = 'pickleball-pack-of-3');

SET @p10_id := (SELECT id FROM dim_web_products WHERE site_id = @site_id AND slug = 'pickleball-pack-of-3');

INSERT INTO dim_web_product_variants (tenant_id, business_id, site_id, product_id, sku, option_values_json, price, stock_qty, is_default, sort_order)
SELECT @tenant_id, @business_id, @site_id, @p10_id, 'PICKLEBALL_PACK_OF_3_GREEN', JSON_OBJECT('color', 'green'), 25, 50, 1, 1
WHERE @p10_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_product_variants WHERE product_id = @p10_id AND sku = 'PICKLEBALL_PACK_OF_3_GREEN');

-- ---- Paddles Pro ----
INSERT INTO dim_web_products (tenant_id, business_id, site_id, slug, name, description, images_json, status, category_key, currency, base_price, product_type, fabric, gender, age_group, sort_order)
SELECT @tenant_id, @business_id, @site_id, 'paddles-pro', 'Paddles Pro',
  'Paddles Pro — allBETs Go merch.',
  JSON_ARRAY('https://cdn.shopify.com/s/files/1/0705/1883/3396/files/pk.png?v=1776866993'), 'active', 'merch', 'USD', 129, 'PHYSICAL',
  NULL, NULL, NULL, 11
WHERE @site_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_products WHERE site_id = @site_id AND slug = 'paddles-pro');

SET @p11_id := (SELECT id FROM dim_web_products WHERE site_id = @site_id AND slug = 'paddles-pro');

INSERT INTO dim_web_product_variants (tenant_id, business_id, site_id, product_id, sku, option_values_json, price, stock_qty, is_default, sort_order)
SELECT @tenant_id, @business_id, @site_id, @p11_id, 'PADDLES_PRO', JSON_OBJECT(), 129, 50, 1, 1
WHERE @p11_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_product_variants WHERE product_id = @p11_id AND sku = 'PADDLES_PRO');

-- ---- Paddle Bags & Backpack ----
INSERT INTO dim_web_products (tenant_id, business_id, site_id, slug, name, description, images_json, status, category_key, currency, base_price, product_type, fabric, gender, age_group, sort_order)
SELECT @tenant_id, @business_id, @site_id, 'paddle-bags-backpack', 'Paddle Bags & Backpack',
  'Paddle Bags & Backpack — allBETs Go merch.',
  JSON_ARRAY('https://cdn.shopify.com/s/files/1/0705/1883/3396/files/bag.png?v=1776864970'), 'active', 'merch', 'USD', 75, 'PHYSICAL',
  NULL, NULL, 'Adult', 12
WHERE @site_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_products WHERE site_id = @site_id AND slug = 'paddle-bags-backpack');

SET @p12_id := (SELECT id FROM dim_web_products WHERE site_id = @site_id AND slug = 'paddle-bags-backpack');

INSERT INTO dim_web_product_variants (tenant_id, business_id, site_id, product_id, sku, option_values_json, price, stock_qty, is_default, sort_order)
SELECT @tenant_id, @business_id, @site_id, @p12_id, 'PADDLE_BAGS_BACKPACK_BLUE', JSON_OBJECT('color', 'blue'), 75, 50, 1, 1
WHERE @p12_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_product_variants WHERE product_id = @p12_id AND sku = 'PADDLE_BAGS_BACKPACK_BLUE');

-- ---- Athletic Shorts ----
INSERT INTO dim_web_products (tenant_id, business_id, site_id, slug, name, description, images_json, status, category_key, currency, base_price, product_type, fabric, gender, age_group, sort_order)
SELECT @tenant_id, @business_id, @site_id, 'athletic-shorts', 'Athletic Shorts',
  'Athletic Shorts — allBETs Go merch.',
  JSON_ARRAY('https://cdn.shopify.com/s/files/1/0705/1883/3396/files/shorts.png?v=1776864514'), 'active', 'merch', 'USD', 55, 'PHYSICAL',
  NULL, 'Unisex', 'Adult', 13
WHERE @site_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_products WHERE site_id = @site_id AND slug = 'athletic-shorts');

SET @p13_id := (SELECT id FROM dim_web_products WHERE site_id = @site_id AND slug = 'athletic-shorts');

INSERT INTO dim_web_product_variants (tenant_id, business_id, site_id, product_id, sku, option_values_json, price, stock_qty, is_default, sort_order)
SELECT @tenant_id, @business_id, @site_id, @p13_id, 'ATHLETIC_SHORTS_BLUE', JSON_OBJECT('color', 'blue'), 55, 50, 1, 1
WHERE @p13_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_product_variants WHERE product_id = @p13_id AND sku = 'ATHLETIC_SHORTS_BLUE');

-- ---- Performance Tank Tops ----
INSERT INTO dim_web_products (tenant_id, business_id, site_id, slug, name, description, images_json, status, category_key, currency, base_price, product_type, fabric, gender, age_group, sort_order)
SELECT @tenant_id, @business_id, @site_id, 'performance-tank-tops', 'Performance Tank Tops',
  'Performance Tank Tops — allBETs Go merch.',
  JSON_ARRAY('https://cdn.shopify.com/s/files/1/0705/1883/3396/files/tanks.png?v=1776864200'), 'active', 'merch', 'USD', 45, 'PHYSICAL',
  'synthetic', 'Unisex', 'Adult', 14
WHERE @site_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_products WHERE site_id = @site_id AND slug = 'performance-tank-tops');

SET @p14_id := (SELECT id FROM dim_web_products WHERE site_id = @site_id AND slug = 'performance-tank-tops');

INSERT INTO dim_web_product_variants (tenant_id, business_id, site_id, product_id, sku, option_values_json, price, stock_qty, is_default, sort_order)
SELECT @tenant_id, @business_id, @site_id, @p14_id, 'PERFORMANCE_TANK_TOPS', JSON_OBJECT(), 45, 50, 1, 1
WHERE @p14_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_product_variants WHERE product_id = @p14_id AND sku = 'PERFORMANCE_TANK_TOPS');

-- ---- Paddle Cleaner ----
INSERT INTO dim_web_products (tenant_id, business_id, site_id, slug, name, description, images_json, status, category_key, currency, base_price, product_type, fabric, gender, age_group, sort_order)
SELECT @tenant_id, @business_id, @site_id, 'paddle-cleaner', 'Paddle Cleaner',
  'Paddle Cleaner — allBETs Go merch.',
  JSON_ARRAY('https://cdn.shopify.com/s/files/1/0705/1883/3396/files/paddlecleaner.png?v=1776863957'), 'active', 'merch', 'USD', 20, 'PHYSICAL',
  NULL, NULL, NULL, 15
WHERE @site_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_products WHERE site_id = @site_id AND slug = 'paddle-cleaner');

SET @p15_id := (SELECT id FROM dim_web_products WHERE site_id = @site_id AND slug = 'paddle-cleaner');

INSERT INTO dim_web_product_variants (tenant_id, business_id, site_id, product_id, sku, option_values_json, price, stock_qty, is_default, sort_order)
SELECT @tenant_id, @business_id, @site_id, @p15_id, 'PADDLE_CLEANER', JSON_OBJECT(), 20, 50, 1, 1
WHERE @p15_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_product_variants WHERE product_id = @p15_id AND sku = 'PADDLE_CLEANER');

-- ---- Bottles / Tumblers ----
INSERT INTO dim_web_products (tenant_id, business_id, site_id, slug, name, description, images_json, status, category_key, currency, base_price, product_type, fabric, gender, age_group, sort_order)
SELECT @tenant_id, @business_id, @site_id, 'bottles-tumblers', 'Bottles / Tumblers',
  'Bottles / Tumblers — allBETs Go merch.',
  JSON_ARRAY('https://cdn.shopify.com/s/files/1/0705/1883/3396/files/tumbler.png?v=1776863734'), 'active', 'merch', 'USD', 40, 'PHYSICAL',
  NULL, NULL, NULL, 16
WHERE @site_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_products WHERE site_id = @site_id AND slug = 'bottles-tumblers');

SET @p16_id := (SELECT id FROM dim_web_products WHERE site_id = @site_id AND slug = 'bottles-tumblers');

INSERT INTO dim_web_product_variants (tenant_id, business_id, site_id, product_id, sku, option_values_json, price, stock_qty, is_default, sort_order)
SELECT @tenant_id, @business_id, @site_id, @p16_id, 'BOTTLES_TUMBLERS', JSON_OBJECT(), 40, 50, 1, 1
WHERE @p16_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_product_variants WHERE product_id = @p16_id AND sku = 'BOTTLES_TUMBLERS');

-- ---- Polos ----
INSERT INTO dim_web_products (tenant_id, business_id, site_id, slug, name, description, images_json, status, category_key, currency, base_price, product_type, fabric, gender, age_group, sort_order)
SELECT @tenant_id, @business_id, @site_id, 'polos', 'Polos',
  'Polos — allBETs Go merch.',
  JSON_ARRAY('https://cdn.shopify.com/s/files/1/0705/1883/3396/files/polo.png?v=1776863564'), 'active', 'merch', 'USD', 55, 'PHYSICAL',
  'cotton', 'Unisex', 'Adult', 17
WHERE @site_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_products WHERE site_id = @site_id AND slug = 'polos');

SET @p17_id := (SELECT id FROM dim_web_products WHERE site_id = @site_id AND slug = 'polos');

INSERT INTO dim_web_product_variants (tenant_id, business_id, site_id, product_id, sku, option_values_json, price, stock_qty, is_default, sort_order)
SELECT @tenant_id, @business_id, @site_id, @p17_id, 'POLOS_WHITE', JSON_OBJECT('color', 'white'), 55, 50, 1, 1
WHERE @p17_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_product_variants WHERE product_id = @p17_id AND sku = 'POLOS_WHITE');

-- ---- T-Shirt ----
INSERT INTO dim_web_products (tenant_id, business_id, site_id, slug, name, description, images_json, status, category_key, currency, base_price, product_type, fabric, gender, age_group, sort_order)
SELECT @tenant_id, @business_id, @site_id, 't-shirt', 'T-Shirt',
  'T-Shirt — allBETs Go merch.',
  JSON_ARRAY('https://cdn.shopify.com/s/files/1/0705/1883/3396/files/tshirt.png?v=1776862938'), 'active', 'merch', 'USD', 40, 'PHYSICAL',
  'synthetic', 'Unisex', 'Adult', 18
WHERE @site_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_products WHERE site_id = @site_id AND slug = 't-shirt');

SET @p18_id := (SELECT id FROM dim_web_products WHERE site_id = @site_id AND slug = 't-shirt');

INSERT INTO dim_web_product_variants (tenant_id, business_id, site_id, product_id, sku, option_values_json, price, stock_qty, is_default, sort_order)
SELECT @tenant_id, @business_id, @site_id, @p18_id, 'T_SHIRT', JSON_OBJECT(), 40, 50, 1, 1
WHERE @p18_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_product_variants WHERE product_id = @p18_id AND sku = 'T_SHIRT');

-- ---- Hats ----
INSERT INTO dim_web_products (tenant_id, business_id, site_id, slug, name, description, images_json, status, category_key, currency, base_price, product_type, fabric, gender, age_group, sort_order)
SELECT @tenant_id, @business_id, @site_id, 'hats', 'Hats',
  'Hats — allBETs Go merch.',
  JSON_ARRAY('https://cdn.shopify.com/s/files/1/0705/1883/3396/files/hats.png?v=1776862557'), 'active', 'merch', 'USD', 40, 'PHYSICAL',
  'faux-leather', 'Unisex', 'Adult', 19
WHERE @site_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_products WHERE site_id = @site_id AND slug = 'hats');

SET @p19_id := (SELECT id FROM dim_web_products WHERE site_id = @site_id AND slug = 'hats');

INSERT INTO dim_web_product_variants (tenant_id, business_id, site_id, product_id, sku, option_values_json, price, stock_qty, is_default, sort_order)
SELECT @tenant_id, @business_id, @site_id, @p19_id, 'HATS_NAVY', JSON_OBJECT('color', 'navy'), 40, 50, 1, 1
WHERE @p19_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_product_variants WHERE product_id = @p19_id AND sku = 'HATS_NAVY');

-- ---- Hoodies ----
INSERT INTO dim_web_products (tenant_id, business_id, site_id, slug, name, description, images_json, status, category_key, currency, base_price, product_type, fabric, gender, age_group, sort_order)
SELECT @tenant_id, @business_id, @site_id, 'hoodies', 'Hoodies',
  'Hoodies — allBETs Go merch.',
  JSON_ARRAY('https://cdn.shopify.com/s/files/1/0705/1883/3396/files/hoodie.png?v=1776861885'), 'active', 'merch', 'USD', 95, 'PHYSICAL',
  'fleece', 'Unisex', 'Adult', 20
WHERE @site_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_products WHERE site_id = @site_id AND slug = 'hoodies');

SET @p20_id := (SELECT id FROM dim_web_products WHERE site_id = @site_id AND slug = 'hoodies');

INSERT INTO dim_web_product_variants (tenant_id, business_id, site_id, product_id, sku, option_values_json, price, stock_qty, is_default, sort_order)
SELECT @tenant_id, @business_id, @site_id, @p20_id, 'HOODIES_NAVY', JSON_OBJECT('color', 'navy'), 95, 50, 1, 1
WHERE @p20_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_product_variants WHERE product_id = @p20_id AND sku = 'HOODIES_NAVY');

-- ---- allBETs Plastic Cups ----
INSERT INTO dim_web_products (tenant_id, business_id, site_id, slug, name, description, images_json, status, category_key, currency, base_price, product_type, fabric, gender, age_group, sort_order)
SELECT @tenant_id, @business_id, @site_id, 'allbets-plastic-cups', 'allBETs Plastic Cups',
  'allBETs Plastic Cups — allBETs Go merch.',
  JSON_ARRAY('https://cdn.shopify.com/s/files/1/0705/1883/3396/files/soloplasticcup2.jpg?v=1719603558'), 'active', 'merch', 'USD', 30.99, 'PHYSICAL',
  NULL, NULL, NULL, 21
WHERE @site_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_products WHERE site_id = @site_id AND slug = 'allbets-plastic-cups');

SET @p21_id := (SELECT id FROM dim_web_products WHERE site_id = @site_id AND slug = 'allbets-plastic-cups');

INSERT INTO dim_web_product_variants (tenant_id, business_id, site_id, product_id, sku, option_values_json, price, stock_qty, is_default, sort_order)
SELECT @tenant_id, @business_id, @site_id, @p21_id, 'ALLBETS_PLASTIC_CUPS_WHITE', JSON_OBJECT('color', 'white'), 30.99, 50, 1, 1
WHERE @p21_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_product_variants WHERE product_id = @p21_id AND sku = 'ALLBETS_PLASTIC_CUPS_WHITE');

-- ---- allBETs Collectible Set ----
INSERT INTO dim_web_products (tenant_id, business_id, site_id, slug, name, description, images_json, status, category_key, currency, base_price, product_type, fabric, gender, age_group, sort_order)
SELECT @tenant_id, @business_id, @site_id, 'allbets-collectible-set', 'allBETs Collectible Set',
  'allBETs Collectible Set — allBETs Go merch.',
  JSON_ARRAY('https://cdn.shopify.com/s/files/1/0705/1883/3396/files/allbetst-shirtandhandbagwhite.jpg?v=1719603237'), 'active', 'merch', 'USD', 49.99, 'PHYSICAL',
  NULL, NULL, NULL, 22
WHERE @site_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_products WHERE site_id = @site_id AND slug = 'allbets-collectible-set');

SET @p22_id := (SELECT id FROM dim_web_products WHERE site_id = @site_id AND slug = 'allbets-collectible-set');

INSERT INTO dim_web_product_variants (tenant_id, business_id, site_id, product_id, sku, option_values_json, price, stock_qty, is_default, sort_order)
SELECT @tenant_id, @business_id, @site_id, @p22_id, 'ALLBETS_COLLECTIBLE_SET', JSON_OBJECT(), 49.99, 50, 1, 1
WHERE @p22_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_product_variants WHERE product_id = @p22_id AND sku = 'ALLBETS_COLLECTIBLE_SET');

-- ---- allBETs Playing Cards ----
INSERT INTO dim_web_products (tenant_id, business_id, site_id, slug, name, description, images_json, status, category_key, currency, base_price, product_type, fabric, gender, age_group, sort_order)
SELECT @tenant_id, @business_id, @site_id, 'allbets-playing-cards', 'allBETs Playing Cards',
  'allBETs Playing Cards — allBETs Go merch.',
  JSON_ARRAY('https://cdn.shopify.com/s/files/1/0705/1883/3396/files/allbetsplayingcardswhite.jpg?v=1719602948'), 'active', 'merch', 'USD', 9.49, 'PHYSICAL',
  NULL, NULL, NULL, 23
WHERE @site_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_products WHERE site_id = @site_id AND slug = 'allbets-playing-cards');

SET @p23_id := (SELECT id FROM dim_web_products WHERE site_id = @site_id AND slug = 'allbets-playing-cards');

INSERT INTO dim_web_product_variants (tenant_id, business_id, site_id, product_id, sku, option_values_json, price, stock_qty, is_default, sort_order)
SELECT @tenant_id, @business_id, @site_id, @p23_id, 'ALLBETS_PLAYING_CARDS_WHITE', JSON_OBJECT('color', 'white'), 9.49, 50, 1, 1
WHERE @p23_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_product_variants WHERE product_id = @p23_id AND sku = 'ALLBETS_PLAYING_CARDS_WHITE');

-- ---- allBETs Ping Pong ----
INSERT INTO dim_web_products (tenant_id, business_id, site_id, slug, name, description, images_json, status, category_key, currency, base_price, product_type, fabric, gender, age_group, sort_order)
SELECT @tenant_id, @business_id, @site_id, 'allbets-ping-pong', 'allBETs Ping Pong',
  'allBETs Ping Pong — allBETs Go merch.',
  JSON_ARRAY('https://cdn.shopify.com/s/files/1/0705/1883/3396/files/allbetspinkpongtealandyellow.jpg?v=1719602801'), 'active', 'merch', 'USD', 49.99, 'PHYSICAL',
  NULL, NULL, NULL, 24
WHERE @site_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_products WHERE site_id = @site_id AND slug = 'allbets-ping-pong');

SET @p24_id := (SELECT id FROM dim_web_products WHERE site_id = @site_id AND slug = 'allbets-ping-pong');

INSERT INTO dim_web_product_variants (tenant_id, business_id, site_id, product_id, sku, option_values_json, price, stock_qty, is_default, sort_order)
SELECT @tenant_id, @business_id, @site_id, @p24_id, 'ALLBETS_PING_PONG_WHITE', JSON_OBJECT('color', 'white'), 49.99, 50, 1, 1
WHERE @p24_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_product_variants WHERE product_id = @p24_id AND sku = 'ALLBETS_PING_PONG_WHITE');

-- ---- allBETs Pickleball ----
INSERT INTO dim_web_products (tenant_id, business_id, site_id, slug, name, description, images_json, status, category_key, currency, base_price, product_type, fabric, gender, age_group, sort_order)
SELECT @tenant_id, @business_id, @site_id, 'allbets-pickleball', 'allBETs Pickleball',
  'allBETs Pickleball — allBETs Go merch.',
  JSON_ARRAY('https://cdn.shopify.com/s/files/1/0705/1883/3396/files/allbetspickleballpinkwood.jpg?v=1719406118'), 'active', 'merch', 'USD', 0, 'PHYSICAL',
  NULL, NULL, NULL, 25
WHERE @site_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_products WHERE site_id = @site_id AND slug = 'allbets-pickleball');

SET @p25_id := (SELECT id FROM dim_web_products WHERE site_id = @site_id AND slug = 'allbets-pickleball');

INSERT INTO dim_web_product_variants (tenant_id, business_id, site_id, product_id, sku, option_values_json, price, stock_qty, is_default, sort_order)
SELECT @tenant_id, @business_id, @site_id, @p25_id, 'ALLBETS_PICKLEBALL_BLUE', JSON_OBJECT('color', 'blue'), 0, 50, 1, 1
WHERE @p25_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_product_variants WHERE product_id = @p25_id AND sku = 'ALLBETS_PICKLEBALL_BLUE');

-- ---- allBETs Coffee Cup ----
INSERT INTO dim_web_products (tenant_id, business_id, site_id, slug, name, description, images_json, status, category_key, currency, base_price, product_type, fabric, gender, age_group, sort_order)
SELECT @tenant_id, @business_id, @site_id, 'allbets-coffee-cup', 'allBETs Coffee Cup',
  'allBETs Coffee Cup — allBETs Go merch.',
  JSON_ARRAY('https://cdn.shopify.com/s/files/1/0705/1883/3396/files/allbetscoffeecupimageexample.jpg?v=1719405248'), 'active', 'merch', 'USD', 24, 'PHYSICAL',
  NULL, NULL, NULL, 26
WHERE @site_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_products WHERE site_id = @site_id AND slug = 'allbets-coffee-cup');

SET @p26_id := (SELECT id FROM dim_web_products WHERE site_id = @site_id AND slug = 'allbets-coffee-cup');

INSERT INTO dim_web_product_variants (tenant_id, business_id, site_id, product_id, sku, option_values_json, price, stock_qty, is_default, sort_order)
SELECT @tenant_id, @business_id, @site_id, @p26_id, 'ALLBETS_COFFEE_CUP_BLUE', JSON_OBJECT('color', 'blue'), 24, 50, 1, 1
WHERE @p26_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_product_variants WHERE product_id = @p26_id AND sku = 'ALLBETS_COFFEE_CUP_BLUE');

-- ---- allBETs Clear Shot Glasses Set ----
INSERT INTO dim_web_products (tenant_id, business_id, site_id, slug, name, description, images_json, status, category_key, currency, base_price, product_type, fabric, gender, age_group, sort_order)
SELECT @tenant_id, @business_id, @site_id, 'allbets-clear-shot-glasses-set', 'allBETs Clear Shot Glasses Set',
  'allBETs Clear Shot Glasses Set — allBETs Go merch.',
  JSON_ARRAY('https://cdn.shopify.com/s/files/1/0705/1883/3396/files/allbetsclearshotglasses.jpg?v=1719404829'), 'active', 'merch', 'USD', 40, 'PHYSICAL',
  NULL, NULL, NULL, 27
WHERE @site_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_products WHERE site_id = @site_id AND slug = 'allbets-clear-shot-glasses-set');

SET @p27_id := (SELECT id FROM dim_web_products WHERE site_id = @site_id AND slug = 'allbets-clear-shot-glasses-set');

INSERT INTO dim_web_product_variants (tenant_id, business_id, site_id, product_id, sku, option_values_json, price, stock_qty, is_default, sort_order)
SELECT @tenant_id, @business_id, @site_id, @p27_id, 'ALLBETS_CLEAR_SHOT_GLASS', JSON_OBJECT(), 40, 50, 1, 1
WHERE @p27_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_product_variants WHERE product_id = @p27_id AND sku = 'ALLBETS_CLEAR_SHOT_GLASS');

-- ---- allBETs Dice ----
INSERT INTO dim_web_products (tenant_id, business_id, site_id, slug, name, description, images_json, status, category_key, currency, base_price, product_type, fabric, gender, age_group, sort_order)
SELECT @tenant_id, @business_id, @site_id, 'allbets-dice', 'allBETs Dice',
  'allBETs Dice — allBETs Go merch.',
  JSON_ARRAY('https://cdn.shopify.com/s/files/1/0705/1883/3396/files/allbetsbluedice.jpg?v=1719404396'), 'active', 'merch', 'USD', 2, 'PHYSICAL',
  NULL, NULL, NULL, 28
WHERE @site_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_products WHERE site_id = @site_id AND slug = 'allbets-dice');

SET @p28_id := (SELECT id FROM dim_web_products WHERE site_id = @site_id AND slug = 'allbets-dice');

INSERT INTO dim_web_product_variants (tenant_id, business_id, site_id, product_id, sku, option_values_json, price, stock_qty, is_default, sort_order)
SELECT @tenant_id, @business_id, @site_id, @p28_id, 'ALLBETS_DICE_BLUE', JSON_OBJECT('color', 'blue'), 2, 50, 1, 1
WHERE @p28_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_product_variants WHERE product_id = @p28_id AND sku = 'ALLBETS_DICE_BLUE');

-- ---- allBETs Baseball Cap ----
INSERT INTO dim_web_products (tenant_id, business_id, site_id, slug, name, description, images_json, status, category_key, currency, base_price, product_type, fabric, gender, age_group, sort_order)
SELECT @tenant_id, @business_id, @site_id, 'allbets-baseball-cap', 'allBETs Baseball Cap',
  'allBETs Baseball Cap — allBETs Go merch.',
  JSON_ARRAY('https://cdn.shopify.com/s/files/1/0705/1883/3396/files/allbetsbaseballcapteal.jpg?v=1719404032'), 'active', 'merch', 'USD', 19.12, 'PHYSICAL',
  NULL, NULL, NULL, 29
WHERE @site_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_products WHERE site_id = @site_id AND slug = 'allbets-baseball-cap');

SET @p29_id := (SELECT id FROM dim_web_products WHERE site_id = @site_id AND slug = 'allbets-baseball-cap');

INSERT INTO dim_web_product_variants (tenant_id, business_id, site_id, product_id, sku, option_values_json, price, stock_qty, is_default, sort_order)
SELECT @tenant_id, @business_id, @site_id, @p29_id, 'ALLBETS_BASEBALL_CAP_TEAL', JSON_OBJECT('color', 'teal'), 19.12, 50, 1, 1
WHERE @p29_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM dim_web_product_variants WHERE product_id = @p29_id AND sku = 'ALLBETS_BASEBALL_CAP_TEAL');

-- ── 3. Inventory bridge (so the new warehouse actually has stock to sell) ─────
-- Every dim_web_product_variants row above sets stock_qty=50 as a cached display value, but
-- that column is only ever a rollup FROM fact_inventory_stock (InventoryService.syncVariantStockCache)
-- — it is not itself the source of truth. Creating the warehouse above without also seeding real
-- on-hand stock would make checkout FAIL (InventoryService.reserveStock treats a variant with no
-- fact_inventory_stock row as 0 available, so the very first order would throw "Insufficient
-- available stock") instead of merely skipping tracking as it did with no warehouse at all —
-- confirmed by tracing reserveStock's fallback-to-zero logic before writing this section.
-- Bridges every variant → dim_inventory_items (item_kind=WEB_VARIANT, matching
-- InventoryService.resolveOrCreateInventoryItemForVariant's own shape), seeds
-- fact_inventory_stock at 50 on-hand per variant (matching the cached stock_qty seeded above),
-- and records the matching fact_inventory_movements RECEIPT row per the "on-hand only changes
-- alongside a movement row" convention documented on that table.
INSERT INTO dim_inventory_items (tenant_id, business_id, sku, name, item_kind, linked_variant_id, reorder_point)
SELECT v.tenant_id, v.business_id, v.sku, CONCAT(p.name, ' — ', v.sku), 'WEB_VARIANT', v.id, 0
FROM dim_web_product_variants v
JOIN dim_web_products p ON v.product_id = p.id
WHERE v.site_id = @site_id AND v.is_deleted = 0
  AND NOT EXISTS (SELECT 1 FROM dim_inventory_items ii WHERE ii.linked_variant_id = v.id);

INSERT INTO fact_inventory_stock (tenant_id, warehouse_id, inventory_item_id, quantity_on_hand, quantity_reserved)
SELECT v.tenant_id, @warehouse_id, ii.id, v.stock_qty, 0
FROM dim_web_product_variants v
JOIN dim_inventory_items ii ON ii.linked_variant_id = v.id
WHERE v.site_id = @site_id AND v.is_deleted = 0 AND @warehouse_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM fact_inventory_stock fs WHERE fs.warehouse_id = @warehouse_id AND fs.inventory_item_id = ii.id);

INSERT INTO fact_inventory_movements (tenant_id, warehouse_id, inventory_item_id, movement_type, quantity_delta, reference_type, notes)
SELECT v.tenant_id, @warehouse_id, ii.id, 'RECEIPT', v.stock_qty, 'SEED', 'Initial stock — allbets_site_and_catalog_seed.sql'
FROM dim_web_product_variants v
JOIN dim_inventory_items ii ON ii.linked_variant_id = v.id
WHERE v.site_id = @site_id AND v.is_deleted = 0 AND @warehouse_id IS NOT NULL
  AND NOT EXISTS (
    SELECT 1 FROM fact_inventory_movements fm
    WHERE fm.warehouse_id = @warehouse_id AND fm.inventory_item_id = ii.id AND fm.reference_type = 'SEED'
  );
