import { BadgesCounts } from "@robotical/automatic-assessments"; import User from "../local-models/user/UserProfile"; import { StudentOrTeacherEnum } from "./class-related"; import { MinifiedScoresOverTime, StudentAssessmentScoresOverTime } from "./student"; export interface ServerResponse { success: boolean; message: string; data?: T; } export interface SocketJoinClassData { classId: string; userId: string; } export interface SocketCreateSessionData { classId: string; sessionName: string; createdAt: string; } export interface SocketStopSessionData { classId: string; sessionId: string; endTimestamp: string; } export interface SocketJoinSessionData { classId: string; studentId: string; studentFirstName: string; studentLastName: string; } export interface SocketExitSessionData { classId: string; studentId: string; } export interface RESTSelectClassData { classId: string; classTitle: string; classSection: string; classTeacherId: string; enrolledStudents: User[]; userProfileId: string; userProfileFirstName: string; userProfileLastName: string; studentOrTeacher: StudentOrTeacherEnum; } export interface RESTFetchAllSessionsForAClassData { classId: string; } export interface RESTFetchSessionData { classId: string; sessionId: string; } export interface SocketActivateStudentData { classId: string; studentId: string; } export interface RESTAddClassNoteData { classId: string; noteText: string; timestamp: string; imageFile?: File; } export interface RESTAddSessionNoteData { classId: string; sessionId: string; noteText: string; timestamp: string; imageFile?: File; } export interface RESTRemoveClassNoteData { classId: string; noteId: string; } export interface RESTRemoveSessionNoteData { classId: string; sessionId: string; noteId: string; } export interface SocketSessionAnnouncementData { classId: string; sessionId: string; text: string; timestamp: string; imageUrl?: string; } export interface SocketRemoveSessionAnnouncementData { classId: string; sessionId: string; announcementId: string; } export interface SocketRemoveClassAnnouncementData { classId: string; announcementId: string; } export interface SocketClassAnnouncementData { classId: string; text: string; timestamp: string; imageUrl?: string; } export interface SocketQuestionData { classId: string; sessionId: string; question: string; timestamp: string; } export interface SocketAnswerData { classId: string; sessionId: string; studentId: string; questionId: string; answer: string; timestamp: string; } export interface SocketUpdateAnswerData extends SocketAnswerData { answerId: string; } export interface SocketSessionAnnouncementReadData { classId: string; sessionId: string; studentId: string; announcementId: string; } export interface SocketClassAnnouncementReadData { classId: string; studentId: string; announcementId: string; } export interface SocketCodeSubmissionData { classId: string; sessionId: string; studentId: string; codeUrl: string; timestamp: string; title: string; explanation: string; } export interface SocketUpdateCodeSubmissionData extends SocketCodeSubmissionData { codeSubmissionId: string; } export interface SocketRemoveCodeSubmissionData { classId: string; sessionId: string; codeSubmissionId: string; } export interface RESTStoreCodeBase64Data { codeBase64: string; } export interface RESTFetchCodeSubmissionsForStudentData { classId: string; studentId: string; } export interface RESTStoreImageData { imageFile: File; } export interface RESTFetchBadgesData { classId: string; studentId: string; } export interface SocketStudentSessionData { sessionId: string; classId: string; studentId: string; scoresOverTime: StudentAssessmentScoresOverTime; } export interface RESTUpdateStudentBadges { classId: string; studentId: string; studentBadgesScores: BadgesCounts; } export interface SocketUpdateStudentSessionData { classId: string; sessionId: string; studentId: string; scoresOverTime: StudentAssessmentScoresOverTime; } export interface SocketUpdateSessionTitle { classId: string; sessionId: string; title: string; } export interface RESTCreateUserProfileData { email: string; pw: string; firstName: string; lastName: string; } export interface RESTCreateClassData { ownerId: string; title: string; section: string; } export interface RESTFetchAllStudentsData { classId: string; } export interface RESTRegisterCredUser { firstName: string; lastName: string; email: string; password: string; } export interface RESTLoginCredUser { email: string; password: string; } export interface RESTGetCredUser { email: string; } export interface RESTUpdateCredUser { email: string; propertyToUpdate: string; valueToUpdate: string; } export interface RESTCreateClassCodeInviteData { classId: string; } export interface RESTGetClassCodeInviteByClassIdData { classId: string; } export interface RESTGetClassCodeInviteByCodeData { code: string; } export interface RESTGetClassCodeInviteByIdData { id: string; } export interface RESTRegenerateClassCodeInviteData { id: string; } export interface RESTJoinClassUsingInviteCodeData { code: string; studentId: string; }