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:3002 description: Generated server url security: - Bearer: [] tags: - name: School - Course Packages description: Course Packages for School - name: Admin - Operation Logs description: Operation Log Management for Admin - name: School - School Courses description: School Custom Course Management - name: School - Task description: Task Management APIs for School - name: Admin - Settings description: Admin System Settings Management - name: Parent - Task description: Task APIs for Parent - name: Auth description: Authentication APIs - name: Admin - Tenant description: Tenant Management APIs for Admin - name: Teacher - Schedule description: Teacher Schedule View - name: Admin - Stats description: Admin Statistics Dashboard - name: Admin - Resources description: Resource Library Management for Admin - name: Admin - Course description: System Course Management APIs for Admin - name: Teacher - School Courses description: School Courses for Teacher - name: School - Operation Logs description: Operation Log for School - name: School - Stats description: School Statistics Dashboard - name: School - Schedule description: School Schedule Management - name: School - Parent description: Parent Management APIs for School - name: Parent - Child description: Child Information APIs for Parent - name: Teacher - Task description: Task APIs for Teacher - name: School - Export description: School Data Export - name: Teacher - Notification description: Notification APIs for Teacher - name: School - Student description: Student Management APIs for School - 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 - Themes description: Theme Management for Admin - name: Admin - Course Lessons description: Course Lesson Management for Admin - name: School - Settings description: School Settings Management - name: Teacher - Course Lessons description: Course Lessons for Teacher - name: Teacher - Dashboard description: Teacher Dashboard - name: Admin - Course Packages description: Course Package Management for Admin - name: School - Teacher description: Teacher Management APIs for School - name: File Upload description: File Upload APIs - name: Teacher - Growth Record description: Growth Record 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/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: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultTask' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' 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: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultTask' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' delete: tags: - Teacher - Task summary: Delete task operationId: deleteTask parameters: - name: id in: path required: true schema: type: integer format: int64 responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/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: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultLesson' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' 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: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultLesson' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/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: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultGrowthRecord' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' 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: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultGrowthRecord' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' delete: tags: - Teacher - Growth Record summary: Delete growth record operationId: deleteGrowthRecord parameters: - name: id in: path required: true schema: type: integer format: int64 responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/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: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultTeacher' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' 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: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultTeacher' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' delete: tags: - School - Teacher summary: Delete teacher operationId: deleteTeacher parameters: - name: id in: path required: true schema: type: integer format: int64 responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/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: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultTask' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' 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: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultTask' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' delete: tags: - School - Task summary: Delete task operationId: deleteTask_1 parameters: - name: id in: path required: true schema: type: integer format: int64 responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/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: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultStudent' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' 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: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultStudent' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' delete: tags: - School - Student summary: Delete student operationId: deleteStudent parameters: - name: id in: path required: true schema: type: integer format: int64 responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/school/settings: get: tags: - School - Settings summary: Get school settings operationId: getSettings responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultMapStringString' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' put: tags: - School - Settings summary: Update school settings operationId: updateSettings requestBody: content: application/json: schema: type: object additionalProperties: type: string required: true responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/school/school-courses/{id}: get: tags: - School - School Courses summary: Get school course by ID operationId: getCourse_2 parameters: - name: id in: path required: true schema: type: integer format: int64 responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultSchoolCourse' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' put: tags: - School - School Courses summary: Update school course operationId: updateCourse parameters: - name: id in: path required: true schema: type: integer format: int64 requestBody: content: application/json: schema: $ref: '#/components/schemas/SchoolCourse' required: true responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultSchoolCourse' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' delete: tags: - School - School Courses summary: Delete school course operationId: deleteCourse parameters: - name: id in: path required: true schema: type: integer format: int64 responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/school/schedules/{id}: get: tags: - School - Schedule summary: Get schedule plan by ID operationId: getSchedulePlan_1 parameters: - name: id in: path required: true schema: type: integer format: int64 responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultSchedulePlan' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' put: tags: - School - Schedule summary: Update schedule plan operationId: updateSchedulePlan parameters: - name: id in: path required: true schema: type: integer format: int64 requestBody: content: application/json: schema: $ref: '#/components/schemas/SchedulePlan' required: true responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultSchedulePlan' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' delete: tags: - School - Schedule summary: Delete schedule plan operationId: deleteSchedulePlan parameters: - name: id in: path required: true schema: type: integer format: int64 responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/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: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultParent' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' 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: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultParent' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' delete: tags: - School - Parent summary: Delete parent operationId: deleteParent parameters: - name: id in: path required: true schema: type: integer format: int64 responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/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: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultGrowthRecord' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' 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: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultGrowthRecord' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' 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: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/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: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultClazz' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' 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: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultClazz' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' delete: tags: - School - Class summary: Delete class operationId: deleteClass parameters: - name: id in: path required: true schema: type: integer format: int64 responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/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: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultGrowthRecord' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' 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: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultGrowthRecord' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' 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: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/admin/themes/{id}: get: tags: - Admin - Themes summary: Get theme by ID operationId: getTheme parameters: - name: id in: path required: true schema: type: integer format: int64 responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultTheme' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' put: tags: - Admin - Themes summary: Update theme operationId: updateTheme parameters: - name: id in: path required: true schema: type: integer format: int64 requestBody: content: application/json: schema: $ref: '#/components/schemas/Theme' required: true responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultTheme' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' delete: tags: - Admin - Themes summary: Delete theme operationId: deleteTheme parameters: - name: id in: path required: true schema: type: integer format: int64 responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/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: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultTenant' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' 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: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultTenant' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' delete: tags: - Admin - Tenant summary: Delete tenant operationId: deleteTenant parameters: - name: id in: path required: true schema: type: integer format: int64 responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/admin/tenants/{id}/status: put: tags: - Admin - Tenant summary: Update tenant status operationId: updateTenantStatus parameters: - name: id in: path required: true schema: type: integer format: int64 requestBody: content: application/json: schema: type: object additionalProperties: type: string required: true responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultMapStringObject' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/admin/tenants/{id}/quota: put: tags: - Admin - Tenant summary: Update tenant quota operationId: updateTenantQuota parameters: - name: id in: path required: true schema: type: integer format: int64 requestBody: content: application/json: schema: type: object additionalProperties: type: object required: true responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultTenant' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/admin/settings: get: tags: - Admin - Settings summary: Get admin system settings operationId: getSettings_1 responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultMapStringString' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' put: tags: - Admin - Settings summary: Update admin system settings operationId: updateSettings_1 requestBody: content: application/json: schema: type: object additionalProperties: type: object required: true responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/admin/resources/libraries/{id}: put: tags: - Admin - Resources summary: Update resource library operationId: updateLibrary parameters: - name: id in: path required: true schema: type: integer format: int64 requestBody: content: application/json: schema: $ref: '#/components/schemas/ResourceLibrary' required: true responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultResourceLibrary' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' delete: tags: - Admin - Resources summary: Delete resource library operationId: deleteLibrary parameters: - name: id in: path required: true schema: type: integer format: int64 responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/admin/resources/items/{id}: put: tags: - Admin - Resources summary: Update resource item operationId: updateItem parameters: - name: id in: path required: true schema: type: integer format: int64 requestBody: content: application/json: schema: $ref: '#/components/schemas/ResourceItem' required: true responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultResourceItem' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' delete: tags: - Admin - Resources summary: Delete resource item operationId: deleteItem parameters: - name: id in: path required: true schema: type: integer format: int64 responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/admin/courses/{id}: get: tags: - Admin - Course summary: Get course by ID operationId: getCourse_3 parameters: - name: id in: path required: true schema: type: integer format: int64 responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultCourse' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' put: tags: - Admin - Course summary: Update course operationId: updateCourse_1 parameters: - name: id in: path required: true schema: type: integer format: int64 requestBody: content: application/json: schema: $ref: '#/components/schemas/CourseUpdateRequest' required: true responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultCourse' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' delete: tags: - Admin - Course summary: Delete course operationId: deleteCourse_1 parameters: - name: id in: path required: true schema: type: integer format: int64 responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/admin/courses/{courseId}/lessons/{id}: get: tags: - Admin - Course Lessons summary: Get lesson by ID operationId: getLesson_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: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultCourseLesson' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' put: tags: - Admin - Course Lessons summary: Update course lesson operationId: updateLesson_1 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/CourseLesson' required: true responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultCourseLesson' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' delete: tags: - Admin - Course Lessons summary: Delete course lesson operationId: deleteLesson parameters: - name: courseId in: path required: true schema: type: integer format: int64 - name: id in: path required: true schema: type: integer format: int64 responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/admin/course-packages/{id}: get: tags: - Admin - Course Packages summary: Get course package by ID operationId: getPackage_1 parameters: - name: id in: path required: true schema: type: integer format: int64 responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultCoursePackage' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' put: tags: - Admin - Course Packages summary: Update course package operationId: updatePackage parameters: - name: id in: path required: true schema: type: integer format: int64 requestBody: content: application/json: schema: $ref: '#/components/schemas/CoursePackage' required: true responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultCoursePackage' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' delete: tags: - Admin - Course Packages summary: Delete course package operationId: deletePackage parameters: - name: id in: path required: true schema: type: integer format: int64 responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/teacher/tasks: get: tags: - Teacher - Task summary: Get task page operationId: getTaskPage parameters: - name: page 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: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultPageResultTask' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' post: tags: - Teacher - Task summary: Create task operationId: createTask requestBody: content: application/json: schema: $ref: '#/components/schemas/TaskCreateRequest' required: true responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultTask' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/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: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/teacher/notifications/read-all: post: tags: - Teacher - Notification summary: Mark all notifications as read operationId: markAllAsRead responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/teacher/lessons: get: tags: - Teacher - Lesson summary: Get my lessons operationId: getMyLessons parameters: - name: page 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: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultPageResultLesson' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' post: tags: - Teacher - Lesson summary: Create lesson operationId: createLesson requestBody: content: application/json: schema: $ref: '#/components/schemas/LessonCreateRequest' required: true responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultLesson' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/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: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/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: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/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: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/teacher/growth-records: get: tags: - Teacher - Growth Record summary: Get growth record page operationId: getGrowthRecordPage parameters: - name: page 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: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultPageResultGrowthRecord' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' post: tags: - Teacher - Growth Record summary: Create growth record operationId: createGrowthRecord requestBody: content: application/json: schema: $ref: '#/components/schemas/GrowthRecordCreateRequest' required: true responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultGrowthRecord' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/school/teachers: get: tags: - School - Teacher summary: Get teacher page operationId: getTeacherPage parameters: - name: page 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: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultPageResultTeacher' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' post: tags: - School - Teacher summary: Create teacher operationId: createTeacher requestBody: content: application/json: schema: $ref: '#/components/schemas/TeacherCreateRequest' required: true responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultTeacher' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/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: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/school/tasks: get: tags: - School - Task summary: Get task page operationId: getTaskPage_1 parameters: - name: page 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: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultPageResultTask' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' post: tags: - School - Task summary: Create task operationId: createTask_1 requestBody: content: application/json: schema: $ref: '#/components/schemas/TaskCreateRequest' required: true responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultTask' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/school/students: get: tags: - School - Student summary: Get student page operationId: getStudentPage parameters: - name: page 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: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultPageResultStudent' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' post: tags: - School - Student summary: Create student operationId: createStudent requestBody: content: application/json: schema: $ref: '#/components/schemas/StudentCreateRequest' required: true responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultStudent' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/school/school-courses: get: tags: - School - School Courses summary: Get school courses operationId: getCourses_1 parameters: - name: pageNum in: query required: false schema: type: integer format: int32 default: 1 - name: pageSize in: query required: false schema: type: integer format: int32 default: 20 - name: keyword in: query required: false schema: type: string responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultPageResultSchoolCourse' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' post: tags: - School - School Courses summary: Create school course operationId: createCourse requestBody: content: application/json: schema: $ref: '#/components/schemas/SchoolCourse' required: true responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultSchoolCourse' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/school/schedules: get: tags: - School - Schedule summary: Get schedule plans operationId: getSchedulePlans_1 parameters: - name: pageNum in: query required: false schema: type: integer format: int32 default: 1 - name: pageSize in: query required: false schema: type: integer format: int32 default: 20 - name: classId in: query required: false schema: type: integer format: int64 responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultPageResultSchedulePlan' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' post: tags: - School - Schedule summary: Create schedule plan operationId: createSchedulePlan requestBody: content: application/json: schema: $ref: '#/components/schemas/SchedulePlan' required: true responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultSchedulePlan' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/school/schedules/templates: get: tags: - School - Schedule summary: Get schedule templates operationId: getScheduleTemplates parameters: - name: pageNum 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: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultPageResultScheduleTemplate' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' post: tags: - School - Schedule summary: Create schedule template operationId: createScheduleTemplate requestBody: content: application/json: schema: $ref: '#/components/schemas/ScheduleTemplate' required: true responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultScheduleTemplate' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/school/parents: get: tags: - School - Parent summary: Get parent page operationId: getParentPage parameters: - name: page 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: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultPageResultParent' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' post: tags: - School - Parent summary: Create parent operationId: createParent requestBody: content: application/json: schema: $ref: '#/components/schemas/ParentCreateRequest' required: true responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultParent' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/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: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error 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: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/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: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/school/growth-records: get: tags: - School - Growth Record summary: Get growth record page operationId: getGrowthRecordPage_1 parameters: - name: page 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: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultPageResultGrowthRecord' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' post: tags: - School - Growth Record summary: Create growth record operationId: createGrowthRecord_1 requestBody: content: application/json: schema: $ref: '#/components/schemas/GrowthRecordCreateRequest' required: true responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultGrowthRecord' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/school/classes: get: tags: - School - Class summary: Get class page operationId: getClassPage parameters: - name: page 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: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultPageResultClazz' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' post: tags: - School - Class summary: Create class operationId: createClass requestBody: content: application/json: schema: $ref: '#/components/schemas/ClassCreateRequest' required: true responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultClazz' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/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: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/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: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/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: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/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: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/parent/notifications/read-all: post: tags: - Parent - Notification summary: Mark all notifications as read operationId: markAllAsRead_1 responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/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: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultGrowthRecord' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/files/upload: post: tags: - File Upload summary: Upload file operationId: uploadFile requestBody: content: application/json: schema: required: - file type: object properties: file: type: string format: binary responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultMapStringString' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/auth/logout: post: tags: - Auth summary: User logout operationId: logout responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/auth/login: post: tags: - Auth summary: User login operationId: login requestBody: content: application/json: schema: $ref: '#/components/schemas/LoginRequest' required: true responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultLoginResponse' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/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: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/admin/themes: get: tags: - Admin - Themes summary: Get all themes operationId: getThemes parameters: - name: enabledOnly in: query required: false schema: type: boolean responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultListTheme' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' post: tags: - Admin - Themes summary: Create theme operationId: createTheme requestBody: content: application/json: schema: $ref: '#/components/schemas/Theme' required: true responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultTheme' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/admin/tenants: get: tags: - Admin - Tenant summary: Get tenant page operationId: getTenantPage parameters: - name: page 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 - name: packageType in: query required: false schema: type: string responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultPageResultTenant' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' post: tags: - Admin - Tenant summary: Create tenant operationId: createTenant requestBody: content: application/json: schema: $ref: '#/components/schemas/TenantCreateRequest' required: true responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultTenant' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/admin/tenants/{id}/reset-password: post: tags: - Admin - Tenant summary: Reset tenant school account password operationId: resetTenantPassword parameters: - name: id in: path required: true schema: type: integer format: int64 responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultMapStringString' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/admin/resources/libraries: get: tags: - Admin - Resources summary: Get all resource libraries operationId: getLibraries parameters: - name: tenantId in: query required: false schema: type: integer format: int64 responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultListResourceLibrary' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' post: tags: - Admin - Resources summary: Create resource library operationId: createLibrary requestBody: content: application/json: schema: $ref: '#/components/schemas/ResourceLibrary' required: true responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultResourceLibrary' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/admin/resources/items: get: tags: - Admin - Resources summary: Get resource items operationId: getItems parameters: - name: pageNum in: query required: false schema: type: integer format: int32 default: 1 - name: pageSize in: query required: false schema: type: integer format: int32 default: 20 - name: libraryId in: query required: false schema: type: integer format: int64 - name: keyword in: query required: false schema: type: string responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultPageResultResourceItem' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' post: tags: - Admin - Resources summary: Create resource item operationId: createItem requestBody: content: application/json: schema: $ref: '#/components/schemas/ResourceItem' required: true responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultResourceItem' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/admin/courses: get: tags: - Admin - Course summary: Get system course page operationId: getCoursePage_1 parameters: - name: page 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: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultPageResultCourse' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' post: tags: - Admin - Course summary: Create system course operationId: createCourse_1 requestBody: content: application/json: schema: $ref: '#/components/schemas/CourseCreateRequest' required: true responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultCourse' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/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: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/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: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/admin/courses/{courseId}/lessons: get: tags: - Admin - Course Lessons summary: Get lessons for a course operationId: getLessons_1 parameters: - name: courseId in: path required: true schema: type: integer format: int64 responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultListCourseLesson' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' post: tags: - Admin - Course Lessons summary: Create course lesson operationId: createLesson_1 parameters: - name: courseId in: path required: true schema: type: integer format: int64 requestBody: content: application/json: schema: $ref: '#/components/schemas/CourseLesson' required: true responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultCourseLesson' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/admin/course-packages: get: tags: - Admin - Course Packages summary: Get course packages operationId: getPackages_1 parameters: - name: pageNum in: query required: false schema: type: integer format: int32 default: 1 - name: pageSize in: query required: false schema: type: integer format: int32 default: 20 - name: keyword in: query required: false schema: type: string - name: status in: query required: false schema: type: string responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultPageResultCoursePackage' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' post: tags: - Admin - Course Packages summary: Create course package operationId: createPackage requestBody: content: application/json: schema: $ref: '#/components/schemas/CoursePackage' required: true responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultCoursePackage' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/teacher/school-courses: get: tags: - Teacher - School Courses summary: Get school courses operationId: getCourses parameters: - name: pageNum in: query required: false schema: type: integer format: int32 default: 1 - name: pageSize in: query required: false schema: type: integer format: int32 default: 20 - name: keyword in: query required: false schema: type: string responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultPageResultSchoolCourse' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/teacher/school-courses/{id}: get: tags: - Teacher - School Courses summary: Get school course by ID operationId: getCourse parameters: - name: id in: path required: true schema: type: integer format: int64 responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultSchoolCourse' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/teacher/schedules: get: tags: - Teacher - Schedule summary: Get teacher schedule plans operationId: getSchedulePlans parameters: - name: pageNum 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: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultPageResultSchedulePlan' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/teacher/schedules/{id}: get: tags: - Teacher - Schedule summary: Get schedule plan by ID operationId: getSchedulePlan parameters: - name: id in: path required: true schema: type: integer format: int64 responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultSchedulePlan' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/teacher/notifications: get: tags: - Teacher - Notification summary: Get my notifications operationId: getMyNotifications parameters: - name: page 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: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultPageResultNotification' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/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: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultNotification' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/teacher/notifications/unread-count: get: tags: - Teacher - Notification summary: Get unread count operationId: getUnreadCount responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultLong' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/teacher/lessons/today: get: tags: - Teacher - Lesson summary: Get today's lessons operationId: getTodayLessons responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultListLesson' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/teacher/dashboard: get: tags: - Teacher - Dashboard summary: Get teacher dashboard overview operationId: getDashboard responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultMapStringObject' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/teacher/dashboard/weekly: get: tags: - Teacher - Dashboard summary: Get weekly lessons operationId: getWeeklyLessons responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultListMapStringObject' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/teacher/dashboard/today: get: tags: - Teacher - Dashboard summary: Get today's lessons operationId: getTodayLessons_1 responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultListMapStringObject' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/teacher/courses: get: tags: - Teacher - Course summary: Get course page operationId: getCoursePage parameters: - name: page 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: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultPageResultCourse' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/teacher/courses/{id}: get: tags: - Teacher - Course summary: Get course by ID operationId: getCourse_1 parameters: - name: id in: path required: true schema: type: integer format: int64 responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultCourse' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/teacher/courses/{courseId}/lessons: get: tags: - Teacher - Course Lessons summary: Get lessons for a course operationId: getLessons parameters: - name: courseId in: path required: true schema: type: integer format: int64 responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultListCourseLesson' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/teacher/courses/{courseId}/lessons/{id}: get: tags: - Teacher - Course Lessons summary: Get lesson by ID operationId: getLesson_1 parameters: - name: courseId in: path required: true schema: type: integer format: int64 - name: id in: path required: true schema: type: integer format: int64 responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultCourseLesson' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/teacher/courses/all: get: tags: - Teacher - Course summary: Get all courses operationId: getAllCourses responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultListCourse' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/school/stats: get: tags: - School - Stats summary: Get school statistics operationId: getStats responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultMapStringObject' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/school/operation-logs: get: tags: - School - Operation Logs summary: Get school operation logs operationId: getLogs parameters: - name: pageNum in: query required: false schema: type: integer format: int32 default: 1 - name: pageSize in: query required: false schema: type: integer format: int32 default: 20 - name: module in: query required: false schema: type: string responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultPageResultOperationLog' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/school/export/teachers: get: tags: - School - Export summary: Export teachers to Excel operationId: exportTeachers responses: '200': description: OK content: '*/*': schema: type: array items: type: string format: byte '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/school/export/students: get: tags: - School - Export summary: Export students to Excel operationId: exportStudents responses: '200': description: OK content: '*/*': schema: type: array items: type: string format: byte '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/school/export/lessons: get: tags: - School - Export summary: Export lessons to Excel operationId: exportLessons responses: '200': description: OK content: '*/*': schema: type: array items: type: string format: byte '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/school/export/growth-records: get: tags: - School - Export summary: Export growth records to Excel operationId: exportGrowthRecords responses: '200': description: OK content: '*/*': schema: type: array items: type: string format: byte '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/school/course-packages: get: tags: - School - Course Packages summary: Get available course packages operationId: getPackages parameters: - name: pageNum in: query required: false schema: type: integer format: int32 default: 1 - name: pageSize in: query required: false schema: type: integer format: int32 default: 20 - name: keyword in: query required: false schema: type: string responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultPageResultCoursePackage' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/school/course-packages/{id}: get: tags: - School - Course Packages summary: Get course package by ID operationId: getPackage parameters: - name: id in: path required: true schema: type: integer format: int64 responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultCoursePackage' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/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: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultTask' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/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: page 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: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultPageResultTask' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/parent/notifications: get: tags: - Parent - Notification summary: Get my notifications operationId: getMyNotifications_1 parameters: - name: page 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: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultPageResultNotification' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/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: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultNotification' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/parent/notifications/unread-count: get: tags: - Parent - Notification summary: Get unread count operationId: getUnreadCount_1 responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultLong' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/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: page 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: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultPageResultGrowthRecord' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/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: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultListGrowthRecord' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/parent/children: get: tags: - Parent - Child summary: Get my children operationId: getMyChildren responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultListStudent' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/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: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultStudent' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/auth/me: get: tags: - Auth summary: Get current user info operationId: getCurrentUser responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultUserInfoResponse' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/admin/tenants/active: get: tags: - Admin - Tenant summary: Get all active tenants operationId: getAllActiveTenants responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultListTenantResponse' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/admin/stats: get: tags: - Admin - Stats summary: Get overall statistics operationId: getStats_1 responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultMapStringObject' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/admin/stats/trend: get: tags: - Admin - Stats summary: Get trend data (last 6 months) operationId: getTrendData responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultListMapStringObject' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/admin/stats/tenants/active: get: tags: - Admin - Stats summary: Get active tenants operationId: getActiveTenants parameters: - name: limit in: query required: false schema: type: integer format: int32 default: 10 responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultListMapStringObject' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/admin/stats/courses/popular: get: tags: - Admin - Stats summary: Get popular courses operationId: getPopularCourses parameters: - name: limit in: query required: false schema: type: integer format: int32 default: 10 responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultListMapStringObject' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/admin/stats/activities: get: tags: - Admin - Stats summary: Get recent activities operationId: getActivities parameters: - name: limit in: query required: false schema: type: integer format: int32 default: 10 responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultListMapStringObject' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/admin/operation-logs: get: tags: - Admin - Operation Logs summary: Get operation logs operationId: getLogs_1 parameters: - name: pageNum in: query required: false schema: type: integer format: int32 default: 1 - name: pageSize in: query required: false schema: type: integer format: int32 default: 20 - name: tenantId in: query required: false schema: type: integer format: int64 - name: module in: query required: false schema: type: string responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultPageResultOperationLog' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/school/schedules/templates/{id}: delete: tags: - School - Schedule summary: Delete schedule template operationId: deleteScheduleTemplate parameters: - name: id in: path required: true schema: type: integer format: int64 responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' /api/v1/files/delete: delete: tags: - File Upload summary: Delete file operationId: deleteFile parameters: - name: filePath in: query required: true schema: type: string responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '403': description: Forbidden content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '404': description: Not Found content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '405': description: Method Not Allowed content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/ResultVoid' components: schemas: ResultVoid: type: object properties: code: type: integer format: int32 message: type: string data: type: object 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 SchoolCourse: type: object properties: id: type: integer format: int64 tenantId: type: integer format: int64 name: type: string description: type: string coverUrl: type: string category: type: string ageRange: type: string status: type: string createdBy: type: integer format: int64 createdAt: type: string format: date-time updatedAt: type: string format: date-time deleted: type: integer format: int32 ResultSchoolCourse: type: object properties: code: type: integer format: int32 message: type: string data: $ref: '#/components/schemas/SchoolCourse' SchedulePlan: type: object properties: id: type: integer format: int64 tenantId: type: integer format: int64 name: type: string classId: type: integer format: int64 startDate: type: string format: date endDate: type: string format: date status: type: string createdAt: type: string format: date-time updatedAt: type: string format: date-time deleted: type: integer format: int32 ResultSchedulePlan: type: object properties: code: type: integer format: int32 message: type: string data: $ref: '#/components/schemas/SchedulePlan' 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' Theme: type: object properties: id: type: integer format: int64 name: type: string displayName: type: string color: type: string icon: type: string sortOrder: type: integer format: int32 isEnabled: type: integer format: int32 createdAt: type: string format: date-time updatedAt: type: string format: date-time deleted: type: integer format: int32 ResultTheme: type: object properties: code: type: integer format: int32 message: type: string data: $ref: '#/components/schemas/Theme' 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 packageType: type: string description: Package type (optional) startDate: type: string description: Start date (optional) 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 contactPhone: type: string contactEmail: type: string address: type: string logoUrl: type: string status: type: string createdAt: type: string format: date-time updatedAt: type: string format: date-time deleted: type: integer format: int32 tempPassword: type: string loginAccount: type: string contactPerson: type: string expireDate: type: string format: date-time studentQuota: type: integer format: int32 teacherQuota: type: integer format: int32 ResultMapStringObject: type: object properties: code: type: integer format: int32 message: type: string data: type: object additionalProperties: type: object ResourceLibrary: type: object properties: id: type: integer format: int64 tenantId: type: integer format: int64 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 ResultResourceLibrary: type: object properties: code: type: integer format: int32 message: type: string data: $ref: '#/components/schemas/ResourceLibrary' ResourceItem: type: object properties: id: type: integer format: int64 libraryId: type: integer format: int64 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 ResultResourceItem: type: object properties: code: type: integer format: int32 message: type: string data: $ref: '#/components/schemas/ResourceItem' 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' CourseLesson: type: object properties: id: type: integer format: int64 courseId: type: integer format: int64 title: type: string description: type: string content: type: string sortOrder: type: integer format: int32 durationMinutes: type: integer format: int32 videoUrl: type: string status: type: string createdAt: type: string format: date-time updatedAt: type: string format: date-time deleted: type: integer format: int32 ResultCourseLesson: type: object properties: code: type: integer format: int32 message: type: string data: $ref: '#/components/schemas/CourseLesson' CoursePackage: type: object properties: id: type: integer format: int64 name: type: string description: type: string coverUrl: type: string courseCount: type: integer format: int32 price: type: number status: type: string isSystem: type: integer format: int32 createdAt: type: string format: date-time updatedAt: type: string format: date-time deleted: type: integer format: int32 ResultCoursePackage: type: object properties: code: type: integer format: int32 message: type: string data: $ref: '#/components/schemas/CoursePackage' 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 ScheduleTemplate: type: object properties: id: type: integer format: int64 tenantId: type: integer format: int64 name: type: string description: type: string content: type: string isPublic: type: integer format: int32 createdAt: type: string format: date-time updatedAt: type: string format: date-time deleted: type: integer format: int32 ResultScheduleTemplate: type: object properties: code: type: integer format: int32 message: type: string data: $ref: '#/components/schemas/ScheduleTemplate' 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 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 ResultMapStringString: type: object properties: code: type: integer format: int32 message: type: string data: type: object additionalProperties: type: string LoginRequest: required: - password - username type: object properties: username: type: string description: Username example: admin password: type: string description: Password example: admin123 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 / login account 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 password: type: string description: 'Initial password (default: 123456)' packageType: type: string description: Package type (optional) startDate: type: string description: Start date (optional) 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 PageResultTask: type: object properties: total: type: integer format: int64 pageSize: type: integer format: int64 items: type: array items: $ref: '#/components/schemas/Task' page: type: integer format: int64 totalPages: type: integer format: int64 ResultPageResultTask: type: object properties: code: type: integer format: int32 message: type: string data: $ref: '#/components/schemas/PageResultTask' PageResultSchoolCourse: type: object properties: total: type: integer format: int64 pageSize: type: integer format: int64 items: type: array items: $ref: '#/components/schemas/SchoolCourse' page: type: integer format: int64 totalPages: type: integer format: int64 ResultPageResultSchoolCourse: type: object properties: code: type: integer format: int32 message: type: string data: $ref: '#/components/schemas/PageResultSchoolCourse' PageResultSchedulePlan: type: object properties: total: type: integer format: int64 pageSize: type: integer format: int64 items: type: array items: $ref: '#/components/schemas/SchedulePlan' page: type: integer format: int64 totalPages: type: integer format: int64 ResultPageResultSchedulePlan: type: object properties: code: type: integer format: int32 message: type: string data: $ref: '#/components/schemas/PageResultSchedulePlan' 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: total: type: integer format: int64 pageSize: type: integer format: int64 items: type: array items: $ref: '#/components/schemas/Notification' page: type: integer format: int64 totalPages: 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: total: type: integer format: int64 pageSize: type: integer format: int64 items: type: array items: $ref: '#/components/schemas/Lesson' page: type: integer format: int64 totalPages: type: integer format: int64 ResultPageResultLesson: type: object properties: code: type: integer format: int32 message: type: string data: $ref: '#/components/schemas/PageResultLesson' ResultListLesson: type: object properties: code: type: integer format: int32 message: type: string data: type: array items: $ref: '#/components/schemas/Lesson' PageResultGrowthRecord: type: object properties: total: type: integer format: int64 pageSize: type: integer format: int64 items: type: array items: $ref: '#/components/schemas/GrowthRecord' page: type: integer format: int64 totalPages: type: integer format: int64 ResultPageResultGrowthRecord: type: object properties: code: type: integer format: int32 message: type: string data: $ref: '#/components/schemas/PageResultGrowthRecord' ResultListMapStringObject: type: object properties: code: type: integer format: int32 message: type: string data: type: array items: type: object additionalProperties: type: object PageResultCourse: type: object properties: total: type: integer format: int64 pageSize: type: integer format: int64 items: type: array items: $ref: '#/components/schemas/Course' page: type: integer format: int64 totalPages: type: integer format: int64 ResultPageResultCourse: type: object properties: code: type: integer format: int32 message: type: string data: $ref: '#/components/schemas/PageResultCourse' ResultListCourseLesson: type: object properties: code: type: integer format: int32 message: type: string data: type: array items: $ref: '#/components/schemas/CourseLesson' ResultListCourse: type: object properties: code: type: integer format: int32 message: type: string data: type: array items: $ref: '#/components/schemas/Course' PageResultTeacher: type: object properties: total: type: integer format: int64 pageSize: type: integer format: int64 items: type: array items: $ref: '#/components/schemas/Teacher' page: type: integer format: int64 totalPages: 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: total: type: integer format: int64 pageSize: type: integer format: int64 items: type: array items: $ref: '#/components/schemas/Student' page: type: integer format: int64 totalPages: type: integer format: int64 ResultPageResultStudent: type: object properties: code: type: integer format: int32 message: type: string data: $ref: '#/components/schemas/PageResultStudent' PageResultScheduleTemplate: type: object properties: total: type: integer format: int64 pageSize: type: integer format: int64 items: type: array items: $ref: '#/components/schemas/ScheduleTemplate' page: type: integer format: int64 totalPages: type: integer format: int64 ResultPageResultScheduleTemplate: type: object properties: code: type: integer format: int32 message: type: string data: $ref: '#/components/schemas/PageResultScheduleTemplate' PageResultParent: type: object properties: total: type: integer format: int64 pageSize: type: integer format: int64 items: type: array items: $ref: '#/components/schemas/Parent' page: type: integer format: int64 totalPages: type: integer format: int64 ResultPageResultParent: type: object properties: code: type: integer format: int32 message: type: string data: $ref: '#/components/schemas/PageResultParent' OperationLog: type: object properties: id: type: integer format: int64 tenantId: type: integer format: int64 userId: type: integer format: int64 userRole: type: string action: type: string module: type: string targetType: type: string targetId: type: integer format: int64 details: type: string ipAddress: type: string userAgent: type: string createdAt: type: string format: date-time PageResultOperationLog: type: object properties: total: type: integer format: int64 pageSize: type: integer format: int64 items: type: array items: $ref: '#/components/schemas/OperationLog' page: type: integer format: int64 totalPages: type: integer format: int64 ResultPageResultOperationLog: type: object properties: code: type: integer format: int32 message: type: string data: $ref: '#/components/schemas/PageResultOperationLog' PageResultCoursePackage: type: object properties: total: type: integer format: int64 pageSize: type: integer format: int64 items: type: array items: $ref: '#/components/schemas/CoursePackage' page: type: integer format: int64 totalPages: type: integer format: int64 ResultPageResultCoursePackage: type: object properties: code: type: integer format: int32 message: type: string data: $ref: '#/components/schemas/PageResultCoursePackage' PageResultClazz: type: object properties: total: type: integer format: int64 pageSize: type: integer format: int64 items: type: array items: $ref: '#/components/schemas/Clazz' page: type: integer format: int64 totalPages: 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 ResultListTheme: type: object properties: code: type: integer format: int32 message: type: string data: type: array items: $ref: '#/components/schemas/Theme' PageResultTenant: type: object properties: total: type: integer format: int64 pageSize: type: integer format: int64 items: type: array items: $ref: '#/components/schemas/Tenant' page: type: integer format: int64 totalPages: 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 loginAccount: type: string description: Login account (tenant code) contactPerson: 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 expireDate: type: string description: Expiration date format: date-time studentQuota: type: integer description: Max students / student quota format: int32 teacherQuota: type: integer description: Max teachers / teacher quota format: int32 createdAt: type: string description: Created at format: date-time description: Tenant Response ResultListResourceLibrary: type: object properties: code: type: integer format: int32 message: type: string data: type: array items: $ref: '#/components/schemas/ResourceLibrary' PageResultResourceItem: type: object properties: total: type: integer format: int64 pageSize: type: integer format: int64 items: type: array items: $ref: '#/components/schemas/ResourceItem' page: type: integer format: int64 totalPages: type: integer format: int64 ResultPageResultResourceItem: type: object properties: code: type: integer format: int32 message: type: string data: $ref: '#/components/schemas/PageResultResourceItem' securitySchemes: Bearer: type: http scheme: bearer bearerFormat: JWT x-openapi: x-setting: customCode: 200 language: zh-CN enableSwaggerModels: true swaggerModelName: Swagger Models enableReloadCacheParameter: false enableAfterScript: true enableDocumentManage: true enableVersion: false enableRequestCache: true enableFilterMultipartApis: false enableFilterMultipartApiMethodType: POST enableHost: false enableHostText: '' enableDynamicParameter: false enableDebug: true enableFooter: true enableFooterCustom: false enableSearch: true enableOpenApi: true enableHomeCustom: false enableGroup: true enableResponseCode: true x-markdownFiles: []