UNPKG

@campusiq/sdk

Version:

Official JavaScript/TypeScript SDK for CampusIQ - A comprehensive school management system API

77 lines 2.15 kB
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