|
|
@@ -0,0 +1,31 @@
|
|
|
+import type { ClassSessionSummary } from '@/services/speaking'
|
|
|
+
|
|
|
+/** 班级花名册中的一条学生信息(来自 PPT 后端 selectWorksStudent) */
|
|
|
+export interface ClassStudent {
|
|
|
+ userid: string
|
|
|
+ name: string
|
|
|
+ classid?: string
|
|
|
+}
|
|
|
+
|
|
|
+/** 三态 UI 状态 */
|
|
|
+export type ClassStudentStatus = 'submitted' | 'unsubmitted' | 'not_started'
|
|
|
+
|
|
|
+/** 学生卡片渲染所需的合并数据 */
|
|
|
+export interface ClassStudentSummary {
|
|
|
+ userId: string
|
|
|
+ name: string
|
|
|
+ status: ClassStudentStatus
|
|
|
+ /** 仅 submitted 状态有效 */
|
|
|
+ overallScore: number | null
|
|
|
+ /** 用于点击下钻;未开始为 null */
|
|
|
+ sessionId: string | null
|
|
|
+ /** 用于排序时间正/倒序 */
|
|
|
+ createdAt: string | null
|
|
|
+ completedAt: string | null
|
|
|
+ /** 后端原始 session 状态(用于 modal 内分支) */
|
|
|
+ rawStatus: ClassSessionSummary['status'] | null
|
|
|
+ /** 报告就绪状态 */
|
|
|
+ overallStatus: ClassSessionSummary['overallStatus']
|
|
|
+}
|
|
|
+
|
|
|
+export type Locale = 'zh' | 'en' | 'hk'
|