TorbatYar/docs/sports-center-phase-9-2.md
Mortezakoohjani e41ecfad4c Sync platform docs, infra, and module services with Accounting integration.
Include Loyalty/Communication/Sports Center backends and registry updates alongside production nginx and compose wiring.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-25 22:35:23 +03:30

3.4 KiB

Phase 9.2 — Sports Center Member Management

Field Value
Status Complete
Module sports-center
Version 0.9.2.0
Database sports_center_db
API Port 8006
ADR ADR-001, ADR-003, ADR-006, ADR-014

Goal

Deliver Member Management on the independent Sports Center Platform: sports members, family links, medical shells, emergency contacts, membership assignment (consuming the Phase 9.1 catalog), cards/QR/digital passes, waivers, and document attachments — without coach/attendance/booking engines.

Scope Completed

  • Separate Member aggregate (distinct from Platform Member and Loyalty Member)
  • Family members, emergency contacts, medical information (privacy-aware; Storage file refs only)
  • Membership assignment via member_id + status transitions (activate/suspend/cancel/freeze/unfreeze)
  • Membership cards (physical/digital/QR), digital membership passes, waivers (sign), member documents
  • Validators, permissions, publish-only events, Alembic 0003_phase_92_member_management
  • /capabilities advertises member_management: true (version 0.9.2.0)

Out of Scope

  • Coach & staff engines (9.3)
  • Scheduling & booking (9.4)
  • Attendance & access control engines (9.5)
  • Accounting postings / payment capture
  • Binary file storage (refs only)
  • Recreating Membership Catalog tables (9.1)

Owned Aggregates

Aggregate Table
Member members
FamilyMember family_members
EmergencyContact emergency_contacts
MedicalInformation medical_information
MembershipCard membership_cards
DigitalMembership digital_memberships
Waiver waivers
MemberDocument member_documents

Additive on memberships: member_id, freeze_starts_on, freeze_ends_on; status enum adds frozen.

APIs

Resource Prefix
Members /api/v1/members
Family members /api/v1/family-members
Emergency contacts /api/v1/emergency-contacts
Medical /api/v1/medical-information
Cards /api/v1/membership-cards
Digital /api/v1/digital-memberships
Waivers /api/v1/waivers (+ /{id}/sign)
Documents /api/v1/member-documents
Membership status `/api/v1/memberships/{id}/activate

Events

sports_center.member.updated, membership.assigned, membership.status_changed, membership.frozen, membership.unfrozen, family_member.created, emergency_contact.created, medical_information.upserted, membership_card.issued|revoked, digital_membership.issued, waiver.created|signed, member_document.attached.

Permissions

sports_center.members.*, family_members.*, emergency_contacts.*, medical.*, membership_cards.*, digital_memberships.*, waivers.*, member_documents.*, plus memberships.assign / memberships.status.

Migration

Revision Description
0003_phase_92_member_management Member tables + additive membership columns

Tests

test_members.py (happy path, assign/isolation, invalid freeze transition, capabilities) + architecture/migration/docs updates.