UNPKG

@campusiq/sdk

Version:

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

73 lines 2.02 kB
import { BaseResource } from './base'; import { Teacher, ListResponse, PaginationParams } from '../types'; export interface CreateTeacherData { firstName: string; lastName: string; email: string; department: string; subjects: string[]; hireDate: string; qualifications: string[]; address?: { street: string; city: string; state: string; zipCode: string; country?: string; }; phone?: string; } export interface UpdateTeacherData extends Partial<CreateTeacherData> { status?: 'active' | 'inactive'; } export interface TeacherFilters extends PaginationParams { department?: string; status?: 'active' | 'inactive'; search?: string; subject?: string; hireDateFrom?: string; hireDateTo?: string; } export declare class TeachersResource extends BaseResource { /** * List all teachers with optional filtering and pagination */ list(filters?: TeacherFilters): Promise<ListResponse<Teacher>>; /** * Get a specific teacher by ID */ get(teacherId: string): Promise<Teacher>; /** * Create a new teacher */ create(data: CreateTeacherData): Promise<Teacher>; /** * Update an existing teacher */ update(teacherId: string, data: UpdateTeacherData): Promise<Teacher>; /** * Delete a teacher */ delete(teacherId: string): Promise<{ success: boolean; message: string; }>; /** * Get teacher's courses */ getCourses(teacherId: string, filters?: PaginationParams & { semester?: string; }): Promise<ListResponse<any>>; /** * Get teacher's schedule */ getSchedule(teacherId: string, filters?: { semester?: string; week?: string; }): Promise<any>; /** * Search teachers by name, email, or department */ search(query: string, filters?: Omit<TeacherFilters, 'search'>): Promise<ListResponse<Teacher>>; } //# sourceMappingURL=teachers.d.ts.map