60783131ae
Deploy to route.crispygoat.com / deploy (push) Failing after 1m27s
Hero video at /videos/tuxedo-hero.mp4 was hardcoded and 404ing, leaving the page with no background. * Add brand_settings.hero_video_url (migration 0099) so each brand can point its hero at any reachable mp4/webm without code changes. Saves via a separate UPDATE so the existing 32-param upsert_brand_settings RPC signature stays untouched. * TuxedoVideoHero now accepts videoUrl + posterUrl. Poster renders underneath the <video> element via next/image so the hero is complete even without a video. <video> flips a data-failed attribute on error/stall so the poster takes over without DOM churn. Ambient float animations slowed 950ms → 7s/8s. * Why section: dropped emerald/amber kaleidoscope, unified accent. Footer is now a provenance strip (Family-Grown · 5,360 ft · Est 1982). * Story section: removed giant decorative 'SINCE' parallax text and the duplicate stats counter (already in hero). Replaced with a 1982/2003/Today timeline.
20 lines
939 B
SQL
20 lines
939 B
SQL
-- 0099_brand_hero_video.sql
|
|
-- Add an optional hero_video_url column to brand_settings so each brand can
|
|
-- point its storefront hero at any video URL (CDN, signed S3, Supabase
|
|
-- storage, etc.) without a code change. When unset or unplayable, the
|
|
-- storefront hero falls back to hero_image_url.
|
|
--
|
|
-- We intentionally avoid touching the `upsert_brand_settings(...)`
|
|
-- SECURITY DEFINER RPC here — its 32-parameter positional signature is
|
|
-- already deployed in production. New value writes use a separate
|
|
-- idempotent statement.
|
|
|
|
ALTER TABLE brand_settings
|
|
ADD COLUMN IF NOT EXISTS hero_video_url TEXT;
|
|
|
|
COMMENT ON COLUMN brand_settings.hero_video_url IS
|
|
'Optional. Direct URL to a hero background video (mp4/webm). When null or 4xx/5xx, storefront falls back to hero_image_url as a still poster.';
|
|
|
|
-- Make sure new column is visible to consumers that read brand_settings.
|
|
GRANT SELECT ON brand_settings TO anon, authenticated;
|