UNPKG

@campusiq/sdk

Version:

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

363 lines 8.37 kB
export interface PaginationParams { page?: number; limit?: number; sort?: string; order?: 'asc' | 'desc'; } export interface ListResponse<T> { data: T[]; pagination: { page: number; limit: number; total: number; totalPages: number; hasNext: boolean; hasPrev: boolean; }; } export interface Student { id: string; studentId: string; firstName: string; lastName: string; email: string; dateOfBirth: string; grade: string; status: 'active' | 'inactive' | 'graduated' | 'transferred'; enrollmentDate: string; parentContact?: { name: string; email: string; phone: string; }; address?: { street: string; city: string; state: string; zipCode: string; }; createdAt: string; updatedAt: string; } export interface CreateStudentData { studentId: string; firstName: string; lastName: string; email: string; dateOfBirth: string; grade: string; parentContact?: { name: string; email: string; phone: string; }; address?: { street: string; city: string; state: string; zipCode: string; }; } export interface UpdateStudentData { firstName?: string; lastName?: string; email?: string; grade?: string; status?: 'active' | 'inactive' | 'graduated' | 'transferred'; parentContact?: { name: string; email: string; phone: string; }; address?: { street: string; city: string; state: string; zipCode: string; }; } export interface StudentFilters extends PaginationParams { grade?: string; status?: string; search?: string; enrollmentDateFrom?: string; enrollmentDateTo?: string; } export interface Teacher { id: string; teacherId: string; firstName: string; lastName: string; email: string; department: string; subjects: string[]; hireDate: string; status: 'active' | 'inactive' | 'on_leave'; phone?: string; address?: { street: string; city: string; state: string; zipCode: string; }; createdAt: string; updatedAt: string; } export interface CreateTeacherData { teacherId: string; firstName: string; lastName: string; email: string; department: string; subjects: string[]; hireDate: string; phone?: string; address?: { street: string; city: string; state: string; zipCode: string; }; } export interface UpdateTeacherData { firstName?: string; lastName?: string; email?: string; department?: string; subjects?: string[]; status?: 'active' | 'inactive' | 'on_leave'; phone?: string; address?: { street: string; city: string; state: string; zipCode: string; }; } export interface TeacherFilters extends PaginationParams { department?: string; status?: string; search?: string; subject?: string; } export interface Course { id: string; courseId: string; name: string; description: string; department: string; credits: number; teacherId: string; teacher?: Teacher; semester: string; year: number; schedule: { days: string[]; startTime: string; endTime: string; room: string; }; capacity: number; enrolled: number; status: 'active' | 'inactive' | 'completed'; createdAt: string; updatedAt: string; } export interface CreateCourseData { courseId: string; name: string; description: string; department: string; credits: number; teacherId: string; semester: string; year: number; schedule: { days: string[]; startTime: string; endTime: string; room: string; }; capacity: number; } export interface UpdateCourseData { name?: string; description?: string; department?: string; credits?: number; teacherId?: string; schedule?: { days: string[]; startTime: string; endTime: string; room: string; }; capacity?: number; status?: 'active' | 'inactive' | 'completed'; } export interface CourseFilters extends PaginationParams { department?: string; teacherId?: string; semester?: string; year?: number; status?: string; search?: string; } export interface Enrollment { id: string; studentId: string; courseId: string; student?: Student; course?: Course; enrollmentDate: string; status: 'enrolled' | 'dropped' | 'completed'; grade?: string; credits: number; createdAt: string; updatedAt: string; } export interface CreateEnrollmentData { studentId: string; courseId: string; enrollmentDate?: string; } export interface UpdateEnrollmentData { status?: 'enrolled' | 'dropped' | 'completed'; grade?: string; } export interface EnrollmentFilters extends PaginationParams { studentId?: string; courseId?: string; status?: string; semester?: string; year?: number; search?: string; } export interface Grade { id: string; studentId: string; courseId: string; student?: Student; course?: Course; assignmentName: string; assignmentType: 'homework' | 'quiz' | 'exam' | 'project' | 'participation'; points: number; maxPoints: number; percentage: number; letterGrade: string; gradedDate: string; comments?: string; createdAt: string; updatedAt: string; } export interface CreateGradeData { studentId: string; courseId: string; assignmentName: string; assignmentType: 'homework' | 'quiz' | 'exam' | 'project' | 'participation'; points: number; maxPoints: number; gradedDate?: string; comments?: string; } export interface UpdateGradeData { assignmentName?: string; assignmentType?: 'homework' | 'quiz' | 'exam' | 'project' | 'participation'; points?: number; maxPoints?: number; gradedDate?: string; comments?: string; } export interface GradeFilters extends PaginationParams { studentId?: string; courseId?: string; assignmentType?: string; gradedDateFrom?: string; gradedDateTo?: string; search?: string; } export interface Attendance { id: string; studentId: string; courseId: string; student?: Student; course?: Course; date: string; status: 'present' | 'absent' | 'late' | 'excused'; notes?: string; markedBy: string; markedAt: string; createdAt: string; updatedAt: string; } export interface CreateAttendanceData { studentId: string; courseId: string; date: string; status: 'present' | 'absent' | 'late' | 'excused'; notes?: string; } export interface UpdateAttendanceData { status?: 'present' | 'absent' | 'late' | 'excused'; notes?: string; } export interface AttendanceFilters extends PaginationParams { studentId?: string; courseId?: string; status?: string; dateFrom?: string; dateTo?: string; search?: string; } export interface Webhook { id: string; url: string; events: string[]; secret: string; status: 'active' | 'inactive'; lastTriggered?: string; createdAt: string; updatedAt: string; } export interface CreateWebhookData { url: string; events: string[]; secret?: string; } export interface UpdateWebhookData { url?: string; events?: string[]; status?: 'active' | 'inactive'; } export interface WebhookFilters extends PaginationParams { status?: string; event?: string; search?: string; } export interface BulkOperation<T> { success: boolean; processed: number; errors: Array<{ index: number; error: string; data: T; }>; } export interface Statistics { totalStudents: number; totalTeachers: number; totalCourses: number; totalEnrollments: number; averageGPA: number; attendanceRate: number; } export interface CampusIQConfig { apiKey: string; schoolId: string; environment?: 'production' | 'sandbox'; baseURL?: string; timeout?: number; retries?: number; debug?: boolean; } //# sourceMappingURL=index.d.ts.map