New featureStreamingCheck InClasses·Wed Aug 26·
Business app stream controls
Business staff can select a permitted class stream source, go live, and end a stream without exposing encoder credentials.
The platform endpoints for Business class stream controls are ready. The paired mobile UI is still in [draft Business app PR #69](https://github.com/Mister-Shamir-ApS/bookingbible.app/pull/69), so staff will not see the controls in a released Business build until that PR is reviewed, merged, and included in a mobile rollout. The draft pins the endpoint and DTO contract in `src/api/hooks/admin-checkin-endpoints.ts`, consumes it from `src/api/hooks/use-admin-checkin-ops.ts`, and presents the workflow from `src/components/checkin/stream-control-sheet.tsx` and `app/(business)/(tabs)/checkin.tsx` (draft head `31378df`). The draft's schedule notification controls have also been verified against the platform's exact delivery contract. Cancellation clients can use Email, SMS, or Push; cancellation instructors can use Email or SMS; substitution clients can use Push; and substitute instructors can use Email. The combined audience and channel selection in `src/components/schedule/substitute-sheet.tsx` is mapped by the platform to those exact recipient-specific legs, while unsupported combinations are rejected before mutation. PR #69 remains release-gated by its native dependency cooldown, signed builds, and physical-device testing rather than by a schedule contract mismatch. The paired design shows only safe source names and readiness, never stream keys, ingest URLs, provider ids, playback links, or source credentials. Go-live and source changes repeat the platform streaming module, entitlement, venue setting, streamability, date, permission, and instructor go-live gates before changing anything. These controls are operationally silent: they do not send client notifications. Ending a stream completes the class first, then stops the provider source only when the shared-stream guard says it is safe, and reports whether the provider source was stopped, left on for another class, or needs attention. If provider shutdown needs attention after completion, an authorized staff member can retry only that provider step. The retry never completes the class again or repeats its class-side effects, stays tenant-bound, and never exposes the other class occurrence that kept a shared stream running. Cross-app evidence: Consumer and Branded remain watch-only for this change. Their existing playback contracts stay in `src/api/hooks/livestream-endpoints.ts`, `app/(consumer)/player.tsx`, and `app/(branded)/player.tsx`; PR #69 adds no Consumer or Branded operational stream controls. Release owners should verify the draft PR status and the Business build train before announcing app availability.
Next update
One flash sale can now price several memberships
Create one recurring-membership offer with a shared price or a different introductory price for each selected membership, including clear VAT and registration-fee choices.