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