@hirebus/academy
Version:
React component library for academy and learning platforms
82 lines (81 loc) • 2.12 kB
TypeScript
export declare enum CourseCategory {
AllCourses = "All Courses",
ProfessionalDevelopment = "Professional Development",
SkillsDevelopment = "Skills Development",
WorkplaceSuccess = "Workplace Success",
Management = "Management",
Leadership = "Leadership"
}
export declare enum MimeType {
PDF = "application/pdf",
MP4 = "video/mp4",
PNG = "image/png",
WEBP = "image/webp",
JPG = "image/jpeg"
}
export declare enum CourseStatus {
DRAFT = "Draft",
ACTIVE = "Active",
INACTIVE = "Inactive"
}
export interface CourseFileUpload {
id: string;
fileName: string;
size: number | null;
mimeType: MimeType;
duration?: number;
file: File;
base64Thumbnail?: string;
signedS3Url?: string;
}
export interface Chapter {
courseContentId: string;
title: string;
priority: number;
timestamp: number;
keywords?: string[];
courseId: string;
createdAt: string;
updatedAt: string;
}
export type UploadStatus = 'Pending' | 'Uploaded';
export interface CourseFile {
courseFileId: string;
fileName: string;
signedS3Url?: string;
size: number | null;
uploadedAt: string;
updatedAt: string;
courseId: string;
uploadStatus?: UploadStatus;
base64Thumbnail?: string;
mimeType?: MimeType;
duration?: number;
}
export interface Course {
courseId: string;
name: string;
description: string;
category: CourseCategory;
tags: string[];
enrolledUsers?: string[];
completionRate?: number;
status: CourseStatus;
creatorId: number;
courseFiles?: CourseFile[];
courseContent: Chapter[];
videoProgress?: number;
createdAt: string;
updatedAt: string;
}
export type CourseListResponse = Array<{
name: string;
description: string;
category: 'All Courses' | 'Professional Development' | 'Skills Development' | 'Workplace Success' | 'Management' | 'Leadership';
tags: Array<string>;
courseId: string;
enrolledUsers: Array<string>;
status: 'Draft' | 'Active' | 'Inactive';
createdAt: string;
updatedAt: string;
}>;