IEE Edu’s Premium subscription model grants students access to the full course catalog for the duration of their plan. Administrators can manually create subscriptions for students (for example, after a bank transfer payment), toggle active subscriptions on or off, and permanently delete subscription records. The platform’sDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/RigbySawGame/ieeEdu_Wen/llms.txt
Use this file to discover all available pages before exploring further.
SubscriptionObserver and SubscriptionAccessService keep course access in sync automatically whenever a subscription changes state.
Subscription List
payment_amount (the payment total in PEN), payment_capture (the comprobante image URL), and payment_status (the payment status string).
Supported query parameters:
| Parameter | Description |
|---|---|
search | Filter by user name or email |
per_page | Results per page (default 20) |
Create Subscription
Manually grant a Premium subscription to a student. This flow also creates an associatedaprobado payment record for bookkeeping.
| Field | Type | Notes |
|---|---|---|
user_id | integer | Required; the student to subscribe |
type | string | Plan slug, e.g. trimestral, semestral, or anual |
months | integer | Derived from the plan; sets the end_date offset |
amount | numeric | Payment amount to record |
comprobante | file | Optional proof-of-payment image (multipart) |
Select the student
Use the user search AJAX endpoint (
GET /admin/users-search?q=...) to find the student’s user_id.Choose a plan
Select from the available plan options returned in the
planOptions prop. Valid slugs include trimestral, semestral, and anual.Toggle Subscription Status
Flip a subscription betweenactiva and cancelada with a single request.
SubscriptionObserver detects the status change and calls SubscriptionAccessService::sync() to immediately update the student’s course access — granting it if activated, revoking it if cancelled.
Delete Subscription
Permanently removes the subscription record from the database.SubscriptionObserver listens for the deleted Eloquent event and automatically revokes the student’s subscription-granted course access when the record is deleted.
Subscription Fields Reference
| Field | Type | Values / Notes |
|---|---|---|
user_id | integer | Foreign key to users |
type | string | trimestral, semestral, or anual |
start_date | date | Set to now() when created by admin |
end_date | date | Calculated as start_date + months |
status | enum | activa, cancelada, or expirada |
Access Synchronization
Course access is never managed in isolation — it is always derived from subscription state:SubscriptionObserver— fires onupdatedanddeletedEloquent events. CallsSubscriptionAccessService::sync()to reconcile the student’s enrollment flags (subscription_granted,subscription_active) with the current subscription status.SubscriptionAccessService::grantAccess()— called on new subscriptions; creates enrollment records for all published subscription-accessible courses.SubscriptionAccessService::sync()— called on toggles and deletes; activates or deactivates existing subscription-granted enrollments without touching permanently purchased ones.
Expiry Synchronization
Subscriptions past theirend_date are not expired in real time — they are swept by a scheduled Artisan command:
status = activa and end_date < now(), marks them as expirada, and revokes subscription-granted course access for all affected users.
The Without this, expired subscriptions will not be marked automatically and students will retain access past their end date.
subscriptions:sync-expired command must be registered in the Laravel scheduler for automatic expiry to work. Verify your server’s crontab includes the Laravel scheduler entry: