Summary
Manage channel content rating (family, teen, mature) with viewer override.
Requirements
- GET ?creator_id returns { rating }
- PUT { creator_id, rating: family|teen|mature }
- POST /viewer-confirm { viewer_id, creator_id, accept_mature: bool }
- Track viewer mature confirmations per creator
- Tests cover set, confirm, gating
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 channel content rating (family, teen, mature) with viewer override.
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.