Plans are fully managed by the admin:
| Field | Description |
|---|---|
| Name (Arabic/English) | For example, “Gold plan” |
| Duration | 1 month · 3 months · 12 months (or custom) |
| Price | SAR, inclusive or exclusive of VAT |
| Promotional price | Optional, with an end date |
| Included programs | Training / nutrition / weekly coaching / Meet calls / chat |
| Limits | Meet sessions per month, plan edits |
| AI assistant | Enabled or limited by a usage cap |
| Status | Active / hidden |
Discount coupons: percentage or fixed amount, expiry date, usage limit, restricted plans.
Subscription lifecycle
01Admin approval
02Awaiting payment
03Active
04Expiring
05Expired
06Paused
07Cancelled
Key transitions
Renewal returns the subscription to Active. A pause stops the clock and extends the end date by the paused days. Missing the payment window cancels the request automatically.
Rules
- Renewal extends from the current end date if the subscription is still active, or from the payment date if it has expired.
- Pausing extends the end date by the number of paused days.
- Upgrading a plan: charge the pro-rata difference or start a new plan — an admin decision, recorded.
- After expiry, the trainee keeps read-only access to history and reports; the live plan and chat are locked.
- An optional grace period (for example, three days) can be configured.
- Automatic renewal is a later phase, using stored cards.
Expiry alerts: 7, 3 and 1 day before, and on the expiry day — to the trainee (push + WhatsApp/email) and to the admin.