From a461f58d3aa8dea373dbb47f8af3927c27c7f226 Mon Sep 17 00:00:00 2001 From: zhonghua Date: Mon, 16 Mar 2026 10:45:15 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20orval=20API=20=E7=94=9F=E6=88=90?= =?UTF-8?q?=E4=BC=98=E5=8C=96=20-=20=E4=BF=AE=E5=A4=8D=20oneOf=20schema=20?= =?UTF-8?q?=E9=AA=8C=E8=AF=81=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增 scripts/fetch-openapi.js:拉取并修复 OpenAPI 文档 - 内联 ResultObject[] 的 \,移除非法 schema 名 - orval 使用本地 openapi.json,api:update 自动执行 api:fetch - AdminStatsController: Result 改为 Result>> - .gitignore: 忽略 openapi.json Made-with: Cursor --- .gitignore | 5 +- reading-platform-frontend/openapi.json | 1 - reading-platform-frontend/orval.config.ts | 42 +- reading-platform-frontend/package.json | 3 +- .../scripts/fetch-openapi.js | 89 + .../src/api/generated/index.ts | 2469 +++++++++++++---- .../model/batchCreateSchedulesBody.ts | 9 + .../api/generated/model/classCreateRequest.ts | 10 +- .../src/api/generated/model/classResponse.ts | 31 + .../generated/model/classTeacherResponse.ts | 23 + .../api/generated/model/classUpdateRequest.ts | 12 +- .../src/api/generated/model/course.ts | 174 +- .../generated/model/courseCreateRequest.ts | 78 +- .../src/api/generated/model/courseLesson.ts | 64 +- .../model/courseLessonCreateRequest.ts | 8 +- .../src/api/generated/model/coursePackage.ts | 52 +- .../src/api/generated/model/courseResponse.ts | 129 + .../generated/model/courseUpdateRequest.ts | 80 +- .../generated/model/createFromTemplateBody.ts | 9 + .../generated/model/createSchedule1Body.ts | 9 + .../api/generated/model/createScheduleBody.ts | 9 + .../generated/model/createTemplate1Body.ts | 9 + .../api/generated/model/createTemplateBody.ts | 9 + .../model/exportGrowthRecordsParams.ts | 11 + .../generated/model/exportLessonsParams.ts | 12 + .../src/api/generated/model/findAll1Params.ts | 2 +- .../api/generated/model/findAllItemsParams.ts | 2 +- .../generated/model/findAllLibrariesParams.ts | 2 +- .../generated/model/getActiveTenants200.ts | 14 + .../model/getActiveTenants200DataItem.ts | 9 + .../generated/model/getActiveTenantsParams.ts | 11 + .../generated/model/getAllStudentsParams.ts | 13 + .../model/getClassStudents1Params.ts | 12 + .../generated/model/getClassStudentsParams.ts | 13 + .../generated/model/getFeedbacks1Params.ts | 15 + .../api/generated/model/getFeedbacksParams.ts | 13 + .../api/generated/model/getLogListParams.ts | 14 + .../api/generated/model/getMyTasksParams.ts | 13 + .../generated/model/getPopularCourses200.ts | 14 + .../model/getPopularCourses200DataItem.ts | 9 + .../model/getPopularCoursesParams.ts | 11 + .../model/getRecentActivities1200.ts | 14 + .../model/getRecentActivities1200DataItem.ts | 9 + .../model/getRecentActivities1Params.ts | 11 + .../generated/model/getSchedules1Params.ts | 14 + .../api/generated/model/getSchedulesParams.ts | 12 + .../generated/model/getTemplates1Params.ts | 13 + .../api/generated/model/getTemplatesParams.ts | 13 + .../generated/model/getTimetable1Params.ts | 13 + .../api/generated/model/getTimetableParams.ts | 12 + .../src/api/generated/model/grantRequest.ts | 13 + .../src/api/generated/model/growthRecord.ts | 41 +- .../model/growthRecordCreateRequest.ts | 16 +- .../generated/model/growthRecordResponse.ts | 39 + .../model/growthRecordUpdateRequest.ts | 14 +- .../src/api/generated/model/index.ts | 99 + .../src/api/generated/model/lesson.ts | 24 +- .../generated/model/lessonCreateRequest.ts | 16 +- .../src/api/generated/model/lessonResponse.ts | 40 + .../src/api/generated/model/lessonStep.ts | 31 +- .../generated/model/lessonUpdateRequest.ts | 12 +- .../src/api/generated/model/localTime.ts | 2 +- .../src/api/generated/model/loginRequest.ts | 8 +- .../src/api/generated/model/loginResponse.ts | 12 +- .../src/api/generated/model/notification.ts | 42 +- .../generated/model/notificationResponse.ts | 37 + .../generated/model/packageCreateRequest.ts | 2 +- .../model/pageResultClassResponse.ts | 16 + .../model/pageResultCourseResponse.ts | 16 + .../model/pageResultGrowthRecordResponse.ts | 16 + .../model/pageResultLessonResponse.ts | 16 + .../model/pageResultNotificationResponse.ts | 16 + .../model/pageResultParentResponse.ts | 16 + .../model/pageResultStudentResponse.ts | 16 + .../generated/model/pageResultTaskResponse.ts | 16 + .../model/pageResultTeacherResponse.ts | 16 + .../model/pageResultTenantResponse.ts | 16 + .../generated/model/parentCreateRequest.ts | 14 +- .../src/api/generated/model/parentResponse.ts | 37 + .../generated/model/parentStudentResponse.ts | 25 + .../generated/model/parentUpdateRequest.ts | 14 +- .../src/api/generated/model/resourceItem.ts | 45 +- .../api/generated/model/resourceLibrary.ts | 27 +- .../generated/model/resultClassResponse.ts | 14 + .../generated/model/resultCourseResponse.ts | 14 + .../model/resultGrowthRecordResponse.ts | 14 + .../generated/model/resultLessonResponse.ts | 14 + .../model/resultListClassResponse.ts | 14 + .../model/resultListClassTeacherResponse.ts | 14 + .../model/resultListCourseResponse.ts | 14 + .../model/resultListGrowthRecordResponse.ts | 14 + .../model/resultListLessonResponse.ts | 14 + .../model/resultListParentStudentResponse.ts | 14 + .../model/resultListStudentResponse.ts | 14 + .../model/resultNotificationResponse.ts | 14 + .../src/api/generated/model/resultObject.ts | 14 + .../api/generated/model/resultObjectData.ts | 9 + .../model/resultPageResultClassResponse.ts | 14 + .../model/resultPageResultCourseResponse.ts | 14 + .../resultPageResultGrowthRecordResponse.ts | 14 + .../model/resultPageResultLessonResponse.ts | 14 + .../resultPageResultNotificationResponse.ts | 14 + .../model/resultPageResultParentResponse.ts | 14 + .../model/resultPageResultStudentResponse.ts | 14 + .../model/resultPageResultTaskResponse.ts | 14 + .../model/resultPageResultTeacherResponse.ts | 14 + .../model/resultPageResultTenantResponse.ts | 14 + .../generated/model/resultParentResponse.ts | 14 + .../generated/model/resultStudentResponse.ts | 14 + .../api/generated/model/resultTaskResponse.ts | 14 + .../generated/model/resultTeacherResponse.ts | 14 + .../generated/model/resultTenantResponse.ts | 14 + .../generated/model/resultTokenResponse.ts | 14 + .../generated/model/studentCreateRequest.ts | 18 +- .../api/generated/model/studentResponse.ts | 41 + .../generated/model/studentUpdateRequest.ts | 22 +- .../api/generated/model/taskCreateRequest.ts | 20 +- .../src/api/generated/model/taskResponse.ts | 41 + .../api/generated/model/taskUpdateRequest.ts | 16 +- .../generated/model/teacherCreateRequest.ts | 16 +- .../api/generated/model/teacherResponse.ts | 39 + .../generated/model/teacherUpdateRequest.ts | 16 +- .../generated/model/tenantCreateRequest.ts | 20 +- .../src/api/generated/model/tenantPackage.ts | 28 +- .../src/api/generated/model/tenantResponse.ts | 30 +- .../generated/model/tenantUpdateRequest.ts | 20 +- .../src/api/generated/model/theme.ts | 22 +- .../src/api/generated/model/tokenResponse.ts | 15 + .../model/updateBasicSettings1Body.ts | 9 + .../model/updateBasicSettingsBody.ts | 9 + .../generated/model/updateClassTeacherBody.ts | 9 + .../model/updateNotificationSettings1Body.ts | 9 + .../model/updateNotificationSettingsBody.ts | 9 + .../generated/model/updateSchedule1Body.ts | 9 + .../api/generated/model/updateScheduleBody.ts | 9 + .../model/updateSecuritySettings1Body.ts | 9 + .../model/updateSecuritySettingsBody.ts | 9 + .../generated/model/updateSettings1Body.ts | 9 + .../api/generated/model/updateSettingsBody.ts | 9 + .../model/updateStorageSettingsBody.ts | 9 + .../generated/model/updateTemplate1Body.ts | 9 + .../api/generated/model/updateTemplateBody.ts | 9 + .../generated/model/updateTenantQuotaBody.ts | 9 + .../generated/model/updateTenantStatusBody.ts | 9 + .../api/generated/model/userInfoResponse.ts | 18 +- .../admin/AdminStatsController.java | 14 +- 146 files changed, 4350 insertions(+), 1000 deletions(-) delete mode 100644 reading-platform-frontend/openapi.json create mode 100644 reading-platform-frontend/scripts/fetch-openapi.js create mode 100644 reading-platform-frontend/src/api/generated/model/batchCreateSchedulesBody.ts create mode 100644 reading-platform-frontend/src/api/generated/model/classResponse.ts create mode 100644 reading-platform-frontend/src/api/generated/model/classTeacherResponse.ts create mode 100644 reading-platform-frontend/src/api/generated/model/courseResponse.ts create mode 100644 reading-platform-frontend/src/api/generated/model/createFromTemplateBody.ts create mode 100644 reading-platform-frontend/src/api/generated/model/createSchedule1Body.ts create mode 100644 reading-platform-frontend/src/api/generated/model/createScheduleBody.ts create mode 100644 reading-platform-frontend/src/api/generated/model/createTemplate1Body.ts create mode 100644 reading-platform-frontend/src/api/generated/model/createTemplateBody.ts create mode 100644 reading-platform-frontend/src/api/generated/model/exportGrowthRecordsParams.ts create mode 100644 reading-platform-frontend/src/api/generated/model/exportLessonsParams.ts create mode 100644 reading-platform-frontend/src/api/generated/model/getActiveTenants200.ts create mode 100644 reading-platform-frontend/src/api/generated/model/getActiveTenants200DataItem.ts create mode 100644 reading-platform-frontend/src/api/generated/model/getActiveTenantsParams.ts create mode 100644 reading-platform-frontend/src/api/generated/model/getAllStudentsParams.ts create mode 100644 reading-platform-frontend/src/api/generated/model/getClassStudents1Params.ts create mode 100644 reading-platform-frontend/src/api/generated/model/getClassStudentsParams.ts create mode 100644 reading-platform-frontend/src/api/generated/model/getFeedbacks1Params.ts create mode 100644 reading-platform-frontend/src/api/generated/model/getFeedbacksParams.ts create mode 100644 reading-platform-frontend/src/api/generated/model/getLogListParams.ts create mode 100644 reading-platform-frontend/src/api/generated/model/getMyTasksParams.ts create mode 100644 reading-platform-frontend/src/api/generated/model/getPopularCourses200.ts create mode 100644 reading-platform-frontend/src/api/generated/model/getPopularCourses200DataItem.ts create mode 100644 reading-platform-frontend/src/api/generated/model/getPopularCoursesParams.ts create mode 100644 reading-platform-frontend/src/api/generated/model/getRecentActivities1200.ts create mode 100644 reading-platform-frontend/src/api/generated/model/getRecentActivities1200DataItem.ts create mode 100644 reading-platform-frontend/src/api/generated/model/getRecentActivities1Params.ts create mode 100644 reading-platform-frontend/src/api/generated/model/getSchedules1Params.ts create mode 100644 reading-platform-frontend/src/api/generated/model/getSchedulesParams.ts create mode 100644 reading-platform-frontend/src/api/generated/model/getTemplates1Params.ts create mode 100644 reading-platform-frontend/src/api/generated/model/getTemplatesParams.ts create mode 100644 reading-platform-frontend/src/api/generated/model/getTimetable1Params.ts create mode 100644 reading-platform-frontend/src/api/generated/model/getTimetableParams.ts create mode 100644 reading-platform-frontend/src/api/generated/model/grantRequest.ts create mode 100644 reading-platform-frontend/src/api/generated/model/growthRecordResponse.ts create mode 100644 reading-platform-frontend/src/api/generated/model/lessonResponse.ts create mode 100644 reading-platform-frontend/src/api/generated/model/notificationResponse.ts create mode 100644 reading-platform-frontend/src/api/generated/model/pageResultClassResponse.ts create mode 100644 reading-platform-frontend/src/api/generated/model/pageResultCourseResponse.ts create mode 100644 reading-platform-frontend/src/api/generated/model/pageResultGrowthRecordResponse.ts create mode 100644 reading-platform-frontend/src/api/generated/model/pageResultLessonResponse.ts create mode 100644 reading-platform-frontend/src/api/generated/model/pageResultNotificationResponse.ts create mode 100644 reading-platform-frontend/src/api/generated/model/pageResultParentResponse.ts create mode 100644 reading-platform-frontend/src/api/generated/model/pageResultStudentResponse.ts create mode 100644 reading-platform-frontend/src/api/generated/model/pageResultTaskResponse.ts create mode 100644 reading-platform-frontend/src/api/generated/model/pageResultTeacherResponse.ts create mode 100644 reading-platform-frontend/src/api/generated/model/pageResultTenantResponse.ts create mode 100644 reading-platform-frontend/src/api/generated/model/parentResponse.ts create mode 100644 reading-platform-frontend/src/api/generated/model/parentStudentResponse.ts create mode 100644 reading-platform-frontend/src/api/generated/model/resultClassResponse.ts create mode 100644 reading-platform-frontend/src/api/generated/model/resultCourseResponse.ts create mode 100644 reading-platform-frontend/src/api/generated/model/resultGrowthRecordResponse.ts create mode 100644 reading-platform-frontend/src/api/generated/model/resultLessonResponse.ts create mode 100644 reading-platform-frontend/src/api/generated/model/resultListClassResponse.ts create mode 100644 reading-platform-frontend/src/api/generated/model/resultListClassTeacherResponse.ts create mode 100644 reading-platform-frontend/src/api/generated/model/resultListCourseResponse.ts create mode 100644 reading-platform-frontend/src/api/generated/model/resultListGrowthRecordResponse.ts create mode 100644 reading-platform-frontend/src/api/generated/model/resultListLessonResponse.ts create mode 100644 reading-platform-frontend/src/api/generated/model/resultListParentStudentResponse.ts create mode 100644 reading-platform-frontend/src/api/generated/model/resultListStudentResponse.ts create mode 100644 reading-platform-frontend/src/api/generated/model/resultNotificationResponse.ts create mode 100644 reading-platform-frontend/src/api/generated/model/resultObject.ts create mode 100644 reading-platform-frontend/src/api/generated/model/resultObjectData.ts create mode 100644 reading-platform-frontend/src/api/generated/model/resultPageResultClassResponse.ts create mode 100644 reading-platform-frontend/src/api/generated/model/resultPageResultCourseResponse.ts create mode 100644 reading-platform-frontend/src/api/generated/model/resultPageResultGrowthRecordResponse.ts create mode 100644 reading-platform-frontend/src/api/generated/model/resultPageResultLessonResponse.ts create mode 100644 reading-platform-frontend/src/api/generated/model/resultPageResultNotificationResponse.ts create mode 100644 reading-platform-frontend/src/api/generated/model/resultPageResultParentResponse.ts create mode 100644 reading-platform-frontend/src/api/generated/model/resultPageResultStudentResponse.ts create mode 100644 reading-platform-frontend/src/api/generated/model/resultPageResultTaskResponse.ts create mode 100644 reading-platform-frontend/src/api/generated/model/resultPageResultTeacherResponse.ts create mode 100644 reading-platform-frontend/src/api/generated/model/resultPageResultTenantResponse.ts create mode 100644 reading-platform-frontend/src/api/generated/model/resultParentResponse.ts create mode 100644 reading-platform-frontend/src/api/generated/model/resultStudentResponse.ts create mode 100644 reading-platform-frontend/src/api/generated/model/resultTaskResponse.ts create mode 100644 reading-platform-frontend/src/api/generated/model/resultTeacherResponse.ts create mode 100644 reading-platform-frontend/src/api/generated/model/resultTenantResponse.ts create mode 100644 reading-platform-frontend/src/api/generated/model/resultTokenResponse.ts create mode 100644 reading-platform-frontend/src/api/generated/model/studentResponse.ts create mode 100644 reading-platform-frontend/src/api/generated/model/taskResponse.ts create mode 100644 reading-platform-frontend/src/api/generated/model/teacherResponse.ts create mode 100644 reading-platform-frontend/src/api/generated/model/tokenResponse.ts create mode 100644 reading-platform-frontend/src/api/generated/model/updateBasicSettings1Body.ts create mode 100644 reading-platform-frontend/src/api/generated/model/updateBasicSettingsBody.ts create mode 100644 reading-platform-frontend/src/api/generated/model/updateClassTeacherBody.ts create mode 100644 reading-platform-frontend/src/api/generated/model/updateNotificationSettings1Body.ts create mode 100644 reading-platform-frontend/src/api/generated/model/updateNotificationSettingsBody.ts create mode 100644 reading-platform-frontend/src/api/generated/model/updateSchedule1Body.ts create mode 100644 reading-platform-frontend/src/api/generated/model/updateScheduleBody.ts create mode 100644 reading-platform-frontend/src/api/generated/model/updateSecuritySettings1Body.ts create mode 100644 reading-platform-frontend/src/api/generated/model/updateSecuritySettingsBody.ts create mode 100644 reading-platform-frontend/src/api/generated/model/updateSettings1Body.ts create mode 100644 reading-platform-frontend/src/api/generated/model/updateSettingsBody.ts create mode 100644 reading-platform-frontend/src/api/generated/model/updateStorageSettingsBody.ts create mode 100644 reading-platform-frontend/src/api/generated/model/updateTemplate1Body.ts create mode 100644 reading-platform-frontend/src/api/generated/model/updateTemplateBody.ts create mode 100644 reading-platform-frontend/src/api/generated/model/updateTenantQuotaBody.ts create mode 100644 reading-platform-frontend/src/api/generated/model/updateTenantStatusBody.ts diff --git a/.gitignore b/.gitignore index 6e3a8c2..378b547 100644 --- a/.gitignore +++ b/.gitignore @@ -35,4 +35,7 @@ package-lock.json stats.html *.class -target/ \ No newline at end of file +target/ + +# 前端生成的 OpenAPI 文档(由 api:fetch 生成) +reading-platform-frontend/openapi.json \ No newline at end of file diff --git a/reading-platform-frontend/openapi.json b/reading-platform-frontend/openapi.json deleted file mode 100644 index b5dfc03..0000000 --- a/reading-platform-frontend/openapi.json +++ /dev/null @@ -1 +0,0 @@ -{"openapi":"3.0.1","info":{"title":"Reading Platform API","description":"Reading Platform Backend Service API Documentation","contact":{"name":"Reading Platform Team","email":"support@reading-platform.com"},"version":"1.0.0"},"servers":[{"url":"http://localhost:8080","description":"Generated server url"}],"security":[{"Bearer":[]}],"tags":[{"name":"Teacher - Notification","description":"Notification APIs for Teacher"},{"name":"School - Task","description":"Task Management APIs for School"},{"name":"Parent - Task","description":"Task APIs for Parent"},{"name":"School - Student","description":"Student Management APIs for School"},{"name":"Auth","description":"Authentication APIs"},{"name":"Admin - Tenant","description":"Tenant Management APIs for Admin"},{"name":"School - Class","description":"Class Management APIs for School"},{"name":"Parent - Growth Record","description":"Growth Record APIs for Parent"},{"name":"Teacher - Course","description":"Course APIs for Teacher"},{"name":"Admin - Course","description":"System Course Management APIs for Admin"},{"name":"School - Teacher","description":"Teacher Management APIs for School"},{"name":"School - Parent","description":"Parent Management APIs for School"},{"name":"Parent - Child","description":"Child Information APIs for Parent"},{"name":"Teacher - Growth Record","description":"Growth Record APIs for Teacher"},{"name":"Teacher - Task","description":"Task APIs for Teacher"},{"name":"Teacher - Lesson","description":"Lesson APIs for Teacher"},{"name":"School - Growth Record","description":"Growth Record Management APIs for School"},{"name":"Parent - Notification","description":"Notification APIs for Parent"}],"paths":{"/api/v1/admin/themes/{id}":{"get":{"tags":["超管端 - 主题字典"],"summary":"查询主题详情","operationId":"findOne","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultTheme"}}}}}},"put":{"tags":["超管端 - 主题字典"],"summary":"更新主题","operationId":"update","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ThemeCreateRequest"}}},"required":true},"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultTheme"}}}}}},"delete":{"tags":["超管端 - 主题字典"],"summary":"删除主题","operationId":"delete","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}}}}},"/api/v1/admin/themes/reorder":{"put":{"tags":["超管端 - 主题字典"],"summary":"重新排序主题","operationId":"reorder","requestBody":{"content":{"application/json":{"schema":{"type":"array","items":{"type":"integer","format":"int64"}}}},"required":true},"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}}}}},"/api/v1/admin/resources/libraries/{id}":{"get":{"tags":["超管端 - 资源库"],"summary":"查询资源库详情","operationId":"findLibrary","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultResourceLibrary"}}}}}},"put":{"tags":["超管端 - 资源库"],"summary":"更新资源库","operationId":"updateLibrary","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LibraryUpdateRequest"}}},"required":true},"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultResourceLibrary"}}}}}},"delete":{"tags":["超管端 - 资源库"],"summary":"删除资源库","operationId":"deleteLibrary","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}}}}},"/api/v1/admin/resources/items/{id}":{"get":{"tags":["超管端 - 资源库"],"summary":"查询资源项目详情","operationId":"findItem","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultResourceItem"}}}}}},"put":{"tags":["超管端 - 资源库"],"summary":"更新资源项目","operationId":"updateItem","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItemUpdateRequest"}}},"required":true},"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultResourceItem"}}}}}},"delete":{"tags":["超管端 - 资源库"],"summary":"删除资源项目","operationId":"deleteItem","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}}}}},"/api/v1/admin/packages/{id}":{"get":{"tags":["超管端 - 课程套餐"],"summary":"查询套餐详情","operationId":"findOne_1","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultCoursePackage"}}}}}},"put":{"tags":["超管端 - 课程套餐"],"summary":"更新套餐","operationId":"update_1","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PackageCreateRequest"}}},"required":true},"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultCoursePackage"}}}}}},"delete":{"tags":["超管端 - 课程套餐"],"summary":"删除套餐","operationId":"delete_1","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}}}}},"/api/v1/admin/packages/{id}/courses":{"put":{"tags":["超管端 - 课程套餐"],"summary":"设置套餐课程","operationId":"setCourses","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"array","items":{"type":"integer","format":"int64"}}}},"required":true},"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}}}}},"/api/v1/admin/courses/{courseId}/lessons/{lessonId}/steps/reorder":{"put":{"tags":["超管端 - 课程环节"],"summary":"重新排序教学环节","operationId":"reorderSteps","parameters":[{"name":"courseId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"lessonId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"array","items":{"type":"integer","format":"int64"}}}},"required":true},"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}}}}},"/api/v1/admin/courses/{courseId}/lessons/{id}":{"get":{"tags":["超管端 - 课程环节"],"summary":"获取课程环节详情","operationId":"findOne_2","parameters":[{"name":"courseId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultCourseLesson"}}}}}},"put":{"tags":["超管端 - 课程环节"],"summary":"更新课程环节","operationId":"update_2","parameters":[{"name":"courseId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CourseLessonCreateRequest"}}},"required":true},"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultCourseLesson"}}}}}},"delete":{"tags":["超管端 - 课程环节"],"summary":"删除课程环节","operationId":"delete_2","parameters":[{"name":"courseId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}}}}},"/api/v1/admin/courses/{courseId}/lessons/steps/{stepId}":{"put":{"tags":["超管端 - 课程环节"],"summary":"更新教学环节","operationId":"updateStep","parameters":[{"name":"courseId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"stepId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StepCreateRequest"}}},"required":true},"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultLessonStep"}}}}}},"delete":{"tags":["超管端 - 课程环节"],"summary":"删除教学环节","operationId":"removeStep","parameters":[{"name":"courseId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"stepId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}}}}},"/api/v1/admin/courses/{courseId}/lessons/reorder":{"put":{"tags":["超管端 - 课程环节"],"summary":"重新排序课程环节","operationId":"reorder_1","parameters":[{"name":"courseId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"array","items":{"type":"integer","format":"int64"}}}},"required":true},"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}}}}},"/api/teacher/tasks/{id}":{"get":{"tags":["Teacher - Task"],"summary":"Get task by ID","operationId":"getTask","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultTask"}}}}}},"put":{"tags":["Teacher - Task"],"summary":"Update task","operationId":"updateTask","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaskUpdateRequest"}}},"required":true},"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultTask"}}}}}},"delete":{"tags":["Teacher - Task"],"summary":"Delete task","operationId":"deleteTask","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}}}}},"/api/teacher/lessons/{id}":{"get":{"tags":["Teacher - Lesson"],"summary":"Get lesson by ID","operationId":"getLesson","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultLesson"}}}}}},"put":{"tags":["Teacher - Lesson"],"summary":"Update lesson","operationId":"updateLesson","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LessonUpdateRequest"}}},"required":true},"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultLesson"}}}}}}},"/api/teacher/growth-records/{id}":{"get":{"tags":["Teacher - Growth Record"],"summary":"Get growth record by ID","operationId":"getGrowthRecord","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultGrowthRecord"}}}}}},"put":{"tags":["Teacher - Growth Record"],"summary":"Update growth record","operationId":"updateGrowthRecord","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GrowthRecordUpdateRequest"}}},"required":true},"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultGrowthRecord"}}}}}},"delete":{"tags":["Teacher - Growth Record"],"summary":"Delete growth record","operationId":"deleteGrowthRecord","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}}}}},"/api/school/teachers/{id}":{"get":{"tags":["School - Teacher"],"summary":"Get teacher by ID","operationId":"getTeacher","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultTeacher"}}}}}},"put":{"tags":["School - Teacher"],"summary":"Update teacher","operationId":"updateTeacher","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeacherUpdateRequest"}}},"required":true},"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultTeacher"}}}}}},"delete":{"tags":["School - Teacher"],"summary":"Delete teacher","operationId":"deleteTeacher","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}}}}},"/api/school/tasks/{id}":{"get":{"tags":["School - Task"],"summary":"Get task by ID","operationId":"getTask_1","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultTask"}}}}}},"put":{"tags":["School - Task"],"summary":"Update task","operationId":"updateTask_1","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaskUpdateRequest"}}},"required":true},"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultTask"}}}}}},"delete":{"tags":["School - Task"],"summary":"Delete task","operationId":"deleteTask_1","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}}}}},"/api/school/students/{id}":{"get":{"tags":["School - Student"],"summary":"Get student by ID","operationId":"getStudent","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultStudent"}}}}}},"put":{"tags":["School - Student"],"summary":"Update student","operationId":"updateStudent","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StudentUpdateRequest"}}},"required":true},"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultStudent"}}}}}},"delete":{"tags":["School - Student"],"summary":"Delete student","operationId":"deleteStudent","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}}}}},"/api/school/parents/{id}":{"get":{"tags":["School - Parent"],"summary":"Get parent by ID","operationId":"getParent","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultParent"}}}}}},"put":{"tags":["School - Parent"],"summary":"Update parent","operationId":"updateParent","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ParentUpdateRequest"}}},"required":true},"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultParent"}}}}}},"delete":{"tags":["School - Parent"],"summary":"Delete parent","operationId":"deleteParent","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}}}}},"/api/school/growth-records/{id}":{"get":{"tags":["School - Growth Record"],"summary":"Get growth record by ID","operationId":"getGrowthRecord_1","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultGrowthRecord"}}}}}},"put":{"tags":["School - Growth Record"],"summary":"Update growth record","operationId":"updateGrowthRecord_1","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GrowthRecordUpdateRequest"}}},"required":true},"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultGrowthRecord"}}}}}},"delete":{"tags":["School - Growth Record"],"summary":"Delete growth record","operationId":"deleteGrowthRecord_1","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}}}}},"/api/school/classes/{id}":{"get":{"tags":["School - Class"],"summary":"Get class by ID","operationId":"getClass","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultClazz"}}}}}},"put":{"tags":["School - Class"],"summary":"Update class","operationId":"updateClass","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClassUpdateRequest"}}},"required":true},"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultClazz"}}}}}},"delete":{"tags":["School - Class"],"summary":"Delete class","operationId":"deleteClass","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}}}}},"/api/parent/growth-records/{id}":{"get":{"tags":["Parent - Growth Record"],"summary":"Get growth record by ID","operationId":"getGrowthRecord_2","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultGrowthRecord"}}}}}},"put":{"tags":["Parent - Growth Record"],"summary":"Update growth record","operationId":"updateGrowthRecord_2","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GrowthRecordUpdateRequest"}}},"required":true},"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultGrowthRecord"}}}}}},"delete":{"tags":["Parent - Growth Record"],"summary":"Delete growth record","operationId":"deleteGrowthRecord_2","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}}}}},"/api/admin/tenants/{id}":{"get":{"tags":["Admin - Tenant"],"summary":"Get tenant by ID","operationId":"getTenant","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultTenant"}}}}}},"put":{"tags":["Admin - Tenant"],"summary":"Update tenant","operationId":"updateTenant","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantUpdateRequest"}}},"required":true},"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultTenant"}}}}}},"delete":{"tags":["Admin - Tenant"],"summary":"Delete tenant","operationId":"deleteTenant","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}}}}},"/api/admin/courses/{id}":{"get":{"tags":["Admin - Course"],"summary":"Get course by ID","operationId":"getCourse_1","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultCourse"}}}}}},"put":{"tags":["Admin - Course"],"summary":"Update course","operationId":"updateCourse","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CourseUpdateRequest"}}},"required":true},"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultCourse"}}}}}},"delete":{"tags":["Admin - Course"],"summary":"Delete course","operationId":"deleteCourse","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}}}}},"/api/v1/files/upload":{"post":{"tags":["文件上传"],"summary":"上传文件","operationId":"uploadFile","parameters":[{"name":"type","in":"query","required":false,"schema":{"type":"string","default":"other"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["file"],"type":"object","properties":{"file":{"type":"string","format":"binary"}}}}}},"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultMapStringObject"}}}}}}},"/api/v1/admin/themes":{"get":{"tags":["超管端 - 主题字典"],"summary":"查询所有主题","operationId":"findAll","responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultListTheme"}}}}}},"post":{"tags":["超管端 - 主题字典"],"summary":"创建主题","operationId":"create","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ThemeCreateRequest"}}},"required":true},"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultTheme"}}}}}}},"/api/v1/admin/resources/libraries":{"get":{"tags":["超管端 - 资源库"],"summary":"分页查询资源库","operationId":"findAllLibraries","parameters":[{"name":"libraryType","in":"query","required":false,"schema":{"type":"string"}},{"name":"keyword","in":"query","required":false,"schema":{"type":"string"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":1}},{"name":"pageSize","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":10}}],"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultPageResourceLibrary"}}}}}},"post":{"tags":["超管端 - 资源库"],"summary":"创建资源库","operationId":"createLibrary","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LibraryCreateRequest"}}},"required":true},"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultResourceLibrary"}}}}}}},"/api/v1/admin/resources/items":{"get":{"tags":["超管端 - 资源库"],"summary":"分页查询资源项目","operationId":"findAllItems","parameters":[{"name":"libraryId","in":"query","required":false,"schema":{"type":"string"}},{"name":"fileType","in":"query","required":false,"schema":{"type":"string"}},{"name":"keyword","in":"query","required":false,"schema":{"type":"string"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":1}},{"name":"pageSize","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":20}}],"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultPageResourceItem"}}}}}},"post":{"tags":["超管端 - 资源库"],"summary":"创建资源项目","operationId":"createItem","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItemCreateRequest"}}},"required":true},"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultResourceItem"}}}}}}},"/api/v1/admin/resources/items/batch-delete":{"post":{"tags":["超管端 - 资源库"],"summary":"批量删除资源项目","operationId":"batchDeleteItems","requestBody":{"content":{"application/json":{"schema":{"type":"array","items":{"type":"string"}}}},"required":true},"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}}}}},"/api/v1/admin/packages":{"get":{"tags":["超管端 - 课程套餐"],"summary":"分页查询套餐","operationId":"findAll_1","parameters":[{"name":"status","in":"query","required":false,"schema":{"type":"string"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":1}},{"name":"pageSize","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":20}}],"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultPageCoursePackage"}}}}}},"post":{"tags":["超管端 - 课程套餐"],"summary":"创建套餐","operationId":"create_1","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PackageCreateRequest"}}},"required":true},"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultCoursePackage"}}}}}}},"/api/v1/admin/packages/{id}/submit":{"post":{"tags":["超管端 - 课程套餐"],"summary":"提交审核","operationId":"submit","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}}}}},"/api/v1/admin/packages/{id}/review":{"post":{"tags":["超管端 - 课程套餐"],"summary":"审核套餐","operationId":"review","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReviewRequest"}}},"required":true},"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}}}}},"/api/v1/admin/packages/{id}/publish":{"post":{"tags":["超管端 - 课程套餐"],"summary":"发布套餐","operationId":"publish","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}}}}},"/api/v1/admin/packages/{id}/offline":{"post":{"tags":["超管端 - 课程套餐"],"summary":"下线套餐","operationId":"offline","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}}}}},"/api/v1/admin/courses/{courseId}/lessons":{"get":{"tags":["超管端 - 课程环节"],"summary":"获取课程的所有环节","operationId":"findAll_2","parameters":[{"name":"courseId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultListCourseLesson"}}}}}},"post":{"tags":["超管端 - 课程环节"],"summary":"创建课程环节","operationId":"create_2","parameters":[{"name":"courseId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CourseLessonCreateRequest"}}},"required":true},"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultCourseLesson"}}}}}}},"/api/v1/admin/courses/{courseId}/lessons/{lessonId}/steps":{"get":{"tags":["超管端 - 课程环节"],"summary":"获取课时的教学环节","operationId":"findSteps","parameters":[{"name":"courseId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"lessonId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultListLessonStep"}}}}}},"post":{"tags":["超管端 - 课程环节"],"summary":"创建教学环节","operationId":"createStep","parameters":[{"name":"courseId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"lessonId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StepCreateRequest"}}},"required":true},"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultLessonStep"}}}}}}},"/api/teacher/tasks":{"get":{"tags":["Teacher - Task"],"summary":"Get task page","operationId":"getTaskPage","parameters":[{"name":"pageNum","in":"query","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"pageSize","in":"query","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"keyword","in":"query","required":false,"schema":{"type":"string"}},{"name":"type","in":"query","required":false,"schema":{"type":"string"}},{"name":"status","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultPageResultTask"}}}}}},"post":{"tags":["Teacher - Task"],"summary":"Create task","operationId":"createTask","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaskCreateRequest"}}},"required":true},"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultTask"}}}}}}},"/api/teacher/notifications/{id}/read":{"post":{"tags":["Teacher - Notification"],"summary":"Mark notification as read","operationId":"markAsRead","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}}}}},"/api/teacher/notifications/read-all":{"post":{"tags":["Teacher - Notification"],"summary":"Mark all notifications as read","operationId":"markAllAsRead","responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}}}}},"/api/teacher/lessons":{"get":{"tags":["Teacher - Lesson"],"summary":"Get my lessons","operationId":"getMyLessons","parameters":[{"name":"pageNum","in":"query","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"pageSize","in":"query","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"status","in":"query","required":false,"schema":{"type":"string"}},{"name":"startDate","in":"query","required":false,"schema":{"type":"string","format":"date"}},{"name":"endDate","in":"query","required":false,"schema":{"type":"string","format":"date"}}],"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultPageResultLesson"}}}}}},"post":{"tags":["Teacher - Lesson"],"summary":"Create lesson","operationId":"createLesson","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LessonCreateRequest"}}},"required":true},"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultLesson"}}}}}}},"/api/teacher/lessons/{id}/start":{"post":{"tags":["Teacher - Lesson"],"summary":"Start lesson","operationId":"startLesson","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}}}}},"/api/teacher/lessons/{id}/complete":{"post":{"tags":["Teacher - Lesson"],"summary":"Complete lesson","operationId":"completeLesson","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}}}}},"/api/teacher/lessons/{id}/cancel":{"post":{"tags":["Teacher - Lesson"],"summary":"Cancel lesson","operationId":"cancelLesson","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}}}}},"/api/teacher/growth-records":{"get":{"tags":["Teacher - Growth Record"],"summary":"Get growth record page","operationId":"getGrowthRecordPage","parameters":[{"name":"pageNum","in":"query","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"pageSize","in":"query","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"studentId","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"type","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultPageResultGrowthRecord"}}}}}},"post":{"tags":["Teacher - Growth Record"],"summary":"Create growth record","operationId":"createGrowthRecord","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GrowthRecordCreateRequest"}}},"required":true},"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultGrowthRecord"}}}}}}},"/api/school/teachers":{"get":{"tags":["School - Teacher"],"summary":"Get teacher page","operationId":"getTeacherPage","parameters":[{"name":"pageNum","in":"query","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"pageSize","in":"query","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"keyword","in":"query","required":false,"schema":{"type":"string"}},{"name":"status","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultPageResultTeacher"}}}}}},"post":{"tags":["School - Teacher"],"summary":"Create teacher","operationId":"createTeacher","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeacherCreateRequest"}}},"required":true},"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultTeacher"}}}}}}},"/api/school/teachers/{id}/reset-password":{"post":{"tags":["School - Teacher"],"summary":"Reset teacher password","operationId":"resetPassword","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"newPassword","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}}}}},"/api/school/tasks":{"get":{"tags":["School - Task"],"summary":"Get task page","operationId":"getTaskPage_1","parameters":[{"name":"pageNum","in":"query","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"pageSize","in":"query","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"keyword","in":"query","required":false,"schema":{"type":"string"}},{"name":"type","in":"query","required":false,"schema":{"type":"string"}},{"name":"status","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultPageResultTask"}}}}}},"post":{"tags":["School - Task"],"summary":"Create task","operationId":"createTask_1","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaskCreateRequest"}}},"required":true},"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultTask"}}}}}}},"/api/school/students":{"get":{"tags":["School - Student"],"summary":"Get student page","operationId":"getStudentPage","parameters":[{"name":"pageNum","in":"query","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"pageSize","in":"query","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"keyword","in":"query","required":false,"schema":{"type":"string"}},{"name":"grade","in":"query","required":false,"schema":{"type":"string"}},{"name":"status","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultPageResultStudent"}}}}}},"post":{"tags":["School - Student"],"summary":"Create student","operationId":"createStudent","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StudentCreateRequest"}}},"required":true},"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultStudent"}}}}}}},"/api/school/parents":{"get":{"tags":["School - Parent"],"summary":"Get parent page","operationId":"getParentPage","parameters":[{"name":"pageNum","in":"query","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"pageSize","in":"query","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"keyword","in":"query","required":false,"schema":{"type":"string"}},{"name":"status","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultPageResultParent"}}}}}},"post":{"tags":["School - Parent"],"summary":"Create parent","operationId":"createParent","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ParentCreateRequest"}}},"required":true},"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultParent"}}}}}}},"/api/school/parents/{parentId}/students/{studentId}":{"post":{"tags":["School - Parent"],"summary":"Bind student to parent","operationId":"bindStudent","parameters":[{"name":"parentId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"studentId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"relationship","in":"query","required":false,"schema":{"type":"string"}},{"name":"isPrimary","in":"query","required":false,"schema":{"type":"boolean"}}],"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}}}},"delete":{"tags":["School - Parent"],"summary":"Unbind student from parent","operationId":"unbindStudent","parameters":[{"name":"parentId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"studentId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}}}}},"/api/school/parents/{id}/reset-password":{"post":{"tags":["School - Parent"],"summary":"Reset parent password","operationId":"resetPassword_1","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"newPassword","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}}}}},"/api/school/packages/{id}/renew":{"post":{"tags":["学校端 - 课程套餐"],"summary":"续费套餐","operationId":"renewPackage","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RenewRequest"}}},"required":true},"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}}}}},"/api/school/growth-records":{"get":{"tags":["School - Growth Record"],"summary":"Get growth record page","operationId":"getGrowthRecordPage_1","parameters":[{"name":"pageNum","in":"query","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"pageSize","in":"query","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"studentId","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"type","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultPageResultGrowthRecord"}}}}}},"post":{"tags":["School - Growth Record"],"summary":"Create growth record","operationId":"createGrowthRecord_1","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GrowthRecordCreateRequest"}}},"required":true},"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultGrowthRecord"}}}}}}},"/api/school/classes":{"get":{"tags":["School - Class"],"summary":"Get class page","operationId":"getClassPage","parameters":[{"name":"pageNum","in":"query","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"pageSize","in":"query","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"keyword","in":"query","required":false,"schema":{"type":"string"}},{"name":"grade","in":"query","required":false,"schema":{"type":"string"}},{"name":"status","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultPageResultClazz"}}}}}},"post":{"tags":["School - Class"],"summary":"Create class","operationId":"createClass","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClassCreateRequest"}}},"required":true},"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultClazz"}}}}}}},"/api/school/classes/{id}/teachers":{"post":{"tags":["School - Class"],"summary":"Assign teachers to class","operationId":"assignTeachers","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"array","items":{"type":"integer","format":"int64"}}}},"required":true},"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}}}}},"/api/school/classes/{id}/students":{"post":{"tags":["School - Class"],"summary":"Assign students to class","operationId":"assignStudents","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"array","items":{"type":"integer","format":"int64"}}}},"required":true},"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}}}}},"/api/parent/tasks/{taskId}/complete":{"post":{"tags":["Parent - Task"],"summary":"Complete task","operationId":"completeTask","parameters":[{"name":"taskId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"studentId","in":"query","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"content","in":"query","required":false,"schema":{"type":"string"}},{"name":"attachments","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}}}}},"/api/parent/notifications/{id}/read":{"post":{"tags":["Parent - Notification"],"summary":"Mark notification as read","operationId":"markAsRead_1","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}}}}},"/api/parent/notifications/read-all":{"post":{"tags":["Parent - Notification"],"summary":"Mark all notifications as read","operationId":"markAllAsRead_1","responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}}}}},"/api/parent/growth-records":{"post":{"tags":["Parent - Growth Record"],"summary":"Create growth record","operationId":"createGrowthRecord_2","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GrowthRecordCreateRequest"}}},"required":true},"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultGrowthRecord"}}}}}}},"/api/auth/login":{"post":{"tags":["Auth"],"summary":"User login","operationId":"login","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginRequest"}}},"required":true},"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultLoginResponse"}}}}}}},"/api/auth/change-password":{"post":{"tags":["Auth"],"summary":"Change password","operationId":"changePassword","parameters":[{"name":"oldPassword","in":"query","required":true,"schema":{"type":"string"}},{"name":"newPassword","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}}}}},"/api/admin/tenants":{"get":{"tags":["Admin - Tenant"],"summary":"Get tenant page","operationId":"getTenantPage","parameters":[{"name":"pageNum","in":"query","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"pageSize","in":"query","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"keyword","in":"query","required":false,"schema":{"type":"string"}},{"name":"status","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultPageResultTenant"}}}}}},"post":{"tags":["Admin - Tenant"],"summary":"Create tenant","operationId":"createTenant","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantCreateRequest"}}},"required":true},"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultTenant"}}}}}}},"/api/admin/courses":{"get":{"tags":["Admin - Course"],"summary":"Get system course page","operationId":"getCoursePage_1","parameters":[{"name":"pageNum","in":"query","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"pageSize","in":"query","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"keyword","in":"query","required":false,"schema":{"type":"string"}},{"name":"category","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultPageResultCourse"}}}}}},"post":{"tags":["Admin - Course"],"summary":"Create system course","operationId":"createCourse","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CourseCreateRequest"}}},"required":true},"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultCourse"}}}}}}},"/api/admin/courses/{id}/publish":{"post":{"tags":["Admin - Course"],"summary":"Publish course","operationId":"publishCourse","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}}}}},"/api/admin/courses/{id}/archive":{"post":{"tags":["Admin - Course"],"summary":"Archive course","operationId":"archiveCourse","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}}}}},"/api/v1/admin/resources/stats":{"get":{"tags":["超管端 - 资源库"],"summary":"获取统计数据","operationId":"getStats","responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultMapStringObject"}}}}}}},"/api/v1/admin/courses/{courseId}/lessons/type/{lessonType}":{"get":{"tags":["超管端 - 课程环节"],"summary":"按类型获取课程环节","operationId":"findByType","parameters":[{"name":"courseId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"lessonType","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultCourseLesson"}}}}}}},"/api/teacher/weekly-stats":{"get":{"tags":["教师端 - 统计数据"],"summary":"获取本周统计","operationId":"getWeeklyStats","responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultMapStringObject"}}}}}}},"/api/teacher/today-lessons":{"get":{"tags":["教师端 - 统计数据"],"summary":"获取今日课程","operationId":"getTodayLessons","responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultListLesson"}}}}}}},"/api/teacher/recommended-courses":{"get":{"tags":["教师端 - 统计数据"],"summary":"获取推荐课程","operationId":"getRecommendedCourses","responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultListCourse"}}}}}}},"/api/teacher/notifications":{"get":{"tags":["Teacher - Notification"],"summary":"Get my notifications","operationId":"getMyNotifications","parameters":[{"name":"pageNum","in":"query","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"pageSize","in":"query","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"isRead","in":"query","required":false,"schema":{"type":"integer","format":"int32"}}],"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultPageResultNotification"}}}}}}},"/api/teacher/notifications/{id}":{"get":{"tags":["Teacher - Notification"],"summary":"Get notification by ID","operationId":"getNotification","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultNotification"}}}}}}},"/api/teacher/notifications/unread-count":{"get":{"tags":["Teacher - Notification"],"summary":"Get unread count","operationId":"getUnreadCount","responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultLong"}}}}}}},"/api/teacher/lessons/today":{"get":{"tags":["Teacher - Lesson"],"summary":"Get today's lessons","operationId":"getTodayLessons_1","responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultListLesson"}}}}}}},"/api/teacher/lesson-trend":{"get":{"tags":["教师端 - 统计数据"],"summary":"获取授课趋势","operationId":"getLessonTrend","parameters":[{"name":"months","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":6}}],"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultListMapStringObject"}}}}}}},"/api/teacher/dashboard":{"get":{"tags":["教师端 - 统计数据"],"summary":"获取教师端首页统计数据","operationId":"getDashboard","responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultMapStringObject"}}}}}}},"/api/teacher/courses":{"get":{"tags":["Teacher - Course"],"summary":"Get course page","operationId":"getCoursePage","parameters":[{"name":"pageNum","in":"query","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"pageSize","in":"query","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"keyword","in":"query","required":false,"schema":{"type":"string"}},{"name":"category","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultPageResultCourse"}}}}}}},"/api/teacher/courses/{id}":{"get":{"tags":["Teacher - Course"],"summary":"Get course by ID","operationId":"getCourse","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultCourse"}}}}}}},"/api/teacher/courses/all":{"get":{"tags":["Teacher - Course"],"summary":"Get all courses","operationId":"getAllCourses","responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultListCourse"}}}}}}},"/api/teacher/course-usage":{"get":{"tags":["教师端 - 统计数据"],"summary":"获取课程使用统计","operationId":"getCourseUsage","responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultListMapStringObject"}}}}}}},"/api/teacher/classes":{"get":{"tags":["Teacher - Course"],"summary":"Get teacher's classes","operationId":"getClasses","responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultListClazz"}}}}}}},"/api/school/stats":{"get":{"tags":["学校端 - 统计数据"],"summary":"获取学校统计数据","operationId":"getSchoolStats","responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultMapStringObject"}}}}}}},"/api/school/stats/teachers":{"get":{"tags":["学校端 - 统计数据"],"summary":"获取活跃教师排行","operationId":"getActiveTeachers","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":5}}],"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultListMapStringObject"}}}}}}},"/api/school/stats/lesson-trend":{"get":{"tags":["学校端 - 统计数据"],"summary":"获取授课趋势","operationId":"getLessonTrend_1","parameters":[{"name":"months","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":6}}],"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultListMapStringObject"}}}}}}},"/api/school/stats/courses":{"get":{"tags":["学校端 - 统计数据"],"summary":"获取课程使用统计","operationId":"getCourseUsageStats","responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultListMapStringObject"}}}}}}},"/api/school/stats/course-distribution":{"get":{"tags":["学校端 - 统计数据"],"summary":"获取课程分布","operationId":"getCourseDistribution","responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultListMapStringObject"}}}}}}},"/api/school/stats/activities":{"get":{"tags":["学校端 - 统计数据"],"summary":"获取近期活动","operationId":"getRecentActivities","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":10}}],"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultListMapStringObject"}}}}}}},"/api/school/packages":{"get":{"tags":["学校端 - 课程套餐"],"summary":"查询租户套餐","operationId":"findTenantPackages","responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultListTenantPackage"}}}}}}},"/api/school/courses":{"get":{"tags":["学校端 - 课程管理"],"summary":"获取学校课程列表","operationId":"getSchoolCourses","responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultListMapStringObject"}}}}}}},"/api/school/courses/{id}":{"get":{"tags":["学校端 - 课程管理"],"summary":"获取课程详情","operationId":"getSchoolCourse","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultMapStringObject"}}}}}}},"/api/parent/tasks/{id}":{"get":{"tags":["Parent - Task"],"summary":"Get task by ID","operationId":"getTask_2","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultTask"}}}}}}},"/api/parent/tasks/student/{studentId}":{"get":{"tags":["Parent - Task"],"summary":"Get tasks by student ID","operationId":"getTasksByStudent","parameters":[{"name":"studentId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"pageNum","in":"query","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"pageSize","in":"query","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"status","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultPageResultTask"}}}}}}},"/api/parent/notifications":{"get":{"tags":["Parent - Notification"],"summary":"Get my notifications","operationId":"getMyNotifications_1","parameters":[{"name":"pageNum","in":"query","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"pageSize","in":"query","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"isRead","in":"query","required":false,"schema":{"type":"integer","format":"int32"}}],"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultPageResultNotification"}}}}}}},"/api/parent/notifications/{id}":{"get":{"tags":["Parent - Notification"],"summary":"Get notification by ID","operationId":"getNotification_1","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultNotification"}}}}}}},"/api/parent/notifications/unread-count":{"get":{"tags":["Parent - Notification"],"summary":"Get unread count","operationId":"getUnreadCount_1","responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultLong"}}}}}}},"/api/parent/growth-records/student/{studentId}":{"get":{"tags":["Parent - Growth Record"],"summary":"Get growth records by student ID","operationId":"getGrowthRecordsByStudent","parameters":[{"name":"studentId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"pageNum","in":"query","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"pageSize","in":"query","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"type","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultPageResultGrowthRecord"}}}}}}},"/api/parent/growth-records/student/{studentId}/recent":{"get":{"tags":["Parent - Growth Record"],"summary":"Get recent growth records","operationId":"getRecentGrowthRecords","parameters":[{"name":"studentId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":10}}],"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultListGrowthRecord"}}}}}}},"/api/parent/children":{"get":{"tags":["Parent - Child"],"summary":"Get my children","operationId":"getMyChildren","responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultListStudent"}}}}}}},"/api/parent/children/{id}":{"get":{"tags":["Parent - Child"],"summary":"Get child by ID","operationId":"getChild","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultStudent"}}}}}}},"/api/auth/me":{"get":{"tags":["Auth"],"summary":"Get current user info","operationId":"getCurrentUser","responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultUserInfoResponse"}}}}}}},"/api/admin/tenants/active":{"get":{"tags":["Admin - Tenant"],"summary":"Get all active tenants","operationId":"getAllActiveTenants","responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultListTenantResponse"}}}}}}},"/api/v1/files/delete":{"delete":{"tags":["文件上传"],"summary":"删除文件","operationId":"deleteFile","requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":{"type":"string"}}}},"required":true},"responses":{"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"405":{"description":"Method Not Allowed","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultMapStringObject"}}}}}}}},"components":{"schemas":{"ResultVoid":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"message":{"type":"string"},"data":{"type":"object"}}},"ThemeCreateRequest":{"required":["name"],"type":"object","properties":{"name":{"type":"string","description":"主题名称"},"description":{"type":"string","description":"主题描述"},"sortOrder":{"type":"integer","description":"排序号","format":"int32"}},"description":"创建主题请求"},"ResultTheme":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"message":{"type":"string"},"data":{"$ref":"#/components/schemas/Theme"}}},"Theme":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"name":{"type":"string"},"description":{"type":"string"},"sortOrder":{"type":"integer","format":"int32"},"status":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}}},"LibraryUpdateRequest":{"type":"object","properties":{"name":{"type":"string"},"description":{"type":"string"}}},"ResourceLibrary":{"type":"object","properties":{"id":{"type":"string"},"tenantId":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"type":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"deleted":{"type":"integer","format":"int32"},"createdBy":{"type":"string"},"updatedBy":{"type":"string"}}},"ResultResourceLibrary":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"message":{"type":"string"},"data":{"$ref":"#/components/schemas/ResourceLibrary"}}},"ItemUpdateRequest":{"type":"object","properties":{"name":{"type":"string"},"description":{"type":"string"},"quantity":{"type":"integer","format":"int32"}}},"ResourceItem":{"type":"object","properties":{"id":{"type":"string"},"libraryId":{"type":"string"},"tenantId":{"type":"string"},"type":{"type":"string"},"name":{"type":"string"},"code":{"type":"string"},"description":{"type":"string"},"quantity":{"type":"integer","format":"int32"},"availableQuantity":{"type":"integer","format":"int32"},"location":{"type":"string"},"status":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"deleted":{"type":"integer","format":"int32"},"createdBy":{"type":"string"},"updatedBy":{"type":"string"}}},"ResultResourceItem":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"message":{"type":"string"},"data":{"$ref":"#/components/schemas/ResourceItem"}}},"PackageCreateRequest":{"required":["gradeLevels","name","price"],"type":"object","properties":{"name":{"type":"string","description":"套餐名称"},"description":{"type":"string","description":"套餐描述"},"price":{"type":"integer","description":"价格(分)","format":"int64"},"discountPrice":{"type":"integer","description":"折后价格(分)","format":"int64"},"discountType":{"type":"string","description":"折扣类型"},"gradeLevels":{"type":"array","description":"适用年级","items":{"type":"string","description":"适用年级"}}},"description":"创建套餐请求"},"CoursePackage":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"name":{"type":"string"},"description":{"type":"string"},"price":{"type":"integer","format":"int64"},"discountPrice":{"type":"integer","format":"int64"},"discountType":{"type":"string"},"gradeLevels":{"type":"string"},"courseCount":{"type":"integer","format":"int32"},"status":{"type":"string"},"submittedAt":{"type":"string","format":"date-time"},"submittedBy":{"type":"integer","format":"int64"},"reviewedAt":{"type":"string","format":"date-time"},"reviewedBy":{"type":"integer","format":"int64"},"reviewComment":{"type":"string"},"publishedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}}},"ResultCoursePackage":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"message":{"type":"string"},"data":{"$ref":"#/components/schemas/CoursePackage"}}},"CourseLessonCreateRequest":{"required":["lessonType","name"],"type":"object","properties":{"lessonType":{"type":"string","description":"课程类型"},"name":{"type":"string","description":"课程名称"},"description":{"type":"string","description":"课程描述"},"duration":{"type":"integer","description":"时长(分钟)","format":"int32"},"videoPath":{"type":"string","description":"视频路径"},"videoName":{"type":"string","description":"视频名称"},"pptPath":{"type":"string","description":"PPT路径"},"pptName":{"type":"string","description":"PPT名称"},"pdfPath":{"type":"string","description":"PDF路径"},"pdfName":{"type":"string","description":"PDF名称"},"objectives":{"type":"string","description":"教学目标"},"preparation":{"type":"string","description":"教学准备"},"extension":{"type":"string","description":"教学延伸"},"reflection":{"type":"string","description":"教学反思"},"assessmentData":{"type":"string","description":"评测数据"},"useTemplate":{"type":"boolean","description":"是否使用模板"}},"description":"创建课程环节请求"},"CourseLesson":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"courseId":{"type":"integer","format":"int64"},"lessonType":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"duration":{"type":"integer","format":"int32"},"videoPath":{"type":"string"},"videoName":{"type":"string"},"pptPath":{"type":"string"},"pptName":{"type":"string"},"pdfPath":{"type":"string"},"pdfName":{"type":"string"},"objectives":{"type":"string"},"preparation":{"type":"string"},"extension":{"type":"string"},"reflection":{"type":"string"},"assessmentData":{"type":"string"},"useTemplate":{"type":"boolean"},"sortOrder":{"type":"integer","format":"int32"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}}},"ResultCourseLesson":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"message":{"type":"string"},"data":{"$ref":"#/components/schemas/CourseLesson"}}},"StepCreateRequest":{"type":"object","properties":{"name":{"type":"string"},"content":{"type":"string"},"duration":{"type":"integer","format":"int32"},"objective":{"type":"string"},"resourceIds":{"type":"array","items":{"type":"integer","format":"int64"}}}},"LessonStep":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"lessonId":{"type":"integer","format":"int64"},"name":{"type":"string"},"content":{"type":"string"},"duration":{"type":"integer","format":"int32"},"objective":{"type":"string"},"resourceIds":{"type":"string"},"sortOrder":{"type":"integer","format":"int32"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}}},"ResultLessonStep":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"message":{"type":"string"},"data":{"$ref":"#/components/schemas/LessonStep"}}},"TaskUpdateRequest":{"type":"object","properties":{"title":{"type":"string","description":"Task title"},"description":{"type":"string","description":"Description"},"type":{"type":"string","description":"Task type"},"startDate":{"type":"string","description":"Start date","format":"date"},"dueDate":{"type":"string","description":"Due date","format":"date"},"status":{"type":"string","description":"Status"},"attachments":{"type":"string","description":"Attachments (JSON array)"}},"description":"Task Update Request"},"ResultTask":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"message":{"type":"string"},"data":{"$ref":"#/components/schemas/Task"}}},"Task":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"tenantId":{"type":"integer","format":"int64"},"title":{"type":"string"},"description":{"type":"string"},"type":{"type":"string"},"courseId":{"type":"integer","format":"int64"},"creatorId":{"type":"integer","format":"int64"},"creatorRole":{"type":"string"},"startDate":{"type":"string","format":"date"},"dueDate":{"type":"string","format":"date"},"status":{"type":"string"},"attachments":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"deleted":{"type":"integer","format":"int32"}}},"LessonUpdateRequest":{"type":"object","properties":{"title":{"type":"string","description":"Lesson title"},"lessonDate":{"type":"string","description":"Lesson date","format":"date"},"startTime":{"$ref":"#/components/schemas/LocalTime"},"endTime":{"$ref":"#/components/schemas/LocalTime"},"location":{"type":"string","description":"Location"},"status":{"type":"string","description":"Status"},"notes":{"type":"string","description":"Notes"}},"description":"Lesson Update Request"},"LocalTime":{"type":"object","properties":{"hour":{"type":"integer","format":"int32"},"minute":{"type":"integer","format":"int32"},"second":{"type":"integer","format":"int32"},"nano":{"type":"integer","format":"int32"}},"description":"End time"},"Lesson":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"tenantId":{"type":"integer","format":"int64"},"courseId":{"type":"integer","format":"int64"},"classId":{"type":"integer","format":"int64"},"teacherId":{"type":"integer","format":"int64"},"title":{"type":"string"},"lessonDate":{"type":"string","format":"date"},"startTime":{"$ref":"#/components/schemas/LocalTime"},"endTime":{"$ref":"#/components/schemas/LocalTime"},"location":{"type":"string"},"status":{"type":"string"},"notes":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"deleted":{"type":"integer","format":"int32"}}},"ResultLesson":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"message":{"type":"string"},"data":{"$ref":"#/components/schemas/Lesson"}}},"GrowthRecordUpdateRequest":{"type":"object","properties":{"type":{"type":"string","description":"Type"},"title":{"type":"string","description":"Title"},"content":{"type":"string","description":"Content"},"images":{"type":"string","description":"Images (JSON array)"},"recordDate":{"type":"string","description":"Record date","format":"date"},"tags":{"type":"array","description":"Tags","items":{"type":"string","description":"Tags"}}},"description":"Growth Record Update Request"},"GrowthRecord":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"tenantId":{"type":"integer","format":"int64"},"studentId":{"type":"integer","format":"int64"},"type":{"type":"string"},"title":{"type":"string"},"content":{"type":"string"},"images":{"type":"string"},"recordedBy":{"type":"integer","format":"int64"},"recorderRole":{"type":"string"},"recordDate":{"type":"string","format":"date"},"tags":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"deleted":{"type":"integer","format":"int32"}}},"ResultGrowthRecord":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"message":{"type":"string"},"data":{"$ref":"#/components/schemas/GrowthRecord"}}},"TeacherUpdateRequest":{"type":"object","properties":{"name":{"type":"string","description":"Name"},"phone":{"type":"string","description":"Phone"},"email":{"type":"string","description":"Email"},"avatarUrl":{"type":"string","description":"Avatar URL"},"gender":{"type":"string","description":"Gender"},"bio":{"type":"string","description":"Bio"},"status":{"type":"string","description":"Status"}},"description":"Teacher Update Request"},"ResultTeacher":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"message":{"type":"string"},"data":{"$ref":"#/components/schemas/Teacher"}}},"Teacher":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"tenantId":{"type":"integer","format":"int64"},"username":{"type":"string"},"password":{"type":"string"},"name":{"type":"string"},"phone":{"type":"string"},"email":{"type":"string"},"avatarUrl":{"type":"string"},"gender":{"type":"string"},"bio":{"type":"string"},"status":{"type":"string"},"lastLoginAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"deleted":{"type":"integer","format":"int32"}}},"StudentUpdateRequest":{"type":"object","properties":{"name":{"type":"string","description":"Name"},"gender":{"type":"string","description":"Gender"},"birthDate":{"type":"string","description":"Birth date","format":"date"},"avatarUrl":{"type":"string","description":"Avatar URL"},"grade":{"type":"string","description":"Grade"},"studentNo":{"type":"string","description":"Student number"},"readingLevel":{"type":"string","description":"Reading level"},"interests":{"type":"string","description":"Interests"},"notes":{"type":"string","description":"Notes"},"status":{"type":"string","description":"Status"}},"description":"Student Update Request"},"ResultStudent":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"message":{"type":"string"},"data":{"$ref":"#/components/schemas/Student"}}},"Student":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"tenantId":{"type":"integer","format":"int64"},"name":{"type":"string"},"gender":{"type":"string"},"birthDate":{"type":"string","format":"date"},"avatarUrl":{"type":"string"},"grade":{"type":"string"},"studentNo":{"type":"string"},"readingLevel":{"type":"string"},"interests":{"type":"string"},"notes":{"type":"string"},"status":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"deleted":{"type":"integer","format":"int32"}}},"ParentUpdateRequest":{"type":"object","properties":{"name":{"type":"string","description":"Name"},"phone":{"type":"string","description":"Phone"},"email":{"type":"string","description":"Email"},"avatarUrl":{"type":"string","description":"Avatar URL"},"gender":{"type":"string","description":"Gender"},"status":{"type":"string","description":"Status"}},"description":"Parent Update Request"},"Parent":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"tenantId":{"type":"integer","format":"int64"},"username":{"type":"string"},"password":{"type":"string"},"name":{"type":"string"},"phone":{"type":"string"},"email":{"type":"string"},"avatarUrl":{"type":"string"},"gender":{"type":"string"},"status":{"type":"string"},"lastLoginAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"deleted":{"type":"integer","format":"int32"}}},"ResultParent":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"message":{"type":"string"},"data":{"$ref":"#/components/schemas/Parent"}}},"ClassUpdateRequest":{"type":"object","properties":{"name":{"type":"string","description":"Class name"},"grade":{"type":"string","description":"Grade"},"description":{"type":"string","description":"Description"},"capacity":{"type":"integer","description":"Capacity","format":"int32"},"status":{"type":"string","description":"Status"}},"description":"Class Update Request"},"Clazz":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"tenantId":{"type":"integer","format":"int64"},"name":{"type":"string"},"grade":{"type":"string"},"description":{"type":"string"},"capacity":{"type":"integer","format":"int32"},"status":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"deleted":{"type":"integer","format":"int32"}}},"ResultClazz":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"message":{"type":"string"},"data":{"$ref":"#/components/schemas/Clazz"}}},"TenantUpdateRequest":{"type":"object","properties":{"name":{"type":"string","description":"Tenant name"},"contactName":{"type":"string","description":"Contact person"},"contactPhone":{"type":"string","description":"Contact phone"},"contactEmail":{"type":"string","description":"Contact email"},"address":{"type":"string","description":"Address"},"logoUrl":{"type":"string","description":"Logo URL"},"status":{"type":"string","description":"Status"},"expireAt":{"type":"string","description":"Expiration date","format":"date-time"},"maxStudents":{"type":"integer","description":"Max students","format":"int32"},"maxTeachers":{"type":"integer","description":"Max teachers","format":"int32"}},"description":"Tenant Update Request"},"ResultTenant":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"message":{"type":"string"},"data":{"$ref":"#/components/schemas/Tenant"}}},"Tenant":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"name":{"type":"string"},"code":{"type":"string"},"username":{"type":"string"},"password":{"type":"string"},"contactName":{"type":"string"},"contactPhone":{"type":"string"},"contactEmail":{"type":"string"},"address":{"type":"string"},"logoUrl":{"type":"string"},"status":{"type":"string"},"expireAt":{"type":"string","format":"date-time"},"maxStudents":{"type":"integer","format":"int32"},"maxTeachers":{"type":"integer","format":"int32"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"deleted":{"type":"integer","format":"int32"}}},"CourseUpdateRequest":{"type":"object","properties":{"name":{"type":"string","description":"Course name"},"code":{"type":"string","description":"Course code"},"description":{"type":"string","description":"Description"},"coverUrl":{"type":"string","description":"Cover URL"},"coverImagePath":{"type":"string","description":"Cover image path"},"category":{"type":"string","description":"Category"},"ageRange":{"type":"string","description":"Age range"},"difficultyLevel":{"type":"string","description":"Difficulty level"},"durationMinutes":{"type":"integer","description":"Duration in minutes","format":"int32"},"objectives":{"type":"string","description":"Objectives"},"status":{"type":"string","description":"Status"},"coreContent":{"type":"string","description":"Core content"},"introSummary":{"type":"string","description":"Course summary"},"introHighlights":{"type":"string","description":"Course highlights"},"introGoals":{"type":"string","description":"Course goals"},"introSchedule":{"type":"string","description":"Content schedule"},"introKeyPoints":{"type":"string","description":"Key points and difficulties"},"introMethods":{"type":"string","description":"Teaching methods"},"introEvaluation":{"type":"string","description":"Evaluation methods"},"introNotes":{"type":"string","description":"Notes and precautions"},"scheduleRefData":{"type":"string","description":"Schedule reference data (JSON)"},"environmentConstruction":{"type":"string","description":"Environment construction content"},"themeId":{"type":"integer","description":"Theme ID","format":"int64"},"pictureBookName":{"type":"string","description":"Picture book name"},"ebookPaths":{"type":"string","description":"Ebook paths (JSON array)"},"audioPaths":{"type":"string","description":"Audio paths (JSON array)"},"videoPaths":{"type":"string","description":"Video paths (JSON array)"},"otherResources":{"type":"string","description":"Other resources (JSON array)"},"pptPath":{"type":"string","description":"PPT file path"},"pptName":{"type":"string","description":"PPT file name"},"posterPaths":{"type":"string","description":"Poster paths (JSON array)"},"tools":{"type":"string","description":"Teaching tools (JSON array)"},"studentMaterials":{"type":"string","description":"Student materials"},"lessonPlanData":{"type":"string","description":"Lesson plan data (JSON)"},"activitiesData":{"type":"string","description":"Activities data (JSON)"},"assessmentData":{"type":"string","description":"Assessment data (JSON)"},"gradeTags":{"type":"string","description":"Grade tags (JSON array)"},"domainTags":{"type":"string","description":"Domain tags (JSON array)"},"hasCollectiveLesson":{"type":"boolean","description":"Has collective lesson"}},"description":"Course Update Request"},"Course":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"tenantId":{"type":"integer","format":"int64"},"name":{"type":"string"},"code":{"type":"string"},"description":{"type":"string"},"coverUrl":{"type":"string"},"category":{"type":"string"},"ageRange":{"type":"string"},"difficultyLevel":{"type":"string"},"durationMinutes":{"type":"integer","format":"int32"},"objectives":{"type":"string"},"status":{"type":"string"},"isSystem":{"type":"integer","format":"int32"},"coreContent":{"type":"string"},"introSummary":{"type":"string"},"introHighlights":{"type":"string"},"introGoals":{"type":"string"},"introSchedule":{"type":"string"},"introKeyPoints":{"type":"string"},"introMethods":{"type":"string"},"introEvaluation":{"type":"string"},"introNotes":{"type":"string"},"scheduleRefData":{"type":"string"},"environmentConstruction":{"type":"string"},"themeId":{"type":"integer","format":"int64"},"pictureBookName":{"type":"string"},"coverImagePath":{"type":"string"},"ebookPaths":{"type":"string"},"audioPaths":{"type":"string"},"videoPaths":{"type":"string"},"otherResources":{"type":"string"},"pptPath":{"type":"string"},"pptName":{"type":"string"},"posterPaths":{"type":"string"},"tools":{"type":"string"},"studentMaterials":{"type":"string"},"lessonPlanData":{"type":"string"},"activitiesData":{"type":"string"},"assessmentData":{"type":"string"},"gradeTags":{"type":"string"},"domainTags":{"type":"string"},"hasCollectiveLesson":{"type":"integer","format":"int32"},"version":{"type":"string"},"parentId":{"type":"integer","format":"int64"},"isLatest":{"type":"integer","format":"int32"},"submittedAt":{"type":"string","format":"date-time"},"submittedBy":{"type":"integer","format":"int64"},"reviewedAt":{"type":"string","format":"date-time"},"reviewedBy":{"type":"integer","format":"int64"},"reviewComment":{"type":"string"},"reviewChecklist":{"type":"string"},"publishedAt":{"type":"string","format":"date-time"},"usageCount":{"type":"integer","format":"int32"},"teacherCount":{"type":"integer","format":"int32"},"avgRating":{"type":"number"},"createdBy":{"type":"integer","format":"int64"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"deleted":{"type":"integer","format":"int32"}}},"ResultCourse":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"message":{"type":"string"},"data":{"$ref":"#/components/schemas/Course"}}},"ResultMapStringObject":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"message":{"type":"string"},"data":{"type":"object","additionalProperties":{"type":"object"}}}},"LibraryCreateRequest":{"type":"object","properties":{"name":{"type":"string"},"type":{"type":"string"},"description":{"type":"string"},"tenantId":{"type":"string"}}},"ItemCreateRequest":{"type":"object","properties":{"libraryId":{"type":"string"},"name":{"type":"string"},"code":{"type":"string"},"type":{"type":"string"},"description":{"type":"string"},"quantity":{"type":"integer","format":"int32"},"location":{"type":"string"},"tenantId":{"type":"string"}}},"ReviewRequest":{"type":"object","properties":{"approved":{"type":"boolean"},"comment":{"type":"string"}}},"TaskCreateRequest":{"required":["title"],"type":"object","properties":{"title":{"type":"string","description":"Task title"},"description":{"type":"string","description":"Description"},"type":{"type":"string","description":"Task type: reading, homework, activity"},"courseId":{"type":"integer","description":"Course ID","format":"int64"},"startDate":{"type":"string","description":"Start date","format":"date"},"dueDate":{"type":"string","description":"Due date","format":"date"},"attachments":{"type":"string","description":"Attachments (JSON array)"},"targetType":{"type":"string","description":"Target type: class, student"},"targetIds":{"type":"array","description":"Target IDs","items":{"type":"integer","description":"Target IDs","format":"int64"}}},"description":"Task Create Request"},"LessonCreateRequest":{"required":["courseId","lessonDate","teacherId","title"],"type":"object","properties":{"courseId":{"type":"integer","description":"Course ID","format":"int64"},"classId":{"type":"integer","description":"Class ID","format":"int64"},"teacherId":{"type":"integer","description":"Teacher ID","format":"int64"},"title":{"type":"string","description":"Lesson title"},"lessonDate":{"type":"string","description":"Lesson date","format":"date"},"startTime":{"$ref":"#/components/schemas/LocalTime"},"endTime":{"$ref":"#/components/schemas/LocalTime"},"location":{"type":"string","description":"Location"},"notes":{"type":"string","description":"Notes"}},"description":"Lesson Create Request"},"GrowthRecordCreateRequest":{"required":["studentId","title","type"],"type":"object","properties":{"studentId":{"type":"integer","description":"Student ID","format":"int64"},"type":{"type":"string","description":"Type: reading, behavior, achievement, milestone"},"title":{"type":"string","description":"Title"},"content":{"type":"string","description":"Content"},"images":{"type":"string","description":"Images (JSON array)"},"recordDate":{"type":"string","description":"Record date","format":"date"},"tags":{"type":"array","description":"Tags","items":{"type":"string","description":"Tags"}}},"description":"Growth Record Create Request"},"TeacherCreateRequest":{"required":["name","password","username"],"type":"object","properties":{"username":{"type":"string","description":"Username"},"password":{"type":"string","description":"Password"},"name":{"type":"string","description":"Name"},"phone":{"type":"string","description":"Phone"},"email":{"type":"string","description":"Email"},"gender":{"type":"string","description":"Gender"},"bio":{"type":"string","description":"Bio"}},"description":"Teacher Create Request"},"StudentCreateRequest":{"required":["name"],"type":"object","properties":{"name":{"type":"string","description":"Name"},"gender":{"type":"string","description":"Gender"},"birthDate":{"type":"string","description":"Birth date","format":"date"},"grade":{"type":"string","description":"Grade"},"studentNo":{"type":"string","description":"Student number"},"readingLevel":{"type":"string","description":"Reading level"},"interests":{"type":"string","description":"Interests"},"notes":{"type":"string","description":"Notes"}},"description":"Student Create Request"},"ParentCreateRequest":{"required":["name","password","username"],"type":"object","properties":{"username":{"type":"string","description":"Username"},"password":{"type":"string","description":"Password"},"name":{"type":"string","description":"Name"},"phone":{"type":"string","description":"Phone"},"email":{"type":"string","description":"Email"},"gender":{"type":"string","description":"Gender"}},"description":"Parent Create Request"},"RenewRequest":{"type":"object","properties":{"endDate":{"type":"string","format":"date"},"pricePaid":{"type":"integer","format":"int64"}}},"ClassCreateRequest":{"required":["name"],"type":"object","properties":{"name":{"type":"string","description":"Class name"},"grade":{"type":"string","description":"Grade"},"description":{"type":"string","description":"Description"},"capacity":{"type":"integer","description":"Capacity","format":"int32"}},"description":"Class Create Request"},"LoginRequest":{"required":["password","username"],"type":"object","properties":{"username":{"type":"string","description":"Username","example":"admin"},"password":{"type":"string","description":"Password","example":"123456"},"role":{"type":"string","description":"Login role","example":"admin"}},"description":"Login Request"},"LoginResponse":{"type":"object","properties":{"token":{"type":"string","description":"JWT Token"},"userId":{"type":"integer","description":"User ID","format":"int64"},"username":{"type":"string","description":"Username"},"name":{"type":"string","description":"User name"},"role":{"type":"string","description":"User role"},"tenantId":{"type":"integer","description":"Tenant ID","format":"int64"}},"description":"Login Response"},"ResultLoginResponse":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"message":{"type":"string"},"data":{"$ref":"#/components/schemas/LoginResponse"}}},"TenantCreateRequest":{"required":["code","name"],"type":"object","properties":{"name":{"type":"string","description":"Tenant name"},"code":{"type":"string","description":"Tenant code"},"contactName":{"type":"string","description":"Contact person"},"contactPhone":{"type":"string","description":"Contact phone"},"contactEmail":{"type":"string","description":"Contact email"},"address":{"type":"string","description":"Address"},"logoUrl":{"type":"string","description":"Logo URL"},"expireAt":{"type":"string","description":"Expiration date","format":"date-time"},"maxStudents":{"type":"integer","description":"Max students","format":"int32"},"maxTeachers":{"type":"integer","description":"Max teachers","format":"int32"}},"description":"Tenant Create Request"},"CourseCreateRequest":{"required":["name"],"type":"object","properties":{"name":{"type":"string","description":"Course name"},"code":{"type":"string","description":"Course code"},"description":{"type":"string","description":"Description"},"coverUrl":{"type":"string","description":"Cover URL"},"coverImagePath":{"type":"string","description":"Cover image path"},"category":{"type":"string","description":"Category"},"ageRange":{"type":"string","description":"Age range"},"difficultyLevel":{"type":"string","description":"Difficulty level"},"durationMinutes":{"type":"integer","description":"Duration in minutes","format":"int32"},"objectives":{"type":"string","description":"Objectives"},"coreContent":{"type":"string","description":"Core content"},"introSummary":{"type":"string","description":"Course summary"},"introHighlights":{"type":"string","description":"Course highlights"},"introGoals":{"type":"string","description":"Course goals"},"introSchedule":{"type":"string","description":"Content schedule"},"introKeyPoints":{"type":"string","description":"Key points and difficulties"},"introMethods":{"type":"string","description":"Teaching methods"},"introEvaluation":{"type":"string","description":"Evaluation methods"},"introNotes":{"type":"string","description":"Notes and precautions"},"scheduleRefData":{"type":"string","description":"Schedule reference data (JSON)"},"environmentConstruction":{"type":"string","description":"Environment construction content"},"themeId":{"type":"integer","description":"Theme ID","format":"int64"},"pictureBookName":{"type":"string","description":"Picture book name"},"ebookPaths":{"type":"string","description":"Ebook paths (JSON array)"},"audioPaths":{"type":"string","description":"Audio paths (JSON array)"},"videoPaths":{"type":"string","description":"Video paths (JSON array)"},"otherResources":{"type":"string","description":"Other resources (JSON array)"},"pptPath":{"type":"string","description":"PPT file path"},"pptName":{"type":"string","description":"PPT file name"},"posterPaths":{"type":"string","description":"Poster paths (JSON array)"},"tools":{"type":"string","description":"Teaching tools (JSON array)"},"studentMaterials":{"type":"string","description":"Student materials"},"lessonPlanData":{"type":"string","description":"Lesson plan data (JSON)"},"activitiesData":{"type":"string","description":"Activities data (JSON)"},"assessmentData":{"type":"string","description":"Assessment data (JSON)"},"gradeTags":{"type":"string","description":"Grade tags (JSON array)"},"domainTags":{"type":"string","description":"Domain tags (JSON array)"},"hasCollectiveLesson":{"type":"boolean","description":"Has collective lesson"}},"description":"Course Create Request"},"ResultListTheme":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"message":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/Theme"}}}},"OrderItem":{"type":"object","properties":{"column":{"type":"string"},"asc":{"type":"boolean"}}},"PageResourceLibrary":{"type":"object","properties":{"records":{"type":"array","items":{"$ref":"#/components/schemas/ResourceLibrary"}},"total":{"type":"integer","format":"int64"},"size":{"type":"integer","format":"int64"},"current":{"type":"integer","format":"int64"},"orders":{"type":"array","writeOnly":true,"items":{"$ref":"#/components/schemas/OrderItem"}},"optimizeCountSql":{"$ref":"#/components/schemas/PageResourceLibrary"},"searchCount":{"$ref":"#/components/schemas/PageResourceLibrary"},"optimizeJoinOfCountSql":{"type":"boolean","writeOnly":true},"maxLimit":{"type":"integer","format":"int64","writeOnly":true},"countId":{"type":"string","writeOnly":true},"pages":{"type":"integer","format":"int64"}}},"ResultPageResourceLibrary":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"message":{"type":"string"},"data":{"$ref":"#/components/schemas/PageResourceLibrary"}}},"PageResourceItem":{"type":"object","properties":{"records":{"type":"array","items":{"$ref":"#/components/schemas/ResourceItem"}},"total":{"type":"integer","format":"int64"},"size":{"type":"integer","format":"int64"},"current":{"type":"integer","format":"int64"},"orders":{"type":"array","writeOnly":true,"items":{"$ref":"#/components/schemas/OrderItem"}},"optimizeCountSql":{"$ref":"#/components/schemas/PageResourceItem"},"searchCount":{"$ref":"#/components/schemas/PageResourceItem"},"optimizeJoinOfCountSql":{"type":"boolean","writeOnly":true},"maxLimit":{"type":"integer","format":"int64","writeOnly":true},"countId":{"type":"string","writeOnly":true},"pages":{"type":"integer","format":"int64"}}},"ResultPageResourceItem":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"message":{"type":"string"},"data":{"$ref":"#/components/schemas/PageResourceItem"}}},"PageCoursePackage":{"type":"object","properties":{"records":{"type":"array","items":{"$ref":"#/components/schemas/CoursePackage"}},"total":{"type":"integer","format":"int64"},"size":{"type":"integer","format":"int64"},"current":{"type":"integer","format":"int64"},"orders":{"type":"array","writeOnly":true,"items":{"$ref":"#/components/schemas/OrderItem"}},"optimizeCountSql":{"$ref":"#/components/schemas/PageCoursePackage"},"searchCount":{"$ref":"#/components/schemas/PageCoursePackage"},"optimizeJoinOfCountSql":{"type":"boolean","writeOnly":true},"maxLimit":{"type":"integer","format":"int64","writeOnly":true},"countId":{"type":"string","writeOnly":true},"pages":{"type":"integer","format":"int64"}}},"ResultPageCoursePackage":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"message":{"type":"string"},"data":{"$ref":"#/components/schemas/PageCoursePackage"}}},"ResultListCourseLesson":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"message":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/CourseLesson"}}}},"ResultListLessonStep":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"message":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/LessonStep"}}}},"ResultListLesson":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"message":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/Lesson"}}}},"PageResultTask":{"type":"object","properties":{"list":{"type":"array","items":{"$ref":"#/components/schemas/Task"}},"total":{"type":"integer","format":"int64"},"pageNum":{"type":"integer","format":"int64"},"pageSize":{"type":"integer","format":"int64"},"pages":{"type":"integer","format":"int64"}}},"ResultPageResultTask":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"message":{"type":"string"},"data":{"$ref":"#/components/schemas/PageResultTask"}}},"ResultListCourse":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"message":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/Course"}}}},"Notification":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"tenantId":{"type":"integer","format":"int64"},"title":{"type":"string"},"content":{"type":"string"},"type":{"type":"string"},"senderId":{"type":"integer","format":"int64"},"senderRole":{"type":"string"},"recipientType":{"type":"string"},"recipientId":{"type":"integer","format":"int64"},"isRead":{"type":"integer","format":"int32"},"readAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"},"deleted":{"type":"integer","format":"int32"}}},"PageResultNotification":{"type":"object","properties":{"list":{"type":"array","items":{"$ref":"#/components/schemas/Notification"}},"total":{"type":"integer","format":"int64"},"pageNum":{"type":"integer","format":"int64"},"pageSize":{"type":"integer","format":"int64"},"pages":{"type":"integer","format":"int64"}}},"ResultPageResultNotification":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"message":{"type":"string"},"data":{"$ref":"#/components/schemas/PageResultNotification"}}},"ResultNotification":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"message":{"type":"string"},"data":{"$ref":"#/components/schemas/Notification"}}},"ResultLong":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"message":{"type":"string"},"data":{"type":"integer","format":"int64"}}},"PageResultLesson":{"type":"object","properties":{"list":{"type":"array","items":{"$ref":"#/components/schemas/Lesson"}},"total":{"type":"integer","format":"int64"},"pageNum":{"type":"integer","format":"int64"},"pageSize":{"type":"integer","format":"int64"},"pages":{"type":"integer","format":"int64"}}},"ResultPageResultLesson":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"message":{"type":"string"},"data":{"$ref":"#/components/schemas/PageResultLesson"}}},"ResultListMapStringObject":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"message":{"type":"string"},"data":{"type":"array","items":{"type":"object","additionalProperties":{"type":"object"}}}}},"PageResultGrowthRecord":{"type":"object","properties":{"list":{"type":"array","items":{"$ref":"#/components/schemas/GrowthRecord"}},"total":{"type":"integer","format":"int64"},"pageNum":{"type":"integer","format":"int64"},"pageSize":{"type":"integer","format":"int64"},"pages":{"type":"integer","format":"int64"}}},"ResultPageResultGrowthRecord":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"message":{"type":"string"},"data":{"$ref":"#/components/schemas/PageResultGrowthRecord"}}},"PageResultCourse":{"type":"object","properties":{"list":{"type":"array","items":{"$ref":"#/components/schemas/Course"}},"total":{"type":"integer","format":"int64"},"pageNum":{"type":"integer","format":"int64"},"pageSize":{"type":"integer","format":"int64"},"pages":{"type":"integer","format":"int64"}}},"ResultPageResultCourse":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"message":{"type":"string"},"data":{"$ref":"#/components/schemas/PageResultCourse"}}},"ResultListClazz":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"message":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/Clazz"}}}},"PageResultTeacher":{"type":"object","properties":{"list":{"type":"array","items":{"$ref":"#/components/schemas/Teacher"}},"total":{"type":"integer","format":"int64"},"pageNum":{"type":"integer","format":"int64"},"pageSize":{"type":"integer","format":"int64"},"pages":{"type":"integer","format":"int64"}}},"ResultPageResultTeacher":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"message":{"type":"string"},"data":{"$ref":"#/components/schemas/PageResultTeacher"}}},"PageResultStudent":{"type":"object","properties":{"list":{"type":"array","items":{"$ref":"#/components/schemas/Student"}},"total":{"type":"integer","format":"int64"},"pageNum":{"type":"integer","format":"int64"},"pageSize":{"type":"integer","format":"int64"},"pages":{"type":"integer","format":"int64"}}},"ResultPageResultStudent":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"message":{"type":"string"},"data":{"$ref":"#/components/schemas/PageResultStudent"}}},"PageResultParent":{"type":"object","properties":{"list":{"type":"array","items":{"$ref":"#/components/schemas/Parent"}},"total":{"type":"integer","format":"int64"},"pageNum":{"type":"integer","format":"int64"},"pageSize":{"type":"integer","format":"int64"},"pages":{"type":"integer","format":"int64"}}},"ResultPageResultParent":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"message":{"type":"string"},"data":{"$ref":"#/components/schemas/PageResultParent"}}},"ResultListTenantPackage":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"message":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/TenantPackage"}}}},"TenantPackage":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"tenantId":{"type":"integer","format":"int64"},"packageId":{"type":"integer","format":"int64"},"startDate":{"type":"string","format":"date"},"endDate":{"type":"string","format":"date"},"pricePaid":{"type":"integer","format":"int64"},"status":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}}},"PageResultClazz":{"type":"object","properties":{"list":{"type":"array","items":{"$ref":"#/components/schemas/Clazz"}},"total":{"type":"integer","format":"int64"},"pageNum":{"type":"integer","format":"int64"},"pageSize":{"type":"integer","format":"int64"},"pages":{"type":"integer","format":"int64"}}},"ResultPageResultClazz":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"message":{"type":"string"},"data":{"$ref":"#/components/schemas/PageResultClazz"}}},"ResultListGrowthRecord":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"message":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/GrowthRecord"}}}},"ResultListStudent":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"message":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/Student"}}}},"ResultUserInfoResponse":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"message":{"type":"string"},"data":{"$ref":"#/components/schemas/UserInfoResponse"}}},"UserInfoResponse":{"type":"object","properties":{"id":{"type":"integer","description":"User ID","format":"int64"},"username":{"type":"string","description":"Username"},"name":{"type":"string","description":"User name"},"email":{"type":"string","description":"Email"},"phone":{"type":"string","description":"Phone"},"avatarUrl":{"type":"string","description":"Avatar URL"},"role":{"type":"string","description":"User role"},"tenantId":{"type":"integer","description":"Tenant ID","format":"int64"}},"description":"User Info Response"},"PageResultTenant":{"type":"object","properties":{"list":{"type":"array","items":{"$ref":"#/components/schemas/Tenant"}},"total":{"type":"integer","format":"int64"},"pageNum":{"type":"integer","format":"int64"},"pageSize":{"type":"integer","format":"int64"},"pages":{"type":"integer","format":"int64"}}},"ResultPageResultTenant":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"message":{"type":"string"},"data":{"$ref":"#/components/schemas/PageResultTenant"}}},"ResultListTenantResponse":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"message":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/TenantResponse"}}}},"TenantResponse":{"type":"object","properties":{"id":{"type":"integer","description":"Tenant ID","format":"int64"},"name":{"type":"string","description":"Tenant name"},"code":{"type":"string","description":"Tenant code"},"contactName":{"type":"string","description":"Contact person"},"contactPhone":{"type":"string","description":"Contact phone"},"contactEmail":{"type":"string","description":"Contact email"},"address":{"type":"string","description":"Address"},"logoUrl":{"type":"string","description":"Logo URL"},"status":{"type":"string","description":"Status"},"expireAt":{"type":"string","description":"Expiration date","format":"date-time"},"maxStudents":{"type":"integer","description":"Max students","format":"int32"},"maxTeachers":{"type":"integer","description":"Max teachers","format":"int32"},"createdAt":{"type":"string","description":"Created at","format":"date-time"}},"description":"Tenant Response"}},"securitySchemes":{"Bearer":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}}}} \ No newline at end of file diff --git a/reading-platform-frontend/orval.config.ts b/reading-platform-frontend/orval.config.ts index b549270..ebaecdb 100644 --- a/reading-platform-frontend/orval.config.ts +++ b/reading-platform-frontend/orval.config.ts @@ -1,5 +1,15 @@ import { defineConfig } from 'orval'; +/** 内联 schema,避免 ResultObject[] 的 $ref 导致 oneOf 验证错误 */ +const RESULT_OBJECT_ARRAY_SCHEMA = { + type: 'object', + properties: { + code: { type: 'integer', format: 'int32' }, + message: { type: 'string' }, + data: { type: 'array', items: { type: 'object', additionalProperties: true } }, + }, +}; + export default defineConfig({ readingPlatform: { output: { @@ -24,21 +34,33 @@ export default defineConfig({ }, }, input: { - // 从 Java 后端 OpenAPI 文档生成 - target: 'http://localhost:8080/v3/api-docs', + // 使用 api:fetch 生成的 openapi.json(api:update 会自动先执行 api:fetch) + target: './openapi.json', // 路径重写:确保 OpenAPI 文档中的路径正确 override: { // 使用转换器修复路径 - 将 `/api/xxx` 转换为 `/api/v1/xxx` - transformer: (openAPIObject) => { - // 遍历所有路径,修复缺少的 `/v1` 前缀 - Object.keys(openAPIObject.paths).forEach((path) => { - const newKey = path.replace(/^\/api\//, '/api/v1/'); + transformer: (spec) => { + const paths = spec.paths || {}; + for (const path of Object.keys(paths)) { + let newKey = path.replace(/\/v1\/v1\//g, '/v1/'); + if (newKey === path) newKey = path.replace(/^\/api\/(?!v1\/)/, '/api/v1/'); if (newKey !== path) { - openAPIObject.paths[newKey] = openAPIObject.paths[path]; - delete openAPIObject.paths[path]; + paths[newKey] = paths[path]; + delete paths[path]; } - }); - return openAPIObject; + } + for (const pathObj of Object.values(paths)) { + for (const op of Object.values(pathObj)) { + const content = op?.responses?.['200']?.content; + if (!content) continue; + for (const media of Object.values(content)) { + if (media?.schema?.['$ref']?.endsWith('ResultObject[]')) { + media.schema = { ...RESULT_OBJECT_ARRAY_SCHEMA }; + } + } + } + } + return spec; }, }, }, diff --git a/reading-platform-frontend/package.json b/reading-platform-frontend/package.json index 7a33235..19df885 100644 --- a/reading-platform-frontend/package.json +++ b/reading-platform-frontend/package.json @@ -11,7 +11,8 @@ "test:e2e": "playwright test", "test:e2e:ui": "playwright test --ui", "test:e2e:headed": "playwright test --headed", - "api:update": "orval", + "api:fetch": "node scripts/fetch-openapi.js", + "api:update": "npm run api:fetch && orval", "api:watch": "orval --watch" }, "dependencies": { diff --git a/reading-platform-frontend/scripts/fetch-openapi.js b/reading-platform-frontend/scripts/fetch-openapi.js new file mode 100644 index 0000000..8327c8d --- /dev/null +++ b/reading-platform-frontend/scripts/fetch-openapi.js @@ -0,0 +1,89 @@ +/** + * 拉取 OpenAPI 文档并修复 SpringDoc 生成的 oneOf schema 问题 + * 解决 orval 报错: "oneOf must match exactly one schema in oneOf" + */ +import { writeFileSync } from 'fs'; +import { join, dirname } from 'path'; +import { fileURLToPath } from 'url'; + +const __dirname = dirname(fileURLToPath(import.meta.url)); +const TARGET = 'http://localhost:8080/v3/api-docs'; +const OUTPUT = join(__dirname, '../openapi.json'); + +async function fetchAndFix() { + const res = await fetch(TARGET); + if (!res.ok) throw new Error(`Failed to fetch: ${res.status} ${res.statusText}. 请确保后端已启动 (mvn spring-boot:run)`); + let spec = await res.json(); + + const paths = spec.paths || {}; + for (const path of Object.keys(paths)) { + let newKey = path.replace(/\/v1\/v1\//g, '/v1/'); + if (newKey === path) newKey = path.replace(/^\/api\/(?!v1\/)/, '/api/v1/'); + if (newKey !== path) { + paths[newKey] = paths[path]; + delete paths[path]; + } + } + + fixOneOfInPaths(paths); + inlineResultObjectArrayRef(paths); + // 移除非法 schema 名 ResultObject[](含 [] 不符合 OpenAPI 规范) + if (spec.components?.schemas) { + delete spec.components.schemas['ResultObject[]']; + } + + writeFileSync(OUTPUT, JSON.stringify(spec, null, 2)); + console.log('OpenAPI spec written to:', OUTPUT); +} + +function fixOneOfInPaths(paths) { + for (const pathObj of Object.values(paths)) { + for (const op of Object.values(pathObj)) { + const res200 = op?.responses?.['200']; + if (!res200?.content) continue; + for (const media of Object.values(res200.content)) { + if (media?.schema) fixSchema(media.schema); + } + } + } +} + +function fixSchema(schema) { + if (!schema || typeof schema !== 'object') return; + if (schema.oneOf && Array.isArray(schema.oneOf)) { + schema.type = 'array'; + schema.items = { type: 'object', additionalProperties: true }; + delete schema.oneOf; + } + if (schema.properties) { + for (const p of Object.values(schema.properties)) fixSchema(p); + } + if (schema.items) fixSchema(schema.items); +} + +function inlineResultObjectArrayRef(paths) { + const inlineSchema = { + type: 'object', + properties: { + code: { type: 'integer', format: 'int32' }, + message: { type: 'string' }, + data: { type: 'array', items: { type: 'object', additionalProperties: true } }, + }, + }; + for (const pathObj of Object.values(paths)) { + for (const op of Object.values(pathObj)) { + const res200 = op?.responses?.['200']; + if (!res200?.content) continue; + for (const media of Object.values(res200.content)) { + if (media?.schema?.['$ref']?.endsWith('ResultObject[]')) { + media.schema = { ...inlineSchema }; + } + } + } + } +} + +fetchAndFix().catch((e) => { + console.error(e); + process.exit(1); +}); diff --git a/reading-platform-frontend/src/api/generated/index.ts b/reading-platform-frontend/src/api/generated/index.ts index 6383cda..3a22806 100644 --- a/reading-platform-frontend/src/api/generated/index.ts +++ b/reading-platform-frontend/src/api/generated/index.ts @@ -6,6 +6,7 @@ * OpenAPI spec version: 1.0.0 */ import type { + BatchCreateSchedulesBody, BindStudentParams, ChangePasswordParams, ClassCreateRequest, @@ -14,31 +15,55 @@ import type { CourseCreateRequest, CourseLessonCreateRequest, CourseUpdateRequest, + CreateFromTemplateBody, + CreateSchedule1Body, + CreateScheduleBody, + CreateTemplate1Body, + CreateTemplateBody, DeleteFileBody, + ExportGrowthRecordsParams, + ExportLessonsParams, FindAll1Params, FindAllItemsParams, FindAllLibrariesParams, GetActiveTeachersParams, + GetActiveTenantsParams, + GetAllStudentsParams, GetClassPageParams, + GetClassStudents1Params, + GetClassStudentsParams, GetCoursePage1Params, GetCoursePageParams, + GetFeedbacks1Params, + GetFeedbacksParams, GetGrowthRecordPage1Params, GetGrowthRecordPageParams, GetGrowthRecordsByStudentParams, GetLessonTrend1Params, GetLessonTrendParams, + GetLogListParams, GetMyLessonsParams, GetMyNotifications1Params, GetMyNotificationsParams, + GetMyTasksParams, GetParentPageParams, + GetPopularCoursesParams, + GetRecentActivities1Params, GetRecentActivitiesParams, GetRecentGrowthRecordsParams, + GetSchedules1Params, + GetSchedulesParams, GetStudentPageParams, GetTaskPage1Params, GetTaskPageParams, GetTasksByStudentParams, GetTeacherPageParams, + GetTemplates1Params, + GetTemplatesParams, GetTenantPageParams, + GetTimetable1Params, + GetTimetableParams, + GrantRequest, GrowthRecordCreateRequest, GrowthRecordUpdateRequest, ItemCreateRequest, @@ -65,6 +90,22 @@ import type { TenantCreateRequest, TenantUpdateRequest, ThemeCreateRequest, + UpdateBasicSettings1Body, + UpdateBasicSettingsBody, + UpdateClassTeacherBody, + UpdateNotificationSettings1Body, + UpdateNotificationSettingsBody, + UpdateSchedule1Body, + UpdateScheduleBody, + UpdateSecuritySettings1Body, + UpdateSecuritySettingsBody, + UpdateSettings1Body, + UpdateSettingsBody, + UpdateStorageSettingsBody, + UpdateTemplate1Body, + UpdateTemplateBody, + UpdateTenantQuotaBody, + UpdateTenantStatusBody, UploadFileBody, UploadFileParams } from './model'; @@ -74,314 +115,6 @@ import { customMutator } from './mutator'; export const getReadingPlatformAPI = () => { -/** - * @summary 查询主题详情 - */ -const findOne = ( - id: number, - ) => { - return customMutator( - {url: `/api/v1/v1/admin/themes/${id}`, method: 'GET', - responseType: 'blob' - }, - ); - } - -/** - * @summary 更新主题 - */ -const update = ( - id: number, - themeCreateRequest: ThemeCreateRequest, - ) => { - return customMutator( - {url: `/api/v1/v1/admin/themes/${id}`, method: 'PUT', - headers: {'Content-Type': 'application/json', }, - data: themeCreateRequest, - responseType: 'blob' - }, - ); - } - -/** - * @summary 删除主题 - */ -const _delete = ( - id: number, - ) => { - return customMutator( - {url: `/api/v1/v1/admin/themes/${id}`, method: 'DELETE', - responseType: 'blob' - }, - ); - } - -/** - * @summary 重新排序主题 - */ -const reorder = ( - reorderBody: number[], - ) => { - return customMutator( - {url: `/api/v1/v1/admin/themes/reorder`, method: 'PUT', - headers: {'Content-Type': 'application/json', }, - data: reorderBody, - responseType: 'blob' - }, - ); - } - -/** - * @summary 查询资源库详情 - */ -const findLibrary = ( - id: string, - ) => { - return customMutator( - {url: `/api/v1/v1/admin/resources/libraries/${id}`, method: 'GET', - responseType: 'blob' - }, - ); - } - -/** - * @summary 更新资源库 - */ -const updateLibrary = ( - id: string, - libraryUpdateRequest: LibraryUpdateRequest, - ) => { - return customMutator( - {url: `/api/v1/v1/admin/resources/libraries/${id}`, method: 'PUT', - headers: {'Content-Type': 'application/json', }, - data: libraryUpdateRequest, - responseType: 'blob' - }, - ); - } - -/** - * @summary 删除资源库 - */ -const deleteLibrary = ( - id: string, - ) => { - return customMutator( - {url: `/api/v1/v1/admin/resources/libraries/${id}`, method: 'DELETE', - responseType: 'blob' - }, - ); - } - -/** - * @summary 查询资源项目详情 - */ -const findItem = ( - id: string, - ) => { - return customMutator( - {url: `/api/v1/v1/admin/resources/items/${id}`, method: 'GET', - responseType: 'blob' - }, - ); - } - -/** - * @summary 更新资源项目 - */ -const updateItem = ( - id: string, - itemUpdateRequest: ItemUpdateRequest, - ) => { - return customMutator( - {url: `/api/v1/v1/admin/resources/items/${id}`, method: 'PUT', - headers: {'Content-Type': 'application/json', }, - data: itemUpdateRequest, - responseType: 'blob' - }, - ); - } - -/** - * @summary 删除资源项目 - */ -const deleteItem = ( - id: string, - ) => { - return customMutator( - {url: `/api/v1/v1/admin/resources/items/${id}`, method: 'DELETE', - responseType: 'blob' - }, - ); - } - -/** - * @summary 查询套餐详情 - */ -const findOne1 = ( - id: number, - ) => { - return customMutator( - {url: `/api/v1/v1/admin/packages/${id}`, method: 'GET', - responseType: 'blob' - }, - ); - } - -/** - * @summary 更新套餐 - */ -const update1 = ( - id: number, - packageCreateRequest: PackageCreateRequest, - ) => { - return customMutator( - {url: `/api/v1/v1/admin/packages/${id}`, method: 'PUT', - headers: {'Content-Type': 'application/json', }, - data: packageCreateRequest, - responseType: 'blob' - }, - ); - } - -/** - * @summary 删除套餐 - */ -const delete1 = ( - id: number, - ) => { - return customMutator( - {url: `/api/v1/v1/admin/packages/${id}`, method: 'DELETE', - responseType: 'blob' - }, - ); - } - -/** - * @summary 设置套餐课程 - */ -const setCourses = ( - id: number, - setCoursesBody: number[], - ) => { - return customMutator( - {url: `/api/v1/v1/admin/packages/${id}/courses`, method: 'PUT', - headers: {'Content-Type': 'application/json', }, - data: setCoursesBody, - responseType: 'blob' - }, - ); - } - -/** - * @summary 重新排序教学环节 - */ -const reorderSteps = ( - courseId: number, - lessonId: number, - reorderStepsBody: number[], - ) => { - return customMutator( - {url: `/api/v1/v1/admin/courses/${courseId}/lessons/${lessonId}/steps/reorder`, method: 'PUT', - headers: {'Content-Type': 'application/json', }, - data: reorderStepsBody, - responseType: 'blob' - }, - ); - } - -/** - * @summary 获取课程环节详情 - */ -const findOne2 = ( - courseId: number, - id: number, - ) => { - return customMutator( - {url: `/api/v1/v1/admin/courses/${courseId}/lessons/${id}`, method: 'GET', - responseType: 'blob' - }, - ); - } - -/** - * @summary 更新课程环节 - */ -const update2 = ( - courseId: number, - id: number, - courseLessonCreateRequest: CourseLessonCreateRequest, - ) => { - return customMutator( - {url: `/api/v1/v1/admin/courses/${courseId}/lessons/${id}`, method: 'PUT', - headers: {'Content-Type': 'application/json', }, - data: courseLessonCreateRequest, - responseType: 'blob' - }, - ); - } - -/** - * @summary 删除课程环节 - */ -const delete2 = ( - courseId: number, - id: number, - ) => { - return customMutator( - {url: `/api/v1/v1/admin/courses/${courseId}/lessons/${id}`, method: 'DELETE', - responseType: 'blob' - }, - ); - } - -/** - * @summary 更新教学环节 - */ -const updateStep = ( - courseId: number, - stepId: number, - stepCreateRequest: StepCreateRequest, - ) => { - return customMutator( - {url: `/api/v1/v1/admin/courses/${courseId}/lessons/steps/${stepId}`, method: 'PUT', - headers: {'Content-Type': 'application/json', }, - data: stepCreateRequest, - responseType: 'blob' - }, - ); - } - -/** - * @summary 删除教学环节 - */ -const removeStep = ( - courseId: number, - stepId: number, - ) => { - return customMutator( - {url: `/api/v1/v1/admin/courses/${courseId}/lessons/steps/${stepId}`, method: 'DELETE', - responseType: 'blob' - }, - ); - } - -/** - * @summary 重新排序课程环节 - */ -const reorder1 = ( - courseId: number, - reorder1Body: number[], - ) => { - return customMutator( - {url: `/api/v1/v1/admin/courses/${courseId}/lessons/reorder`, method: 'PUT', - headers: {'Content-Type': 'application/json', }, - data: reorder1Body, - responseType: 'blob' - }, - ); - } - /** * @summary Get task by ID */ @@ -424,6 +157,90 @@ const deleteTask = ( ); } +/** + * @summary 获取模板详情 + */ +const getTemplate = ( + id: number, + ) => { + return customMutator( + {url: `/api/v1/teacher/task-templates/${id}`, method: 'GET', + responseType: 'blob' + }, + ); + } + +/** + * @summary 更新模板 + */ +const updateTemplate = ( + id: number, + updateTemplateBody: UpdateTemplateBody, + ) => { + return customMutator( + {url: `/api/v1/teacher/task-templates/${id}`, method: 'PUT', + headers: {'Content-Type': 'application/json', }, + data: updateTemplateBody, + responseType: 'blob' + }, + ); + } + +/** + * @summary 删除模板 + */ +const deleteTemplate = ( + id: number, + ) => { + return customMutator( + {url: `/api/v1/teacher/task-templates/${id}`, method: 'DELETE', + responseType: 'blob' + }, + ); + } + +/** + * @summary 获取排课详情 + */ +const getSchedule = ( + id: number, + ) => { + return customMutator( + {url: `/api/v1/teacher/schedules/${id}`, method: 'GET', + responseType: 'blob' + }, + ); + } + +/** + * @summary 更新排课 + */ +const updateSchedule = ( + id: number, + updateScheduleBody: UpdateScheduleBody, + ) => { + return customMutator( + {url: `/api/v1/teacher/schedules/${id}`, method: 'PUT', + headers: {'Content-Type': 'application/json', }, + data: updateScheduleBody, + responseType: 'blob' + }, + ); + } + +/** + * @summary 取消排课 + */ +const cancelSchedule = ( + id: number, + ) => { + return customMutator( + {url: `/api/v1/teacher/schedules/${id}`, method: 'DELETE', + responseType: 'blob' + }, + ); + } + /** * @summary Get lesson by ID */ @@ -579,6 +396,48 @@ const deleteTask1 = ( ); } +/** + * @summary 获取模板详情 + */ +const getTemplate1 = ( + id: number, + ) => { + return customMutator( + {url: `/api/v1/school/task-templates/${id}`, method: 'GET', + responseType: 'blob' + }, + ); + } + +/** + * @summary 更新模板 + */ +const updateTemplate1 = ( + id: number, + updateTemplate1Body: UpdateTemplate1Body, + ) => { + return customMutator( + {url: `/api/v1/school/task-templates/${id}`, method: 'PUT', + headers: {'Content-Type': 'application/json', }, + data: updateTemplate1Body, + responseType: 'blob' + }, + ); + } + +/** + * @summary 删除模板 + */ +const deleteTemplate1 = ( + id: number, + ) => { + return customMutator( + {url: `/api/v1/school/task-templates/${id}`, method: 'DELETE', + responseType: 'blob' + }, + ); + } + /** * @summary Get student by ID */ @@ -621,6 +480,160 @@ const deleteStudent = ( ); } +/** + * @summary 获取系统设置 + */ +const getSettings = ( + + ) => { + return customMutator( + {url: `/api/v1/school/settings`, method: 'GET', + responseType: 'blob' + }, + ); + } + +/** + * @summary 更新系统设置 + */ +const updateSettings = ( + updateSettingsBody: UpdateSettingsBody, + ) => { + return customMutator( + {url: `/api/v1/school/settings`, method: 'PUT', + headers: {'Content-Type': 'application/json', }, + data: updateSettingsBody, + responseType: 'blob' + }, + ); + } + +/** + * @summary 获取安全设置 + */ +const getSecuritySettings = ( + + ) => { + return customMutator( + {url: `/api/v1/school/settings/security`, method: 'GET', + responseType: 'blob' + }, + ); + } + +/** + * @summary 更新安全设置 + */ +const updateSecuritySettings = ( + updateSecuritySettingsBody: UpdateSecuritySettingsBody, + ) => { + return customMutator( + {url: `/api/v1/school/settings/security`, method: 'PUT', + headers: {'Content-Type': 'application/json', }, + data: updateSecuritySettingsBody, + responseType: 'blob' + }, + ); + } + +/** + * @summary 获取通知设置 + */ +const getNotificationSettings = ( + + ) => { + return customMutator( + {url: `/api/v1/school/settings/notification`, method: 'GET', + responseType: 'blob' + }, + ); + } + +/** + * @summary 更新通知设置 + */ +const updateNotificationSettings = ( + updateNotificationSettingsBody: UpdateNotificationSettingsBody, + ) => { + return customMutator( + {url: `/api/v1/school/settings/notification`, method: 'PUT', + headers: {'Content-Type': 'application/json', }, + data: updateNotificationSettingsBody, + responseType: 'blob' + }, + ); + } + +/** + * @summary 获取基础设置 + */ +const getBasicSettings = ( + + ) => { + return customMutator( + {url: `/api/v1/school/settings/basic`, method: 'GET', + responseType: 'blob' + }, + ); + } + +/** + * @summary 更新基础设置 + */ +const updateBasicSettings = ( + updateBasicSettingsBody: UpdateBasicSettingsBody, + ) => { + return customMutator( + {url: `/api/v1/school/settings/basic`, method: 'PUT', + headers: {'Content-Type': 'application/json', }, + data: updateBasicSettingsBody, + responseType: 'blob' + }, + ); + } + +/** + * @summary 获取排课详情 + */ +const getSchedule1 = ( + id: number, + ) => { + return customMutator( + {url: `/api/v1/school/schedules/${id}`, method: 'GET', + responseType: 'blob' + }, + ); + } + +/** + * @summary 更新排课 + */ +const updateSchedule1 = ( + id: number, + updateSchedule1Body: UpdateSchedule1Body, + ) => { + return customMutator( + {url: `/api/v1/school/schedules/${id}`, method: 'PUT', + headers: {'Content-Type': 'application/json', }, + data: updateSchedule1Body, + responseType: 'blob' + }, + ); + } + +/** + * @summary 取消排课 + */ +const cancelSchedule1 = ( + id: number, + ) => { + return customMutator( + {url: `/api/v1/school/schedules/${id}`, method: 'DELETE', + responseType: 'blob' + }, + ); + } + /** * @summary Get parent by ID */ @@ -747,6 +760,37 @@ const deleteClass = ( ); } +/** + * @summary Update class teacher role + */ +const updateClassTeacher = ( + id: number, + teacherId: number, + updateClassTeacherBody: UpdateClassTeacherBody, + ) => { + return customMutator( + {url: `/api/v1/school/classes/${id}/teachers/${teacherId}`, method: 'PUT', + headers: {'Content-Type': 'application/json', }, + data: updateClassTeacherBody, + responseType: 'blob' + }, + ); + } + +/** + * @summary Remove teacher from class + */ +const removeClassTeacher = ( + id: number, + teacherId: number, + ) => { + return customMutator( + {url: `/api/v1/school/classes/${id}/teachers/${teacherId}`, method: 'DELETE', + responseType: 'blob' + }, + ); + } + /** * @summary Get growth record by ID */ @@ -789,6 +833,63 @@ const deleteGrowthRecord2 = ( ); } +/** + * @summary 查询主题详情 + */ +const findOne = ( + id: number, + ) => { + return customMutator( + {url: `/api/v1/admin/themes/${id}`, method: 'GET', + responseType: 'blob' + }, + ); + } + +/** + * @summary 更新主题 + */ +const update = ( + id: number, + themeCreateRequest: ThemeCreateRequest, + ) => { + return customMutator( + {url: `/api/v1/admin/themes/${id}`, method: 'PUT', + headers: {'Content-Type': 'application/json', }, + data: themeCreateRequest, + responseType: 'blob' + }, + ); + } + +/** + * @summary 删除主题 + */ +const _delete = ( + id: number, + ) => { + return customMutator( + {url: `/api/v1/admin/themes/${id}`, method: 'DELETE', + responseType: 'blob' + }, + ); + } + +/** + * @summary 重新排序主题 + */ +const reorder = ( + reorderBody: number[], + ) => { + return customMutator( + {url: `/api/v1/admin/themes/reorder`, method: 'PUT', + headers: {'Content-Type': 'application/json', }, + data: reorderBody, + responseType: 'blob' + }, + ); + } + /** * @summary Get tenant by ID */ @@ -831,6 +932,320 @@ const deleteTenant = ( ); } +/** + * @summary 更新租户状态 + */ +const updateTenantStatus = ( + id: number, + updateTenantStatusBody: UpdateTenantStatusBody, + ) => { + return customMutator( + {url: `/api/v1/admin/tenants/${id}/status`, method: 'PUT', + headers: {'Content-Type': 'application/json', }, + data: updateTenantStatusBody, + responseType: 'blob' + }, + ); + } + +/** + * @summary 更新租户配额 + */ +const updateTenantQuota = ( + id: number, + updateTenantQuotaBody: UpdateTenantQuotaBody, + ) => { + return customMutator( + {url: `/api/v1/admin/tenants/${id}/quota`, method: 'PUT', + headers: {'Content-Type': 'application/json', }, + data: updateTenantQuotaBody, + responseType: 'blob' + }, + ); + } + +/** + * @summary 获取所有系统设置 + */ +const getAllSettings = ( + + ) => { + return customMutator( + {url: `/api/v1/admin/settings`, method: 'GET', + responseType: 'blob' + }, + ); + } + +/** + * @summary 更新系统设置 + */ +const updateSettings1 = ( + updateSettings1Body: UpdateSettings1Body, + ) => { + return customMutator( + {url: `/api/v1/admin/settings`, method: 'PUT', + headers: {'Content-Type': 'application/json', }, + data: updateSettings1Body, + responseType: 'blob' + }, + ); + } + +/** + * @summary 获取存储设置 + */ +const getStorageSettings = ( + + ) => { + return customMutator( + {url: `/api/v1/admin/settings/storage`, method: 'GET', + responseType: 'blob' + }, + ); + } + +/** + * @summary 更新存储设置 + */ +const updateStorageSettings = ( + updateStorageSettingsBody: UpdateStorageSettingsBody, + ) => { + return customMutator( + {url: `/api/v1/admin/settings/storage`, method: 'PUT', + headers: {'Content-Type': 'application/json', }, + data: updateStorageSettingsBody, + responseType: 'blob' + }, + ); + } + +/** + * @summary 获取安全设置 + */ +const getSecuritySettings1 = ( + + ) => { + return customMutator( + {url: `/api/v1/admin/settings/security`, method: 'GET', + responseType: 'blob' + }, + ); + } + +/** + * @summary 更新安全设置 + */ +const updateSecuritySettings1 = ( + updateSecuritySettings1Body: UpdateSecuritySettings1Body, + ) => { + return customMutator( + {url: `/api/v1/admin/settings/security`, method: 'PUT', + headers: {'Content-Type': 'application/json', }, + data: updateSecuritySettings1Body, + responseType: 'blob' + }, + ); + } + +/** + * @summary 获取通知设置 + */ +const getNotificationSettings1 = ( + + ) => { + return customMutator( + {url: `/api/v1/admin/settings/notification`, method: 'GET', + responseType: 'blob' + }, + ); + } + +/** + * @summary 更新通知设置 + */ +const updateNotificationSettings1 = ( + updateNotificationSettings1Body: UpdateNotificationSettings1Body, + ) => { + return customMutator( + {url: `/api/v1/admin/settings/notification`, method: 'PUT', + headers: {'Content-Type': 'application/json', }, + data: updateNotificationSettings1Body, + responseType: 'blob' + }, + ); + } + +/** + * @summary 获取基础设置 + */ +const getBasicSettings1 = ( + + ) => { + return customMutator( + {url: `/api/v1/admin/settings/basic`, method: 'GET', + responseType: 'blob' + }, + ); + } + +/** + * @summary 更新基础设置 + */ +const updateBasicSettings1 = ( + updateBasicSettings1Body: UpdateBasicSettings1Body, + ) => { + return customMutator( + {url: `/api/v1/admin/settings/basic`, method: 'PUT', + headers: {'Content-Type': 'application/json', }, + data: updateBasicSettings1Body, + responseType: 'blob' + }, + ); + } + +/** + * @summary 查询资源库详情 + */ +const findLibrary = ( + id: string, + ) => { + return customMutator( + {url: `/api/v1/admin/resources/libraries/${id}`, method: 'GET', + responseType: 'blob' + }, + ); + } + +/** + * @summary 更新资源库 + */ +const updateLibrary = ( + id: string, + libraryUpdateRequest: LibraryUpdateRequest, + ) => { + return customMutator( + {url: `/api/v1/admin/resources/libraries/${id}`, method: 'PUT', + headers: {'Content-Type': 'application/json', }, + data: libraryUpdateRequest, + responseType: 'blob' + }, + ); + } + +/** + * @summary 删除资源库 + */ +const deleteLibrary = ( + id: string, + ) => { + return customMutator( + {url: `/api/v1/admin/resources/libraries/${id}`, method: 'DELETE', + responseType: 'blob' + }, + ); + } + +/** + * @summary 查询资源项目详情 + */ +const findItem = ( + id: string, + ) => { + return customMutator( + {url: `/api/v1/admin/resources/items/${id}`, method: 'GET', + responseType: 'blob' + }, + ); + } + +/** + * @summary 更新资源项目 + */ +const updateItem = ( + id: string, + itemUpdateRequest: ItemUpdateRequest, + ) => { + return customMutator( + {url: `/api/v1/admin/resources/items/${id}`, method: 'PUT', + headers: {'Content-Type': 'application/json', }, + data: itemUpdateRequest, + responseType: 'blob' + }, + ); + } + +/** + * @summary 删除资源项目 + */ +const deleteItem = ( + id: string, + ) => { + return customMutator( + {url: `/api/v1/admin/resources/items/${id}`, method: 'DELETE', + responseType: 'blob' + }, + ); + } + +/** + * @summary 查询套餐详情 + */ +const findOne1 = ( + id: number, + ) => { + return customMutator( + {url: `/api/v1/admin/packages/${id}`, method: 'GET', + responseType: 'blob' + }, + ); + } + +/** + * @summary 更新套餐 + */ +const update1 = ( + id: number, + packageCreateRequest: PackageCreateRequest, + ) => { + return customMutator( + {url: `/api/v1/admin/packages/${id}`, method: 'PUT', + headers: {'Content-Type': 'application/json', }, + data: packageCreateRequest, + responseType: 'blob' + }, + ); + } + +/** + * @summary 删除套餐 + */ +const delete1 = ( + id: number, + ) => { + return customMutator( + {url: `/api/v1/admin/packages/${id}`, method: 'DELETE', + responseType: 'blob' + }, + ); + } + +/** + * @summary 设置套餐课程 + */ +const setCourses = ( + id: number, + setCoursesBody: number[], + ) => { + return customMutator( + {url: `/api/v1/admin/packages/${id}/courses`, method: 'PUT', + headers: {'Content-Type': 'application/json', }, + data: setCoursesBody, + responseType: 'blob' + }, + ); + } + /** * @summary Get course by ID */ @@ -874,229 +1289,46 @@ const deleteCourse = ( } /** - * @summary 上传文件 + * @summary 重新排序教学环节 */ -const uploadFile = ( - uploadFileBody: UploadFileBody, - params?: UploadFileParams, - ) => { - return customMutator( - {url: `/api/v1/v1/files/upload`, method: 'POST', - headers: {'Content-Type': 'application/json', }, - data: uploadFileBody, - params, - responseType: 'blob' - }, - ); - } - -/** - * @summary 查询所有主题 - */ -const findAll = ( - - ) => { - return customMutator( - {url: `/api/v1/v1/admin/themes`, method: 'GET', - responseType: 'blob' - }, - ); - } - -/** - * @summary 创建主题 - */ -const create = ( - themeCreateRequest: ThemeCreateRequest, - ) => { - return customMutator( - {url: `/api/v1/v1/admin/themes`, method: 'POST', - headers: {'Content-Type': 'application/json', }, - data: themeCreateRequest, - responseType: 'blob' - }, - ); - } - -/** - * @summary 分页查询资源库 - */ -const findAllLibraries = ( - params?: FindAllLibrariesParams, - ) => { - return customMutator( - {url: `/api/v1/v1/admin/resources/libraries`, method: 'GET', - params, - responseType: 'blob' - }, - ); - } - -/** - * @summary 创建资源库 - */ -const createLibrary = ( - libraryCreateRequest: LibraryCreateRequest, - ) => { - return customMutator( - {url: `/api/v1/v1/admin/resources/libraries`, method: 'POST', - headers: {'Content-Type': 'application/json', }, - data: libraryCreateRequest, - responseType: 'blob' - }, - ); - } - -/** - * @summary 分页查询资源项目 - */ -const findAllItems = ( - params?: FindAllItemsParams, - ) => { - return customMutator( - {url: `/api/v1/v1/admin/resources/items`, method: 'GET', - params, - responseType: 'blob' - }, - ); - } - -/** - * @summary 创建资源项目 - */ -const createItem = ( - itemCreateRequest: ItemCreateRequest, - ) => { - return customMutator( - {url: `/api/v1/v1/admin/resources/items`, method: 'POST', - headers: {'Content-Type': 'application/json', }, - data: itemCreateRequest, - responseType: 'blob' - }, - ); - } - -/** - * @summary 批量删除资源项目 - */ -const batchDeleteItems = ( - batchDeleteItemsBody: string[], - ) => { - return customMutator( - {url: `/api/v1/v1/admin/resources/items/batch-delete`, method: 'POST', - headers: {'Content-Type': 'application/json', }, - data: batchDeleteItemsBody, - responseType: 'blob' - }, - ); - } - -/** - * @summary 分页查询套餐 - */ -const findAll1 = ( - params?: FindAll1Params, - ) => { - return customMutator( - {url: `/api/v1/v1/admin/packages`, method: 'GET', - params, - responseType: 'blob' - }, - ); - } - -/** - * @summary 创建套餐 - */ -const create1 = ( - packageCreateRequest: PackageCreateRequest, - ) => { - return customMutator( - {url: `/api/v1/v1/admin/packages`, method: 'POST', - headers: {'Content-Type': 'application/json', }, - data: packageCreateRequest, - responseType: 'blob' - }, - ); - } - -/** - * @summary 提交审核 - */ -const submit = ( - id: number, - ) => { - return customMutator( - {url: `/api/v1/v1/admin/packages/${id}/submit`, method: 'POST', - responseType: 'blob' - }, - ); - } - -/** - * @summary 审核套餐 - */ -const review = ( - id: number, - reviewRequest: ReviewRequest, - ) => { - return customMutator( - {url: `/api/v1/v1/admin/packages/${id}/review`, method: 'POST', - headers: {'Content-Type': 'application/json', }, - data: reviewRequest, - responseType: 'blob' - }, - ); - } - -/** - * @summary 发布套餐 - */ -const publish = ( - id: number, - ) => { - return customMutator( - {url: `/api/v1/v1/admin/packages/${id}/publish`, method: 'POST', - responseType: 'blob' - }, - ); - } - -/** - * @summary 下线套餐 - */ -const offline = ( - id: number, - ) => { - return customMutator( - {url: `/api/v1/v1/admin/packages/${id}/offline`, method: 'POST', - responseType: 'blob' - }, - ); - } - -/** - * @summary 获取课程的所有环节 - */ -const findAll2 = ( +const reorderSteps = ( courseId: number, + lessonId: number, + reorderStepsBody: number[], ) => { return customMutator( - {url: `/api/v1/v1/admin/courses/${courseId}/lessons`, method: 'GET', + {url: `/api/v1/admin/courses/${courseId}/lessons/${lessonId}/steps/reorder`, method: 'PUT', + headers: {'Content-Type': 'application/json', }, + data: reorderStepsBody, responseType: 'blob' }, ); } /** - * @summary 创建课程环节 + * @summary 获取课程环节详情 */ -const create2 = ( +const findOne2 = ( courseId: number, + id: number, + ) => { + return customMutator( + {url: `/api/v1/admin/courses/${courseId}/lessons/${id}`, method: 'GET', + responseType: 'blob' + }, + ); + } + +/** + * @summary 更新课程环节 + */ +const update2 = ( + courseId: number, + id: number, courseLessonCreateRequest: CourseLessonCreateRequest, ) => { return customMutator( - {url: `/api/v1/v1/admin/courses/${courseId}/lessons`, method: 'POST', + {url: `/api/v1/admin/courses/${courseId}/lessons/${id}`, method: 'PUT', headers: {'Content-Type': 'application/json', }, data: courseLessonCreateRequest, responseType: 'blob' @@ -1105,29 +1337,29 @@ const create2 = ( } /** - * @summary 获取课时的教学环节 + * @summary 删除课程环节 */ -const findSteps = ( +const delete2 = ( courseId: number, - lessonId: number, + id: number, ) => { return customMutator( - {url: `/api/v1/v1/admin/courses/${courseId}/lessons/${lessonId}/steps`, method: 'GET', + {url: `/api/v1/admin/courses/${courseId}/lessons/${id}`, method: 'DELETE', responseType: 'blob' }, ); } /** - * @summary 创建教学环节 + * @summary 更新教学环节 */ -const createStep = ( +const updateStep = ( courseId: number, - lessonId: number, + stepId: number, stepCreateRequest: StepCreateRequest, ) => { return customMutator( - {url: `/api/v1/v1/admin/courses/${courseId}/lessons/${lessonId}/steps`, method: 'POST', + {url: `/api/v1/admin/courses/${courseId}/lessons/steps/${stepId}`, method: 'PUT', headers: {'Content-Type': 'application/json', }, data: stepCreateRequest, responseType: 'blob' @@ -1135,6 +1367,36 @@ const createStep = ( ); } +/** + * @summary 删除教学环节 + */ +const removeStep = ( + courseId: number, + stepId: number, + ) => { + return customMutator( + {url: `/api/v1/admin/courses/${courseId}/lessons/steps/${stepId}`, method: 'DELETE', + responseType: 'blob' + }, + ); + } + +/** + * @summary 重新排序课程环节 + */ +const reorder1 = ( + courseId: number, + reorder1Body: number[], + ) => { + return customMutator( + {url: `/api/v1/admin/courses/${courseId}/lessons/reorder`, method: 'PUT', + headers: {'Content-Type': 'application/json', }, + data: reorder1Body, + responseType: 'blob' + }, + ); + } + /** * @summary Get task page */ @@ -1164,6 +1426,79 @@ const createTask = ( ); } +/** + * @summary 获取模板列表 + */ +const getTemplates = ( + params?: GetTemplatesParams, + ) => { + return customMutator( + {url: `/api/v1/teacher/task-templates`, method: 'GET', + params, + responseType: 'blob' + }, + ); + } + +/** + * @summary 创建模板 + */ +const createTemplate = ( + createTemplateBody: CreateTemplateBody, + ) => { + return customMutator( + {url: `/api/v1/teacher/task-templates`, method: 'POST', + headers: {'Content-Type': 'application/json', }, + data: createTemplateBody, + responseType: 'blob' + }, + ); + } + +/** + * @summary 从模板创建任务 + */ +const createFromTemplate = ( + createFromTemplateBody: CreateFromTemplateBody, + ) => { + return customMutator( + {url: `/api/v1/teacher/task-templates/from-template`, method: 'POST', + headers: {'Content-Type': 'application/json', }, + data: createFromTemplateBody, + responseType: 'blob' + }, + ); + } + +/** + * @summary 获取教师排课列表 + */ +const getSchedules = ( + params?: GetSchedulesParams, + ) => { + return customMutator( + {url: `/api/v1/teacher/schedules`, method: 'GET', + params, + responseType: 'blob' + }, + ); + } + +/** + * @summary 创建排课 + */ +const createSchedule = ( + createScheduleBody: CreateScheduleBody, + ) => { + return customMutator( + {url: `/api/v1/teacher/schedules`, method: 'POST', + headers: {'Content-Type': 'application/json', }, + data: createScheduleBody, + responseType: 'blob' + }, + ); + } + /** * @summary Mark notification as read */ @@ -1360,6 +1695,35 @@ const createTask1 = ( ); } +/** + * @summary 获取模板列表 + */ +const getTemplates1 = ( + params?: GetTemplates1Params, + ) => { + return customMutator( + {url: `/api/v1/school/task-templates`, method: 'GET', + params, + responseType: 'blob' + }, + ); + } + +/** + * @summary 创建模板 + */ +const createTemplate1 = ( + createTemplate1Body: CreateTemplate1Body, + ) => { + return customMutator( + {url: `/api/v1/school/task-templates`, method: 'POST', + headers: {'Content-Type': 'application/json', }, + data: createTemplate1Body, + responseType: 'blob' + }, + ); + } + /** * @summary Get student page */ @@ -1389,6 +1753,50 @@ const createStudent = ( ); } +/** + * @summary 获取排课列表 + */ +const getSchedules1 = ( + params?: GetSchedules1Params, + ) => { + return customMutator( + {url: `/api/v1/school/schedules`, method: 'GET', + params, + responseType: 'blob' + }, + ); + } + +/** + * @summary 创建排课 + */ +const createSchedule1 = ( + createSchedule1Body: CreateSchedule1Body, + ) => { + return customMutator( + {url: `/api/v1/school/schedules`, method: 'POST', + headers: {'Content-Type': 'application/json', }, + data: createSchedule1Body, + responseType: 'blob' + }, + ); + } + +/** + * @summary 批量创建排课 + */ +const batchCreateSchedules = ( + batchCreateSchedulesBody: BatchCreateSchedulesBody, + ) => { + return customMutator( + {url: `/api/v1/school/schedules/batch`, method: 'POST', + headers: {'Content-Type': 'application/json', }, + data: batchCreateSchedulesBody, + responseType: 'blob' + }, + ); + } + /** * @summary Get parent page */ @@ -1537,6 +1945,19 @@ const createClass = ( ); } +/** + * @summary Get teachers of class + */ +const getClassTeachers1 = ( + id: number, + ) => { + return customMutator( + {url: `/api/v1/school/classes/${id}/teachers`, method: 'GET', + responseType: 'blob' + }, + ); + } + /** * @summary Assign teachers to class */ @@ -1553,6 +1974,21 @@ const assignTeachers = ( ); } +/** + * @summary Get students of class + */ +const getClassStudents1 = ( + id: number, + params?: GetClassStudents1Params, + ) => { + return customMutator( + {url: `/api/v1/school/classes/${id}/students`, method: 'GET', + params, + responseType: 'blob' + }, + ); + } + /** * @summary Assign students to class */ @@ -1573,11 +2009,11 @@ const assignStudents = ( * @summary Complete task */ const completeTask = ( - taskId: number, + id: number, params: CompleteTaskParams, ) => { return customMutator( - {url: `/api/v1/parent/tasks/${taskId}/complete`, method: 'POST', + {url: `/api/v1/parent/tasks/${id}/complete`, method: 'POST', params, responseType: 'blob' }, @@ -1626,7 +2062,50 @@ const createGrowthRecord2 = ( } /** - * @summary User login + * @summary 上传文件 + */ +const uploadFile = ( + uploadFileBody: UploadFileBody, + params?: UploadFileParams, + ) => { + return customMutator( + {url: `/api/v1/files/upload`, method: 'POST', + headers: {'Content-Type': 'application/json', }, + data: uploadFileBody, + params, + responseType: 'blob' + }, + ); + } + +/** + * @summary 刷新 Token + */ +const refreshToken = ( + + ) => { + return customMutator( + {url: `/api/v1/auth/refresh`, method: 'POST', + responseType: 'blob' + }, + ); + } + +/** + * @summary 用户登出 + */ +const logout = ( + + ) => { + return customMutator( + {url: `/api/v1/auth/logout`, method: 'POST', + responseType: 'blob' + }, + ); + } + +/** + * @summary 用户登录 */ const login = ( loginRequest: LoginRequest, @@ -1641,7 +2120,7 @@ const login = ( } /** - * @summary Change password + * @summary 修改密码 */ const changePassword = ( params: ChangePasswordParams, @@ -1654,6 +2133,34 @@ const changePassword = ( ); } +/** + * @summary 查询所有主题 + */ +const findAll = ( + + ) => { + return customMutator( + {url: `/api/v1/admin/themes`, method: 'GET', + responseType: 'blob' + }, + ); + } + +/** + * @summary 创建主题 + */ +const create = ( + themeCreateRequest: ThemeCreateRequest, + ) => { + return customMutator( + {url: `/api/v1/admin/themes`, method: 'POST', + headers: {'Content-Type': 'application/json', }, + data: themeCreateRequest, + responseType: 'blob' + }, + ); + } + /** * @summary Get tenant page */ @@ -1683,6 +2190,192 @@ const createTenant = ( ); } +/** + * @summary 重置租户密码 + */ +const resetTenantPassword = ( + id: number, + ) => { + return customMutator( + {url: `/api/v1/admin/tenants/${id}/reset-password`, method: 'POST', + responseType: 'blob' + }, + ); + } + +/** + * @summary 分页查询资源库 + */ +const findAllLibraries = ( + params?: FindAllLibrariesParams, + ) => { + return customMutator( + {url: `/api/v1/admin/resources/libraries`, method: 'GET', + params, + responseType: 'blob' + }, + ); + } + +/** + * @summary 创建资源库 + */ +const createLibrary = ( + libraryCreateRequest: LibraryCreateRequest, + ) => { + return customMutator( + {url: `/api/v1/admin/resources/libraries`, method: 'POST', + headers: {'Content-Type': 'application/json', }, + data: libraryCreateRequest, + responseType: 'blob' + }, + ); + } + +/** + * @summary 分页查询资源项目 + */ +const findAllItems = ( + params?: FindAllItemsParams, + ) => { + return customMutator( + {url: `/api/v1/admin/resources/items`, method: 'GET', + params, + responseType: 'blob' + }, + ); + } + +/** + * @summary 创建资源项目 + */ +const createItem = ( + itemCreateRequest: ItemCreateRequest, + ) => { + return customMutator( + {url: `/api/v1/admin/resources/items`, method: 'POST', + headers: {'Content-Type': 'application/json', }, + data: itemCreateRequest, + responseType: 'blob' + }, + ); + } + +/** + * @summary 批量删除资源项目 + */ +const batchDeleteItems = ( + batchDeleteItemsBody: string[], + ) => { + return customMutator( + {url: `/api/v1/admin/resources/items/batch-delete`, method: 'POST', + headers: {'Content-Type': 'application/json', }, + data: batchDeleteItemsBody, + responseType: 'blob' + }, + ); + } + +/** + * @summary 分页查询套餐 + */ +const findAll1 = ( + params?: FindAll1Params, + ) => { + return customMutator( + {url: `/api/v1/admin/packages`, method: 'GET', + params, + responseType: 'blob' + }, + ); + } + +/** + * @summary 创建套餐 + */ +const create1 = ( + packageCreateRequest: PackageCreateRequest, + ) => { + return customMutator( + {url: `/api/v1/admin/packages`, method: 'POST', + headers: {'Content-Type': 'application/json', }, + data: packageCreateRequest, + responseType: 'blob' + }, + ); + } + +/** + * @summary 提交审核 + */ +const submit = ( + id: number, + ) => { + return customMutator( + {url: `/api/v1/admin/packages/${id}/submit`, method: 'POST', + responseType: 'blob' + }, + ); + } + +/** + * @summary 审核套餐 + */ +const review = ( + id: number, + reviewRequest: ReviewRequest, + ) => { + return customMutator( + {url: `/api/v1/admin/packages/${id}/review`, method: 'POST', + headers: {'Content-Type': 'application/json', }, + data: reviewRequest, + responseType: 'blob' + }, + ); + } + +/** + * @summary 发布套餐 + */ +const publish = ( + id: number, + ) => { + return customMutator( + {url: `/api/v1/admin/packages/${id}/publish`, method: 'POST', + responseType: 'blob' + }, + ); + } + +/** + * @summary 下线套餐 + */ +const offline = ( + id: number, + ) => { + return customMutator( + {url: `/api/v1/admin/packages/${id}/offline`, method: 'POST', + responseType: 'blob' + }, + ); + } + +/** + * @summary 授权套餐给租户 + */ +const grantToTenant = ( + id: number, + grantRequest: GrantRequest, + ) => { + return customMutator( + {url: `/api/v1/admin/packages/${id}/grant`, method: 'POST', + headers: {'Content-Type': 'application/json', }, + data: grantRequest, + responseType: 'blob' + }, + ); + } + /** * @summary Get system course page */ @@ -1739,27 +2432,60 @@ const archiveCourse = ( } /** - * @summary 获取统计数据 + * @summary 获取课程的所有环节 */ -const getStats = ( - +const findAll2 = ( + courseId: number, ) => { return customMutator( - {url: `/api/v1/v1/admin/resources/stats`, method: 'GET', + {url: `/api/v1/admin/courses/${courseId}/lessons`, method: 'GET', responseType: 'blob' }, ); } /** - * @summary 按类型获取课程环节 + * @summary 创建课程环节 */ -const findByType = ( +const create2 = ( courseId: number, - lessonType: string, + courseLessonCreateRequest: CourseLessonCreateRequest, ) => { return customMutator( - {url: `/api/v1/v1/admin/courses/${courseId}/lessons/type/${lessonType}`, method: 'GET', + {url: `/api/v1/admin/courses/${courseId}/lessons`, method: 'POST', + headers: {'Content-Type': 'application/json', }, + data: courseLessonCreateRequest, + responseType: 'blob' + }, + ); + } + +/** + * @summary 获取课时的教学环节 + */ +const findSteps = ( + courseId: number, + lessonId: number, + ) => { + return customMutator( + {url: `/api/v1/admin/courses/${courseId}/lessons/${lessonId}/steps`, method: 'GET', + responseType: 'blob' + }, + ); + } + +/** + * @summary 创建教学环节 + */ +const createStep = ( + courseId: number, + lessonId: number, + stepCreateRequest: StepCreateRequest, + ) => { + return customMutator( + {url: `/api/v1/admin/courses/${courseId}/lessons/${lessonId}/steps`, method: 'POST', + headers: {'Content-Type': 'application/json', }, + data: stepCreateRequest, responseType: 'blob' }, ); @@ -1791,6 +2517,60 @@ const getTodayLessons = ( ); } +/** + * @summary 获取默认模板 + */ +const getDefaultTemplate = ( + type: string, + ) => { + return customMutator( + {url: `/api/v1/teacher/task-templates/default/${type}`, method: 'GET', + responseType: 'blob' + }, + ); + } + +/** + * @summary Get all students of teacher + */ +const getAllStudents = ( + params?: GetAllStudentsParams, + ) => { + return customMutator( + {url: `/api/v1/teacher/students`, method: 'GET', + params, + responseType: 'blob' + }, + ); + } + +/** + * @summary 获取今日排课 + */ +const getTodaySchedules = ( + + ) => { + return customMutator( + {url: `/api/v1/teacher/schedules/today`, method: 'GET', + responseType: 'blob' + }, + ); + } + +/** + * @summary 获取教师课程表 + */ +const getTimetable = ( + params?: GetTimetableParams, + ) => { + return customMutator( + {url: `/api/v1/teacher/schedules/timetable`, method: 'GET', + params, + responseType: 'blob' + }, + ); + } + /** * @summary 获取推荐课程 */ @@ -1871,6 +2651,33 @@ const getLessonTrend = ( ); } +/** + * @summary 获取反馈列表 + */ +const getFeedbacks = ( + params?: GetFeedbacksParams, + ) => { + return customMutator( + {url: `/api/v1/teacher/feedbacks`, method: 'GET', + params, + responseType: 'blob' + }, + ); + } + +/** + * @summary 获取反馈统计 + */ +const getFeedbackStats = ( + + ) => { + return customMutator( + {url: `/api/v1/teacher/feedbacks/stats`, method: 'GET', + responseType: 'blob' + }, + ); + } + /** * @summary 获取教师端首页统计数据 */ @@ -1950,6 +2757,47 @@ const getClasses = ( ); } +/** + * @summary Get teachers of class + */ +const getClassTeachers = ( + id: number, + ) => { + return customMutator( + {url: `/api/v1/teacher/classes/${id}/teachers`, method: 'GET', + responseType: 'blob' + }, + ); + } + +/** + * @summary Get students of class + */ +const getClassStudents = ( + id: number, + params?: GetClassStudentsParams, + ) => { + return customMutator( + {url: `/api/v1/teacher/classes/${id}/students`, method: 'GET', + params, + responseType: 'blob' + }, + ); + } + +/** + * @summary 获取默认模板 + */ +const getDefaultTemplate1 = ( + type: string, + ) => { + return customMutator( + {url: `/api/v1/school/task-templates/default/${type}`, method: 'GET', + responseType: 'blob' + }, + ); + } + /** * @summary 获取学校统计数据 */ @@ -2031,6 +2879,85 @@ const getRecentActivities = ( ); } +/** + * @summary 获取课程表 + */ +const getTimetable1 = ( + params?: GetTimetable1Params, + ) => { + return customMutator( + {url: `/api/v1/school/schedules/timetable`, method: 'GET', + params, + responseType: 'blob' + }, + ); + } + +/** + * @summary 获取教师报告 + */ +const getTeacherReports = ( + + ) => { + return customMutator( + {url: `/api/v1/school/reports/teachers`, method: 'GET', + responseType: 'blob' + }, + ); + } + +/** + * @summary 获取学生报告 + */ +const getStudentReports = ( + + ) => { + return customMutator( + {url: `/api/v1/school/reports/students`, method: 'GET', + responseType: 'blob' + }, + ); + } + +/** + * @summary 获取报告概览 + */ +const getOverview = ( + + ) => { + return customMutator( + {url: `/api/v1/school/reports/overview`, method: 'GET', + responseType: 'blob' + }, + ); + } + +/** + * @summary 获取课程报告 + */ +const getCourseReports = ( + + ) => { + return customMutator( + {url: `/api/v1/school/reports/courses`, method: 'GET', + responseType: 'blob' + }, + ); + } + +/** + * @summary Get children of parent + */ +const getParentChildren = ( + id: number, + ) => { + return customMutator( + {url: `/api/v1/school/parents/${id}/children`, method: 'GET', + responseType: 'blob' + }, + ); + } + /** * @summary 查询租户套餐 */ @@ -2044,6 +2971,153 @@ const findTenantPackages = ( ); } +/** + * @summary 获取套餐信息 + */ +const getPackageInfo = ( + + ) => { + return customMutator( + {url: `/api/v1/school/packages/package`, method: 'GET', + responseType: 'blob' + }, + ); + } + +/** + * @summary 获取套餐使用情况 + */ +const getPackageUsage = ( + + ) => { + return customMutator( + {url: `/api/v1/school/packages/package/usage`, method: 'GET', + responseType: 'blob' + }, + ); + } + +/** + * @summary 获取日志列表 + */ +const getLogList = ( + params?: GetLogListParams, + ) => { + return customMutator( + {url: `/api/v1/school/operation-logs`, method: 'GET', + params, + responseType: 'blob' + }, + ); + } + +/** + * @summary 获取日志详情 + */ +const getLogDetail = ( + id: number, + ) => { + return customMutator( + {url: `/api/v1/school/operation-logs/${id}`, method: 'GET', + responseType: 'blob' + }, + ); + } + +/** + * @summary 获取日志统计 + */ +const getLogStats = ( + + ) => { + return customMutator( + {url: `/api/v1/school/operation-logs/stats`, method: 'GET', + responseType: 'blob' + }, + ); + } + +/** + * @summary 获取反馈列表 + */ +const getFeedbacks1 = ( + params?: GetFeedbacks1Params, + ) => { + return customMutator( + {url: `/api/v1/school/feedbacks`, method: 'GET', + params, + responseType: 'blob' + }, + ); + } + +/** + * @summary 获取反馈统计 + */ +const getFeedbackStats1 = ( + + ) => { + return customMutator( + {url: `/api/v1/school/feedbacks/stats`, method: 'GET', + responseType: 'blob' + }, + ); + } + +/** + * @summary 导出教师统计 + */ +const exportTeacherStats = ( + + ) => { + return customMutator( + {url: `/api/v1/school/export/teacher-stats`, method: 'GET', + responseType: 'blob' + }, + ); + } + +/** + * @summary 导出学生统计 + */ +const exportStudentStats = ( + + ) => { + return customMutator( + {url: `/api/v1/school/export/student-stats`, method: 'GET', + responseType: 'blob' + }, + ); + } + +/** + * @summary 导出授课记录 + */ +const exportLessons = ( + params?: ExportLessonsParams, + ) => { + return customMutator( + {url: `/api/v1/school/export/lessons`, method: 'GET', + params, + responseType: 'blob' + }, + ); + } + +/** + * @summary 导出成长记录 + */ +const exportGrowthRecords = ( + params?: ExportGrowthRecordsParams, + ) => { + return customMutator( + {url: `/api/v1/school/export/growth-records`, method: 'GET', + params, + responseType: 'blob' + }, + ); + } + /** * @summary 获取学校课程列表 */ @@ -2070,6 +3144,20 @@ const getSchoolCourse = ( ); } +/** + * @summary Get my tasks + */ +const getMyTasks = ( + params?: GetMyTasksParams, + ) => { + return customMutator( + {url: `/api/v1/parent/tasks`, method: 'GET', + params, + responseType: 'blob' + }, + ); + } + /** * @summary Get task by ID */ @@ -2195,13 +3283,39 @@ const getChild = ( } /** - * @summary Get current user info + * @summary Get child growth records + */ +const getChildGrowth = ( + id: number, + ) => { + return customMutator( + {url: `/api/v1/parent/children/${id}/growth`, method: 'GET', + responseType: 'blob' + }, + ); + } + +/** + * @summary 获取当前用户信息 */ const getCurrentUser = ( ) => { return customMutator( - {url: `/api/v1/auth/me`, method: 'GET', + {url: `/api/v1/auth/profile`, method: 'GET', + responseType: 'blob' + }, + ); + } + +/** + * @summary 获取租户统计信息 + */ +const getTenantStats = ( + + ) => { + return customMutator( + {url: `/api/v1/admin/tenants/stats`, method: 'GET', responseType: 'blob' }, ); @@ -2220,6 +3334,114 @@ const getAllActiveTenants = ( ); } +/** + * @summary 获取统计数据 + */ +const getStats = ( + + ) => { + return customMutator( + {url: `/api/v1/admin/stats`, method: 'GET', + responseType: 'blob' + }, + ); + } + +/** + * @summary 获取趋势数据 + */ +const getTrendData = ( + + ) => { + return customMutator( + {url: `/api/v1/admin/stats/trend`, method: 'GET', + responseType: 'blob' + }, + ); + } + +/** + * @summary 获取活跃租户 + */ +const getActiveTenants = ( + params?: GetActiveTenantsParams, + ) => { + return customMutator( + {url: `/api/v1/admin/stats/tenants/active`, method: 'GET', + params, + responseType: 'blob' + }, + ); + } + +/** + * @summary 获取热门课程 + */ +const getPopularCourses = ( + params?: GetPopularCoursesParams, + ) => { + return customMutator( + {url: `/api/v1/admin/stats/courses/popular`, method: 'GET', + params, + responseType: 'blob' + }, + ); + } + +/** + * @summary 获取最近活动 + */ +const getRecentActivities1 = ( + params?: GetRecentActivities1Params, + ) => { + return customMutator( + {url: `/api/v1/admin/stats/activities`, method: 'GET', + params, + responseType: 'blob' + }, + ); + } + +/** + * @summary 获取租户默认设置 + */ +const getTenantDefaults = ( + + ) => { + return customMutator( + {url: `/api/v1/admin/settings/tenant-defaults`, method: 'GET', + responseType: 'blob' + }, + ); + } + +/** + * @summary 获取统计数据 + */ +const getStats1 = ( + + ) => { + return customMutator( + {url: `/api/v1/admin/resources/stats`, method: 'GET', + responseType: 'blob' + }, + ); + } + +/** + * @summary 按类型获取课程环节 + */ +const findByType = ( + courseId: number, + lessonType: string, + ) => { + return customMutator( + {url: `/api/v1/admin/courses/${courseId}/lessons/type/${lessonType}`, method: 'GET', + responseType: 'blob' + }, + ); + } + /** * @summary 删除文件 */ @@ -2227,7 +3449,7 @@ const deleteFile = ( deleteFileBody: DeleteFileBody, ) => { return customMutator( - {url: `/api/v1/v1/files/delete`, method: 'DELETE', + {url: `/api/v1/files/delete`, method: 'DELETE', headers: {'Content-Type': 'application/json', }, data: deleteFileBody, responseType: 'blob' @@ -2235,31 +3457,16 @@ const deleteFile = ( ); } -return {findOne,update,_delete,reorder,findLibrary,updateLibrary,deleteLibrary,findItem,updateItem,deleteItem,findOne1,update1,delete1,setCourses,reorderSteps,findOne2,update2,delete2,updateStep,removeStep,reorder1,getTask,updateTask,deleteTask,getLesson,updateLesson,getGrowthRecord,updateGrowthRecord,deleteGrowthRecord,getTeacher,updateTeacher,deleteTeacher,getTask1,updateTask1,deleteTask1,getStudent,updateStudent,deleteStudent,getParent,updateParent,deleteParent,getGrowthRecord1,updateGrowthRecord1,deleteGrowthRecord1,getClass,updateClass,deleteClass,getGrowthRecord2,updateGrowthRecord2,deleteGrowthRecord2,getTenant,updateTenant,deleteTenant,getCourse1,updateCourse,deleteCourse,uploadFile,findAll,create,findAllLibraries,createLibrary,findAllItems,createItem,batchDeleteItems,findAll1,create1,submit,review,publish,offline,findAll2,create2,findSteps,createStep,getTaskPage,createTask,markAsRead,markAllAsRead,getMyLessons,createLesson,startLesson,completeLesson,cancelLesson,getGrowthRecordPage,createGrowthRecord,getTeacherPage,createTeacher,resetPassword,getTaskPage1,createTask1,getStudentPage,createStudent,getParentPage,createParent,bindStudent,unbindStudent,resetPassword1,renewPackage,getGrowthRecordPage1,createGrowthRecord1,getClassPage,createClass,assignTeachers,assignStudents,completeTask,markAsRead1,markAllAsRead1,createGrowthRecord2,login,changePassword,getTenantPage,createTenant,getCoursePage1,createCourse,publishCourse,archiveCourse,getStats,findByType,getWeeklyStats,getTodayLessons,getRecommendedCourses,getMyNotifications,getNotification,getUnreadCount,getTodayLessons1,getLessonTrend,getDashboard,getCoursePage,getCourse,getAllCourses,getCourseUsage,getClasses,getSchoolStats,getActiveTeachers,getLessonTrend1,getCourseUsageStats,getCourseDistribution,getRecentActivities,findTenantPackages,getSchoolCourses,getSchoolCourse,getTask2,getTasksByStudent,getMyNotifications1,getNotification1,getUnreadCount1,getGrowthRecordsByStudent,getRecentGrowthRecords,getMyChildren,getChild,getCurrentUser,getAllActiveTenants,deleteFile}}; -export type FindOneResult = NonNullable['findOne']>>> -export type UpdateResult = NonNullable['update']>>> -export type _DeleteResult = NonNullable['_delete']>>> -export type ReorderResult = NonNullable['reorder']>>> -export type FindLibraryResult = NonNullable['findLibrary']>>> -export type UpdateLibraryResult = NonNullable['updateLibrary']>>> -export type DeleteLibraryResult = NonNullable['deleteLibrary']>>> -export type FindItemResult = NonNullable['findItem']>>> -export type UpdateItemResult = NonNullable['updateItem']>>> -export type DeleteItemResult = NonNullable['deleteItem']>>> -export type FindOne1Result = NonNullable['findOne1']>>> -export type Update1Result = NonNullable['update1']>>> -export type Delete1Result = NonNullable['delete1']>>> -export type SetCoursesResult = NonNullable['setCourses']>>> -export type ReorderStepsResult = NonNullable['reorderSteps']>>> -export type FindOne2Result = NonNullable['findOne2']>>> -export type Update2Result = NonNullable['update2']>>> -export type Delete2Result = NonNullable['delete2']>>> -export type UpdateStepResult = NonNullable['updateStep']>>> -export type RemoveStepResult = NonNullable['removeStep']>>> -export type Reorder1Result = NonNullable['reorder1']>>> +return {getTask,updateTask,deleteTask,getTemplate,updateTemplate,deleteTemplate,getSchedule,updateSchedule,cancelSchedule,getLesson,updateLesson,getGrowthRecord,updateGrowthRecord,deleteGrowthRecord,getTeacher,updateTeacher,deleteTeacher,getTask1,updateTask1,deleteTask1,getTemplate1,updateTemplate1,deleteTemplate1,getStudent,updateStudent,deleteStudent,getSettings,updateSettings,getSecuritySettings,updateSecuritySettings,getNotificationSettings,updateNotificationSettings,getBasicSettings,updateBasicSettings,getSchedule1,updateSchedule1,cancelSchedule1,getParent,updateParent,deleteParent,getGrowthRecord1,updateGrowthRecord1,deleteGrowthRecord1,getClass,updateClass,deleteClass,updateClassTeacher,removeClassTeacher,getGrowthRecord2,updateGrowthRecord2,deleteGrowthRecord2,findOne,update,_delete,reorder,getTenant,updateTenant,deleteTenant,updateTenantStatus,updateTenantQuota,getAllSettings,updateSettings1,getStorageSettings,updateStorageSettings,getSecuritySettings1,updateSecuritySettings1,getNotificationSettings1,updateNotificationSettings1,getBasicSettings1,updateBasicSettings1,findLibrary,updateLibrary,deleteLibrary,findItem,updateItem,deleteItem,findOne1,update1,delete1,setCourses,getCourse1,updateCourse,deleteCourse,reorderSteps,findOne2,update2,delete2,updateStep,removeStep,reorder1,getTaskPage,createTask,getTemplates,createTemplate,createFromTemplate,getSchedules,createSchedule,markAsRead,markAllAsRead,getMyLessons,createLesson,startLesson,completeLesson,cancelLesson,getGrowthRecordPage,createGrowthRecord,getTeacherPage,createTeacher,resetPassword,getTaskPage1,createTask1,getTemplates1,createTemplate1,getStudentPage,createStudent,getSchedules1,createSchedule1,batchCreateSchedules,getParentPage,createParent,bindStudent,unbindStudent,resetPassword1,renewPackage,getGrowthRecordPage1,createGrowthRecord1,getClassPage,createClass,getClassTeachers1,assignTeachers,getClassStudents1,assignStudents,completeTask,markAsRead1,markAllAsRead1,createGrowthRecord2,uploadFile,refreshToken,logout,login,changePassword,findAll,create,getTenantPage,createTenant,resetTenantPassword,findAllLibraries,createLibrary,findAllItems,createItem,batchDeleteItems,findAll1,create1,submit,review,publish,offline,grantToTenant,getCoursePage1,createCourse,publishCourse,archiveCourse,findAll2,create2,findSteps,createStep,getWeeklyStats,getTodayLessons,getDefaultTemplate,getAllStudents,getTodaySchedules,getTimetable,getRecommendedCourses,getMyNotifications,getNotification,getUnreadCount,getTodayLessons1,getLessonTrend,getFeedbacks,getFeedbackStats,getDashboard,getCoursePage,getCourse,getAllCourses,getCourseUsage,getClasses,getClassTeachers,getClassStudents,getDefaultTemplate1,getSchoolStats,getActiveTeachers,getLessonTrend1,getCourseUsageStats,getCourseDistribution,getRecentActivities,getTimetable1,getTeacherReports,getStudentReports,getOverview,getCourseReports,getParentChildren,findTenantPackages,getPackageInfo,getPackageUsage,getLogList,getLogDetail,getLogStats,getFeedbacks1,getFeedbackStats1,exportTeacherStats,exportStudentStats,exportLessons,exportGrowthRecords,getSchoolCourses,getSchoolCourse,getMyTasks,getTask2,getTasksByStudent,getMyNotifications1,getNotification1,getUnreadCount1,getGrowthRecordsByStudent,getRecentGrowthRecords,getMyChildren,getChild,getChildGrowth,getCurrentUser,getTenantStats,getAllActiveTenants,getStats,getTrendData,getActiveTenants,getPopularCourses,getRecentActivities1,getTenantDefaults,getStats1,findByType,deleteFile}}; export type GetTaskResult = NonNullable['getTask']>>> export type UpdateTaskResult = NonNullable['updateTask']>>> export type DeleteTaskResult = NonNullable['deleteTask']>>> +export type GetTemplateResult = NonNullable['getTemplate']>>> +export type UpdateTemplateResult = NonNullable['updateTemplate']>>> +export type DeleteTemplateResult = NonNullable['deleteTemplate']>>> +export type GetScheduleResult = NonNullable['getSchedule']>>> +export type UpdateScheduleResult = NonNullable['updateSchedule']>>> +export type CancelScheduleResult = NonNullable['cancelSchedule']>>> export type GetLessonResult = NonNullable['getLesson']>>> export type UpdateLessonResult = NonNullable['updateLesson']>>> export type GetGrowthRecordResult = NonNullable['getGrowthRecord']>>> @@ -2271,9 +3478,23 @@ export type DeleteTeacherResult = NonNullable['getTask1']>>> export type UpdateTask1Result = NonNullable['updateTask1']>>> export type DeleteTask1Result = NonNullable['deleteTask1']>>> +export type GetTemplate1Result = NonNullable['getTemplate1']>>> +export type UpdateTemplate1Result = NonNullable['updateTemplate1']>>> +export type DeleteTemplate1Result = NonNullable['deleteTemplate1']>>> export type GetStudentResult = NonNullable['getStudent']>>> export type UpdateStudentResult = NonNullable['updateStudent']>>> export type DeleteStudentResult = NonNullable['deleteStudent']>>> +export type GetSettingsResult = NonNullable['getSettings']>>> +export type UpdateSettingsResult = NonNullable['updateSettings']>>> +export type GetSecuritySettingsResult = NonNullable['getSecuritySettings']>>> +export type UpdateSecuritySettingsResult = NonNullable['updateSecuritySettings']>>> +export type GetNotificationSettingsResult = NonNullable['getNotificationSettings']>>> +export type UpdateNotificationSettingsResult = NonNullable['updateNotificationSettings']>>> +export type GetBasicSettingsResult = NonNullable['getBasicSettings']>>> +export type UpdateBasicSettingsResult = NonNullable['updateBasicSettings']>>> +export type GetSchedule1Result = NonNullable['getSchedule1']>>> +export type UpdateSchedule1Result = NonNullable['updateSchedule1']>>> +export type CancelSchedule1Result = NonNullable['cancelSchedule1']>>> export type GetParentResult = NonNullable['getParent']>>> export type UpdateParentResult = NonNullable['updateParent']>>> export type DeleteParentResult = NonNullable['deleteParent']>>> @@ -2283,35 +3504,57 @@ export type DeleteGrowthRecord1Result = NonNullable['getClass']>>> export type UpdateClassResult = NonNullable['updateClass']>>> export type DeleteClassResult = NonNullable['deleteClass']>>> +export type UpdateClassTeacherResult = NonNullable['updateClassTeacher']>>> +export type RemoveClassTeacherResult = NonNullable['removeClassTeacher']>>> export type GetGrowthRecord2Result = NonNullable['getGrowthRecord2']>>> export type UpdateGrowthRecord2Result = NonNullable['updateGrowthRecord2']>>> export type DeleteGrowthRecord2Result = NonNullable['deleteGrowthRecord2']>>> +export type FindOneResult = NonNullable['findOne']>>> +export type UpdateResult = NonNullable['update']>>> +export type _DeleteResult = NonNullable['_delete']>>> +export type ReorderResult = NonNullable['reorder']>>> export type GetTenantResult = NonNullable['getTenant']>>> export type UpdateTenantResult = NonNullable['updateTenant']>>> export type DeleteTenantResult = NonNullable['deleteTenant']>>> +export type UpdateTenantStatusResult = NonNullable['updateTenantStatus']>>> +export type UpdateTenantQuotaResult = NonNullable['updateTenantQuota']>>> +export type GetAllSettingsResult = NonNullable['getAllSettings']>>> +export type UpdateSettings1Result = NonNullable['updateSettings1']>>> +export type GetStorageSettingsResult = NonNullable['getStorageSettings']>>> +export type UpdateStorageSettingsResult = NonNullable['updateStorageSettings']>>> +export type GetSecuritySettings1Result = NonNullable['getSecuritySettings1']>>> +export type UpdateSecuritySettings1Result = NonNullable['updateSecuritySettings1']>>> +export type GetNotificationSettings1Result = NonNullable['getNotificationSettings1']>>> +export type UpdateNotificationSettings1Result = NonNullable['updateNotificationSettings1']>>> +export type GetBasicSettings1Result = NonNullable['getBasicSettings1']>>> +export type UpdateBasicSettings1Result = NonNullable['updateBasicSettings1']>>> +export type FindLibraryResult = NonNullable['findLibrary']>>> +export type UpdateLibraryResult = NonNullable['updateLibrary']>>> +export type DeleteLibraryResult = NonNullable['deleteLibrary']>>> +export type FindItemResult = NonNullable['findItem']>>> +export type UpdateItemResult = NonNullable['updateItem']>>> +export type DeleteItemResult = NonNullable['deleteItem']>>> +export type FindOne1Result = NonNullable['findOne1']>>> +export type Update1Result = NonNullable['update1']>>> +export type Delete1Result = NonNullable['delete1']>>> +export type SetCoursesResult = NonNullable['setCourses']>>> export type GetCourse1Result = NonNullable['getCourse1']>>> export type UpdateCourseResult = NonNullable['updateCourse']>>> export type DeleteCourseResult = NonNullable['deleteCourse']>>> -export type UploadFileResult = NonNullable['uploadFile']>>> -export type FindAllResult = NonNullable['findAll']>>> -export type CreateResult = NonNullable['create']>>> -export type FindAllLibrariesResult = NonNullable['findAllLibraries']>>> -export type CreateLibraryResult = NonNullable['createLibrary']>>> -export type FindAllItemsResult = NonNullable['findAllItems']>>> -export type CreateItemResult = NonNullable['createItem']>>> -export type BatchDeleteItemsResult = NonNullable['batchDeleteItems']>>> -export type FindAll1Result = NonNullable['findAll1']>>> -export type Create1Result = NonNullable['create1']>>> -export type SubmitResult = NonNullable['submit']>>> -export type ReviewResult = NonNullable['review']>>> -export type PublishResult = NonNullable['publish']>>> -export type OfflineResult = NonNullable['offline']>>> -export type FindAll2Result = NonNullable['findAll2']>>> -export type Create2Result = NonNullable['create2']>>> -export type FindStepsResult = NonNullable['findSteps']>>> -export type CreateStepResult = NonNullable['createStep']>>> +export type ReorderStepsResult = NonNullable['reorderSteps']>>> +export type FindOne2Result = NonNullable['findOne2']>>> +export type Update2Result = NonNullable['update2']>>> +export type Delete2Result = NonNullable['delete2']>>> +export type UpdateStepResult = NonNullable['updateStep']>>> +export type RemoveStepResult = NonNullable['removeStep']>>> +export type Reorder1Result = NonNullable['reorder1']>>> export type GetTaskPageResult = NonNullable['getTaskPage']>>> export type CreateTaskResult = NonNullable['createTask']>>> +export type GetTemplatesResult = NonNullable['getTemplates']>>> +export type CreateTemplateResult = NonNullable['createTemplate']>>> +export type CreateFromTemplateResult = NonNullable['createFromTemplate']>>> +export type GetSchedulesResult = NonNullable['getSchedules']>>> +export type CreateScheduleResult = NonNullable['createSchedule']>>> export type MarkAsReadResult = NonNullable['markAsRead']>>> export type MarkAllAsReadResult = NonNullable['markAllAsRead']>>> export type GetMyLessonsResult = NonNullable['getMyLessons']>>> @@ -2326,8 +3569,13 @@ export type CreateTeacherResult = NonNullable['resetPassword']>>> export type GetTaskPage1Result = NonNullable['getTaskPage1']>>> export type CreateTask1Result = NonNullable['createTask1']>>> +export type GetTemplates1Result = NonNullable['getTemplates1']>>> +export type CreateTemplate1Result = NonNullable['createTemplate1']>>> export type GetStudentPageResult = NonNullable['getStudentPage']>>> export type CreateStudentResult = NonNullable['createStudent']>>> +export type GetSchedules1Result = NonNullable['getSchedules1']>>> +export type CreateSchedule1Result = NonNullable['createSchedule1']>>> +export type BatchCreateSchedulesResult = NonNullable['batchCreateSchedules']>>> export type GetParentPageResult = NonNullable['getParentPage']>>> export type CreateParentResult = NonNullable['createParent']>>> export type BindStudentResult = NonNullable['bindStudent']>>> @@ -2338,45 +3586,94 @@ export type GetGrowthRecordPage1Result = NonNullable['createGrowthRecord1']>>> export type GetClassPageResult = NonNullable['getClassPage']>>> export type CreateClassResult = NonNullable['createClass']>>> +export type GetClassTeachers1Result = NonNullable['getClassTeachers1']>>> export type AssignTeachersResult = NonNullable['assignTeachers']>>> +export type GetClassStudents1Result = NonNullable['getClassStudents1']>>> export type AssignStudentsResult = NonNullable['assignStudents']>>> export type CompleteTaskResult = NonNullable['completeTask']>>> export type MarkAsRead1Result = NonNullable['markAsRead1']>>> export type MarkAllAsRead1Result = NonNullable['markAllAsRead1']>>> export type CreateGrowthRecord2Result = NonNullable['createGrowthRecord2']>>> +export type UploadFileResult = NonNullable['uploadFile']>>> +export type RefreshTokenResult = NonNullable['refreshToken']>>> +export type LogoutResult = NonNullable['logout']>>> export type LoginResult = NonNullable['login']>>> export type ChangePasswordResult = NonNullable['changePassword']>>> +export type FindAllResult = NonNullable['findAll']>>> +export type CreateResult = NonNullable['create']>>> export type GetTenantPageResult = NonNullable['getTenantPage']>>> export type CreateTenantResult = NonNullable['createTenant']>>> +export type ResetTenantPasswordResult = NonNullable['resetTenantPassword']>>> +export type FindAllLibrariesResult = NonNullable['findAllLibraries']>>> +export type CreateLibraryResult = NonNullable['createLibrary']>>> +export type FindAllItemsResult = NonNullable['findAllItems']>>> +export type CreateItemResult = NonNullable['createItem']>>> +export type BatchDeleteItemsResult = NonNullable['batchDeleteItems']>>> +export type FindAll1Result = NonNullable['findAll1']>>> +export type Create1Result = NonNullable['create1']>>> +export type SubmitResult = NonNullable['submit']>>> +export type ReviewResult = NonNullable['review']>>> +export type PublishResult = NonNullable['publish']>>> +export type OfflineResult = NonNullable['offline']>>> +export type GrantToTenantResult = NonNullable['grantToTenant']>>> export type GetCoursePage1Result = NonNullable['getCoursePage1']>>> export type CreateCourseResult = NonNullable['createCourse']>>> export type PublishCourseResult = NonNullable['publishCourse']>>> export type ArchiveCourseResult = NonNullable['archiveCourse']>>> -export type GetStatsResult = NonNullable['getStats']>>> -export type FindByTypeResult = NonNullable['findByType']>>> +export type FindAll2Result = NonNullable['findAll2']>>> +export type Create2Result = NonNullable['create2']>>> +export type FindStepsResult = NonNullable['findSteps']>>> +export type CreateStepResult = NonNullable['createStep']>>> export type GetWeeklyStatsResult = NonNullable['getWeeklyStats']>>> export type GetTodayLessonsResult = NonNullable['getTodayLessons']>>> +export type GetDefaultTemplateResult = NonNullable['getDefaultTemplate']>>> +export type GetAllStudentsResult = NonNullable['getAllStudents']>>> +export type GetTodaySchedulesResult = NonNullable['getTodaySchedules']>>> +export type GetTimetableResult = NonNullable['getTimetable']>>> export type GetRecommendedCoursesResult = NonNullable['getRecommendedCourses']>>> export type GetMyNotificationsResult = NonNullable['getMyNotifications']>>> export type GetNotificationResult = NonNullable['getNotification']>>> export type GetUnreadCountResult = NonNullable['getUnreadCount']>>> export type GetTodayLessons1Result = NonNullable['getTodayLessons1']>>> export type GetLessonTrendResult = NonNullable['getLessonTrend']>>> +export type GetFeedbacksResult = NonNullable['getFeedbacks']>>> +export type GetFeedbackStatsResult = NonNullable['getFeedbackStats']>>> export type GetDashboardResult = NonNullable['getDashboard']>>> export type GetCoursePageResult = NonNullable['getCoursePage']>>> export type GetCourseResult = NonNullable['getCourse']>>> export type GetAllCoursesResult = NonNullable['getAllCourses']>>> export type GetCourseUsageResult = NonNullable['getCourseUsage']>>> export type GetClassesResult = NonNullable['getClasses']>>> +export type GetClassTeachersResult = NonNullable['getClassTeachers']>>> +export type GetClassStudentsResult = NonNullable['getClassStudents']>>> +export type GetDefaultTemplate1Result = NonNullable['getDefaultTemplate1']>>> export type GetSchoolStatsResult = NonNullable['getSchoolStats']>>> export type GetActiveTeachersResult = NonNullable['getActiveTeachers']>>> export type GetLessonTrend1Result = NonNullable['getLessonTrend1']>>> export type GetCourseUsageStatsResult = NonNullable['getCourseUsageStats']>>> export type GetCourseDistributionResult = NonNullable['getCourseDistribution']>>> export type GetRecentActivitiesResult = NonNullable['getRecentActivities']>>> +export type GetTimetable1Result = NonNullable['getTimetable1']>>> +export type GetTeacherReportsResult = NonNullable['getTeacherReports']>>> +export type GetStudentReportsResult = NonNullable['getStudentReports']>>> +export type GetOverviewResult = NonNullable['getOverview']>>> +export type GetCourseReportsResult = NonNullable['getCourseReports']>>> +export type GetParentChildrenResult = NonNullable['getParentChildren']>>> export type FindTenantPackagesResult = NonNullable['findTenantPackages']>>> +export type GetPackageInfoResult = NonNullable['getPackageInfo']>>> +export type GetPackageUsageResult = NonNullable['getPackageUsage']>>> +export type GetLogListResult = NonNullable['getLogList']>>> +export type GetLogDetailResult = NonNullable['getLogDetail']>>> +export type GetLogStatsResult = NonNullable['getLogStats']>>> +export type GetFeedbacks1Result = NonNullable['getFeedbacks1']>>> +export type GetFeedbackStats1Result = NonNullable['getFeedbackStats1']>>> +export type ExportTeacherStatsResult = NonNullable['exportTeacherStats']>>> +export type ExportStudentStatsResult = NonNullable['exportStudentStats']>>> +export type ExportLessonsResult = NonNullable['exportLessons']>>> +export type ExportGrowthRecordsResult = NonNullable['exportGrowthRecords']>>> export type GetSchoolCoursesResult = NonNullable['getSchoolCourses']>>> export type GetSchoolCourseResult = NonNullable['getSchoolCourse']>>> +export type GetMyTasksResult = NonNullable['getMyTasks']>>> export type GetTask2Result = NonNullable['getTask2']>>> export type GetTasksByStudentResult = NonNullable['getTasksByStudent']>>> export type GetMyNotifications1Result = NonNullable['getMyNotifications1']>>> @@ -2386,6 +3683,16 @@ export type GetGrowthRecordsByStudentResult = NonNullable['getRecentGrowthRecords']>>> export type GetMyChildrenResult = NonNullable['getMyChildren']>>> export type GetChildResult = NonNullable['getChild']>>> +export type GetChildGrowthResult = NonNullable['getChildGrowth']>>> export type GetCurrentUserResult = NonNullable['getCurrentUser']>>> +export type GetTenantStatsResult = NonNullable['getTenantStats']>>> export type GetAllActiveTenantsResult = NonNullable['getAllActiveTenants']>>> +export type GetStatsResult = NonNullable['getStats']>>> +export type GetTrendDataResult = NonNullable['getTrendData']>>> +export type GetActiveTenantsResult = NonNullable['getActiveTenants']>>> +export type GetPopularCoursesResult = NonNullable['getPopularCourses']>>> +export type GetRecentActivities1Result = NonNullable['getRecentActivities1']>>> +export type GetTenantDefaultsResult = NonNullable['getTenantDefaults']>>> +export type GetStats1Result = NonNullable['getStats1']>>> +export type FindByTypeResult = NonNullable['findByType']>>> export type DeleteFileResult = NonNullable['deleteFile']>>> diff --git a/reading-platform-frontend/src/api/generated/model/batchCreateSchedulesBody.ts b/reading-platform-frontend/src/api/generated/model/batchCreateSchedulesBody.ts new file mode 100644 index 0000000..39f6c68 --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/batchCreateSchedulesBody.ts @@ -0,0 +1,9 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ + +export type BatchCreateSchedulesBody = {[key: string]: { [key: string]: unknown }}; diff --git a/reading-platform-frontend/src/api/generated/model/classCreateRequest.ts b/reading-platform-frontend/src/api/generated/model/classCreateRequest.ts index 3303177..eb90c3c 100644 --- a/reading-platform-frontend/src/api/generated/model/classCreateRequest.ts +++ b/reading-platform-frontend/src/api/generated/model/classCreateRequest.ts @@ -7,15 +7,15 @@ */ /** - * Class Create Request + * 班级创建请求 */ export interface ClassCreateRequest { - /** Class name */ + /** 班级名称 */ name: string; - /** Grade */ + /** 年级 */ grade?: string; - /** Description */ + /** 描述 */ description?: string; - /** Capacity */ + /** 容量 */ capacity?: number; } diff --git a/reading-platform-frontend/src/api/generated/model/classResponse.ts b/reading-platform-frontend/src/api/generated/model/classResponse.ts new file mode 100644 index 0000000..1a0a90d --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/classResponse.ts @@ -0,0 +1,31 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ + +/** + * 班级响应 + */ +export interface ClassResponse { + /** ID */ + id?: number; + /** 租户 ID */ + tenantId?: number; + /** 班级名称 */ + name?: string; + /** 年级 */ + grade?: string; + /** 描述 */ + description?: string; + /** 容量 */ + capacity?: number; + /** 状态 */ + status?: string; + /** 创建时间 */ + createdAt?: string; + /** 更新时间 */ + updatedAt?: string; +} diff --git a/reading-platform-frontend/src/api/generated/model/classTeacherResponse.ts b/reading-platform-frontend/src/api/generated/model/classTeacherResponse.ts new file mode 100644 index 0000000..5245c1b --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/classTeacherResponse.ts @@ -0,0 +1,23 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ + +/** + * 班级教师关系响应 + */ +export interface ClassTeacherResponse { + /** ID */ + id?: number; + /** 班级 ID */ + classId?: number; + /** 教师 ID */ + teacherId?: number; + /** 角色 */ + role?: string; + /** 创建时间 */ + createdAt?: string; +} diff --git a/reading-platform-frontend/src/api/generated/model/classUpdateRequest.ts b/reading-platform-frontend/src/api/generated/model/classUpdateRequest.ts index 3feca08..93cece9 100644 --- a/reading-platform-frontend/src/api/generated/model/classUpdateRequest.ts +++ b/reading-platform-frontend/src/api/generated/model/classUpdateRequest.ts @@ -7,17 +7,17 @@ */ /** - * Class Update Request + * 班级更新请求 */ export interface ClassUpdateRequest { - /** Class name */ + /** 班级名称 */ name?: string; - /** Grade */ + /** 年级 */ grade?: string; - /** Description */ + /** 描述 */ description?: string; - /** Capacity */ + /** 容量 */ capacity?: number; - /** Status */ + /** 状态 */ status?: string; } diff --git a/reading-platform-frontend/src/api/generated/model/course.ts b/reading-platform-frontend/src/api/generated/model/course.ts index 61b621b..8a8304b 100644 --- a/reading-platform-frontend/src/api/generated/model/course.ts +++ b/reading-platform-frontend/src/api/generated/model/course.ts @@ -6,64 +6,126 @@ * OpenAPI spec version: 1.0.0 */ +/** + * 课程实体 + */ export interface Course { + /** 主键 ID */ id?: number; - tenantId?: number; - name?: string; - code?: string; - description?: string; - coverUrl?: string; - category?: string; - ageRange?: string; - difficultyLevel?: string; - durationMinutes?: number; - objectives?: string; - status?: string; - isSystem?: number; - coreContent?: string; - introSummary?: string; - introHighlights?: string; - introGoals?: string; - introSchedule?: string; - introKeyPoints?: string; - introMethods?: string; - introEvaluation?: string; - introNotes?: string; - scheduleRefData?: string; - environmentConstruction?: string; - themeId?: number; - pictureBookName?: string; - coverImagePath?: string; - ebookPaths?: string; - audioPaths?: string; - videoPaths?: string; - otherResources?: string; - pptPath?: string; - pptName?: string; - posterPaths?: string; - tools?: string; - studentMaterials?: string; - lessonPlanData?: string; - activitiesData?: string; - assessmentData?: string; - gradeTags?: string; - domainTags?: string; - hasCollectiveLesson?: number; - version?: string; - parentId?: number; - isLatest?: number; - submittedAt?: string; - submittedBy?: number; - reviewedAt?: string; - reviewedBy?: number; - reviewComment?: string; - reviewChecklist?: string; - publishedAt?: string; - usageCount?: number; - teacherCount?: number; - avgRating?: number; - createdBy?: number; + /** 创建人 */ + createBy?: string; + /** 创建时间 */ createdAt?: string; + /** 更新人 */ + updateBy?: string; + /** 更新时间 */ updatedAt?: string; - deleted?: number; + /** 租户 ID */ + tenantId?: number; + /** 课程名称 */ + name?: string; + /** 课程编码 */ + code?: string; + /** 课程描述 */ + description?: string; + /** 封面 URL */ + coverUrl?: string; + /** 课程类别 */ + category?: string; + /** 适用年龄范围 */ + ageRange?: string; + /** 难度等级 */ + difficultyLevel?: string; + /** 课程时长(分钟) */ + durationMinutes?: number; + /** 课程目标 */ + objectives?: string; + /** 状态 */ + status?: string; + /** 是否系统课程 */ + isSystem?: number; + /** 核心内容 */ + coreContent?: string; + /** 课程介绍 - 概要 */ + introSummary?: string; + /** 课程介绍 - 亮点 */ + introHighlights?: string; + /** 课程介绍 - 目标 */ + introGoals?: string; + /** 课程介绍 - 进度安排 */ + introSchedule?: string; + /** 课程介绍 - 重点 */ + introKeyPoints?: string; + /** 课程介绍 - 方法 */ + introMethods?: string; + /** 课程介绍 - 评估 */ + introEvaluation?: string; + /** 课程介绍 - 注意事项 */ + introNotes?: string; + /** 进度计划参考数据(JSON) */ + scheduleRefData?: string; + /** 环境创设(步骤 7) */ + environmentConstruction?: string; + /** 主题 ID */ + themeId?: number; + /** 绘本名称 */ + pictureBookName?: string; + /** 封面图片路径 */ + coverImagePath?: string; + /** 电子绘本路径(JSON 数组) */ + ebookPaths?: string; + /** 音频资源路径(JSON 数组) */ + audioPaths?: string; + /** 视频资源路径(JSON 数组) */ + videoPaths?: string; + /** 其他资源(JSON 数组) */ + otherResources?: string; + /** PPT 课件路径 */ + pptPath?: string; + /** PPT 课件名称 */ + pptName?: string; + /** 海报图片路径 */ + posterPaths?: string; + /** 教学工具 */ + tools?: string; + /** 学生材料 */ + studentMaterials?: string; + /** 教案数据(JSON) */ + lessonPlanData?: string; + /** 活动数据(JSON) */ + activitiesData?: string; + /** 评估数据(JSON) */ + assessmentData?: string; + /** 年级标签(JSON 数组) */ + gradeTags?: string; + /** 领域标签(JSON 数组) */ + domainTags?: string; + /** 是否有集体课 */ + hasCollectiveLesson?: number; + /** 版本号 */ + version?: string; + /** 父版本 ID */ + parentId?: number; + /** 是否最新版本 */ + isLatest?: number; + /** 提交时间 */ + submittedAt?: string; + /** 提交人 ID */ + submittedBy?: number; + /** 审核时间 */ + reviewedAt?: string; + /** 审核人 ID */ + reviewedBy?: number; + /** 审核意见 */ + reviewComment?: string; + /** 审核检查清单 */ + reviewChecklist?: string; + /** 发布时间 */ + publishedAt?: string; + /** 使用次数 */ + usageCount?: number; + /** 教师数量 */ + teacherCount?: number; + /** 平均评分 */ + avgRating?: number; } diff --git a/reading-platform-frontend/src/api/generated/model/courseCreateRequest.ts b/reading-platform-frontend/src/api/generated/model/courseCreateRequest.ts index 406b255..10b7459 100644 --- a/reading-platform-frontend/src/api/generated/model/courseCreateRequest.ts +++ b/reading-platform-frontend/src/api/generated/model/courseCreateRequest.ts @@ -7,83 +7,83 @@ */ /** - * Course Create Request + * 课程创建请求 */ export interface CourseCreateRequest { - /** Course name */ + /** 课程名称 */ name: string; - /** Course code */ + /** 课程编码 */ code?: string; - /** Description */ + /** 描述 */ description?: string; - /** Cover URL */ + /** 封面 URL */ coverUrl?: string; - /** Cover image path */ + /** 封面图片路径 */ coverImagePath?: string; - /** Category */ + /** 分类 */ category?: string; - /** Age range */ + /** 年龄范围 */ ageRange?: string; - /** Difficulty level */ + /** 难度等级 */ difficultyLevel?: string; - /** Duration in minutes */ + /** 时长(分钟) */ durationMinutes?: number; - /** Objectives */ + /** 教学目标 */ objectives?: string; - /** Core content */ + /** 核心内容 */ coreContent?: string; - /** Course summary */ + /** 课程摘要 */ introSummary?: string; - /** Course highlights */ + /** 课程亮点 */ introHighlights?: string; - /** Course goals */ + /** 课程目标 */ introGoals?: string; - /** Content schedule */ + /** 内容安排 */ introSchedule?: string; - /** Key points and difficulties */ + /** 重点难点 */ introKeyPoints?: string; - /** Teaching methods */ + /** 教学方法 */ introMethods?: string; - /** Evaluation methods */ + /** 评估方法 */ introEvaluation?: string; - /** Notes and precautions */ + /** 注意事项 */ introNotes?: string; - /** Schedule reference data (JSON) */ + /** 进度安排参考数据(JSON) */ scheduleRefData?: string; - /** Environment construction content */ + /** 环境创设内容 */ environmentConstruction?: string; - /** Theme ID */ + /** 主题 ID */ themeId?: number; - /** Picture book name */ + /** 绘本名称 */ pictureBookName?: string; - /** Ebook paths (JSON array) */ + /** 电子书路径(JSON 数组) */ ebookPaths?: string; - /** Audio paths (JSON array) */ + /** 音频路径(JSON 数组) */ audioPaths?: string; - /** Video paths (JSON array) */ + /** 视频路径(JSON 数组) */ videoPaths?: string; - /** Other resources (JSON array) */ + /** 其他资源(JSON 数组) */ otherResources?: string; - /** PPT file path */ + /** PPT 文件路径 */ pptPath?: string; - /** PPT file name */ + /** PPT 文件名称 */ pptName?: string; - /** Poster paths (JSON array) */ + /** 海报路径(JSON 数组) */ posterPaths?: string; - /** Teaching tools (JSON array) */ + /** 教学工具(JSON 数组) */ tools?: string; - /** Student materials */ + /** 学生材料 */ studentMaterials?: string; - /** Lesson plan data (JSON) */ + /** 教案数据(JSON) */ lessonPlanData?: string; - /** Activities data (JSON) */ + /** 活动数据(JSON) */ activitiesData?: string; - /** Assessment data (JSON) */ + /** 评估数据(JSON) */ assessmentData?: string; - /** Grade tags (JSON array) */ + /** 年级标签(JSON 数组) */ gradeTags?: string; - /** Domain tags (JSON array) */ + /** 领域标签(JSON 数组) */ domainTags?: string; - /** Has collective lesson */ + /** 是否有集体课 */ hasCollectiveLesson?: boolean; } diff --git a/reading-platform-frontend/src/api/generated/model/courseLesson.ts b/reading-platform-frontend/src/api/generated/model/courseLesson.ts index 1cf92fd..ad46f6c 100644 --- a/reading-platform-frontend/src/api/generated/model/courseLesson.ts +++ b/reading-platform-frontend/src/api/generated/model/courseLesson.ts @@ -6,26 +6,54 @@ * OpenAPI spec version: 1.0.0 */ +/** + * 课程环节实体 + */ export interface CourseLesson { + /** 主键 ID */ id?: number; - courseId?: number; - lessonType?: string; - name?: string; - description?: string; - duration?: number; - videoPath?: string; - videoName?: string; - pptPath?: string; - pptName?: string; - pdfPath?: string; - pdfName?: string; - objectives?: string; - preparation?: string; - extension?: string; - reflection?: string; - assessmentData?: string; - useTemplate?: boolean; - sortOrder?: number; + /** 创建人 */ + createBy?: string; + /** 创建时间 */ createdAt?: string; + /** 更新人 */ + updateBy?: string; + /** 更新时间 */ updatedAt?: string; + /** 课程 ID */ + courseId?: number; + /** 课程类型:INTRODUCTION、LANGUAGE、SOCIETY、SCIENCE、ART、HEALTH */ + lessonType?: string; + /** 课程名称 */ + name?: string; + /** 课程描述 */ + description?: string; + /** 时长(分钟) */ + duration?: number; + /** 视频路径 */ + videoPath?: string; + /** 视频名称 */ + videoName?: string; + /** PPT 路径 */ + pptPath?: string; + /** PPT 名称 */ + pptName?: string; + /** PDF 路径 */ + pdfPath?: string; + /** PDF 名称 */ + pdfName?: string; + /** 教学目标 */ + objectives?: string; + /** 教学准备 */ + preparation?: string; + /** 教学延伸 */ + extension?: string; + /** 教学反思 */ + reflection?: string; + /** 评测数据(JSON) */ + assessmentData?: string; + /** 是否使用模板 */ + useTemplate?: boolean; + /** 排序号 */ + sortOrder?: number; } diff --git a/reading-platform-frontend/src/api/generated/model/courseLessonCreateRequest.ts b/reading-platform-frontend/src/api/generated/model/courseLessonCreateRequest.ts index 469a5a8..3992f24 100644 --- a/reading-platform-frontend/src/api/generated/model/courseLessonCreateRequest.ts +++ b/reading-platform-frontend/src/api/generated/model/courseLessonCreateRequest.ts @@ -22,13 +22,13 @@ export interface CourseLessonCreateRequest { videoPath?: string; /** 视频名称 */ videoName?: string; - /** PPT路径 */ + /** PPT 路径 */ pptPath?: string; - /** PPT名称 */ + /** PPT 名称 */ pptName?: string; - /** PDF路径 */ + /** PDF 路径 */ pdfPath?: string; - /** PDF名称 */ + /** PDF 名称 */ pdfName?: string; /** 教学目标 */ objectives?: string; diff --git a/reading-platform-frontend/src/api/generated/model/coursePackage.ts b/reading-platform-frontend/src/api/generated/model/coursePackage.ts index 719b7a7..b02502f 100644 --- a/reading-platform-frontend/src/api/generated/model/coursePackage.ts +++ b/reading-platform-frontend/src/api/generated/model/coursePackage.ts @@ -6,22 +6,46 @@ * OpenAPI spec version: 1.0.0 */ +/** + * 课程套餐实体 + */ export interface CoursePackage { + /** 主键 ID */ id?: number; - name?: string; - description?: string; - price?: number; - discountPrice?: number; - discountType?: string; - gradeLevels?: string; - courseCount?: number; - status?: string; - submittedAt?: string; - submittedBy?: number; - reviewedAt?: string; - reviewedBy?: number; - reviewComment?: string; - publishedAt?: string; + /** 创建人 */ + createBy?: string; + /** 创建时间 */ createdAt?: string; + /** 更新人 */ + updateBy?: string; + /** 更新时间 */ updatedAt?: string; + /** 套餐名称 */ + name?: string; + /** 套餐描述 */ + description?: string; + /** 价格(分) */ + price?: number; + /** 折后价格(分) */ + discountPrice?: number; + /** 折扣类型:PERCENTAGE、FIXED */ + discountType?: string; + /** 适用年级(JSON 数组) */ + gradeLevels?: string; + /** 课程数量 */ + courseCount?: number; + /** 状态:DRAFT、PENDING_REVIEW、APPROVED、REJECTED、PUBLISHED、OFFLINE */ + status?: string; + /** 提交时间 */ + submittedAt?: string; + /** 提交人 ID */ + submittedBy?: number; + /** 审核时间 */ + reviewedAt?: string; + /** 审核人 ID */ + reviewedBy?: number; + /** 审核意见 */ + reviewComment?: string; + /** 发布时间 */ + publishedAt?: string; } diff --git a/reading-platform-frontend/src/api/generated/model/courseResponse.ts b/reading-platform-frontend/src/api/generated/model/courseResponse.ts new file mode 100644 index 0000000..58f98c8 --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/courseResponse.ts @@ -0,0 +1,129 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ + +/** + * 课程响应 + */ +export interface CourseResponse { + /** ID */ + id?: number; + /** 租户 ID */ + tenantId?: number; + /** 课程名称 */ + name?: string; + /** 课程编码 */ + code?: string; + /** 描述 */ + description?: string; + /** 封面 URL */ + coverUrl?: string; + /** 分类 */ + category?: string; + /** 年龄范围 */ + ageRange?: string; + /** 难度等级 */ + difficultyLevel?: string; + /** 时长(分钟) */ + durationMinutes?: number; + /** 教学目标 */ + objectives?: string; + /** 状态 */ + status?: string; + /** 是否系统课程 */ + isSystem?: number; + /** 核心内容 */ + coreContent?: string; + /** 课程摘要 */ + introSummary?: string; + /** 课程亮点 */ + introHighlights?: string; + /** 课程目标 */ + introGoals?: string; + /** 内容安排 */ + introSchedule?: string; + /** 重点难点 */ + introKeyPoints?: string; + /** 教学方法 */ + introMethods?: string; + /** 评估方法 */ + introEvaluation?: string; + /** 注意事项 */ + introNotes?: string; + /** 进度安排参考数据 */ + scheduleRefData?: string; + /** 环境创设内容 */ + environmentConstruction?: string; + /** 主题 ID */ + themeId?: number; + /** 绘本名称 */ + pictureBookName?: string; + /** 封面图片路径 */ + coverImagePath?: string; + /** 电子书路径 */ + ebookPaths?: string; + /** 音频路径 */ + audioPaths?: string; + /** 视频路径 */ + videoPaths?: string; + /** 其他资源 */ + otherResources?: string; + /** PPT 文件路径 */ + pptPath?: string; + /** PPT 文件名称 */ + pptName?: string; + /** 海报路径 */ + posterPaths?: string; + /** 教学工具 */ + tools?: string; + /** 学生材料 */ + studentMaterials?: string; + /** 教案数据 */ + lessonPlanData?: string; + /** 活动数据 */ + activitiesData?: string; + /** 评估数据 */ + assessmentData?: string; + /** 年级标签 */ + gradeTags?: string; + /** 领域标签 */ + domainTags?: string; + /** 是否有集体课 */ + hasCollectiveLesson?: number; + /** 版本号 */ + version?: string; + /** 父课程 ID */ + parentId?: number; + /** 是否最新版本 */ + isLatest?: number; + /** 提交时间 */ + submittedAt?: string; + /** 提交人 ID */ + submittedBy?: number; + /** 审核时间 */ + reviewedAt?: string; + /** 审核人 ID */ + reviewedBy?: number; + /** 审核意见 */ + reviewComment?: string; + /** 审核清单 */ + reviewChecklist?: string; + /** 发布时间 */ + publishedAt?: string; + /** 使用次数 */ + usageCount?: number; + /** 教师数量 */ + teacherCount?: number; + /** 平均评分 */ + avgRating?: number; + /** 创建人 ID */ + createdBy?: number; + /** 创建时间 */ + createdAt?: string; + /** 更新时间 */ + updatedAt?: string; +} diff --git a/reading-platform-frontend/src/api/generated/model/courseUpdateRequest.ts b/reading-platform-frontend/src/api/generated/model/courseUpdateRequest.ts index 76ecbaf..2633a72 100644 --- a/reading-platform-frontend/src/api/generated/model/courseUpdateRequest.ts +++ b/reading-platform-frontend/src/api/generated/model/courseUpdateRequest.ts @@ -7,85 +7,85 @@ */ /** - * Course Update Request + * 课程更新请求 */ export interface CourseUpdateRequest { - /** Course name */ + /** 课程名称 */ name?: string; - /** Course code */ + /** 课程编码 */ code?: string; - /** Description */ + /** 描述 */ description?: string; - /** Cover URL */ + /** 封面 URL */ coverUrl?: string; - /** Cover image path */ + /** 封面图片路径 */ coverImagePath?: string; - /** Category */ + /** 分类 */ category?: string; - /** Age range */ + /** 年龄范围 */ ageRange?: string; - /** Difficulty level */ + /** 难度等级 */ difficultyLevel?: string; - /** Duration in minutes */ + /** 时长(分钟) */ durationMinutes?: number; - /** Objectives */ + /** 教学目标 */ objectives?: string; - /** Status */ + /** 状态 */ status?: string; - /** Core content */ + /** 核心内容 */ coreContent?: string; - /** Course summary */ + /** 课程摘要 */ introSummary?: string; - /** Course highlights */ + /** 课程亮点 */ introHighlights?: string; - /** Course goals */ + /** 课程目标 */ introGoals?: string; - /** Content schedule */ + /** 内容安排 */ introSchedule?: string; - /** Key points and difficulties */ + /** 重点难点 */ introKeyPoints?: string; - /** Teaching methods */ + /** 教学方法 */ introMethods?: string; - /** Evaluation methods */ + /** 评估方法 */ introEvaluation?: string; - /** Notes and precautions */ + /** 注意事项 */ introNotes?: string; - /** Schedule reference data (JSON) */ + /** 进度安排参考数据(JSON) */ scheduleRefData?: string; - /** Environment construction content */ + /** 环境创设内容 */ environmentConstruction?: string; - /** Theme ID */ + /** 主题 ID */ themeId?: number; - /** Picture book name */ + /** 绘本名称 */ pictureBookName?: string; - /** Ebook paths (JSON array) */ + /** 电子书路径(JSON 数组) */ ebookPaths?: string; - /** Audio paths (JSON array) */ + /** 音频路径(JSON 数组) */ audioPaths?: string; - /** Video paths (JSON array) */ + /** 视频路径(JSON 数组) */ videoPaths?: string; - /** Other resources (JSON array) */ + /** 其他资源(JSON 数组) */ otherResources?: string; - /** PPT file path */ + /** PPT 文件路径 */ pptPath?: string; - /** PPT file name */ + /** PPT 文件名称 */ pptName?: string; - /** Poster paths (JSON array) */ + /** 海报路径(JSON 数组) */ posterPaths?: string; - /** Teaching tools (JSON array) */ + /** 教学工具(JSON 数组) */ tools?: string; - /** Student materials */ + /** 学生材料 */ studentMaterials?: string; - /** Lesson plan data (JSON) */ + /** 教案数据(JSON) */ lessonPlanData?: string; - /** Activities data (JSON) */ + /** 活动数据(JSON) */ activitiesData?: string; - /** Assessment data (JSON) */ + /** 评估数据(JSON) */ assessmentData?: string; - /** Grade tags (JSON array) */ + /** 年级标签(JSON 数组) */ gradeTags?: string; - /** Domain tags (JSON array) */ + /** 领域标签(JSON 数组) */ domainTags?: string; - /** Has collective lesson */ + /** 是否有集体课 */ hasCollectiveLesson?: boolean; } diff --git a/reading-platform-frontend/src/api/generated/model/createFromTemplateBody.ts b/reading-platform-frontend/src/api/generated/model/createFromTemplateBody.ts new file mode 100644 index 0000000..d5b002e --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/createFromTemplateBody.ts @@ -0,0 +1,9 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ + +export type CreateFromTemplateBody = {[key: string]: { [key: string]: unknown }}; diff --git a/reading-platform-frontend/src/api/generated/model/createSchedule1Body.ts b/reading-platform-frontend/src/api/generated/model/createSchedule1Body.ts new file mode 100644 index 0000000..e3709ac --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/createSchedule1Body.ts @@ -0,0 +1,9 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ + +export type CreateSchedule1Body = {[key: string]: { [key: string]: unknown }}; diff --git a/reading-platform-frontend/src/api/generated/model/createScheduleBody.ts b/reading-platform-frontend/src/api/generated/model/createScheduleBody.ts new file mode 100644 index 0000000..01399b6 --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/createScheduleBody.ts @@ -0,0 +1,9 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ + +export type CreateScheduleBody = {[key: string]: { [key: string]: unknown }}; diff --git a/reading-platform-frontend/src/api/generated/model/createTemplate1Body.ts b/reading-platform-frontend/src/api/generated/model/createTemplate1Body.ts new file mode 100644 index 0000000..20f519b --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/createTemplate1Body.ts @@ -0,0 +1,9 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ + +export type CreateTemplate1Body = {[key: string]: { [key: string]: unknown }}; diff --git a/reading-platform-frontend/src/api/generated/model/createTemplateBody.ts b/reading-platform-frontend/src/api/generated/model/createTemplateBody.ts new file mode 100644 index 0000000..7ecc880 --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/createTemplateBody.ts @@ -0,0 +1,9 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ + +export type CreateTemplateBody = {[key: string]: { [key: string]: unknown }}; diff --git a/reading-platform-frontend/src/api/generated/model/exportGrowthRecordsParams.ts b/reading-platform-frontend/src/api/generated/model/exportGrowthRecordsParams.ts new file mode 100644 index 0000000..c774ba7 --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/exportGrowthRecordsParams.ts @@ -0,0 +1,11 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ + +export type ExportGrowthRecordsParams = { +studentId?: number; +}; diff --git a/reading-platform-frontend/src/api/generated/model/exportLessonsParams.ts b/reading-platform-frontend/src/api/generated/model/exportLessonsParams.ts new file mode 100644 index 0000000..3410fa1 --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/exportLessonsParams.ts @@ -0,0 +1,12 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ + +export type ExportLessonsParams = { +startDate?: string; +endDate?: string; +}; diff --git a/reading-platform-frontend/src/api/generated/model/findAll1Params.ts b/reading-platform-frontend/src/api/generated/model/findAll1Params.ts index c43e57a..5b9a811 100644 --- a/reading-platform-frontend/src/api/generated/model/findAll1Params.ts +++ b/reading-platform-frontend/src/api/generated/model/findAll1Params.ts @@ -8,6 +8,6 @@ export type FindAll1Params = { status?: string; -page?: number; +pageNum?: number; pageSize?: number; }; diff --git a/reading-platform-frontend/src/api/generated/model/findAllItemsParams.ts b/reading-platform-frontend/src/api/generated/model/findAllItemsParams.ts index ed898e3..b8bb737 100644 --- a/reading-platform-frontend/src/api/generated/model/findAllItemsParams.ts +++ b/reading-platform-frontend/src/api/generated/model/findAllItemsParams.ts @@ -10,6 +10,6 @@ export type FindAllItemsParams = { libraryId?: string; fileType?: string; keyword?: string; -page?: number; +pageNum?: number; pageSize?: number; }; diff --git a/reading-platform-frontend/src/api/generated/model/findAllLibrariesParams.ts b/reading-platform-frontend/src/api/generated/model/findAllLibrariesParams.ts index 1dc805f..502b124 100644 --- a/reading-platform-frontend/src/api/generated/model/findAllLibrariesParams.ts +++ b/reading-platform-frontend/src/api/generated/model/findAllLibrariesParams.ts @@ -9,6 +9,6 @@ export type FindAllLibrariesParams = { libraryType?: string; keyword?: string; -page?: number; +pageNum?: number; pageSize?: number; }; diff --git a/reading-platform-frontend/src/api/generated/model/getActiveTenants200.ts b/reading-platform-frontend/src/api/generated/model/getActiveTenants200.ts new file mode 100644 index 0000000..f5507af --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/getActiveTenants200.ts @@ -0,0 +1,14 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ +import type { GetActiveTenants200DataItem } from './getActiveTenants200DataItem'; + +export type GetActiveTenants200 = { + code?: number; + message?: string; + data?: GetActiveTenants200DataItem[]; +}; diff --git a/reading-platform-frontend/src/api/generated/model/getActiveTenants200DataItem.ts b/reading-platform-frontend/src/api/generated/model/getActiveTenants200DataItem.ts new file mode 100644 index 0000000..58fbeb2 --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/getActiveTenants200DataItem.ts @@ -0,0 +1,9 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ + +export type GetActiveTenants200DataItem = { [key: string]: unknown }; diff --git a/reading-platform-frontend/src/api/generated/model/getActiveTenantsParams.ts b/reading-platform-frontend/src/api/generated/model/getActiveTenantsParams.ts new file mode 100644 index 0000000..e370343 --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/getActiveTenantsParams.ts @@ -0,0 +1,11 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ + +export type GetActiveTenantsParams = { +limit?: number; +}; diff --git a/reading-platform-frontend/src/api/generated/model/getAllStudentsParams.ts b/reading-platform-frontend/src/api/generated/model/getAllStudentsParams.ts new file mode 100644 index 0000000..714421a --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/getAllStudentsParams.ts @@ -0,0 +1,13 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ + +export type GetAllStudentsParams = { +pageNum?: number; +pageSize?: number; +keyword?: string; +}; diff --git a/reading-platform-frontend/src/api/generated/model/getClassStudents1Params.ts b/reading-platform-frontend/src/api/generated/model/getClassStudents1Params.ts new file mode 100644 index 0000000..bad6d9d --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/getClassStudents1Params.ts @@ -0,0 +1,12 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ + +export type GetClassStudents1Params = { +pageNum?: number; +pageSize?: number; +}; diff --git a/reading-platform-frontend/src/api/generated/model/getClassStudentsParams.ts b/reading-platform-frontend/src/api/generated/model/getClassStudentsParams.ts new file mode 100644 index 0000000..8adbf42 --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/getClassStudentsParams.ts @@ -0,0 +1,13 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ + +export type GetClassStudentsParams = { +pageNum?: number; +pageSize?: number; +keyword?: string; +}; diff --git a/reading-platform-frontend/src/api/generated/model/getFeedbacks1Params.ts b/reading-platform-frontend/src/api/generated/model/getFeedbacks1Params.ts new file mode 100644 index 0000000..d0d4dfa --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/getFeedbacks1Params.ts @@ -0,0 +1,15 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ + +export type GetFeedbacks1Params = { +pageNum?: number; +pageSize?: number; +teacherId?: number; +courseId?: number; +keyword?: string; +}; diff --git a/reading-platform-frontend/src/api/generated/model/getFeedbacksParams.ts b/reading-platform-frontend/src/api/generated/model/getFeedbacksParams.ts new file mode 100644 index 0000000..36e47d8 --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/getFeedbacksParams.ts @@ -0,0 +1,13 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ + +export type GetFeedbacksParams = { +pageNum?: number; +pageSize?: number; +type?: string; +}; diff --git a/reading-platform-frontend/src/api/generated/model/getLogListParams.ts b/reading-platform-frontend/src/api/generated/model/getLogListParams.ts new file mode 100644 index 0000000..1e4db6a --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/getLogListParams.ts @@ -0,0 +1,14 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ + +export type GetLogListParams = { +pageNum?: number; +pageSize?: number; +module?: string; +operator?: string; +}; diff --git a/reading-platform-frontend/src/api/generated/model/getMyTasksParams.ts b/reading-platform-frontend/src/api/generated/model/getMyTasksParams.ts new file mode 100644 index 0000000..987e074 --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/getMyTasksParams.ts @@ -0,0 +1,13 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ + +export type GetMyTasksParams = { +pageNum?: number; +pageSize?: number; +status?: string; +}; diff --git a/reading-platform-frontend/src/api/generated/model/getPopularCourses200.ts b/reading-platform-frontend/src/api/generated/model/getPopularCourses200.ts new file mode 100644 index 0000000..b0f1277 --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/getPopularCourses200.ts @@ -0,0 +1,14 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ +import type { GetPopularCourses200DataItem } from './getPopularCourses200DataItem'; + +export type GetPopularCourses200 = { + code?: number; + message?: string; + data?: GetPopularCourses200DataItem[]; +}; diff --git a/reading-platform-frontend/src/api/generated/model/getPopularCourses200DataItem.ts b/reading-platform-frontend/src/api/generated/model/getPopularCourses200DataItem.ts new file mode 100644 index 0000000..6dc5d95 --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/getPopularCourses200DataItem.ts @@ -0,0 +1,9 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ + +export type GetPopularCourses200DataItem = { [key: string]: unknown }; diff --git a/reading-platform-frontend/src/api/generated/model/getPopularCoursesParams.ts b/reading-platform-frontend/src/api/generated/model/getPopularCoursesParams.ts new file mode 100644 index 0000000..ad68723 --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/getPopularCoursesParams.ts @@ -0,0 +1,11 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ + +export type GetPopularCoursesParams = { +limit?: number; +}; diff --git a/reading-platform-frontend/src/api/generated/model/getRecentActivities1200.ts b/reading-platform-frontend/src/api/generated/model/getRecentActivities1200.ts new file mode 100644 index 0000000..c2b61fd --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/getRecentActivities1200.ts @@ -0,0 +1,14 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ +import type { GetRecentActivities1200DataItem } from './getRecentActivities1200DataItem'; + +export type GetRecentActivities1200 = { + code?: number; + message?: string; + data?: GetRecentActivities1200DataItem[]; +}; diff --git a/reading-platform-frontend/src/api/generated/model/getRecentActivities1200DataItem.ts b/reading-platform-frontend/src/api/generated/model/getRecentActivities1200DataItem.ts new file mode 100644 index 0000000..492a11d --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/getRecentActivities1200DataItem.ts @@ -0,0 +1,9 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ + +export type GetRecentActivities1200DataItem = { [key: string]: unknown }; diff --git a/reading-platform-frontend/src/api/generated/model/getRecentActivities1Params.ts b/reading-platform-frontend/src/api/generated/model/getRecentActivities1Params.ts new file mode 100644 index 0000000..91043a1 --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/getRecentActivities1Params.ts @@ -0,0 +1,11 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ + +export type GetRecentActivities1Params = { +limit?: number; +}; diff --git a/reading-platform-frontend/src/api/generated/model/getSchedules1Params.ts b/reading-platform-frontend/src/api/generated/model/getSchedules1Params.ts new file mode 100644 index 0000000..f16a364 --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/getSchedules1Params.ts @@ -0,0 +1,14 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ + +export type GetSchedules1Params = { +startDate?: string; +endDate?: string; +classId?: number; +teacherId?: number; +}; diff --git a/reading-platform-frontend/src/api/generated/model/getSchedulesParams.ts b/reading-platform-frontend/src/api/generated/model/getSchedulesParams.ts new file mode 100644 index 0000000..2c91958 --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/getSchedulesParams.ts @@ -0,0 +1,12 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ + +export type GetSchedulesParams = { +startDate?: string; +endDate?: string; +}; diff --git a/reading-platform-frontend/src/api/generated/model/getTemplates1Params.ts b/reading-platform-frontend/src/api/generated/model/getTemplates1Params.ts new file mode 100644 index 0000000..806979e --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/getTemplates1Params.ts @@ -0,0 +1,13 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ + +export type GetTemplates1Params = { +pageNum?: number; +pageSize?: number; +type?: string; +}; diff --git a/reading-platform-frontend/src/api/generated/model/getTemplatesParams.ts b/reading-platform-frontend/src/api/generated/model/getTemplatesParams.ts new file mode 100644 index 0000000..8783732 --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/getTemplatesParams.ts @@ -0,0 +1,13 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ + +export type GetTemplatesParams = { +pageNum?: number; +pageSize?: number; +type?: string; +}; diff --git a/reading-platform-frontend/src/api/generated/model/getTimetable1Params.ts b/reading-platform-frontend/src/api/generated/model/getTimetable1Params.ts new file mode 100644 index 0000000..3122dae --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/getTimetable1Params.ts @@ -0,0 +1,13 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ + +export type GetTimetable1Params = { +classId?: number; +startDate?: string; +endDate?: string; +}; diff --git a/reading-platform-frontend/src/api/generated/model/getTimetableParams.ts b/reading-platform-frontend/src/api/generated/model/getTimetableParams.ts new file mode 100644 index 0000000..bf74e4c --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/getTimetableParams.ts @@ -0,0 +1,12 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ + +export type GetTimetableParams = { +startDate?: string; +endDate?: string; +}; diff --git a/reading-platform-frontend/src/api/generated/model/grantRequest.ts b/reading-platform-frontend/src/api/generated/model/grantRequest.ts new file mode 100644 index 0000000..189c567 --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/grantRequest.ts @@ -0,0 +1,13 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ + +export interface GrantRequest { + tenantId?: number; + endDate?: string; + pricePaid?: number; +} diff --git a/reading-platform-frontend/src/api/generated/model/growthRecord.ts b/reading-platform-frontend/src/api/generated/model/growthRecord.ts index d9741b1..b7489ae 100644 --- a/reading-platform-frontend/src/api/generated/model/growthRecord.ts +++ b/reading-platform-frontend/src/api/generated/model/growthRecord.ts @@ -6,19 +6,38 @@ * OpenAPI spec version: 1.0.0 */ +/** + * 成长记录实体 + */ export interface GrowthRecord { + /** 主键 ID */ id?: number; - tenantId?: number; - studentId?: number; - type?: string; - title?: string; - content?: string; - images?: string; - recordedBy?: number; - recorderRole?: string; - recordDate?: string; - tags?: string; + /** 创建人 */ + createBy?: string; + /** 创建时间 */ createdAt?: string; + /** 更新人 */ + updateBy?: string; + /** 更新时间 */ updatedAt?: string; - deleted?: number; + /** 租户 ID */ + tenantId?: number; + /** 学生 ID */ + studentId?: number; + /** 记录类型 */ + type?: string; + /** 记录标题 */ + title?: string; + /** 记录内容 */ + content?: string; + /** 图片(JSON 数组) */ + images?: string; + /** 记录人 ID */ + recordedBy?: number; + /** 记录人角色 */ + recorderRole?: string; + /** 记录日期 */ + recordDate?: string; + /** 标签(JSON 数组) */ + tags?: string; } diff --git a/reading-platform-frontend/src/api/generated/model/growthRecordCreateRequest.ts b/reading-platform-frontend/src/api/generated/model/growthRecordCreateRequest.ts index 877f4c7..08d6821 100644 --- a/reading-platform-frontend/src/api/generated/model/growthRecordCreateRequest.ts +++ b/reading-platform-frontend/src/api/generated/model/growthRecordCreateRequest.ts @@ -7,21 +7,21 @@ */ /** - * Growth Record Create Request + * 成长记录创建请求 */ export interface GrowthRecordCreateRequest { - /** Student ID */ + /** 学生 ID */ studentId: number; - /** Type: reading, behavior, achievement, milestone */ + /** 类型:reading-阅读,behavior-行为,achievement-成就,milestone-里程碑 */ type: string; - /** Title */ + /** 标题 */ title: string; - /** Content */ + /** 内容 */ content?: string; - /** Images (JSON array) */ + /** 图片(JSON 数组) */ images?: string; - /** Record date */ + /** 记录日期 */ recordDate?: string; - /** Tags */ + /** 标签 */ tags?: string[]; } diff --git a/reading-platform-frontend/src/api/generated/model/growthRecordResponse.ts b/reading-platform-frontend/src/api/generated/model/growthRecordResponse.ts new file mode 100644 index 0000000..f2d3697 --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/growthRecordResponse.ts @@ -0,0 +1,39 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ + +/** + * 成长记录响应 + */ +export interface GrowthRecordResponse { + /** ID */ + id?: number; + /** 租户 ID */ + tenantId?: number; + /** 学生 ID */ + studentId?: number; + /** 类型 */ + type?: string; + /** 标题 */ + title?: string; + /** 内容 */ + content?: string; + /** 图片 */ + images?: string; + /** 记录人 ID */ + recordedBy?: number; + /** 记录人角色 */ + recorderRole?: string; + /** 记录日期 */ + recordDate?: string; + /** 标签 */ + tags?: string; + /** 创建时间 */ + createdAt?: string; + /** 更新时间 */ + updatedAt?: string; +} diff --git a/reading-platform-frontend/src/api/generated/model/growthRecordUpdateRequest.ts b/reading-platform-frontend/src/api/generated/model/growthRecordUpdateRequest.ts index c9e5e08..55c858e 100644 --- a/reading-platform-frontend/src/api/generated/model/growthRecordUpdateRequest.ts +++ b/reading-platform-frontend/src/api/generated/model/growthRecordUpdateRequest.ts @@ -7,19 +7,19 @@ */ /** - * Growth Record Update Request + * 成长记录更新请求 */ export interface GrowthRecordUpdateRequest { - /** Type */ + /** 类型 */ type?: string; - /** Title */ + /** 标题 */ title?: string; - /** Content */ + /** 内容 */ content?: string; - /** Images (JSON array) */ + /** 图片(JSON 数组) */ images?: string; - /** Record date */ + /** 记录日期 */ recordDate?: string; - /** Tags */ + /** 标签 */ tags?: string[]; } diff --git a/reading-platform-frontend/src/api/generated/model/index.ts b/reading-platform-frontend/src/api/generated/model/index.ts index 453a3c1..b9cd3aa 100644 --- a/reading-platform-frontend/src/api/generated/model/index.ts +++ b/reading-platform-frontend/src/api/generated/model/index.ts @@ -12,11 +12,14 @@ export * from './adminStatsControllerGetPopularCoursesParams'; export * from './adminStatsControllerGetRecentActivitiesParams'; export * from './approveCourseDto'; export * from './approveCourseDtoChecklist'; +export * from './batchCreateSchedulesBody'; export * from './batchStudentRecordsDto'; export * from './batchStudentRecordsDtoRecordsItem'; export * from './bindStudentParams'; export * from './changePasswordParams'; export * from './classCreateRequest'; +export * from './classResponse'; +export * from './classTeacherResponse'; export * from './classUpdateRequest'; export * from './clazz'; export * from './completeTaskParams'; @@ -28,22 +31,28 @@ export * from './courseLesson'; export * from './courseLessonCreateRequest'; export * from './coursePackage'; export * from './coursePackageControllerFindAllParams'; +export * from './courseResponse'; export * from './courseUpdateRequest'; export * from './createClassDto'; export * from './createFromSourceDto'; export * from './createFromSourceDtoSaveLocation'; +export * from './createFromTemplateBody'; export * from './createFromTemplateDto'; export * from './createGrowthRecordDto'; export * from './createLessonDto'; export * from './createLibraryDto'; export * from './createReservationDto'; export * from './createResourceItemDto'; +export * from './createSchedule1Body'; +export * from './createScheduleBody'; export * from './createScheduleDto'; export * from './createSchoolCourseDto'; export * from './createStudentDto'; export * from './createTaskDto'; export * from './createTaskTemplateDto'; export * from './createTeacherDto'; +export * from './createTemplate1Body'; +export * from './createTemplateBody'; export * from './createTenantDto'; export * from './createTenantDtoPackageType'; export * from './deleteFileBody'; @@ -51,33 +60,59 @@ export * from './directPublishDto'; export * from './exportControllerExportGrowthRecordsParams'; export * from './exportControllerExportStudentStatsParams'; export * from './exportControllerExportTeacherStatsParams'; +export * from './exportGrowthRecordsParams'; +export * from './exportLessonsParams'; export * from './findAll1Params'; export * from './findAllItemsParams'; export * from './findAllLibrariesParams'; export * from './finishLessonDto'; export * from './getActiveTeachersParams'; +export * from './getActiveTenants200'; +export * from './getActiveTenants200DataItem'; +export * from './getActiveTenantsParams'; +export * from './getAllStudentsParams'; export * from './getClassPageParams'; +export * from './getClassStudents1Params'; +export * from './getClassStudentsParams'; export * from './getCoursePage1Params'; export * from './getCoursePageParams'; +export * from './getFeedbacks1Params'; +export * from './getFeedbacksParams'; export * from './getGrowthRecordPage1Params'; export * from './getGrowthRecordPageParams'; export * from './getGrowthRecordsByStudentParams'; export * from './getLessonTrend1Params'; export * from './getLessonTrendParams'; +export * from './getLogListParams'; export * from './getMyLessonsParams'; export * from './getMyNotifications1Params'; export * from './getMyNotificationsParams'; +export * from './getMyTasksParams'; export * from './getParentPageParams'; +export * from './getPopularCourses200'; +export * from './getPopularCourses200DataItem'; +export * from './getPopularCoursesParams'; +export * from './getRecentActivities1200'; +export * from './getRecentActivities1200DataItem'; +export * from './getRecentActivities1Params'; export * from './getRecentActivitiesParams'; export * from './getRecentGrowthRecordsParams'; +export * from './getSchedules1Params'; +export * from './getSchedulesParams'; export * from './getStudentPageParams'; export * from './getTaskPage1Params'; export * from './getTaskPageParams'; export * from './getTasksByStudentParams'; export * from './getTeacherPageParams'; +export * from './getTemplates1Params'; +export * from './getTemplatesParams'; export * from './getTenantPageParams'; +export * from './getTimetable1Params'; +export * from './getTimetableParams'; +export * from './grantRequest'; export * from './growthRecord'; export * from './growthRecordCreateRequest'; +export * from './growthRecordResponse'; export * from './growthRecordUpdateRequest'; export * from './itemCreateRequest'; export * from './itemUpdateRequest'; @@ -89,6 +124,7 @@ export * from './lessonFeedbackDtoActivitiesDone'; export * from './lessonFeedbackDtoStepFeedbacks'; export * from './lessonProgressDto'; export * from './lessonProgressDtoProgressData'; +export * from './lessonResponse'; export * from './lessonStep'; export * from './lessonUpdateRequest'; export * from './libraryCreateRequest'; @@ -98,24 +134,37 @@ export * from './loginDto'; export * from './loginRequest'; export * from './loginResponse'; export * from './notification'; +export * from './notificationResponse'; export * from './object'; export * from './orderItem'; export * from './packageCreateRequest'; export * from './pageCoursePackage'; export * from './pageResourceItem'; export * from './pageResourceLibrary'; +export * from './pageResultClassResponse'; export * from './pageResultClazz'; export * from './pageResultCourse'; +export * from './pageResultCourseResponse'; export * from './pageResultGrowthRecord'; +export * from './pageResultGrowthRecordResponse'; export * from './pageResultLesson'; +export * from './pageResultLessonResponse'; export * from './pageResultNotification'; +export * from './pageResultNotificationResponse'; export * from './pageResultParent'; +export * from './pageResultParentResponse'; export * from './pageResultStudent'; +export * from './pageResultStudentResponse'; export * from './pageResultTask'; +export * from './pageResultTaskResponse'; export * from './pageResultTeacher'; +export * from './pageResultTeacherResponse'; export * from './pageResultTenant'; +export * from './pageResultTenantResponse'; export * from './parent'; export * from './parentCreateRequest'; +export * from './parentResponse'; +export * from './parentStudentResponse'; export * from './parentUpdateRequest'; export * from './rejectCourseDto'; export * from './rejectCourseDtoChecklist'; @@ -124,24 +173,35 @@ export * from './resetPassword1Params'; export * from './resetPasswordParams'; export * from './resourceItem'; export * from './resourceLibrary'; +export * from './resultClassResponse'; export * from './resultClazz'; export * from './resultCourse'; export * from './resultCourseLesson'; export * from './resultCoursePackage'; +export * from './resultCourseResponse'; export * from './resultDto'; export * from './resultDtoData'; export * from './resultGrowthRecord'; +export * from './resultGrowthRecordResponse'; export * from './resultLesson'; +export * from './resultLessonResponse'; export * from './resultLessonStep'; +export * from './resultListClassResponse'; +export * from './resultListClassTeacherResponse'; export * from './resultListClazz'; export * from './resultListCourse'; export * from './resultListCourseLesson'; +export * from './resultListCourseResponse'; export * from './resultListGrowthRecord'; +export * from './resultListGrowthRecordResponse'; export * from './resultListLesson'; +export * from './resultListLessonResponse'; export * from './resultListLessonStep'; export * from './resultListMapStringObject'; export * from './resultListMapStringObjectDataItem'; +export * from './resultListParentStudentResponse'; export * from './resultListStudent'; +export * from './resultListStudentResponse'; export * from './resultListTenantPackage'; export * from './resultListTenantResponse'; export * from './resultListTheme'; @@ -150,27 +210,46 @@ export * from './resultLong'; export * from './resultMapStringObject'; export * from './resultMapStringObjectData'; export * from './resultNotification'; +export * from './resultNotificationResponse'; +export * from './resultObject'; +export * from './resultObjectData'; export * from './resultPageCoursePackage'; export * from './resultPageResourceItem'; export * from './resultPageResourceLibrary'; +export * from './resultPageResultClassResponse'; export * from './resultPageResultClazz'; export * from './resultPageResultCourse'; +export * from './resultPageResultCourseResponse'; export * from './resultPageResultGrowthRecord'; +export * from './resultPageResultGrowthRecordResponse'; export * from './resultPageResultLesson'; +export * from './resultPageResultLessonResponse'; export * from './resultPageResultNotification'; +export * from './resultPageResultNotificationResponse'; export * from './resultPageResultParent'; +export * from './resultPageResultParentResponse'; export * from './resultPageResultStudent'; +export * from './resultPageResultStudentResponse'; export * from './resultPageResultTask'; +export * from './resultPageResultTaskResponse'; export * from './resultPageResultTeacher'; +export * from './resultPageResultTeacherResponse'; export * from './resultPageResultTenant'; +export * from './resultPageResultTenantResponse'; export * from './resultParent'; +export * from './resultParentResponse'; export * from './resultResourceItem'; export * from './resultResourceLibrary'; export * from './resultStudent'; +export * from './resultStudentResponse'; export * from './resultTask'; +export * from './resultTaskResponse'; export * from './resultTeacher'; +export * from './resultTeacherResponse'; export * from './resultTenant'; +export * from './resultTenantResponse'; export * from './resultTheme'; +export * from './resultTokenResponse'; export * from './resultUserInfoResponse'; export * from './resultVoid'; export * from './resultVoidData'; @@ -186,10 +265,12 @@ export * from './stepCreateRequest'; export * from './student'; export * from './studentCreateRequest'; export * from './studentRecordDto'; +export * from './studentResponse'; export * from './studentUpdateRequest'; export * from './submitCourseDto'; export * from './task'; export * from './taskCreateRequest'; +export * from './taskResponse'; export * from './taskUpdateRequest'; export * from './teacher'; export * from './teacherCourseControllerFindAllParams'; @@ -200,6 +281,7 @@ export * from './teacherCourseControllerGetTeacherSchedulesParams'; export * from './teacherCourseControllerGetTeacherTimetableParams'; export * from './teacherCreateRequest'; export * from './teacherFeedbackControllerFindAllParams'; +export * from './teacherResponse'; export * from './teacherTaskControllerGetMonthlyStatsParams'; export * from './teacherUpdateRequest'; export * from './tenant'; @@ -212,25 +294,42 @@ export * from './tenantResponse'; export * from './tenantUpdateRequest'; export * from './theme'; export * from './themeCreateRequest'; +export * from './tokenResponse'; export * from './transferStudentDto'; +export * from './updateBasicSettings1Body'; +export * from './updateBasicSettingsBody'; export * from './updateClassDto'; +export * from './updateClassTeacherBody'; export * from './updateClassTeacherDto'; export * from './updateCompletionDto'; export * from './updateGrowthRecordDto'; export * from './updateLessonDto'; export * from './updateLibraryDto'; +export * from './updateNotificationSettings1Body'; +export * from './updateNotificationSettingsBody'; export * from './updateResourceItemDto'; +export * from './updateSchedule1Body'; +export * from './updateScheduleBody'; export * from './updateScheduleDto'; export * from './updateSchoolCourseDto'; +export * from './updateSecuritySettings1Body'; +export * from './updateSecuritySettingsBody'; +export * from './updateSettings1Body'; +export * from './updateSettingsBody'; +export * from './updateStorageSettingsBody'; export * from './updateStudentDto'; export * from './updateTaskDto'; export * from './updateTaskTemplateDto'; export * from './updateTeacherDto'; +export * from './updateTemplate1Body'; +export * from './updateTemplateBody'; export * from './updateTenantDto'; export * from './updateTenantDtoPackageType'; export * from './updateTenantDtoStatus'; +export * from './updateTenantQuotaBody'; export * from './updateTenantQuotaDto'; export * from './updateTenantQuotaDtoPackageType'; +export * from './updateTenantStatusBody'; export * from './updateTenantStatusDto'; export * from './updateTenantStatusDtoStatus'; export * from './uploadFileBody'; diff --git a/reading-platform-frontend/src/api/generated/model/lesson.ts b/reading-platform-frontend/src/api/generated/model/lesson.ts index 1492ec4..bc03c87 100644 --- a/reading-platform-frontend/src/api/generated/model/lesson.ts +++ b/reading-platform-frontend/src/api/generated/model/lesson.ts @@ -7,20 +7,38 @@ */ import type { LocalTime } from './localTime'; +/** + * 课程实体 + */ export interface Lesson { + /** 主键 ID */ id?: number; + /** 创建人 */ + createBy?: string; + /** 创建时间 */ + createdAt?: string; + /** 更新人 */ + updateBy?: string; + /** 更新时间 */ + updatedAt?: string; + /** 租户 ID */ tenantId?: number; + /** 课程 ID */ courseId?: number; + /** 班级 ID */ classId?: number; + /** 教师 ID */ teacherId?: number; + /** 课程标题 */ title?: string; + /** 上课日期 */ lessonDate?: string; startTime?: LocalTime; endTime?: LocalTime; + /** 上课地点 */ location?: string; + /** 状态 */ status?: string; + /** 备注 */ notes?: string; - createdAt?: string; - updatedAt?: string; - deleted?: number; } diff --git a/reading-platform-frontend/src/api/generated/model/lessonCreateRequest.ts b/reading-platform-frontend/src/api/generated/model/lessonCreateRequest.ts index fad130c..4353823 100644 --- a/reading-platform-frontend/src/api/generated/model/lessonCreateRequest.ts +++ b/reading-platform-frontend/src/api/generated/model/lessonCreateRequest.ts @@ -8,23 +8,23 @@ import type { LocalTime } from './localTime'; /** - * Lesson Create Request + * 课时创建请求 */ export interface LessonCreateRequest { - /** Course ID */ + /** 课程 ID */ courseId: number; - /** Class ID */ + /** 班级 ID */ classId?: number; - /** Teacher ID */ + /** 教师 ID */ teacherId: number; - /** Lesson title */ + /** 课时标题 */ title: string; - /** Lesson date */ + /** 课时日期 */ lessonDate: string; startTime?: LocalTime; endTime?: LocalTime; - /** Location */ + /** 地点 */ location?: string; - /** Notes */ + /** 备注 */ notes?: string; } diff --git a/reading-platform-frontend/src/api/generated/model/lessonResponse.ts b/reading-platform-frontend/src/api/generated/model/lessonResponse.ts new file mode 100644 index 0000000..5c36fca --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/lessonResponse.ts @@ -0,0 +1,40 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ +import type { LocalTime } from './localTime'; + +/** + * 课时响应 + */ +export interface LessonResponse { + /** ID */ + id?: number; + /** 租户 ID */ + tenantId?: number; + /** 课程 ID */ + courseId?: number; + /** 班级 ID */ + classId?: number; + /** 教师 ID */ + teacherId?: number; + /** 标题 */ + title?: string; + /** 课时日期 */ + lessonDate?: string; + startTime?: LocalTime; + endTime?: LocalTime; + /** 地点 */ + location?: string; + /** 状态 */ + status?: string; + /** 备注 */ + notes?: string; + /** 创建时间 */ + createdAt?: string; + /** 更新时间 */ + updatedAt?: string; +} diff --git a/reading-platform-frontend/src/api/generated/model/lessonStep.ts b/reading-platform-frontend/src/api/generated/model/lessonStep.ts index f8007a8..f06ea15 100644 --- a/reading-platform-frontend/src/api/generated/model/lessonStep.ts +++ b/reading-platform-frontend/src/api/generated/model/lessonStep.ts @@ -6,15 +6,32 @@ * OpenAPI spec version: 1.0.0 */ +/** + * 教学环节实体 + */ export interface LessonStep { + /** 主键 ID */ id?: number; - lessonId?: number; - name?: string; - content?: string; - duration?: number; - objective?: string; - resourceIds?: string; - sortOrder?: number; + /** 创建人 */ + createBy?: string; + /** 创建时间 */ createdAt?: string; + /** 更新人 */ + updateBy?: string; + /** 更新时间 */ updatedAt?: string; + /** 课程环节 ID */ + lessonId?: number; + /** 环节名称 */ + name?: string; + /** 环节内容 */ + content?: string; + /** 时长(分钟) */ + duration?: number; + /** 教学目标 */ + objective?: string; + /** 资源 ID 列表(JSON 数组) */ + resourceIds?: string; + /** 排序号 */ + sortOrder?: number; } diff --git a/reading-platform-frontend/src/api/generated/model/lessonUpdateRequest.ts b/reading-platform-frontend/src/api/generated/model/lessonUpdateRequest.ts index 244aa3b..f309c1d 100644 --- a/reading-platform-frontend/src/api/generated/model/lessonUpdateRequest.ts +++ b/reading-platform-frontend/src/api/generated/model/lessonUpdateRequest.ts @@ -8,19 +8,19 @@ import type { LocalTime } from './localTime'; /** - * Lesson Update Request + * 课时更新请求 */ export interface LessonUpdateRequest { - /** Lesson title */ + /** 课时标题 */ title?: string; - /** Lesson date */ + /** 课时日期 */ lessonDate?: string; startTime?: LocalTime; endTime?: LocalTime; - /** Location */ + /** 地点 */ location?: string; - /** Status */ + /** 状态 */ status?: string; - /** Notes */ + /** 备注 */ notes?: string; } diff --git a/reading-platform-frontend/src/api/generated/model/localTime.ts b/reading-platform-frontend/src/api/generated/model/localTime.ts index a748b28..f685245 100644 --- a/reading-platform-frontend/src/api/generated/model/localTime.ts +++ b/reading-platform-frontend/src/api/generated/model/localTime.ts @@ -7,7 +7,7 @@ */ /** - * End time + * 结束时间 */ export interface LocalTime { hour?: number; diff --git a/reading-platform-frontend/src/api/generated/model/loginRequest.ts b/reading-platform-frontend/src/api/generated/model/loginRequest.ts index e583094..f96a214 100644 --- a/reading-platform-frontend/src/api/generated/model/loginRequest.ts +++ b/reading-platform-frontend/src/api/generated/model/loginRequest.ts @@ -7,13 +7,13 @@ */ /** - * Login Request + * 登录请求 */ export interface LoginRequest { - /** Username */ + /** 用户名 */ username: string; - /** Password */ + /** 密码 */ password: string; - /** Login role */ + /** 登录角色 */ role?: string; } diff --git a/reading-platform-frontend/src/api/generated/model/loginResponse.ts b/reading-platform-frontend/src/api/generated/model/loginResponse.ts index 91e4ad0..aa2938e 100644 --- a/reading-platform-frontend/src/api/generated/model/loginResponse.ts +++ b/reading-platform-frontend/src/api/generated/model/loginResponse.ts @@ -7,19 +7,19 @@ */ /** - * Login Response + * 登录响应 */ export interface LoginResponse { /** JWT Token */ token?: string; - /** User ID */ + /** 用户 ID */ userId?: number; - /** Username */ + /** 用户名 */ username?: string; - /** User name */ + /** 姓名 */ name?: string; - /** User role */ + /** 用户角色 */ role?: string; - /** Tenant ID */ + /** 租户 ID */ tenantId?: number; } diff --git a/reading-platform-frontend/src/api/generated/model/notification.ts b/reading-platform-frontend/src/api/generated/model/notification.ts index d9e98fc..6cfbb8d 100644 --- a/reading-platform-frontend/src/api/generated/model/notification.ts +++ b/reading-platform-frontend/src/api/generated/model/notification.ts @@ -6,18 +6,38 @@ * OpenAPI spec version: 1.0.0 */ +/** + * 通知实体 + */ export interface Notification { + /** 主键 ID */ id?: number; - tenantId?: number; - title?: string; - content?: string; - type?: string; - senderId?: number; - senderRole?: string; - recipientType?: string; - recipientId?: number; - isRead?: number; - readAt?: string; + /** 创建人 */ + createBy?: string; + /** 创建时间 */ createdAt?: string; - deleted?: number; + /** 更新人 */ + updateBy?: string; + /** 更新时间 */ + updatedAt?: string; + /** 租户 ID */ + tenantId?: number; + /** 通知标题 */ + title?: string; + /** 通知内容 */ + content?: string; + /** 通知类型 */ + type?: string; + /** 发送人 ID */ + senderId?: number; + /** 发送人角色 */ + senderRole?: string; + /** 接收人类型 */ + recipientType?: string; + /** 接收人 ID */ + recipientId?: number; + /** 是否已读 */ + isRead?: number; + /** 阅读时间 */ + readAt?: string; } diff --git a/reading-platform-frontend/src/api/generated/model/notificationResponse.ts b/reading-platform-frontend/src/api/generated/model/notificationResponse.ts new file mode 100644 index 0000000..979cc39 --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/notificationResponse.ts @@ -0,0 +1,37 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ + +/** + * 通知响应 + */ +export interface NotificationResponse { + /** ID */ + id?: number; + /** 租户 ID */ + tenantId?: number; + /** 标题 */ + title?: string; + /** 内容 */ + content?: string; + /** 类型 */ + type?: string; + /** 发送人 ID */ + senderId?: number; + /** 发送人角色 */ + senderRole?: string; + /** 接收者类型 */ + recipientType?: string; + /** 接收者 ID */ + recipientId?: number; + /** 是否已读 */ + isRead?: number; + /** 阅读时间 */ + readAt?: string; + /** 创建时间 */ + createdAt?: string; +} diff --git a/reading-platform-frontend/src/api/generated/model/packageCreateRequest.ts b/reading-platform-frontend/src/api/generated/model/packageCreateRequest.ts index 617cee4..14439df 100644 --- a/reading-platform-frontend/src/api/generated/model/packageCreateRequest.ts +++ b/reading-platform-frontend/src/api/generated/model/packageCreateRequest.ts @@ -7,7 +7,7 @@ */ /** - * 创建套餐请求 + * 套餐创建请求 */ export interface PackageCreateRequest { /** 套餐名称 */ diff --git a/reading-platform-frontend/src/api/generated/model/pageResultClassResponse.ts b/reading-platform-frontend/src/api/generated/model/pageResultClassResponse.ts new file mode 100644 index 0000000..3c225fa --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/pageResultClassResponse.ts @@ -0,0 +1,16 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ +import type { ClassResponse } from './classResponse'; + +export interface PageResultClassResponse { + list?: ClassResponse[]; + total?: number; + pageNum?: number; + pageSize?: number; + pages?: number; +} diff --git a/reading-platform-frontend/src/api/generated/model/pageResultCourseResponse.ts b/reading-platform-frontend/src/api/generated/model/pageResultCourseResponse.ts new file mode 100644 index 0000000..b7a0e37 --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/pageResultCourseResponse.ts @@ -0,0 +1,16 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ +import type { CourseResponse } from './courseResponse'; + +export interface PageResultCourseResponse { + list?: CourseResponse[]; + total?: number; + pageNum?: number; + pageSize?: number; + pages?: number; +} diff --git a/reading-platform-frontend/src/api/generated/model/pageResultGrowthRecordResponse.ts b/reading-platform-frontend/src/api/generated/model/pageResultGrowthRecordResponse.ts new file mode 100644 index 0000000..a00eb60 --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/pageResultGrowthRecordResponse.ts @@ -0,0 +1,16 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ +import type { GrowthRecordResponse } from './growthRecordResponse'; + +export interface PageResultGrowthRecordResponse { + list?: GrowthRecordResponse[]; + total?: number; + pageNum?: number; + pageSize?: number; + pages?: number; +} diff --git a/reading-platform-frontend/src/api/generated/model/pageResultLessonResponse.ts b/reading-platform-frontend/src/api/generated/model/pageResultLessonResponse.ts new file mode 100644 index 0000000..c0db0e9 --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/pageResultLessonResponse.ts @@ -0,0 +1,16 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ +import type { LessonResponse } from './lessonResponse'; + +export interface PageResultLessonResponse { + list?: LessonResponse[]; + total?: number; + pageNum?: number; + pageSize?: number; + pages?: number; +} diff --git a/reading-platform-frontend/src/api/generated/model/pageResultNotificationResponse.ts b/reading-platform-frontend/src/api/generated/model/pageResultNotificationResponse.ts new file mode 100644 index 0000000..4608bee --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/pageResultNotificationResponse.ts @@ -0,0 +1,16 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ +import type { NotificationResponse } from './notificationResponse'; + +export interface PageResultNotificationResponse { + list?: NotificationResponse[]; + total?: number; + pageNum?: number; + pageSize?: number; + pages?: number; +} diff --git a/reading-platform-frontend/src/api/generated/model/pageResultParentResponse.ts b/reading-platform-frontend/src/api/generated/model/pageResultParentResponse.ts new file mode 100644 index 0000000..3558865 --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/pageResultParentResponse.ts @@ -0,0 +1,16 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ +import type { ParentResponse } from './parentResponse'; + +export interface PageResultParentResponse { + list?: ParentResponse[]; + total?: number; + pageNum?: number; + pageSize?: number; + pages?: number; +} diff --git a/reading-platform-frontend/src/api/generated/model/pageResultStudentResponse.ts b/reading-platform-frontend/src/api/generated/model/pageResultStudentResponse.ts new file mode 100644 index 0000000..d1d974d --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/pageResultStudentResponse.ts @@ -0,0 +1,16 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ +import type { StudentResponse } from './studentResponse'; + +export interface PageResultStudentResponse { + list?: StudentResponse[]; + total?: number; + pageNum?: number; + pageSize?: number; + pages?: number; +} diff --git a/reading-platform-frontend/src/api/generated/model/pageResultTaskResponse.ts b/reading-platform-frontend/src/api/generated/model/pageResultTaskResponse.ts new file mode 100644 index 0000000..6a1c5ed --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/pageResultTaskResponse.ts @@ -0,0 +1,16 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ +import type { TaskResponse } from './taskResponse'; + +export interface PageResultTaskResponse { + list?: TaskResponse[]; + total?: number; + pageNum?: number; + pageSize?: number; + pages?: number; +} diff --git a/reading-platform-frontend/src/api/generated/model/pageResultTeacherResponse.ts b/reading-platform-frontend/src/api/generated/model/pageResultTeacherResponse.ts new file mode 100644 index 0000000..3306bbc --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/pageResultTeacherResponse.ts @@ -0,0 +1,16 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ +import type { TeacherResponse } from './teacherResponse'; + +export interface PageResultTeacherResponse { + list?: TeacherResponse[]; + total?: number; + pageNum?: number; + pageSize?: number; + pages?: number; +} diff --git a/reading-platform-frontend/src/api/generated/model/pageResultTenantResponse.ts b/reading-platform-frontend/src/api/generated/model/pageResultTenantResponse.ts new file mode 100644 index 0000000..2f193e4 --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/pageResultTenantResponse.ts @@ -0,0 +1,16 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ +import type { TenantResponse } from './tenantResponse'; + +export interface PageResultTenantResponse { + list?: TenantResponse[]; + total?: number; + pageNum?: number; + pageSize?: number; + pages?: number; +} diff --git a/reading-platform-frontend/src/api/generated/model/parentCreateRequest.ts b/reading-platform-frontend/src/api/generated/model/parentCreateRequest.ts index c7c96b8..eda6d79 100644 --- a/reading-platform-frontend/src/api/generated/model/parentCreateRequest.ts +++ b/reading-platform-frontend/src/api/generated/model/parentCreateRequest.ts @@ -7,19 +7,19 @@ */ /** - * Parent Create Request + * 家长创建请求 */ export interface ParentCreateRequest { - /** Username */ + /** 用户名 */ username: string; - /** Password */ + /** 密码 */ password: string; - /** Name */ + /** 姓名 */ name: string; - /** Phone */ + /** 电话 */ phone?: string; - /** Email */ + /** 邮箱 */ email?: string; - /** Gender */ + /** 性别 */ gender?: string; } diff --git a/reading-platform-frontend/src/api/generated/model/parentResponse.ts b/reading-platform-frontend/src/api/generated/model/parentResponse.ts new file mode 100644 index 0000000..2908128 --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/parentResponse.ts @@ -0,0 +1,37 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ + +/** + * 家长响应 + */ +export interface ParentResponse { + /** ID */ + id?: number; + /** 租户 ID */ + tenantId?: number; + /** 用户名 */ + username?: string; + /** 姓名 */ + name?: string; + /** 电话 */ + phone?: string; + /** 邮箱 */ + email?: string; + /** 头像 URL */ + avatarUrl?: string; + /** 性别 */ + gender?: string; + /** 状态 */ + status?: string; + /** 最后登录时间 */ + lastLoginAt?: string; + /** 创建时间 */ + createdAt?: string; + /** 更新时间 */ + updatedAt?: string; +} diff --git a/reading-platform-frontend/src/api/generated/model/parentStudentResponse.ts b/reading-platform-frontend/src/api/generated/model/parentStudentResponse.ts new file mode 100644 index 0000000..dce359c --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/parentStudentResponse.ts @@ -0,0 +1,25 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ + +/** + * 家长学生关系响应 + */ +export interface ParentStudentResponse { + /** ID */ + id?: number; + /** 家长 ID */ + parentId?: number; + /** 学生 ID */ + studentId?: number; + /** 关系 */ + relationship?: string; + /** 是否主要监护人 */ + isPrimary?: number; + /** 创建时间 */ + createdAt?: string; +} diff --git a/reading-platform-frontend/src/api/generated/model/parentUpdateRequest.ts b/reading-platform-frontend/src/api/generated/model/parentUpdateRequest.ts index 99c73a8..15c54d1 100644 --- a/reading-platform-frontend/src/api/generated/model/parentUpdateRequest.ts +++ b/reading-platform-frontend/src/api/generated/model/parentUpdateRequest.ts @@ -7,19 +7,19 @@ */ /** - * Parent Update Request + * 家长更新请求 */ export interface ParentUpdateRequest { - /** Name */ + /** 姓名 */ name?: string; - /** Phone */ + /** 电话 */ phone?: string; - /** Email */ + /** 邮箱 */ email?: string; - /** Avatar URL */ + /** 头像 URL */ avatarUrl?: string; - /** Gender */ + /** 性别 */ gender?: string; - /** Status */ + /** 状态 */ status?: string; } diff --git a/reading-platform-frontend/src/api/generated/model/resourceItem.ts b/reading-platform-frontend/src/api/generated/model/resourceItem.ts index 4aed846..2712870 100644 --- a/reading-platform-frontend/src/api/generated/model/resourceItem.ts +++ b/reading-platform-frontend/src/api/generated/model/resourceItem.ts @@ -6,21 +6,38 @@ * OpenAPI spec version: 1.0.0 */ +/** + * 资源项实体 + */ export interface ResourceItem { - id?: string; - libraryId?: string; - tenantId?: string; - type?: string; - name?: string; - code?: string; - description?: string; - quantity?: number; - availableQuantity?: number; - location?: string; - status?: string; + /** 主键 ID */ + id?: number; + /** 创建人 */ + createBy?: string; + /** 创建时间 */ createdAt?: string; + /** 更新人 */ + updateBy?: string; + /** 更新时间 */ updatedAt?: string; - deleted?: number; - createdBy?: string; - updatedBy?: string; + /** 资源库 ID */ + libraryId?: string; + /** 租户 ID */ + tenantId?: string; + /** 资源类型 */ + type?: string; + /** 资源名称 */ + name?: string; + /** 资源编码 */ + code?: string; + /** 资源描述 */ + description?: string; + /** 数量 */ + quantity?: number; + /** 可用数量 */ + availableQuantity?: number; + /** 存放位置 */ + location?: string; + /** 状态 */ + status?: string; } diff --git a/reading-platform-frontend/src/api/generated/model/resourceLibrary.ts b/reading-platform-frontend/src/api/generated/model/resourceLibrary.ts index e88dc30..7ae8d03 100644 --- a/reading-platform-frontend/src/api/generated/model/resourceLibrary.ts +++ b/reading-platform-frontend/src/api/generated/model/resourceLibrary.ts @@ -6,15 +6,26 @@ * OpenAPI spec version: 1.0.0 */ +/** + * 资源库实体 + */ export interface ResourceLibrary { - id?: string; - tenantId?: string; - name?: string; - description?: string; - type?: string; + /** 主键 ID */ + id?: number; + /** 创建人 */ + createBy?: string; + /** 创建时间 */ createdAt?: string; + /** 更新人 */ + updateBy?: string; + /** 更新时间 */ updatedAt?: string; - deleted?: number; - createdBy?: string; - updatedBy?: string; + /** 租户 ID */ + tenantId?: string; + /** 资源库名称 */ + name?: string; + /** 资源库描述 */ + description?: string; + /** 资源库类型 */ + type?: string; } diff --git a/reading-platform-frontend/src/api/generated/model/resultClassResponse.ts b/reading-platform-frontend/src/api/generated/model/resultClassResponse.ts new file mode 100644 index 0000000..0e99bbf --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/resultClassResponse.ts @@ -0,0 +1,14 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ +import type { ClassResponse } from './classResponse'; + +export interface ResultClassResponse { + code?: number; + message?: string; + data?: ClassResponse; +} diff --git a/reading-platform-frontend/src/api/generated/model/resultCourseResponse.ts b/reading-platform-frontend/src/api/generated/model/resultCourseResponse.ts new file mode 100644 index 0000000..64a4b35 --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/resultCourseResponse.ts @@ -0,0 +1,14 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ +import type { CourseResponse } from './courseResponse'; + +export interface ResultCourseResponse { + code?: number; + message?: string; + data?: CourseResponse; +} diff --git a/reading-platform-frontend/src/api/generated/model/resultGrowthRecordResponse.ts b/reading-platform-frontend/src/api/generated/model/resultGrowthRecordResponse.ts new file mode 100644 index 0000000..dfb0fb2 --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/resultGrowthRecordResponse.ts @@ -0,0 +1,14 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ +import type { GrowthRecordResponse } from './growthRecordResponse'; + +export interface ResultGrowthRecordResponse { + code?: number; + message?: string; + data?: GrowthRecordResponse; +} diff --git a/reading-platform-frontend/src/api/generated/model/resultLessonResponse.ts b/reading-platform-frontend/src/api/generated/model/resultLessonResponse.ts new file mode 100644 index 0000000..42df7c1 --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/resultLessonResponse.ts @@ -0,0 +1,14 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ +import type { LessonResponse } from './lessonResponse'; + +export interface ResultLessonResponse { + code?: number; + message?: string; + data?: LessonResponse; +} diff --git a/reading-platform-frontend/src/api/generated/model/resultListClassResponse.ts b/reading-platform-frontend/src/api/generated/model/resultListClassResponse.ts new file mode 100644 index 0000000..c1f7687 --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/resultListClassResponse.ts @@ -0,0 +1,14 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ +import type { ClassResponse } from './classResponse'; + +export interface ResultListClassResponse { + code?: number; + message?: string; + data?: ClassResponse[]; +} diff --git a/reading-platform-frontend/src/api/generated/model/resultListClassTeacherResponse.ts b/reading-platform-frontend/src/api/generated/model/resultListClassTeacherResponse.ts new file mode 100644 index 0000000..acb88ce --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/resultListClassTeacherResponse.ts @@ -0,0 +1,14 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ +import type { ClassTeacherResponse } from './classTeacherResponse'; + +export interface ResultListClassTeacherResponse { + code?: number; + message?: string; + data?: ClassTeacherResponse[]; +} diff --git a/reading-platform-frontend/src/api/generated/model/resultListCourseResponse.ts b/reading-platform-frontend/src/api/generated/model/resultListCourseResponse.ts new file mode 100644 index 0000000..bbd9047 --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/resultListCourseResponse.ts @@ -0,0 +1,14 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ +import type { CourseResponse } from './courseResponse'; + +export interface ResultListCourseResponse { + code?: number; + message?: string; + data?: CourseResponse[]; +} diff --git a/reading-platform-frontend/src/api/generated/model/resultListGrowthRecordResponse.ts b/reading-platform-frontend/src/api/generated/model/resultListGrowthRecordResponse.ts new file mode 100644 index 0000000..d873482 --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/resultListGrowthRecordResponse.ts @@ -0,0 +1,14 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ +import type { GrowthRecordResponse } from './growthRecordResponse'; + +export interface ResultListGrowthRecordResponse { + code?: number; + message?: string; + data?: GrowthRecordResponse[]; +} diff --git a/reading-platform-frontend/src/api/generated/model/resultListLessonResponse.ts b/reading-platform-frontend/src/api/generated/model/resultListLessonResponse.ts new file mode 100644 index 0000000..6ba37c0 --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/resultListLessonResponse.ts @@ -0,0 +1,14 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ +import type { LessonResponse } from './lessonResponse'; + +export interface ResultListLessonResponse { + code?: number; + message?: string; + data?: LessonResponse[]; +} diff --git a/reading-platform-frontend/src/api/generated/model/resultListParentStudentResponse.ts b/reading-platform-frontend/src/api/generated/model/resultListParentStudentResponse.ts new file mode 100644 index 0000000..f5576ac --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/resultListParentStudentResponse.ts @@ -0,0 +1,14 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ +import type { ParentStudentResponse } from './parentStudentResponse'; + +export interface ResultListParentStudentResponse { + code?: number; + message?: string; + data?: ParentStudentResponse[]; +} diff --git a/reading-platform-frontend/src/api/generated/model/resultListStudentResponse.ts b/reading-platform-frontend/src/api/generated/model/resultListStudentResponse.ts new file mode 100644 index 0000000..9dbe506 --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/resultListStudentResponse.ts @@ -0,0 +1,14 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ +import type { StudentResponse } from './studentResponse'; + +export interface ResultListStudentResponse { + code?: number; + message?: string; + data?: StudentResponse[]; +} diff --git a/reading-platform-frontend/src/api/generated/model/resultNotificationResponse.ts b/reading-platform-frontend/src/api/generated/model/resultNotificationResponse.ts new file mode 100644 index 0000000..e3351db --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/resultNotificationResponse.ts @@ -0,0 +1,14 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ +import type { NotificationResponse } from './notificationResponse'; + +export interface ResultNotificationResponse { + code?: number; + message?: string; + data?: NotificationResponse; +} diff --git a/reading-platform-frontend/src/api/generated/model/resultObject.ts b/reading-platform-frontend/src/api/generated/model/resultObject.ts new file mode 100644 index 0000000..3cd998a --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/resultObject.ts @@ -0,0 +1,14 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ +import type { ResultObjectData } from './resultObjectData'; + +export interface ResultObject { + code?: number; + message?: string; + data?: ResultObjectData; +} diff --git a/reading-platform-frontend/src/api/generated/model/resultObjectData.ts b/reading-platform-frontend/src/api/generated/model/resultObjectData.ts new file mode 100644 index 0000000..7aeb691 --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/resultObjectData.ts @@ -0,0 +1,9 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ + +export type ResultObjectData = { [key: string]: unknown }; diff --git a/reading-platform-frontend/src/api/generated/model/resultPageResultClassResponse.ts b/reading-platform-frontend/src/api/generated/model/resultPageResultClassResponse.ts new file mode 100644 index 0000000..1b193fd --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/resultPageResultClassResponse.ts @@ -0,0 +1,14 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ +import type { PageResultClassResponse } from './pageResultClassResponse'; + +export interface ResultPageResultClassResponse { + code?: number; + message?: string; + data?: PageResultClassResponse; +} diff --git a/reading-platform-frontend/src/api/generated/model/resultPageResultCourseResponse.ts b/reading-platform-frontend/src/api/generated/model/resultPageResultCourseResponse.ts new file mode 100644 index 0000000..36c6871 --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/resultPageResultCourseResponse.ts @@ -0,0 +1,14 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ +import type { PageResultCourseResponse } from './pageResultCourseResponse'; + +export interface ResultPageResultCourseResponse { + code?: number; + message?: string; + data?: PageResultCourseResponse; +} diff --git a/reading-platform-frontend/src/api/generated/model/resultPageResultGrowthRecordResponse.ts b/reading-platform-frontend/src/api/generated/model/resultPageResultGrowthRecordResponse.ts new file mode 100644 index 0000000..2d724f9 --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/resultPageResultGrowthRecordResponse.ts @@ -0,0 +1,14 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ +import type { PageResultGrowthRecordResponse } from './pageResultGrowthRecordResponse'; + +export interface ResultPageResultGrowthRecordResponse { + code?: number; + message?: string; + data?: PageResultGrowthRecordResponse; +} diff --git a/reading-platform-frontend/src/api/generated/model/resultPageResultLessonResponse.ts b/reading-platform-frontend/src/api/generated/model/resultPageResultLessonResponse.ts new file mode 100644 index 0000000..1a1c935 --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/resultPageResultLessonResponse.ts @@ -0,0 +1,14 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ +import type { PageResultLessonResponse } from './pageResultLessonResponse'; + +export interface ResultPageResultLessonResponse { + code?: number; + message?: string; + data?: PageResultLessonResponse; +} diff --git a/reading-platform-frontend/src/api/generated/model/resultPageResultNotificationResponse.ts b/reading-platform-frontend/src/api/generated/model/resultPageResultNotificationResponse.ts new file mode 100644 index 0000000..9462d98 --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/resultPageResultNotificationResponse.ts @@ -0,0 +1,14 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ +import type { PageResultNotificationResponse } from './pageResultNotificationResponse'; + +export interface ResultPageResultNotificationResponse { + code?: number; + message?: string; + data?: PageResultNotificationResponse; +} diff --git a/reading-platform-frontend/src/api/generated/model/resultPageResultParentResponse.ts b/reading-platform-frontend/src/api/generated/model/resultPageResultParentResponse.ts new file mode 100644 index 0000000..6d1b8ed --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/resultPageResultParentResponse.ts @@ -0,0 +1,14 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ +import type { PageResultParentResponse } from './pageResultParentResponse'; + +export interface ResultPageResultParentResponse { + code?: number; + message?: string; + data?: PageResultParentResponse; +} diff --git a/reading-platform-frontend/src/api/generated/model/resultPageResultStudentResponse.ts b/reading-platform-frontend/src/api/generated/model/resultPageResultStudentResponse.ts new file mode 100644 index 0000000..2776e87 --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/resultPageResultStudentResponse.ts @@ -0,0 +1,14 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ +import type { PageResultStudentResponse } from './pageResultStudentResponse'; + +export interface ResultPageResultStudentResponse { + code?: number; + message?: string; + data?: PageResultStudentResponse; +} diff --git a/reading-platform-frontend/src/api/generated/model/resultPageResultTaskResponse.ts b/reading-platform-frontend/src/api/generated/model/resultPageResultTaskResponse.ts new file mode 100644 index 0000000..9711191 --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/resultPageResultTaskResponse.ts @@ -0,0 +1,14 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ +import type { PageResultTaskResponse } from './pageResultTaskResponse'; + +export interface ResultPageResultTaskResponse { + code?: number; + message?: string; + data?: PageResultTaskResponse; +} diff --git a/reading-platform-frontend/src/api/generated/model/resultPageResultTeacherResponse.ts b/reading-platform-frontend/src/api/generated/model/resultPageResultTeacherResponse.ts new file mode 100644 index 0000000..0af2b10 --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/resultPageResultTeacherResponse.ts @@ -0,0 +1,14 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ +import type { PageResultTeacherResponse } from './pageResultTeacherResponse'; + +export interface ResultPageResultTeacherResponse { + code?: number; + message?: string; + data?: PageResultTeacherResponse; +} diff --git a/reading-platform-frontend/src/api/generated/model/resultPageResultTenantResponse.ts b/reading-platform-frontend/src/api/generated/model/resultPageResultTenantResponse.ts new file mode 100644 index 0000000..04ecabb --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/resultPageResultTenantResponse.ts @@ -0,0 +1,14 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ +import type { PageResultTenantResponse } from './pageResultTenantResponse'; + +export interface ResultPageResultTenantResponse { + code?: number; + message?: string; + data?: PageResultTenantResponse; +} diff --git a/reading-platform-frontend/src/api/generated/model/resultParentResponse.ts b/reading-platform-frontend/src/api/generated/model/resultParentResponse.ts new file mode 100644 index 0000000..cdbd091 --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/resultParentResponse.ts @@ -0,0 +1,14 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ +import type { ParentResponse } from './parentResponse'; + +export interface ResultParentResponse { + code?: number; + message?: string; + data?: ParentResponse; +} diff --git a/reading-platform-frontend/src/api/generated/model/resultStudentResponse.ts b/reading-platform-frontend/src/api/generated/model/resultStudentResponse.ts new file mode 100644 index 0000000..0304a6c --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/resultStudentResponse.ts @@ -0,0 +1,14 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ +import type { StudentResponse } from './studentResponse'; + +export interface ResultStudentResponse { + code?: number; + message?: string; + data?: StudentResponse; +} diff --git a/reading-platform-frontend/src/api/generated/model/resultTaskResponse.ts b/reading-platform-frontend/src/api/generated/model/resultTaskResponse.ts new file mode 100644 index 0000000..b34ba81 --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/resultTaskResponse.ts @@ -0,0 +1,14 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ +import type { TaskResponse } from './taskResponse'; + +export interface ResultTaskResponse { + code?: number; + message?: string; + data?: TaskResponse; +} diff --git a/reading-platform-frontend/src/api/generated/model/resultTeacherResponse.ts b/reading-platform-frontend/src/api/generated/model/resultTeacherResponse.ts new file mode 100644 index 0000000..f37c04b --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/resultTeacherResponse.ts @@ -0,0 +1,14 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ +import type { TeacherResponse } from './teacherResponse'; + +export interface ResultTeacherResponse { + code?: number; + message?: string; + data?: TeacherResponse; +} diff --git a/reading-platform-frontend/src/api/generated/model/resultTenantResponse.ts b/reading-platform-frontend/src/api/generated/model/resultTenantResponse.ts new file mode 100644 index 0000000..7044627 --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/resultTenantResponse.ts @@ -0,0 +1,14 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ +import type { TenantResponse } from './tenantResponse'; + +export interface ResultTenantResponse { + code?: number; + message?: string; + data?: TenantResponse; +} diff --git a/reading-platform-frontend/src/api/generated/model/resultTokenResponse.ts b/reading-platform-frontend/src/api/generated/model/resultTokenResponse.ts new file mode 100644 index 0000000..b30ca14 --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/resultTokenResponse.ts @@ -0,0 +1,14 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ +import type { TokenResponse } from './tokenResponse'; + +export interface ResultTokenResponse { + code?: number; + message?: string; + data?: TokenResponse; +} diff --git a/reading-platform-frontend/src/api/generated/model/studentCreateRequest.ts b/reading-platform-frontend/src/api/generated/model/studentCreateRequest.ts index c71963b..aa98345 100644 --- a/reading-platform-frontend/src/api/generated/model/studentCreateRequest.ts +++ b/reading-platform-frontend/src/api/generated/model/studentCreateRequest.ts @@ -7,23 +7,23 @@ */ /** - * Student Create Request + * 学生创建请求 */ export interface StudentCreateRequest { - /** Name */ + /** 姓名 */ name: string; - /** Gender */ + /** 性别 */ gender?: string; - /** Birth date */ + /** 出生日期 */ birthDate?: string; - /** Grade */ + /** 年级 */ grade?: string; - /** Student number */ + /** 学号 */ studentNo?: string; - /** Reading level */ + /** 阅读水平 */ readingLevel?: string; - /** Interests */ + /** 兴趣爱好 */ interests?: string; - /** Notes */ + /** 备注 */ notes?: string; } diff --git a/reading-platform-frontend/src/api/generated/model/studentResponse.ts b/reading-platform-frontend/src/api/generated/model/studentResponse.ts new file mode 100644 index 0000000..d2463ca --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/studentResponse.ts @@ -0,0 +1,41 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ + +/** + * 学生响应 + */ +export interface StudentResponse { + /** ID */ + id?: number; + /** 租户 ID */ + tenantId?: number; + /** 姓名 */ + name?: string; + /** 性别 */ + gender?: string; + /** 出生日期 */ + birthDate?: string; + /** 头像 URL */ + avatarUrl?: string; + /** 年级 */ + grade?: string; + /** 学号 */ + studentNo?: string; + /** 阅读水平 */ + readingLevel?: string; + /** 兴趣爱好 */ + interests?: string; + /** 备注 */ + notes?: string; + /** 状态 */ + status?: string; + /** 创建时间 */ + createdAt?: string; + /** 更新时间 */ + updatedAt?: string; +} diff --git a/reading-platform-frontend/src/api/generated/model/studentUpdateRequest.ts b/reading-platform-frontend/src/api/generated/model/studentUpdateRequest.ts index 26f8d9d..91674b6 100644 --- a/reading-platform-frontend/src/api/generated/model/studentUpdateRequest.ts +++ b/reading-platform-frontend/src/api/generated/model/studentUpdateRequest.ts @@ -7,27 +7,27 @@ */ /** - * Student Update Request + * 学生更新请求 */ export interface StudentUpdateRequest { - /** Name */ + /** 姓名 */ name?: string; - /** Gender */ + /** 性别 */ gender?: string; - /** Birth date */ + /** 出生日期 */ birthDate?: string; - /** Avatar URL */ + /** 头像 URL */ avatarUrl?: string; - /** Grade */ + /** 年级 */ grade?: string; - /** Student number */ + /** 学号 */ studentNo?: string; - /** Reading level */ + /** 阅读水平 */ readingLevel?: string; - /** Interests */ + /** 兴趣爱好 */ interests?: string; - /** Notes */ + /** 备注 */ notes?: string; - /** Status */ + /** 状态 */ status?: string; } diff --git a/reading-platform-frontend/src/api/generated/model/taskCreateRequest.ts b/reading-platform-frontend/src/api/generated/model/taskCreateRequest.ts index e0cd2ce..5816fa9 100644 --- a/reading-platform-frontend/src/api/generated/model/taskCreateRequest.ts +++ b/reading-platform-frontend/src/api/generated/model/taskCreateRequest.ts @@ -7,25 +7,25 @@ */ /** - * Task Create Request + * 任务创建请求 */ export interface TaskCreateRequest { - /** Task title */ + /** 任务标题 */ title: string; - /** Description */ + /** 描述 */ description?: string; - /** Task type: reading, homework, activity */ + /** 任务类型:reading-阅读,homework-作业,activity-活动 */ type?: string; - /** Course ID */ + /** 课程 ID */ courseId?: number; - /** Start date */ + /** 开始日期 */ startDate?: string; - /** Due date */ + /** 截止日期 */ dueDate?: string; - /** Attachments (JSON array) */ + /** 附件(JSON 数组) */ attachments?: string; - /** Target type: class, student */ + /** 目标类型:class-班级,student-学生 */ targetType?: string; - /** Target IDs */ + /** 目标 IDs */ targetIds?: number[]; } diff --git a/reading-platform-frontend/src/api/generated/model/taskResponse.ts b/reading-platform-frontend/src/api/generated/model/taskResponse.ts new file mode 100644 index 0000000..3439948 --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/taskResponse.ts @@ -0,0 +1,41 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ + +/** + * 任务响应 + */ +export interface TaskResponse { + /** ID */ + id?: number; + /** 租户 ID */ + tenantId?: number; + /** 任务标题 */ + title?: string; + /** 任务描述 */ + description?: string; + /** 任务类型 */ + type?: string; + /** 课程 ID */ + courseId?: number; + /** 创建人 ID */ + creatorId?: number; + /** 创建人角色 */ + creatorRole?: string; + /** 开始日期 */ + startDate?: string; + /** 截止日期 */ + dueDate?: string; + /** 状态 */ + status?: string; + /** 附件 */ + attachments?: string; + /** 创建时间 */ + createdAt?: string; + /** 更新时间 */ + updatedAt?: string; +} diff --git a/reading-platform-frontend/src/api/generated/model/taskUpdateRequest.ts b/reading-platform-frontend/src/api/generated/model/taskUpdateRequest.ts index c9ef3c6..5150f5a 100644 --- a/reading-platform-frontend/src/api/generated/model/taskUpdateRequest.ts +++ b/reading-platform-frontend/src/api/generated/model/taskUpdateRequest.ts @@ -7,21 +7,21 @@ */ /** - * Task Update Request + * 任务更新请求 */ export interface TaskUpdateRequest { - /** Task title */ + /** 任务标题 */ title?: string; - /** Description */ + /** 描述 */ description?: string; - /** Task type */ + /** 任务类型 */ type?: string; - /** Start date */ + /** 开始日期 */ startDate?: string; - /** Due date */ + /** 截止日期 */ dueDate?: string; - /** Status */ + /** 状态 */ status?: string; - /** Attachments (JSON array) */ + /** 附件(JSON 数组) */ attachments?: string; } diff --git a/reading-platform-frontend/src/api/generated/model/teacherCreateRequest.ts b/reading-platform-frontend/src/api/generated/model/teacherCreateRequest.ts index 07804bd..711d53f 100644 --- a/reading-platform-frontend/src/api/generated/model/teacherCreateRequest.ts +++ b/reading-platform-frontend/src/api/generated/model/teacherCreateRequest.ts @@ -7,21 +7,21 @@ */ /** - * Teacher Create Request + * 教师创建请求 */ export interface TeacherCreateRequest { - /** Username */ + /** 用户名 */ username: string; - /** Password */ + /** 密码 */ password: string; - /** Name */ + /** 姓名 */ name: string; - /** Phone */ + /** 电话 */ phone?: string; - /** Email */ + /** 邮箱 */ email?: string; - /** Gender */ + /** 性别 */ gender?: string; - /** Bio */ + /** 简介 */ bio?: string; } diff --git a/reading-platform-frontend/src/api/generated/model/teacherResponse.ts b/reading-platform-frontend/src/api/generated/model/teacherResponse.ts new file mode 100644 index 0000000..844d5ac --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/teacherResponse.ts @@ -0,0 +1,39 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ + +/** + * 教师响应 + */ +export interface TeacherResponse { + /** ID */ + id?: number; + /** 租户 ID */ + tenantId?: number; + /** 用户名 */ + username?: string; + /** 姓名 */ + name?: string; + /** 电话 */ + phone?: string; + /** 邮箱 */ + email?: string; + /** 头像 URL */ + avatarUrl?: string; + /** 性别 */ + gender?: string; + /** 个人简介 */ + bio?: string; + /** 状态 */ + status?: string; + /** 最后登录时间 */ + lastLoginAt?: string; + /** 创建时间 */ + createdAt?: string; + /** 更新时间 */ + updatedAt?: string; +} diff --git a/reading-platform-frontend/src/api/generated/model/teacherUpdateRequest.ts b/reading-platform-frontend/src/api/generated/model/teacherUpdateRequest.ts index d0f8460..57d5c88 100644 --- a/reading-platform-frontend/src/api/generated/model/teacherUpdateRequest.ts +++ b/reading-platform-frontend/src/api/generated/model/teacherUpdateRequest.ts @@ -7,21 +7,21 @@ */ /** - * Teacher Update Request + * 教师更新请求 */ export interface TeacherUpdateRequest { - /** Name */ + /** 姓名 */ name?: string; - /** Phone */ + /** 电话 */ phone?: string; - /** Email */ + /** 邮箱 */ email?: string; - /** Avatar URL */ + /** 头像 URL */ avatarUrl?: string; - /** Gender */ + /** 性别 */ gender?: string; - /** Bio */ + /** 简介 */ bio?: string; - /** Status */ + /** 状态 */ status?: string; } diff --git a/reading-platform-frontend/src/api/generated/model/tenantCreateRequest.ts b/reading-platform-frontend/src/api/generated/model/tenantCreateRequest.ts index 00e36a0..8028f3d 100644 --- a/reading-platform-frontend/src/api/generated/model/tenantCreateRequest.ts +++ b/reading-platform-frontend/src/api/generated/model/tenantCreateRequest.ts @@ -7,27 +7,27 @@ */ /** - * Tenant Create Request + * 租户创建请求 */ export interface TenantCreateRequest { - /** Tenant name */ + /** 租户名称 */ name: string; - /** Tenant code */ + /** 租户编码 */ code: string; - /** Contact person */ + /** 联系人 */ contactName?: string; - /** Contact phone */ + /** 联系电话 */ contactPhone?: string; - /** Contact email */ + /** 联系邮箱 */ contactEmail?: string; - /** Address */ + /** 地址 */ address?: string; /** Logo URL */ logoUrl?: string; - /** Expiration date */ + /** 过期时间 */ expireAt?: string; - /** Max students */ + /** 最大学生数 */ maxStudents?: number; - /** Max teachers */ + /** 最大教师数 */ maxTeachers?: number; } diff --git a/reading-platform-frontend/src/api/generated/model/tenantPackage.ts b/reading-platform-frontend/src/api/generated/model/tenantPackage.ts index ec6e821..a9a8a7d 100644 --- a/reading-platform-frontend/src/api/generated/model/tenantPackage.ts +++ b/reading-platform-frontend/src/api/generated/model/tenantPackage.ts @@ -6,14 +6,30 @@ * OpenAPI spec version: 1.0.0 */ +/** + * 租户套餐关联实体 + */ export interface TenantPackage { + /** 主键 ID */ id?: number; - tenantId?: number; - packageId?: number; - startDate?: string; - endDate?: string; - pricePaid?: number; - status?: string; + /** 创建人 */ + createBy?: string; + /** 创建时间 */ createdAt?: string; + /** 更新人 */ + updateBy?: string; + /** 更新时间 */ updatedAt?: string; + /** 租户 ID */ + tenantId?: number; + /** 套餐 ID */ + packageId?: number; + /** 开始日期 */ + startDate?: string; + /** 结束日期 */ + endDate?: string; + /** 实付价格 */ + pricePaid?: number; + /** 状态:ACTIVE、EXPIRED */ + status?: string; } diff --git a/reading-platform-frontend/src/api/generated/model/tenantResponse.ts b/reading-platform-frontend/src/api/generated/model/tenantResponse.ts index fefff4e..8f5b065 100644 --- a/reading-platform-frontend/src/api/generated/model/tenantResponse.ts +++ b/reading-platform-frontend/src/api/generated/model/tenantResponse.ts @@ -7,33 +7,37 @@ */ /** - * Tenant Response + * 租户响应 */ export interface TenantResponse { - /** Tenant ID */ + /** ID */ id?: number; - /** Tenant name */ + /** 租户名称 */ name?: string; - /** Tenant code */ + /** 租户编码 */ code?: string; - /** Contact person */ + /** 用户名 */ + username?: string; + /** 联系人姓名 */ contactName?: string; - /** Contact phone */ + /** 联系人电话 */ contactPhone?: string; - /** Contact email */ + /** 联系人邮箱 */ contactEmail?: string; - /** Address */ + /** 地址 */ address?: string; /** Logo URL */ logoUrl?: string; - /** Status */ + /** 状态 */ status?: string; - /** Expiration date */ + /** 过期时间 */ expireAt?: string; - /** Max students */ + /** 最大学生数 */ maxStudents?: number; - /** Max teachers */ + /** 最大教师数 */ maxTeachers?: number; - /** Created at */ + /** 创建时间 */ createdAt?: string; + /** 更新时间 */ + updatedAt?: string; } diff --git a/reading-platform-frontend/src/api/generated/model/tenantUpdateRequest.ts b/reading-platform-frontend/src/api/generated/model/tenantUpdateRequest.ts index 26eb8d0..727466a 100644 --- a/reading-platform-frontend/src/api/generated/model/tenantUpdateRequest.ts +++ b/reading-platform-frontend/src/api/generated/model/tenantUpdateRequest.ts @@ -7,27 +7,27 @@ */ /** - * Tenant Update Request + * 租户更新请求 */ export interface TenantUpdateRequest { - /** Tenant name */ + /** 租户名称 */ name?: string; - /** Contact person */ + /** 联系人 */ contactName?: string; - /** Contact phone */ + /** 联系电话 */ contactPhone?: string; - /** Contact email */ + /** 联系邮箱 */ contactEmail?: string; - /** Address */ + /** 地址 */ address?: string; /** Logo URL */ logoUrl?: string; - /** Status */ + /** 状态 */ status?: string; - /** Expiration date */ + /** 过期时间 */ expireAt?: string; - /** Max students */ + /** 最大学生数 */ maxStudents?: number; - /** Max teachers */ + /** 最大教师数 */ maxTeachers?: number; } diff --git a/reading-platform-frontend/src/api/generated/model/theme.ts b/reading-platform-frontend/src/api/generated/model/theme.ts index 1971906..da2148d 100644 --- a/reading-platform-frontend/src/api/generated/model/theme.ts +++ b/reading-platform-frontend/src/api/generated/model/theme.ts @@ -6,12 +6,26 @@ * OpenAPI spec version: 1.0.0 */ +/** + * 主题字典实体 + */ export interface Theme { + /** 主键 ID */ id?: number; - name?: string; - description?: string; - sortOrder?: number; - status?: string; + /** 创建人 */ + createBy?: string; + /** 创建时间 */ createdAt?: string; + /** 更新人 */ + updateBy?: string; + /** 更新时间 */ updatedAt?: string; + /** 主题名称 */ + name?: string; + /** 主题描述 */ + description?: string; + /** 排序号 */ + sortOrder?: number; + /** 状态:ACTIVE、INACTIVE */ + status?: string; } diff --git a/reading-platform-frontend/src/api/generated/model/tokenResponse.ts b/reading-platform-frontend/src/api/generated/model/tokenResponse.ts new file mode 100644 index 0000000..8cd2cca --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/tokenResponse.ts @@ -0,0 +1,15 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ + +/** + * Token 响应 + */ +export interface TokenResponse { + /** JWT Token */ + token?: string; +} diff --git a/reading-platform-frontend/src/api/generated/model/updateBasicSettings1Body.ts b/reading-platform-frontend/src/api/generated/model/updateBasicSettings1Body.ts new file mode 100644 index 0000000..418a3f6 --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/updateBasicSettings1Body.ts @@ -0,0 +1,9 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ + +export type UpdateBasicSettings1Body = {[key: string]: { [key: string]: unknown }}; diff --git a/reading-platform-frontend/src/api/generated/model/updateBasicSettingsBody.ts b/reading-platform-frontend/src/api/generated/model/updateBasicSettingsBody.ts new file mode 100644 index 0000000..4d08867 --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/updateBasicSettingsBody.ts @@ -0,0 +1,9 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ + +export type UpdateBasicSettingsBody = {[key: string]: { [key: string]: unknown }}; diff --git a/reading-platform-frontend/src/api/generated/model/updateClassTeacherBody.ts b/reading-platform-frontend/src/api/generated/model/updateClassTeacherBody.ts new file mode 100644 index 0000000..ad8b281 --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/updateClassTeacherBody.ts @@ -0,0 +1,9 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ + +export type UpdateClassTeacherBody = { [key: string]: unknown }; diff --git a/reading-platform-frontend/src/api/generated/model/updateNotificationSettings1Body.ts b/reading-platform-frontend/src/api/generated/model/updateNotificationSettings1Body.ts new file mode 100644 index 0000000..8b4782c --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/updateNotificationSettings1Body.ts @@ -0,0 +1,9 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ + +export type UpdateNotificationSettings1Body = {[key: string]: { [key: string]: unknown }}; diff --git a/reading-platform-frontend/src/api/generated/model/updateNotificationSettingsBody.ts b/reading-platform-frontend/src/api/generated/model/updateNotificationSettingsBody.ts new file mode 100644 index 0000000..7df58a9 --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/updateNotificationSettingsBody.ts @@ -0,0 +1,9 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ + +export type UpdateNotificationSettingsBody = {[key: string]: { [key: string]: unknown }}; diff --git a/reading-platform-frontend/src/api/generated/model/updateSchedule1Body.ts b/reading-platform-frontend/src/api/generated/model/updateSchedule1Body.ts new file mode 100644 index 0000000..5c7caee --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/updateSchedule1Body.ts @@ -0,0 +1,9 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ + +export type UpdateSchedule1Body = {[key: string]: { [key: string]: unknown }}; diff --git a/reading-platform-frontend/src/api/generated/model/updateScheduleBody.ts b/reading-platform-frontend/src/api/generated/model/updateScheduleBody.ts new file mode 100644 index 0000000..a4be155 --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/updateScheduleBody.ts @@ -0,0 +1,9 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ + +export type UpdateScheduleBody = {[key: string]: { [key: string]: unknown }}; diff --git a/reading-platform-frontend/src/api/generated/model/updateSecuritySettings1Body.ts b/reading-platform-frontend/src/api/generated/model/updateSecuritySettings1Body.ts new file mode 100644 index 0000000..81f6582 --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/updateSecuritySettings1Body.ts @@ -0,0 +1,9 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ + +export type UpdateSecuritySettings1Body = {[key: string]: { [key: string]: unknown }}; diff --git a/reading-platform-frontend/src/api/generated/model/updateSecuritySettingsBody.ts b/reading-platform-frontend/src/api/generated/model/updateSecuritySettingsBody.ts new file mode 100644 index 0000000..1b3cb86 --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/updateSecuritySettingsBody.ts @@ -0,0 +1,9 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ + +export type UpdateSecuritySettingsBody = {[key: string]: { [key: string]: unknown }}; diff --git a/reading-platform-frontend/src/api/generated/model/updateSettings1Body.ts b/reading-platform-frontend/src/api/generated/model/updateSettings1Body.ts new file mode 100644 index 0000000..d08c231 --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/updateSettings1Body.ts @@ -0,0 +1,9 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ + +export type UpdateSettings1Body = {[key: string]: { [key: string]: unknown }}; diff --git a/reading-platform-frontend/src/api/generated/model/updateSettingsBody.ts b/reading-platform-frontend/src/api/generated/model/updateSettingsBody.ts new file mode 100644 index 0000000..a04f0d6 --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/updateSettingsBody.ts @@ -0,0 +1,9 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ + +export type UpdateSettingsBody = {[key: string]: { [key: string]: unknown }}; diff --git a/reading-platform-frontend/src/api/generated/model/updateStorageSettingsBody.ts b/reading-platform-frontend/src/api/generated/model/updateStorageSettingsBody.ts new file mode 100644 index 0000000..3c6cd3f --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/updateStorageSettingsBody.ts @@ -0,0 +1,9 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ + +export type UpdateStorageSettingsBody = {[key: string]: { [key: string]: unknown }}; diff --git a/reading-platform-frontend/src/api/generated/model/updateTemplate1Body.ts b/reading-platform-frontend/src/api/generated/model/updateTemplate1Body.ts new file mode 100644 index 0000000..7ceda26 --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/updateTemplate1Body.ts @@ -0,0 +1,9 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ + +export type UpdateTemplate1Body = {[key: string]: { [key: string]: unknown }}; diff --git a/reading-platform-frontend/src/api/generated/model/updateTemplateBody.ts b/reading-platform-frontend/src/api/generated/model/updateTemplateBody.ts new file mode 100644 index 0000000..3e236a7 --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/updateTemplateBody.ts @@ -0,0 +1,9 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ + +export type UpdateTemplateBody = {[key: string]: { [key: string]: unknown }}; diff --git a/reading-platform-frontend/src/api/generated/model/updateTenantQuotaBody.ts b/reading-platform-frontend/src/api/generated/model/updateTenantQuotaBody.ts new file mode 100644 index 0000000..7dab006 --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/updateTenantQuotaBody.ts @@ -0,0 +1,9 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ + +export type UpdateTenantQuotaBody = {[key: string]: { [key: string]: unknown }}; diff --git a/reading-platform-frontend/src/api/generated/model/updateTenantStatusBody.ts b/reading-platform-frontend/src/api/generated/model/updateTenantStatusBody.ts new file mode 100644 index 0000000..0d97312 --- /dev/null +++ b/reading-platform-frontend/src/api/generated/model/updateTenantStatusBody.ts @@ -0,0 +1,9 @@ +/** + * Generated by orval v8.5.3 🍺 + * Do not edit manually. + * Reading Platform API + * Reading Platform Backend Service API Documentation + * OpenAPI spec version: 1.0.0 + */ + +export type UpdateTenantStatusBody = {[key: string]: { [key: string]: unknown }}; diff --git a/reading-platform-frontend/src/api/generated/model/userInfoResponse.ts b/reading-platform-frontend/src/api/generated/model/userInfoResponse.ts index 65eb5f7..1a76f44 100644 --- a/reading-platform-frontend/src/api/generated/model/userInfoResponse.ts +++ b/reading-platform-frontend/src/api/generated/model/userInfoResponse.ts @@ -7,23 +7,23 @@ */ /** - * User Info Response + * 用户信息响应 */ export interface UserInfoResponse { - /** User ID */ + /** 用户 ID */ id?: number; - /** Username */ + /** 用户名 */ username?: string; - /** User name */ + /** 姓名 */ name?: string; - /** Email */ + /** 邮箱 */ email?: string; - /** Phone */ + /** 电话 */ phone?: string; - /** Avatar URL */ + /** 头像 URL */ avatarUrl?: string; - /** User role */ + /** 用户角色 */ role?: string; - /** Tenant ID */ + /** 租户 ID */ tenantId?: number; } diff --git a/reading-platform-java/src/main/java/com/reading/platform/controller/admin/AdminStatsController.java b/reading-platform-java/src/main/java/com/reading/platform/controller/admin/AdminStatsController.java index bbc7119..c705aae 100644 --- a/reading-platform-java/src/main/java/com/reading/platform/controller/admin/AdminStatsController.java +++ b/reading-platform-java/src/main/java/com/reading/platform/controller/admin/AdminStatsController.java @@ -11,7 +11,9 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; +import java.util.ArrayList; import java.util.HashMap; +import java.util.List; import java.util.Map; /** @@ -52,23 +54,23 @@ public class AdminStatsController { @Operation(summary = "获取活跃租户") @GetMapping("/tenants/active") - public Result getActiveTenants(@RequestParam(required = false, defaultValue = "5") Integer limit) { + public Result>> getActiveTenants(@RequestParam(required = false, defaultValue = "5") Integer limit) { // TODO: 实现活跃租户查询 - return Result.success(new Object[]{}); + return Result.success(new ArrayList<>()); } @Operation(summary = "获取热门课程") @GetMapping("/courses/popular") - public Result getPopularCourses(@RequestParam(required = false, defaultValue = "5") Integer limit) { + public Result>> getPopularCourses(@RequestParam(required = false, defaultValue = "5") Integer limit) { // TODO: 实现热门课程查询 - return Result.success(new Object[]{}); + return Result.success(new ArrayList<>()); } @Operation(summary = "获取最近活动") @GetMapping("/activities") - public Result getRecentActivities(@RequestParam(required = false, defaultValue = "10") Integer limit) { + public Result>> getRecentActivities(@RequestParam(required = false, defaultValue = "10") Integer limit) { // TODO: 实现最近活动查询 - return Result.success(new Object[]{}); + return Result.success(new ArrayList<>()); } }