"""Deterministic synthetic catalog so the selection model can be felt everywhere. The real catalog (catalog/library.jsonl) is empty; this generates one record per cell of the 5x5 brain x 5x5 mood coordinate space (625 records), with a seeded mix of content modes and review statuses and no real media attached. """ from __future__ import annotations import random from hef.catalog import Record MODES = ("audio", "video", "av") ARCHIVES = ("internet_archive", "musopen", "librivox", "nasa", "freesound") _LEFT_WORDS = ("Treatise", "Lecture", "Field Notes", "Reading", "Documentary") _RIGHT_WORDS = ("Reverie", "Nocturne", "Bloom", "Drift", "Aurora") def _title(left: int, right: int, dark: int, light: int, mode: str) -> str: a = _LEFT_WORDS[left] if left >= right else _RIGHT_WORDS[right] return f"{a} ({mode}) L{left}R{right}D{dark}Li{light}" def generate_fixture_catalog(seed: int = 1729) -> list[Record]: """One valid Record per coordinate cell (625 total), deterministic for a seed.""" rng = random.Random(seed) records: list[Record] = [] n = 0 for left in range(5): for right in range(5): for dark in range(5): for light in range(5): mode = rng.choice(MODES) status = rng.choice(("proposed", "approved")) is_video = mode in ("video", "av") records.append( Record( id=f"fx-{n:04d}", title=_title(left, right, dark, light, mode), source_url=f"https://example.test/fx/{n:04d}", source_archive=rng.choice(ARCHIVES), license="public_domain", mode=mode, left=left, right=right, dark=dark, light=light, duration_s=rng.choice((300, 480, 600, 720, 900)), file_path="", review_status=status, resolution="1920x1080" if is_video else "", rationale=f"fixture at ({left},{right},{dark},{light})", reviewed_at="2026-06-04T00:00:00Z" if status == "approved" else None, ) ) n += 1 return records