@campusiq/sdk
Version:
Official JavaScript/TypeScript SDK for CampusIQ - A comprehensive school management system API
80 lines • 2.44 kB
TypeScript
import { BaseResource } from './base';
import { Attendance, ListResponse, PaginationParams } from '../types';
export interface CreateAttendanceData {
studentId: string;
courseId: string;
date: string;
status: 'present' | 'absent' | 'tardy' | 'excused';
notes?: string;
recordedBy: string;
}
export interface UpdateAttendanceData extends Partial<Omit<CreateAttendanceData, 'studentId' | 'courseId' | 'date'>> {
}
export interface AttendanceFilters extends PaginationParams {
studentId?: string;
courseId?: string;
status?: 'present' | 'absent' | 'tardy' | 'excused';
startDate?: string;
endDate?: string;
recordedBy?: string;
}
export declare class AttendanceResource extends BaseResource {
/**
* List all attendance records with optional filtering and pagination
*/
list(filters?: AttendanceFilters): Promise<ListResponse<Attendance>>;
/**
* Get a specific attendance record by ID
*/
getAttendance(attendanceId: string): Promise<Attendance>;
/**
* Create a new attendance record
*/
createAttendance(data: CreateAttendanceData): Promise<Attendance>;
/**
* Update an existing attendance record
*/
updateAttendance(attendanceId: string, data: UpdateAttendanceData): Promise<Attendance>;
/**
* Delete an attendance record
*/
deleteAttendance(attendanceId: string): Promise<{
success: boolean;
message: string;
}>;
/**
* Bulk create attendance records
*/
bulkCreate(records: CreateAttendanceData[]): Promise<{
created: Attendance[];
errors: any[];
}>;
/**
* Get attendance statistics for a student
*/
getStudentStats(studentId: string, filters?: {
courseId?: string;
startDate?: string;
endDate?: string;
}): Promise<any>;
/**
* Get attendance statistics for a course
*/
getCourseStats(courseId: string, filters?: {
date?: string;
startDate?: string;
endDate?: string;
}): Promise<any>;
/**
* Mark attendance for multiple students
*/
markBulkAttendance(courseId: string, date: string, records: Array<{
studentId: string;
status: 'present' | 'absent' | 'tardy' | 'excused';
notes?: string;
}>): Promise<{
created: Attendance[];
errors: any[];
}>;
}
//# sourceMappingURL=attendance.d.ts.map