@memberjunction/actions-bizapps-lms
Version:
LMS system integration actions for MemberJunction
125 lines • 3.35 kB
TypeScript
import { LearnWorldsBaseAction } from '../learnworlds-base.action';
import { ActionParam, ActionResultSimple, RunActionParams } from '@memberjunction/actions-base';
/**
* Interface for a LearnWorlds course
*/
export interface LearnWorldsCourse {
id: string;
title: string;
subtitle?: string;
description?: string;
shortDescription?: string;
status: 'published' | 'draft' | 'coming_soon';
visibility: 'public' | 'private' | 'hidden';
isActive: boolean;
isFree: boolean;
price?: number;
currency?: string;
originalPrice?: number;
discountPercentage?: number;
categoryId?: string;
categoryName?: string;
tags?: string[];
level?: 'beginner' | 'intermediate' | 'advanced' | 'all';
language?: string;
duration?: number;
thumbnailUrl?: string;
coverImageUrl?: string;
promoVideoUrl?: string;
instructorId?: string;
instructorName?: string;
instructorBio?: string;
instructorAvatarUrl?: string;
totalUnits: number;
totalLessons: number;
totalQuizzes: number;
totalAssignments: number;
estimatedDuration?: number;
totalEnrollments: number;
activeEnrollments: number;
completionRate: number;
averageRating?: number;
totalReviews?: number;
createdAt: Date;
updatedAt: Date;
publishedAt?: Date;
enrollmentStartDate?: Date;
enrollmentEndDate?: Date;
requiresApproval: boolean;
hasPrerequisites: boolean;
prerequisites?: string[];
certificateAvailable: boolean;
objectives?: string[];
targetAudience?: string[];
requirements?: string[];
}
/**
* Interface for course catalog summary
*/
export interface CourseCatalogSummary {
totalCourses: number;
publishedCourses: number;
draftCourses: number;
freeCourses: number;
paidCourses: number;
categoryCounts: Record<string, number>;
levelCounts: Record<string, number>;
languageCounts: Record<string, number>;
enrollmentStats: {
totalEnrollments: number;
averageEnrollmentsPerCourse: number;
mostPopularCourses: Array<{
id: string;
title: string;
enrollments: number;
}>;
};
priceStats: {
averagePrice: number;
minPrice: number;
maxPrice: number;
currency: string;
};
}
/**
* Action to retrieve courses from LearnWorlds LMS
*/
export declare class GetLearnWorldsCoursesAction extends LearnWorldsBaseAction {
/**
* Description of the action
*/
get Description(): string;
/**
* Main execution method
*/
protected InternalRunAction(params: RunActionParams): Promise<ActionResultSimple>;
/**
* Map LearnWorlds course data to our interface
*/
private mapLearnWorldsCourse;
/**
* Map course status
*/
private mapCourseStatus;
/**
* Map course visibility
*/
private mapCourseVisibility;
/**
* Map course level
*/
private mapCourseLevel;
/**
* Calculate discount percentage
*/
private calculateDiscountPercentage;
/**
* Calculate course catalog summary
*/
private calculateCourseCatalogSummary;
/**
* Define the parameters for this action
*/
get Params(): ActionParam[];
}
//# sourceMappingURL=get-courses.action.d.ts.map