@campusiq/sdk
Version:
Official JavaScript/TypeScript SDK for CampusIQ - A comprehensive school management system API
77 lines • 2.15 kB
TypeScript
import { BaseResource } from './base';
import { Course, ListResponse, PaginationParams } from '../types';
export interface CreateCourseData {
name: string;
code: string;
description: string;
credits: number;
department: string;
teacherId: string;
schedule: {
days: string[];
startTime: string;
endTime: string;
room: string;
};
semester: string;
maxStudents?: number;
prerequisites?: string[];
}
export interface UpdateCourseData extends Partial<CreateCourseData> {
status?: 'active' | 'inactive';
}
export interface CourseFilters extends PaginationParams {
department?: string;
semester?: string;
teacherId?: string;
status?: 'active' | 'inactive';
search?: string;
credits?: number;
}
export declare class CoursesResource extends BaseResource {
/**
* List all courses with optional filtering and pagination
*/
list(filters?: CourseFilters): Promise<ListResponse<Course>>;
/**
* Get a specific course by ID
*/
get(courseId: string): Promise<Course>;
/**
* Create a new course
*/
create(data: CreateCourseData): Promise<Course>;
/**
* Update an existing course
*/
update(courseId: string, data: UpdateCourseData): Promise<Course>;
/**
* Delete a course
*/
delete(courseId: string): Promise<{
success: boolean;
message: string;
}>;
/**
* Get course enrollments
*/
getEnrollments(courseId: string, filters?: PaginationParams): Promise<ListResponse<any>>;
/**
* Get course grades
*/
getGrades(courseId: string, filters?: PaginationParams & {
studentId?: string;
}): Promise<ListResponse<any>>;
/**
* Get course attendance
*/
getAttendance(courseId: string, filters?: PaginationParams & {
date?: string;
status?: string;
}): Promise<ListResponse<any>>;
/**
* Search courses by name, code, or description
*/
search(query: string, filters?: Omit<CourseFilters, 'search'>): Promise<ListResponse<Course>>;
}
//# sourceMappingURL=courses.d.ts.map