Offerings catalog (private-lesson types & group classes) #1

Closed
opened 2026-06-05 12:55:33 +00:00 by thatguygriff · 1 comment
Owner

Introduce the Offering concept that pricing, billing mode, and intake questions hang off. An offering is either a private-lesson type (30/60 min, single or weekly) or a group class.

Spec: docs/features/offerings.md

Scope

  • New table {prefix}us_offerings (kind, duration, price, currency, billing_mode one_time/full_term, allow_weekly, capacity, term dates, schedule_note, is_active)
  • Domain package src/Offering/: Offering, OfferingRepository, OfferingController, OfferingEndpoint
  • REST: GET /offerings (public, active only), POST/PATCH/DELETE /offerings (manage_offerings + owner)
  • Admin Offerings page; studio admin manages all, instructors manage their own

Acceptance

  • Offerings CRUD via admin + REST with capability checks
  • Schema added to Schema.php / dbDelta
  • Unit tests under tests/Unit/Offering/ pass; composer test green
Introduce the **Offering** concept that pricing, billing mode, and intake questions hang off. An offering is either a private-lesson type (30/60 min, single or weekly) or a group class. **Spec:** `docs/features/offerings.md` ## Scope - New table `{prefix}us_offerings` (kind, duration, price, currency, billing_mode `one_time`/`full_term`, allow_weekly, capacity, term dates, schedule_note, is_active) - Domain package `src/Offering/`: `Offering`, `OfferingRepository`, `OfferingController`, `OfferingEndpoint` - REST: `GET /offerings` (public, active only), `POST/PATCH/DELETE /offerings` (`manage_offerings` + owner) - Admin **Offerings** page; studio admin manages all, instructors manage their own ## Acceptance - Offerings CRUD via admin + REST with capability checks - Schema added to `Schema.php` / dbDelta - Unit tests under `tests/Unit/Offering/` pass; `composer test` green
thatguygriff added the feature label 2026-06-05 12:55:33 +00:00
Author
Owner

Closing as complete. Implemented and merged in PR #10 (Offerings domain).

Closing as complete. Implemented and merged in PR #10 (Offerings domain).
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Unsupervised/unsupervised-scheduler#1