Extend availability so windows carry a lesson length, can be generated weekly, and are shown on a public calendar.
Spec:docs/features/availability-management.md
Scope
Add columns to {prefix}us_availability: offering_id (nullable FK), duration_minutes, recurrence_group
Generate weekly-recurring windows as rows sharing one recurrence_group
Front-end month/week calendar in the booking shortcode, populated from GET /availability, filterable by instructor and offering/duration
GET /availability gains offering_id and duration_minutes query params
Acceptance
Duration-aware booking: a 30-min offering only fits a window that accommodates it
Weekly series can be added/removed together; booked occurrences are independent
Tests under tests/Unit/Availability/ updated and passing
Extend availability so windows carry a lesson length, can be generated weekly, and are shown on a public calendar.
**Spec:** `docs/features/availability-management.md`
## Scope
- Add columns to `{prefix}us_availability`: `offering_id` (nullable FK), `duration_minutes`, `recurrence_group`
- Generate weekly-recurring windows as rows sharing one `recurrence_group`
- Front-end month/week **calendar** in the booking shortcode, populated from `GET /availability`, filterable by instructor and offering/duration
- `GET /availability` gains `offering_id` and `duration_minutes` query params
## Acceptance
- Duration-aware booking: a 30-min offering only fits a window that accommodates it
- Weekly series can be added/removed together; booked occurrences are independent
- Tests under `tests/Unit/Availability/` updated and passing
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Extend availability so windows carry a lesson length, can be generated weekly, and are shown on a public calendar.
Spec:
docs/features/availability-management.mdScope
{prefix}us_availability:offering_id(nullable FK),duration_minutes,recurrence_grouprecurrence_groupGET /availability, filterable by instructor and offering/durationGET /availabilitygainsoffering_idandduration_minutesquery paramsAcceptance
tests/Unit/Availability/updated and passingClosing as complete. Implemented and merged in PR #17 (durations, weekly recurrence, public calendar).