nurekit
Version:
Node.js client for Mindenit Schedule API
65 lines • 1.55 kB
TypeScript
//#region src/types/index.d.ts
type EventType = "Лк" | "Пз" | "Лб" | "Конс" | "Зал" | "Екз" | "КП/КР";
interface Group {
id: number;
name: string;
}
interface Auditorium extends Group {}
interface Teacher {
id: number;
fullName: string;
shortName: string;
}
interface Subject {
id: number;
brief: string;
title: string;
}
interface Schedule {
id: number;
startedAt: number;
endedAt: number;
auditorium: Auditorium;
numberPair: number;
type: string;
groups: Group[];
teachers: Teacher[];
subject: Subject;
}
interface GroupScheduleFilters {
lessonTypes: EventType[];
teachers: number[];
auditoriums: number[];
subjects: number[];
}
interface TeacherScheduleFilters {
lessonTypes: EventType[];
groups: number[];
auditoriums: number[];
subjects: number[];
}
interface AuditoriumScheduleFilters {
lessonTypes: EventType[];
groups: number[];
teachers: number[];
subjects: number[];
}
interface GetScheduleParams<TFilters extends object> {
id: number;
startedAt: number;
endedAt: number;
filters?: Partial<TFilters>;
}
type ScheduleType = "groups" | "auditoriums" | "teachers";
interface ShortSchedule {
name: string;
id: number;
type: ScheduleType;
}
interface ScheduleQueryParams<T extends object> {
start: number;
end: number;
filters?: Partial<T>;
}
//#endregion
export { Auditorium, AuditoriumScheduleFilters, EventType, GetScheduleParams, Group, GroupScheduleFilters, Schedule, ScheduleQueryParams, ShortSchedule, Subject, Teacher, TeacherScheduleFilters };