caterium-app/ops/demo/image-prompts-v2.json
pavlov346346-source 40b5c146c2 feat: add photos for the 34 training-catalog items that had none
The banquet menu (18 dishes) and extras/supplies/delivery items (16)
in the training catalog were seeded with photo:'', which the catalog
tiles render as a plain red placeholder square. Sourced a real photo
for each item (mostly Pexels, free license, picked and visually
reviewed one by one to avoid mismatches -- several first search hits
were wrong: a live chicken for "chicken caesar salad", a person in
frame, branded bottles/cups) and two AI-generated (banquet-caprese,
banquet-roastbeef). Converted to square 1024x1024 WebP with sharp.

Wires the paths through the actual source of truth: ops/demo/trial-
banquet-data.mjs and trial-extras-data.mjs now set photo to the real
path, then ops/demo/build-trial-*.mjs regenerated public/demo/*.json
and the matching Supabase seed-function migrations, so the client's
static JSON fetch and the server-side company-provisioning function
stay in sync.

Bumped the demo-catalog fetch's own cache-busting query string in
training-catalog.js (and its script-tag/precache version), since it's
fetched by the client with a separate version from the outer script
tags -- the same stale-cache class of bug fixed earlier this session.

Verified: all 34 referenced files resolve (200) and decode as real
1024x1024 images; confirmed via the actual rendered catalog tiles
(#tiles img[src]) that the extras category -- where the user's
red-square screenshot was taken -- now serves the real photo paths.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-22 17:00:45 +03:00

40 lines
3.6 KiB
JSON

{
"note": "Photos for the 34 training-catalog items that previously had none (banquet-v1 dishes, extras-v1 sets/supplies/delivery). Sourced from Pexels (free license, no attribution required) by search + manual visual review; two items (banquet-caprese, banquet-roastbeef) were AI-generated instead. Files live in public/demo/images/<file>.webp, 1024x1024, resized/converted with sharp. Regenerate the catalog JSON with ops/demo/build-trial-banquet.mjs and ops/demo/build-trial-extras.mjs after editing the *-data.mjs sources.",
"items": [
{"itemId": "demo-banquet-v1-caprese", "file": "banquet-caprese", "source": "ai-generated"},
{"itemId": "demo-banquet-v1-roastbeef", "file": "banquet-roastbeef", "source": "ai-generated"},
{"itemId": "demo-banquet-v1-salmon-roll", "file": "banquet-salmon-roll", "source": "pexels"},
{"itemId": "demo-banquet-v1-hummus", "file": "banquet-hummus", "source": "pexels"},
{"itemId": "demo-banquet-v1-caesar", "file": "banquet-caesar", "source": "pexels"},
{"itemId": "demo-banquet-v1-olivier", "file": "banquet-olivier", "source": "pexels"},
{"itemId": "demo-banquet-v1-greek", "file": "banquet-greek", "source": "pexels"},
{"itemId": "demo-banquet-v1-julienne", "file": "banquet-julienne", "source": "pexels"},
{"itemId": "demo-banquet-v1-stuffed-mushrooms", "file": "banquet-stuffed-mushrooms", "source": "pexels"},
{"itemId": "demo-banquet-v1-chicken", "file": "banquet-chicken", "source": "pexels"},
{"itemId": "demo-banquet-v1-cod", "file": "banquet-cod", "source": "pexels"},
{"itemId": "demo-banquet-v1-beef-hot", "file": "banquet-beef-hot", "source": "pexels"},
{"itemId": "demo-banquet-v1-mash", "file": "banquet-mash", "source": "pexels"},
{"itemId": "demo-banquet-v1-rice", "file": "banquet-rice", "source": "pexels"},
{"itemId": "demo-banquet-v1-berry-cream", "file": "banquet-berry-cream", "source": "pexels"},
{"itemId": "demo-banquet-v1-cheese-honey", "file": "banquet-cheese-honey", "source": "pexels"},
{"itemId": "demo-banquet-v1-fruit", "file": "banquet-fruit", "source": "pexels"},
{"itemId": "demo-banquet-v1-bread", "file": "banquet-bread", "source": "pexels"},
{"itemId": "demo-extras-v1-salmon-caprese", "file": "extras-salmon-caprese", "source": "pexels"},
{"itemId": "demo-extras-v1-meat-cheese", "file": "extras-meat-cheese", "source": "pexels"},
{"itemId": "demo-extras-v1-mini-buffet", "file": "extras-mini-buffet", "source": "pexels"},
{"itemId": "demo-extras-v1-water", "file": "extras-water", "source": "pexels"},
{"itemId": "demo-extras-v1-sparkling", "file": "extras-sparkling", "source": "pexels"},
{"itemId": "demo-extras-v1-juice", "file": "extras-juice", "source": "pexels"},
{"itemId": "demo-extras-v1-mors", "file": "extras-mors", "source": "pexels"},
{"itemId": "demo-extras-v1-plate", "file": "extras-plate", "source": "pexels"},
{"itemId": "demo-extras-v1-fork", "file": "extras-fork", "source": "pexels"},
{"itemId": "demo-extras-v1-glass", "file": "extras-glass", "source": "pexels"},
{"itemId": "demo-extras-v1-napkin", "file": "extras-napkin", "source": "pexels"},
{"itemId": "demo-extras-v1-ice", "file": "extras-ice", "source": "pexels"},
{"itemId": "demo-extras-v1-tablecloth", "file": "extras-tablecloth", "source": "pexels"},
{"itemId": "demo-extras-v1-serving-kit", "file": "extras-serving-kit", "source": "pexels"},
{"itemId": "demo-extras-v1-delivery-city", "file": "extras-delivery-city", "source": "pexels"},
{"itemId": "demo-extras-v1-delivery-outer", "file": "extras-delivery-outer", "source": "pexels"}
]
}