import { MultiLanguageString } from './common'; import { StudentId } from './student'; import { UserId } from './user'; import { ClientId } from './client'; import { AcademicYearId, RoomId } from './school'; export declare type ClassId = string; export declare type LessonId = string; export declare type ClassType = "none" | "hoikuen" | "youchien" | "preschool" | "baby" | "toddler" | "kindy" | "elementary" | "jhs" | "hs" | "college" | "uni" | "adult" | "other"; /** * dbRef: class/{sid}/list/{classId} */ export interface Class { id: ClassId; color?: string; initials: string; name: MultiLanguageString | string; type: ClassType; } /** * dbRef: class/{sid}/metadata/{classId} */ export interface ClassMetadata { id: ClassId; cid: ClientId; active: boolean; students: { [studentId: StudentId]: boolean; }; teachers: { [teacherId: UserId]: boolean; }; lessons: { [lessonId: LessonId]: boolean; }; roomId: RoomId; yid: AcademicYearId; } /** * dbRef: class/{sid}/settings/{classId} */ export interface ClassSettings { allowMakeup: boolean; allowCancel: boolean; sMax: number; tMax: number; sMin: number; tMin: number; eTime: string; sTime: string; } /** * dbRef: class/{sid}/{classId}/profile * @deprecated */ export interface ClassProfileV2 { name: MultiLanguageString; classYear: { academicYear: string; title: string; }; color?: string; imageUrl: string; initials: string; maxTeachers: number; minStudents: number; minTeachers: number; nameFurigana: string; nameRomaji: string; notes: string; room: string; timeEnd: string; timeStart: string; } /** * dbRef: class/{sid}/{classId}/metadata * @deprecated */ export interface ClassMetadataV2 { active: boolean; cid: ClientId; id: ClassId; lessons: { [lessonId: LessonId]: boolean; }; students: { [studentId: StudentId]: boolean; }; teachers: { [teacherId: UserId]: boolean; }; totalStudents: number; totalTeachers: number; }