docs(prd): add events product with form-gated registration (#788)

* docs(prd): add form-gated workshop access

Co-authored-by: Rotimi Best <rotimi-best@users.noreply.github.com>

* docs(prd): scope form-gated workshops to workshop PRD

Remove workshop-specific scope from the Forms PRD and document Forms
prerequisites and required extensions in the Workshops PRD instead.

Address review feedback: send calendar invites only after redemption,
defer CE assessment to Phase 5, and remove undeferred external registration.

Co-authored-by: Rotimi Best <rotimi-best@users.noreply.github.com>

* docs(prd): resolve workshop review feedback on access and limits

Public workshops are replay-only; scheduled sessions require form-gating.
Block workshop form submission when the org student limit is reached.
Add Forms extensibility note for future attachment consumers.

Co-authored-by: Rotimi Best <rotimi-best@users.noreply.github.com>

* docs(prd): reframe workshops as events with format metadata

Rename the Workshops PRD to Events and treat webinar, livestream,
workshop, and bootcamp as formats of a single Event product.

Add format and delivery metadata, timezone-explicit scheduling reusing
course.metadata.sessionTimezone, countdown and live-now catalog states,
post-event resources via lesson.documents, on-page add-to-calendar and
share links, and an invariant that format never drives behavior.

Expand non-goals to fence off ticketing, venues, and event series.

Co-authored-by: Rotimi Best <rotimi-best@users.noreply.github.com>

* docs(prd): address remaining Events PR review comments

- Close student-limit TOCTOU with locked reservation or redeem recheck
- Narrow anonymous EVENT playback to public replay-only invariants
- Require accessMode, durationMinutes, and callUrl scheduling rules
- Document admin auth scope and Forms access-grant route contract
- Clarify Forms attachment precedence for integrated submissions

Co-authored-by: Rotimi Best <rotimi-best@users.noreply.github.com>

* docs(prd): resolve second-pass Events PR review comments

- One active EVENT attachment per course with same-org tenant invariant
- Single student-limit strategy: transactional seat reservation at submit
- Require complete metadata.event; server defaults for accessMode
- Split admin vs public route blocks; authorize grant revoke and context dispatch

Co-authored-by: Rotimi Best <rotimi-best@users.noreply.github.com>

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: Rotimi Best <rotimi-best@users.noreply.github.com>
This commit is contained in:
Rotimi Best
2026-07-31 01:02:04 +01:00
committed by GitHub
co-authored by Rotimi Best Cursor Agent
parent a1c4ee720f
commit 64112dfc4f
4 changed files with 299 additions and 185 deletions
+1 -1
View File
@@ -25,7 +25,7 @@ Use this file to keep a single prioritized view of all PRDs.
| - | 15 | `prd/webhooks` | todo |
| - | - | `prd/zapier` | draft |
| - | - | `prd/release-process` | draft |
| - | - | `prd/workshops` | draft |
| - | - | `prd/events` | draft |
## DONE (Completed PRDs)