export interface CrTimetableEvent { stage: string; begin: string; end: string; messages: string[]; } export interface CrTimetable { semester: string; undergraduate: boolean; graduate: boolean; events: CrTimetableEvent[]; } export interface CoursePlan { id: string; name: string; property: string; credit: number; group: string; } export interface CrSemester { id: string; name: string; } export interface SearchParams { semester: string; id?: string; name?: string; dayOfWeek?: number; period?: number; page?: number; } export interface CrRemainingInfo { id: string; seq: number; name: string; capacity: number; remaining: number; queue: number; teacher: string; time: string; } export interface CrPrimaryOpenInfo { department: string; id: string; seq: number; name: string; credits: number; teacher: string; bksCap: number; yjsCap: number; time: string; note: string; feature: string; year: string; secondary: string; reUseCap: string; restrict: string; culture: string; } export interface CrSearchResultInfo extends CrRemainingInfo, CrPrimaryOpenInfo { } export interface CrRemainingSearchResult { currPage: number; totalPage: number; totalCount: number; courses: CrRemainingInfo[]; } export interface CrPrimaryOpenSearchResult { currPage: number; totalPage: number; totalCount: number; courses: CrPrimaryOpenInfo[]; } export interface CrSearchResult { currPage: number; totalPage: number; totalCount: number; courses: CrSearchResultInfo[]; } export interface SelectedCourse { type: string; will: 1 | 2 | 3; id: string; seq: string; name: string; time: string; teacher: string; credit: number; secondary: boolean; } export type SearchCoursePriorityQuery = { selected: false; isSports: boolean; page?: number; courseId?: string; courseSeq?: string; courseName?: string; departmentId?: string; } | { selected: true; isSports: boolean; }; type SelectedCount = [number, number, number, number]; export interface SearchCoursePriorityResult { courseId: string; courseSeq: string; courseName: string; departmentName: string; capacity: number; bxSelected: SelectedCount; xxSelected: SelectedCount; rxSelected: SelectedCount; } export interface QueueInfo { property: string; will: 1 | 2 | 3; courseId: string; courseSeq: string; courseName: string; inQueue: number; position: number; time: string; teacher: string; } export {};