# Domain Glossary

This is the project-specific vocabulary — entity names, status terms,
role names, business processes. It is **separate** from
`docs/glossary.md`, which holds Daksh process terms (BRD, PRD, sprint,
PTL, etc).

The BRD (stage 20) seeds this file. Module TRDs (stage 40c) append to
it when State Machines introduce new state vocabulary. Every domain
term used in any downstream doc must appear here verbatim — drift
across docs starts when the same concept gets renamed.

## Entities

- **Program Session** — a single occurrence within a Program (a live day, webinar slot, opening session). Table `hdb_program_session`. Carries schedule, venue/online details, seats, pricing, and the link-generation fields.
- **Online Session** — the 1:1 row (`hdb_online_session`) holding meeting/webinar/stream provider details for a Program Session.
- **Join Link** — a per-registrant URL to join the online session (e.g. a Zoom registrant join URL).
- **Bulk Registration Job** — the background job that generates join links for every eligible registrant of a session.
- **Link Schedule** — an AWS EventBridge one-time schedule named `join-link-<programSessionId>` that fires at `linkGenerationAt`.

## Status terms

- **JoinLinkGenerationStatus** — `NOT_SCHEDULED` → `SCHEDULED` → `IN_PROGRESS` → `COMPLETED` / `FAILED`. A thin per-session marker; per-registrant results live on the bulk job.

## Roles

- **Admin** — the only role permitted to operate program-session endpoints, including setting link generation.

## Business processes

- **Scheduled Join-Link Generation** — admin sets a future time; the system auto-generates join links for all registrants at that time, with a fallback cron as the safety net.
