@defikitdotnet/education-module-ai
Version:
AI Education Module using Agent Framework
86 lines (85 loc) • 3.51 kB
TypeScript
import { EnrollmentRepository } from "../repositories/EnrollmentRepository";
import { ProgressRepository } from "../repositories/ProgressRepository";
import { Enrollment } from "../models/Enrollment";
import { Progress } from "../models/Progress";
import { SqliteAdapter } from "../database/SqliteAdapter";
/**
* Service for managing student enrollments and progress tracking
*/
export declare class EnrollmentService {
private enrollmentRepository;
private progressRepository;
private dbAdapter;
constructor(enrollmentRepository: EnrollmentRepository, progressRepository: ProgressRepository, dbAdapter: SqliteAdapter);
/**
* Enroll a student in a course
* @param studentId The ID of the student
* @param courseId The ID of the course
* @returns The created enrollment or existing enrollment
*/
enrollStudent(studentId: string, courseId: string): Promise<Enrollment>;
/**
* Get all enrollments for a student
* @param studentId The ID of the student
* @returns Array of enrollments
*/
getStudentEnrollments(studentId: string): Promise<Enrollment[]>;
/**
* Get enrollment for a specific course
* @param studentId The ID of the student
* @param courseId The ID of the course
* @returns The enrollment or null
*/
getStudentCourseEnrollment(studentId: string, courseId: string): Promise<Enrollment | null>;
/**
* Mark a lecture as completed and update overall course progress
* @param studentId The ID of the student
* @param lectureId The ID of the lecture
* @param courseId The ID of the course
* @returns Object with progress information
*/
markLectureCompleted(studentId: string, lectureId: string, courseId: string): Promise<{
success: boolean;
completedLectures: number;
totalLectures: number;
progress: number;
}>;
/**
* Get progress records for a student in a course
* @param studentId The ID of the student
* @param courseId The ID of the course
* @returns Array of progress records
*/
getStudentCourseProgress(studentId: string, courseId: string): Promise<Progress[]>;
/**
* Get enrollment details and completed lecture IDs for a student in a specific course.
* Throws ApiError if enrollment is not found.
* @param studentId The ID of the student
* @param courseId The ID of the course
* @returns Object containing the enrollment and an array of completed lecture IDs
*/
getEnrollmentAndProgressForStudent(studentId: string, courseId: string): Promise<{
enrollment: Enrollment;
completedLectures: string[];
}>;
/**
* Get completed quizzes for a student in a course
* @param studentId The ID of the student
* @param courseId The ID of the course
* @returns Array of quiz IDs that have been completed
*/
getCompletedQuizzesForStudent(studentId: string, courseId: string): Promise<string[]>;
/**
* Record a quiz as completed and update overall course progress
* @param studentId The ID of the student
* @param quizId The ID of the quiz
* @param courseId The ID of the course
* @param score Optional score from the quiz
* @returns Object with progress information
*/
recordQuizCompleted(studentId: string, quizId: string, courseId: string, score?: number): Promise<{
success: boolean;
progress: number;
isCompleted: boolean;
}>;
}