-- Migration 063 — Sophos XGS 6500 + Zyxel XS3800-28 URL fix
--
-- Sophos: images.contentstack.io Contentstack CDN (official Sophos CMS).
--   xgs-107w-136-2300-4500-6500-front.png: verified HTTP 200 PNG (2026-04-21).
--   Note: filename explicitly includes "6500" — this is the XGS 6500 product image.
--   CS210-48FP: no publicly accessible product image found on Sophos CDN.
--
-- Zyxel XS3800-28 fix: migration 061 used xs3800-28/img_xs3800-28_p_cover.jpg which
--   returns 403 on curl (Zyxel CDN bot-protection). Updated to the Banner/hero path
--   in the parent xs3800/ directory, which returns HTTP 200 PNG (2026-04-21).

-- ── Sophos ────────────────────────────────────────────────────────────────────

-- XGS 6500 — high-performance next-gen firewall / network security appliance
-- Image shows XGS 107w/136/2300/4500/6500 front panel family shot.
UPDATE switches
SET image_url        = 'https://images.contentstack.io/v3/assets/blt38f1f401b66100ad/bltdedd0b72748be54b/69b0d8d7c52c3d0008cb63e3/xgs-107w-136-2300-4500-6500-front.png',
    product_page_url = COALESCE(product_page_url, 'https://www.sophos.com/en-us/products/next-gen-firewall'),
    assets_scraped_at = NOW()
WHERE model = 'XGS 6500'
  AND vendor_id = (SELECT id FROM vendors WHERE slug = 'sophos');

-- ── Zyxel XS3800-28 (URL fix) ─────────────────────────────────────────────────

-- XS3800-28 — 28×10G L2/L3 aggregation switch
-- Replaces migration 061 URL (xs3800-28/img_xs3800-28_p_cover.jpg → 403 on curl).
-- Banner/hero path in parent xs3800/ directory returns HTTP 200 PNG.
UPDATE switches
SET image_url        = 'https://www.zyxel.com/library/assets/products/xs3800/XS3800-28-Banner_product_hero.png',
    assets_scraped_at = NOW()
WHERE model = 'XS3800-28'
  AND vendor_id = (SELECT id FROM vendors WHERE slug = 'zyxel');
