@campusiq/sdk
Version:
Official JavaScript/TypeScript SDK for CampusIQ - A comprehensive school management system API
363 lines • 8.37 kB
TypeScript
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