Summary
Manage available camera angles for a stream and current viewer selection.
Requirements
- GET ?stream_id returns { angles: [{ id, label, playback_id }] }
- POST { viewer_id, stream_id, angle_id } stores viewer's choice
- Bundle seed multi-angle streams
- Tests cover list, select, and unknown-angle rejection
Scope Constraint - READ BEFORE STARTING
All files for this task must live inside app/api/routes-f/. This includes the route handler, helpers/utilities, types, and tests. Do NOT modify, import from, or add files to lib/, utils/, types/, components/, or anywhere else outside app/api/routes-f/. If you need shared logic, duplicate it inside your subfolder. Keeping everything scoped to this folder is intentional - it keeps these tasks independent and mergeable in any order.
Product Context
StreamFi is a blockchain-powered live streaming platform. Streamers broadcast via Mux, viewers tip in Stellar XLM/USDC, creators have stream privacy modes (public/unlisted/subscribers-only). Build these issues as practice implementations - use realistic data shapes that match the platform domain, but do not import from the real app code.
Summary
Manage available camera angles for a stream and current viewer selection.
Requirements
Scope Constraint - READ BEFORE STARTING
All files for this task must live inside app/api/routes-f/. This includes the route handler, helpers/utilities, types, and tests. Do NOT modify, import from, or add files to lib/, utils/, types/, components/, or anywhere else outside app/api/routes-f/. If you need shared logic, duplicate it inside your subfolder. Keeping everything scoped to this folder is intentional - it keeps these tasks independent and mergeable in any order.
Product Context
StreamFi is a blockchain-powered live streaming platform. Streamers broadcast via Mux, viewers tip in Stellar XLM/USDC, creators have stream privacy modes (public/unlisted/subscribers-only). Build these issues as practice implementations - use realistic data shapes that match the platform domain, but do not import from the real app code.