Include Loyalty/Communication/Sports Center backends and registry updates alongside production nginx and compose wiring. Co-authored-by: Cursor <cursoragent@cursor.com>
3.8 KiB
Phase Handover — 9.1 Sports Center Membership Catalog
Mandatory starting point for Phase 9.2 — Member Management.
Overview
Phase 9.1 delivered the Membership Catalog on sports-center-service / sports_center_db (port 8006, version 0.9.1.0). Commercial definitions, pricing models, age groups, sport categories, rules, and renewal/freeze/expiration policies are in place. Member enrollment workflows were not implemented.
Completed Scope
- Nine catalog aggregates + extended MembershipType links
- Validators for age ranges, pricing/billing/rule kinds, money amounts, catalog ref integrity
- Publish-only catalog events
- Permissions trees for catalog modules
- Alembic
0002_phase_91_membership_catalog /capabilitiesendpoint advertising catalog readiness- Tests + docs + registry/manifest updates
Created / Extended Modules
| Module | Notes |
|---|---|
| Sport Categories | New |
| Age Groups | New |
| Pricing Models | New (config only; not Accounting) |
| Membership Packages | New |
| Membership Plans | New |
| Membership Rules | New |
| Renewal Policies | New |
| Freezing Rules | New |
| Expiration Policies | New |
| Membership Types | Extended with catalog refs |
Models
See app/models/catalog.py and additive columns on MembershipType in app/models/foundation.py.
Repositories / Services / Validators
app/repositories/catalog.pyapp/services/catalog.py(+ MembershipTypeService catalog ref checks)app/validators/catalog.py
Public APIs
Listed in sports-center-phase-9-1.md. Soft delete via POST /{id}/delete.
Events
sports_center.sport_category.*, age_group.*, pricing_model.*, membership_package.*, membership_plan.*, membership_rule.*, renewal_policy.*, freezing_rule.*, expiration_policy.*, membership_type.updated.
Database Changes
Additive only within sports_center_db. No Core/CRM/Loyalty/Communication schema changes.
Migration History
| Revision | Description |
|---|---|
0001_initial |
Phase 9.0 foundation |
0002_phase_91_membership_catalog |
Phase 9.1 catalog |
Known Limitations
- No member/family/medical/card/QR/waiver workflows
- Rule
expressionJSON is stored; evaluation engine deferred to assignment workflows - Route-level permission enforcement still deferred (same as 9.0)
- Pricing amounts are not posted to Accounting
Extension Points
- Attach catalog refs when creating MembershipType / Plan / Package
- Evaluate MembershipRule expressions in Phase 9.2+ assignment services
- Map pricing_model.external_price_ref to Accounting/payment later (9.8)
Dependencies
- Phase 9.0 foundation complete
- Core entitlement / JWT / tenant headers
- Optional future: Accounting, CRM, Loyalty, Communication (contracts only)
Next Phase Entry (9.2 — Member Management)
Implement members, family members, medical information, emergency contacts, membership assignment, card/QR/digital membership, waivers, documents/attachments, status management — consuming this catalog. Do not rebuild catalog tables. Do not implement coach/attendance/booking engines.
Entry checklist:
- Read this handover + sports-center-phase-9-1.md
- Follow ai-framework/
- Start from
sports-center-9.2in phase-manifest.yaml
Completion Sign-Off
- Quality gates passed
- Tests green
- Documentation updated
- Progress / next-steps / registries / manifests updated
- No unfinished claimed deliverables