ai_learn_node/shared/src/index.ts
2026-01-13 09:59:40 +08:00

78 lines
1.4 KiB
TypeScript

// Course types
export interface Course {
id: string;
title: string;
description: string;
category: CourseCategory;
difficulty: Difficulty;
estimatedHours: number;
createdAt: Date;
updatedAt: Date;
}
export interface Chapter {
id: string;
courseId: string;
title: string;
order: number;
content: string; // Markdown content
createdAt: Date;
updatedAt: Date;
}
export interface LearningPath {
id: string;
name: string;
description: string;
targetAudience: string;
pathItems: PathItem[];
createdAt: Date;
updatedAt: Date;
}
export interface PathItem {
id: string;
pathId: string;
courseId: string;
chapterId?: string;
order: number;
type: 'course' | 'chapter';
}
export interface UserProgress {
id: string;
userId: string;
courseId: string;
chapterId?: string;
completed: boolean;
lastAccessed: Date;
createdAt: Date;
updatedAt: Date;
}
export enum CourseCategory {
ML_BASICS = 'ML_BASICS',
DEEP_LEARNING = 'DEEP_LEARNING',
NLP = 'NLP',
LLM = 'LLM',
AI_TOOLS = 'AI_TOOLS'
}
export enum Difficulty {
BEGINNER = 'BEGINNER',
INTERMEDIATE = 'INTERMEDIATE',
ADVANCED = 'ADVANCED'
}
// API Request/Response types
export interface GeneratePathRequest {
interests: CourseCategory[];
currentLevel: Difficulty;
}
export interface UpdateProgressRequest {
courseId: string;
chapterId?: string;
completed: boolean;
}