@memberjunction/actions-bizapps-lms
Version:
LMS system integration actions for MemberJunction
95 lines • 2.52 kB
TypeScript
import { LearnWorldsBaseAction } from '../learnworlds-base.action';
import { ActionParam, ActionResultSimple, RunActionParams } from '@memberjunction/actions-base';
/**
* Interface for LearnWorlds user detailed information
*/
export interface LearnWorldsUserDetails {
id: string;
email: string;
username: string;
firstName?: string;
lastName?: string;
fullName?: string;
status: 'active' | 'inactive' | 'suspended';
role: string;
createdAt: Date;
lastLoginAt?: Date;
avatarUrl?: string;
bio?: string;
location?: string;
timezone?: string;
language?: string;
phone?: string;
tags?: string[];
customFields?: Record<string, any>;
totalCourses: number;
completedCourses: number;
inProgressCourses: number;
notStartedCourses: number;
totalTimeSpent: number;
averageCompletionRate: number;
lastActivityDate?: Date;
enrollments?: UserEnrollment[];
totalCertificates: number;
totalBadges: number;
points?: number;
level?: string;
emailNotifications?: boolean;
twoFactorEnabled?: boolean;
agreedToTerms?: boolean;
marketingConsent?: boolean;
}
/**
* Interface for user enrollment in a course
*/
export interface UserEnrollment {
courseId: string;
courseTitle: string;
enrolledAt: Date;
status: 'active' | 'completed' | 'expired' | 'suspended';
progress: number;
completedAt?: Date;
expiresAt?: Date;
lastAccessedAt?: Date;
timeSpent: number;
certificateUrl?: string;
grade?: number;
}
/**
* Action to retrieve detailed information about a specific LearnWorlds user
*/
export declare class GetLearnWorldsUserDetailsAction extends LearnWorldsBaseAction {
/**
* Description of the action
*/
get Description(): string;
/**
* Main execution method
*/
protected InternalRunAction(params: RunActionParams): Promise<ActionResultSimple>;
/**
* Map LearnWorlds user data to detailed interface
*/
private mapUserDetails;
/**
* Map enrollment data
*/
private mapEnrollment;
/**
* Calculate enrollment statistics
*/
private calculateEnrollmentStats;
/**
* Merge additional statistics
*/
private mergeStatistics;
/**
* Create a summary of user information
*/
private createUserSummary;
/**
* Define the parameters for this action
*/
get Params(): ActionParam[];
}
//# sourceMappingURL=get-user-details.action.d.ts.map