@@ -7,6 +7,11 @@ enum class StudentScenario {
77}
88
99object MockGradeSystem {
10+ private const val DemoStudentNo = " DEMO-000"
11+ private const val DemoStudentName = " 範例學生"
12+ private const val DemoClassName = " 示範班級"
13+ private const val DemoSeatNo = " 00"
14+
1015 data class SubjectSpec (
1116 val name : String ,
1217 val classAverage : Double ,
@@ -120,10 +125,10 @@ object MockGradeSystem {
120125 return GradeReport (
121126 message = " fake mock data" ,
122127 studentInfo = StudentInfo (
123- studentNo = " 110000 " ,
124- studentName = " 展示學生 " ,
125- className = " 高二 3 班 " ,
126- seatNo = " 18 " ,
128+ studentNo = DemoStudentNo ,
129+ studentName = DemoStudentName ,
130+ className = DemoClassName ,
131+ seatNo = DemoSeatNo ,
127132 updatedAt = " 2026-05-20 08:00" ,
128133 showClassRank = true ,
129134 showClassRankCount = true ,
@@ -162,7 +167,7 @@ object MockGradeSystem {
162167
163168object FakeData {
164169 val session = AuthenticatedSession (
165- studentNo = " demo-student " ,
170+ studentNo = " DEMO-000 " ,
166171 apiToken = " fake-token" ,
167172 cookies = emptyMap(),
168173 )
@@ -247,22 +252,6 @@ class FakeGradeRepository : GradeRepository {
247252
248253 override fun restoreSession (): AuthenticatedSession ? = activeSession
249254
250- override suspend fun refreshCaptcha (): CaptchaChallenge = CaptchaChallenge (
251- loginToken = " fake-login-token" ,
252- shCaptchaGenCode = " fake-captcha" ,
253- deviceToken = " fake-device" ,
254- cookies = emptyMap(),
255- imageBytes = ByteArray (0 ),
256- contentType = " image/png" ,
257- )
258-
259- override suspend fun login (
260- username : String ,
261- password : String ,
262- captchaCode : String ,
263- challenge : CaptchaChallenge ,
264- ): AuthenticatedSession = FakeData .session.also { activeSession = it }
265-
266255 override suspend fun loadStructure (session : AuthenticatedSession , forceRefresh : Boolean ): List <YearTermOption > = FakeData .structure
267256
268257 override suspend fun fetchGrades (
@@ -281,3 +270,62 @@ class FakeGradeRepository : GradeRepository {
281270 cookies : Map <String , String >,
282271 ): AuthenticatedSession = FakeData .session.also { activeSession = it }
283272}
273+
274+ object FakeScheduleData {
275+ val years = listOf (
276+ ScheduleYearTermOption (" 113學年度第1學期" , " 1131" ),
277+ ScheduleYearTermOption (" 113學年度第2學期" , " 1132" )
278+ )
279+
280+ val classes = listOf (
281+ ScheduleClassOption (" 高二 30 班" , " 230" ),
282+ ScheduleClassOption (" 高二 31 班" , " 231" ),
283+ )
284+
285+ fun report (yearValue : String , classNo : String ): ScheduleReport {
286+ return ScheduleReport (
287+ yearTermValue = yearValue,
288+ items = listOf (
289+ ScheduleItem (dayOfWeek = 1 , period = 1 , subjectName = " 國語文" , teacherName = " 張三" , classroom = " 高二30" ),
290+ ScheduleItem (dayOfWeek = 1 , period = 2 , subjectName = " 數學" , teacherName = " 李四" , classroom = " 高二30" ),
291+ ScheduleItem (dayOfWeek = 1 , period = 3 , subjectName = " 英語文" , teacherName = " 王五" , classroom = " 高二30" ),
292+ ScheduleItem (dayOfWeek = 1 , period = 4 , subjectName = " 體育" , teacherName = " 趙六" , classroom = " 操場" ),
293+ ScheduleItem (dayOfWeek = 1 , period = 5 , subjectName = " 物理" , teacherName = " 孫七" , classroom = " 高二30" ),
294+ ScheduleItem (dayOfWeek = 1 , period = 6 , subjectName = " 化學" , teacherName = " 周八" , classroom = " 實驗室" ),
295+ ScheduleItem (dayOfWeek = 1 , period = 7 , subjectName = " 歷史" , teacherName = " 吳九" , classroom = " 高二30" ),
296+
297+ ScheduleItem (dayOfWeek = 2 , period = 1 , subjectName = " 數學" , teacherName = " 李四" , classroom = " 高二30" ),
298+ ScheduleItem (dayOfWeek = 2 , period = 2 , subjectName = " 英語文" , teacherName = " 王五" , classroom = " 高二30" ),
299+ ScheduleItem (dayOfWeek = 2 , period = 3 , subjectName = " 地理" , teacherName = " 鄭十" , classroom = " 高二30" ),
300+ ScheduleItem (dayOfWeek = 2 , period = 4 , subjectName = " 國語文" , teacherName = " 張三" , classroom = " 高二30" ),
301+ ScheduleItem (dayOfWeek = 2 , period = 5 , subjectName = " 美術" , teacherName = " 林一" , classroom = " 美術教室" ),
302+ ScheduleItem (dayOfWeek = 2 , period = 6 , subjectName = " 美術" , teacherName = " 林一" , classroom = " 美術教室" ),
303+ ScheduleItem (dayOfWeek = 2 , period = 7 , subjectName = " 班會" , teacherName = " 導師" , classroom = " 高二30" ),
304+
305+ ScheduleItem (dayOfWeek = 3 , period = 1 , subjectName = " 英語文" , teacherName = " 王五" , classroom = " 高二30" ),
306+ ScheduleItem (dayOfWeek = 3 , period = 2 , subjectName = " 國語文" , teacherName = " 張三" , classroom = " 高二30" ),
307+ ScheduleItem (dayOfWeek = 3 , period = 3 , subjectName = " 數學" , teacherName = " 李四" , classroom = " 高二30" ),
308+ ScheduleItem (dayOfWeek = 3 , period = 4 , subjectName = " 公民" , teacherName = " 陳二" , classroom = " 高二30" ),
309+ ScheduleItem (dayOfWeek = 3 , period = 5 , subjectName = " 物理" , teacherName = " 孫七" , classroom = " 高二30" ),
310+ ScheduleItem (dayOfWeek = 3 , period = 6 , subjectName = " 音樂" , teacherName = " 黃三" , classroom = " 音樂教室" ),
311+ ScheduleItem (dayOfWeek = 3 , period = 7 , subjectName = " 體育" , teacherName = " 趙六" , classroom = " 體育館" ),
312+
313+ ScheduleItem (dayOfWeek = 4 , period = 1 , subjectName = " 化學" , teacherName = " 周八" , classroom = " 高二30" ),
314+ ScheduleItem (dayOfWeek = 4 , period = 2 , subjectName = " 歷史" , teacherName = " 吳九" , classroom = " 高二30" ),
315+ ScheduleItem (dayOfWeek = 4 , period = 3 , subjectName = " 國語文" , teacherName = " 張三" , classroom = " 高二30" ),
316+ ScheduleItem (dayOfWeek = 4 , period = 4 , subjectName = " 數學" , teacherName = " 李四" , classroom = " 高二30" ),
317+ ScheduleItem (dayOfWeek = 4 , period = 5 , subjectName = " 英語文" , teacherName = " 王五" , classroom = " 高二30" ),
318+ ScheduleItem (dayOfWeek = 4 , period = 6 , subjectName = " 地科" , teacherName = " 何四" , classroom = " 高二30" ),
319+ ScheduleItem (dayOfWeek = 4 , period = 7 , subjectName = " 社團" , teacherName = " 各社團指導" , classroom = " 各處" ),
320+
321+ ScheduleItem (dayOfWeek = 5 , period = 1 , subjectName = " 物理" , teacherName = " 孫七" , classroom = " 高二30" ),
322+ ScheduleItem (dayOfWeek = 5 , period = 2 , subjectName = " 化學" , teacherName = " 周八" , classroom = " 高二30" ),
323+ ScheduleItem (dayOfWeek = 5 , period = 3 , subjectName = " 英語文" , teacherName = " 王五" , classroom = " 高二30" ),
324+ ScheduleItem (dayOfWeek = 5 , period = 4 , subjectName = " 數學" , teacherName = " 李四" , classroom = " 高二30" ),
325+ ScheduleItem (dayOfWeek = 5 , period = 5 , subjectName = " 國語文" , teacherName = " 張三" , classroom = " 高二30" ),
326+ ScheduleItem (dayOfWeek = 5 , period = 6 , subjectName = " 地理" , teacherName = " 鄭十" , classroom = " 高二30" ),
327+ ScheduleItem (dayOfWeek = 5 , period = 7 , subjectName = " 公民" , teacherName = " 陳二" , classroom = " 高二30" )
328+ )
329+ )
330+ }
331+ }
0 commit comments