# 4. Affiliate Program Controls

User Type: **Super Administrator**
Source: *Mi Digital Academy - Education CRM Features Document*

---

## 4. Affiliate Program Controls

### 4.1 Approve or Reject Affiliate Applications
**What it does:** Manages the affiliate applications: the Super Administrator approves or rejects the affiliate applications (the application, the decision, the reason), so the affiliate program is controlled (only the approved affiliates join). Each application has the applicant's details, the application date, and the decision (the approved, the rejected) with the reason.

**Sub-features:**
- Application review: the review (the application, the applicant's details)
- Application approval: the approval (the application is approved, the affiliate joins)
- Application rejection: the rejection (the application is rejected, the reason)
- Application status: the status (the pending, the approved, the rejected)
- Application record: the record (the applicant, the application date, the decision, the reason)
- Application queue: the queue (the pending applications)
- Audit logging of the application decisions

**Super Administrator User Journey:**
1. Super Admin views the application queue: the pending applications (the applicant, the application date, the details); the queue is the list.
2. Reviews an application: the applicant's details (the name, the contact, the referral history); the review is the evaluation.
3. Approves the application: the decision (the approved), the affiliate joins (the account is created, the access is granted); the approval is recorded.
4. Or rejects the application: the decision (the rejected), the reason (e.g., the incomplete details, the policy violation); the rejection is recorded.
5. The applicant is notified: the notification (the approval, the rejection with the reason); the notification is the communication.
6. Reviews the applications: the applications, the decisions, the reasons, so the program is visible.
7. For a decision change (a rejection reversed to an approval), Super Admin changes the decision (the new decision, the reason, the time); the change is recorded.
8. The application decisions are audit-logged with the applicant, the decision, and the timestamp.

**Rules & Edge Cases:**
- The application status is the pending, the approved, or the rejected; the status is the control.
- The application approval is the join (the affiliate joins, the account is created); the approval is the gate.
- The application rejection is the decline (the reason is recorded, the applicant is notified); the rejection is the control.
- A decision change (a rejection reversed to an approval) is recorded (the new decision, the reason, the time); it is auditable.
- The applications are visible (the applicants, the dates, the decisions, the reasons); the program is managed.
- Application decisions are audit-logged with the applicant, decision, and timestamp.

### 4.2 Activate, Suspend, and Terminate Affiliates
**What it does:** Manages the affiliate status: the Super Administrator activates, suspends, or terminates the affiliates (the affiliate, the status, the reason), so the affiliate program is controlled (the inactive affiliates do not earn). Each affiliate has a status (the active, the suspended, the terminated) with the reason and the date.

**Sub-features:**
- Affiliate activation: the activation (the affiliate is active, the earning starts)
- Affiliate suspension: the suspension (the affiliate is suspended, the earning stops, the reason)
- Affiliate termination: the termination (the affiliate is terminated, the program ends, the reason)
- Affiliate status: the status (the active, the suspended, the terminated)
- Status record: the record (the affiliate, the status, the reason, the date)
- Status change: the change (the status is changed, the reason, the date)
- Audit logging of the status changes

**Super Administrator User Journey:**
1. Super Admin views the affiliates: the affiliates (the name, the status, the earnings); the list is the overview.
2. Activates an affiliate: the status (the active), the earning starts (the commissions are tracked); the activation is recorded.
3. Suspends an affiliate: the status (the suspended), the reason (e.g., the policy violation, the fraud), the earning stops (the commissions are paused); the suspension is recorded.
4. Terminates an affiliate: the status (the terminated), the reason (e.g., the repeated violations, the contract end), the program ends (the commissions are settled); the termination is recorded.
5. The affiliate is notified: the notification (the activation, the suspension with the reason, the termination with the reason); the notification is the communication.
6. Reviews the affiliates: the affiliates, the statuses, the reasons, so the program is visible.
7. For a status change (a suspension reversed to an activation), Super Admin changes the status (the new status, the reason, the time); the change is recorded.
8. The status changes are audit-logged with the affiliate, the status, and the timestamp.

**Rules & Edge Cases:**
- The affiliate status is the active, the suspended, or the terminated; the status is the control.
- The affiliate activation is the start (the earning starts, the commissions are tracked); the activation is the gate.
- The affiliate suspension is the pause (the earning stops, the reason is recorded); the suspension is the control.
- The affiliate termination is the end (the program ends, the commissions are settled); the termination is the final.
- A status change (a suspension reversed to an activation) is recorded (the new status, the reason, the time); it is auditable.
- Status changes are audit-logged with the affiliate, status, and timestamp.

### 4.3 Configure Permissions (e.g., Discount Code Creation)
**What it does:** Configures the affiliate permissions: the permissions for the affiliates (e.g., the discount code creation, the link sharing, the dashboard access) are set, so the affiliate capabilities are controlled (the affiliate can do what is permitted). The Super Administrator defines the affiliate permissions (the permission, the scope, the limit) so the permissions are structured and the capabilities are explicit.

**Sub-features:**
- Permission definition: the permission (the discount code creation, the link sharing, the dashboard access)
- Permission scope: the scope (the permission applies to the affiliate)
- Permission limit: the limit (the limit for the permission, e.g., the number of codes)
- Permission grant: the grant (the permission is granted to the affiliate)
- Permission revoke: the revoke (the permission is revoked from the affiliate)
- Permission record: the record (the affiliate, the permission, the scope, the limit)
- Audit logging of the permission grants and revokes

**Super Administrator User Journey:**
1. Super Admin defines the affiliate permissions: the permissions (the discount code creation, the link sharing, the dashboard access), the scope (the permission applies to the affiliate), and the limit (the limit for the permission, e.g., the number of codes); the permissions are explicit.
2. Sets the permission: the permission (e.g., the discount code creation); the permission is the capability.
3. Sets the permission scope: the scope (the permission applies to the affiliate); the scope is the application.
4. Sets the permission limit: the limit (the limit for the permission, e.g., the number of codes); the limit is the boundary.
5. Saves; the affiliate permissions are live, and the affiliate can do what is permitted.
6. An affiliate uses the permission (e.g., creates a discount code); the permission is enforced (the limit is met, the action is allowed); the action is recorded.
7. For a permission change (the scope, the limit updated, or the permission revoked), Super Admin changes the permission (the new scope, the new limit, the time); the change is recorded.
8. The permission grants and revokes are audit-logged with the affiliate, the permission, and the timestamp.

**Rules & Edge Cases:**
- The permission is the capability (the discount code creation, the link sharing, the dashboard access); the permission is the grant.
- The permission scope is the application (the permission applies to the affiliate); the scope is the control.
- The permission limit is the boundary (the limit for the permission, e.g., the number of codes); the limit is the control.
- A permission change (the scope, the limit updated, or the permission revoked) is recorded (the new scope, the new limit, the time); it is auditable.
- The affiliate permissions are visible (the affiliates, the permissions, the scopes, the limits); the capabilities are managed.
- Permission grants and revokes are audit-logged with the affiliate, permission, and timestamp.
