Training & Course Model¶
This page explains how the system models training: courses, groups, attendance, trainer pay, and subscriptions.
Course Packages¶
A course package is a named training programme you can sign up to — for example an adult beginners' course or a junior academy. When you enrol, the package sets how sessions are scheduled, how many places are available, and what you pay.
From a member's point of view, each course package tells you:
- what it is called and in what order it appears in the course list,
- how many people can attend each session (so you know whether it is a small-group or a larger class),
- how much it costs — as a recurring monthly fee, as training credits spent per session, or both,
- whether a trainer fee is charged on top of the package fee,
- whether a waiting list opens when the course is full so you can queue for a free spot.
The club sets the exact values for each course — fees, session size, credits, waiting-list availability. See the course packages admin page for the full configuration reference.
From the demo system
Two course packages are configured. Your system may be configured differently.
Training Groups¶
A training group is a roster of members who train together during a season — typically the same coach, the same regular slot, the same peers week after week.
From a member's point of view:
- You belong to one training group within a given season.
- The group has a default fee each member pays per session; the club can adjust individual fees if needed.
- The group size is capped: once the group is full, you cannot be added until someone leaves.
- When the session fee is due, the amount appears in your pending payments.
The club maintains group rosters, session fees, and trainer salary rules. For the configuration detail, see the training groups admin page.
From the demo system
One training group is configured. Your system may be configured differently.
Training Credits — Conceptual Model¶
Training credits are a separate wallet you use to pay for training sessions. You buy a package of credits up front, then spend them as you attend. Regular court-rental credits are a different wallet — the two do not mix.
Each training-credit package on offer shows you:
- how many credits the package contains,
- any bonus credits included on top,
- the price you pay,
- when the credits expire — either on a set date or a number of days after purchase,
- whether it is a one-off purchase or a recurring subscription (see Subscriptions below),
- optionally, which course package or training group the credits are tied to.
See Payments & Credits for the purchase flow, wallet balance, and how credits are deducted when you attend.
From the demo system
Two training-credit packages are configured. Your system may be configured differently.
Attendance Tracking¶
Every attendance record links a customer to a training session, with a status, a type, and duration information.
Attendance Status Lifecycle¶
stateDiagram-v2
[*] --> Waiting
Waiting --> Pending : Slot opens
Pending --> Subscribed : Customer confirms
Subscribed --> Attended : Trainer marks present
Subscribed --> NoShow : Trainer marks absent
Subscribed --> Deleted : Cancelled
Pending --> Deleted : Cancelled
| Status | Description |
|---|---|
| Waiting | On the waiting list |
| Pending | Slot available, awaiting confirmation |
| Subscribed | Confirmed attendance |
| Attended | Present at the session |
| No-show | Did not attend |
| Deleted | Record removed |
Attendance Types¶
| Type | Description |
|---|---|
| Private | One-on-one session |
| Semi-private | Small group (2–3 participants) |
| Group | Full group session |
Training-Credit Activity¶
The system logs every change to a customer's training-credit balance — purchases, usage, refunds, manual adjustments, cancellations. See the Payments & Credits page for payment-side details.
Trainer Pay Grades¶
Five pay-grade levels define trainer compensation:
| Level | Grade |
|---|---|
| 1 | Trainee coach |
| 2 | Assistant coach |
| 3 | Junior coach |
| 4 | Senior coach |
| 5 | Head coach |
Fees depend on three things: the trainer's pay grade, the session type (private, semi-private, or group), and the current season. For each combination, the admin sets:
- the fee charged to casual visitors,
- the fee charged to club members,
- the trainer's salary for a casual-visitor session,
- the trainer's salary for a club-member session.
Subscriptions¶
Subscriptions provide recurring payment for training credits — the system charges the customer's card on a schedule and the credits land automatically.
Subscription Lifecycle¶
stateDiagram-v2
[*] --> Pending
Pending --> Active : Payment confirmed
Active --> Suspended : Payment failed / Admin action
Suspended --> Active : Reactivated
Active --> Cancelled : Customer or admin cancels
Cancelled --> Deleted : Cleanup
| Status | Description |
|---|---|
| Pending | Awaiting initial payment |
| Active | Recurring payments active |
| Suspended | Temporarily paused |
| Cancelled | Permanently stopped |
| Deleted | Record removed |
A subscription references a training-credit package and an online payment provider. The system tracks when the customer's stored card expires.
Key Settings¶
In the demo system:
- The attendance list for a session opens three days before the session.
- Attendance details are not shown in the main calendar view.
- The notes field during course enrolment is optional.
- New course subscriptions are active by default.
- Customers cannot subscribe without sufficient credit.
- A customer can subscribe to a session up to seven days in advance.
- A customer must unsubscribe at least six hours before the session.
From the demo system
The values above — three days, six hours, seven days, and so on — are the current demo values. Your system may be configured differently.