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://8.148.151.56:3002
    description: Generated server url
security:
  - Bearer: []
tags:
  - name: 学校 - 课程包
    description: 课程包接口（学校管理员专用）
  - name: 家长 - 孩子
    description: 孩子信息接口（家长专用）
  - name: 学校 - 教师
    description: 教师管理接口（学校管理员专用）
  - name: 管理员 - 操作日志
    description: 操作日志管理接口（管理员专用）
  - name: 教师 - 课时
    description: 课时接口（教师专用）
  - name: 教师 - 任务
    description: 任务接口（教师专用）
  - name: 学校 - 班级
    description: 班级管理接口（学校管理员专用）
  - name: 管理员 - 统计
    description: 管理员统计仪表盘
  - name: 教师 - 仪表盘
    description: 教师仪表盘
  - name: 管理员 - 课程课时
    description: 课程课时管理接口（管理员专用）
  - name: 学校 - 通知
    description: 通知接口（学校管理员专用）
  - name: 教师 - 课程
    description: 课程接口（教师专用）
  - name: 学校 - 导出
    description: 学校数据导出接口（学校管理员专用）
  - name: 文件上传
    description: 文件上传接口
  - name: 学校 - 校本课程
    description: 校本课程管理接口（学校管理员专用）
  - name: 管理员 - 资源
    description: 资源库管理接口（管理员专用）
  - name: 管理员 - 主题
    description: 主题管理接口（管理员专用）
  - name: 管理员 - 课程包
    description: 课程包管理接口（管理员专用）
  - name: 学校 - 任务
    description: 任务管理接口（学校管理员专用）
  - name: 家长 - 通知
    description: 通知接口（家长专用）
  - name: 认证
    description: 认证相关接口
  - name: Parent - Growth Record
    description: Growth Record APIs for Parent
  - name: 学校 - 设置
    description: 学校设置管理接口（学校管理员专用）
  - name: 学校 - 学生
    description: 学生管理接口（学校管理员专用）
  - name: 学校 - 统计
    description: 学校统计仪表盘接口（学校管理员专用）
  - name: 管理员 - 课程
    description: 系统课程管理接口（管理员专用）
  - name: 学校 - 家长
    description: 家长管理接口（学校管理员专用）
  - name: 教师 - 校本课程
    description: 校本课程接口（教师专用）
  - name: 教师 - 成长档案
    description: 成长档案接口（教师专用）
  - name: 教师 - 课程课时
    description: 课程课时接口（教师专用）
  - name: 学校 - 操作日志
    description: 操作日志接口（学校管理员专用）
  - name: 家长 - 任务
    description: 任务接口（家长专用）
  - name: 教师 - 课表
    description: 教师课表视图
  - name: 学校 - 成长档案
    description: 成长档案管理接口（学校管理员专用）
  - name: 管理员 - 设置
    description: 管理员系统设置管理
  - name: 学校 - 课表
    description: 课表管理接口（学校管理员专用）
  - name: 管理员 - 租户
    description: 租户管理接口（管理员专用）
  - name: 教师 - 通知
    description: 通知接口（教师专用）
paths:
  /api/v1/teacher/tasks/{taskId}/completions/{studentId}:
    put:
      tags:
        - 教师 - 任务
      summary: 更新任务完成状态
      operationId: updateCompletion
      parameters:
        - name: taskId
          in: path
          required: true
          schema:
            type: integer
            format: int64
        - name: studentId
          in: path
          required: true
          schema:
            type: integer
            format: int64
        - name: status
          in: query
          required: true
          schema:
            type: string
        - name: feedback
          in: query
          required: false
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ResultTaskCompletion'
        '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/{id}:
    get:
      tags:
        - 教师 - 任务
      summary: 根据 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:
        - 教师 - 任务
      summary: 更新任务
      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:
        - 教师 - 任务
      summary: 删除任务
      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:
        - 教师 - 课时
      summary: 根据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:
        - 教师 - 课时
      summary: 更新课时
      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:
        - 教师 - 成长档案
      summary: 根据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:
        - 教师 - 成长档案
      summary: 更新成长档案
      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:
        - 教师 - 成长档案
      summary: 删除成长档案
      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:
        - 学校 - 教师
      summary: 根据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:
        - 学校 - 教师
      summary: 更新教师
      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:
        - 学校 - 教师
      summary: 删除教师
      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/{taskId}/completions/{studentId}:
    put:
      tags:
        - 学校 - 任务
      summary: 更新任务完成状态
      operationId: updateCompletion_1
      parameters:
        - name: taskId
          in: path
          required: true
          schema:
            type: integer
            format: int64
        - name: studentId
          in: path
          required: true
          schema:
            type: integer
            format: int64
        - name: status
          in: query
          required: true
          schema:
            type: string
        - name: feedback
          in: query
          required: false
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ResultTaskCompletion'
        '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:
        - 学校 - 任务
      summary: 根据 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:
        - 学校 - 任务
      summary: 更新任务
      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:
        - 学校 - 任务
      summary: 删除任务
      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/tasks/task-templates/{id}:
    get:
      tags:
        - 学校 - 任务
      summary: 根据 ID 获取任务模板
      operationId: getTemplate_1
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ResultTaskTemplate'
        '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:
        - 学校 - 任务
      summary: 更新任务模板
      operationId: updateTemplate
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int64
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TaskTemplateUpdateRequest'
        required: true
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ResultTaskTemplate'
        '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:
        - 学校 - 任务
      summary: 删除任务模板
      operationId: deleteTemplate
      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:
        - 学校 - 学生
      summary: 根据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:
        - 学校 - 学生
      summary: 更新学生
      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:
        - 学校 - 学生
      summary: 删除学生
      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:
        - 学校 - 设置
      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:
        - 学校 - 设置
      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:
        - 学校 - 校本课程
      summary: 根据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:
        - 学校 - 校本课程
      summary: 更新校本课程
      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:
        - 学校 - 校本课程
      summary: 删除校本课程
      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:
        - 学校 - 课表
      summary: 根据 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:
        - 学校 - 课表
      summary: 更新课表计划
      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:
        - 学校 - 课表
      summary: 删除课表计划
      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/schedules/templates/{id}:
    get:
      tags:
        - 学校 - 课表
      summary: 根据 ID 获取课表模板
      operationId: getScheduleTemplate
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int64
      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'
    put:
      tags:
        - 学校 - 课表
      summary: 更新课表模板
      operationId: updateScheduleTemplate
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int64
      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'
    delete:
      tags:
        - 学校 - 课表
      summary: 删除课表模板
      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/school/parents/{id}:
    get:
      tags:
        - 学校 - 家长
      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:
        - 学校 - 家长
      summary: 更新家长
      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:
        - 学校 - 家长
      summary: 删除家长
      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:
        - 学校 - 成长档案
      summary: 根据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:
        - 学校 - 成长档案
      summary: 更新成长档案
      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:
        - 学校 - 成长档案
      summary: 删除成长档案
      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:
        - 学校 - 班级
      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:
        - 学校 - 班级
      summary: 更新班级
      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:
        - 学校 - 班级
      summary: 删除班级
      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: 根据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: 更新成长档案
      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: 删除成长档案
      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:
        - 管理员 - 主题
      summary: 根据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:
        - 管理员 - 主题
      summary: 更新主题
      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:
        - 管理员 - 主题
      summary: 删除主题
      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:
        - 管理员 - 租户
      summary: 根据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:
        - 管理员 - 租户
      summary: 更新租户
      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:
        - 管理员 - 租户
      summary: 删除租户
      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:
        - 管理员 - 租户
      summary: 更新租户状态
      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:
        - 管理员 - 租户
      summary: 更新租户配额
      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:
        - 管理员 - 设置
      summary: 获取管理员系统设置
      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:
        - 管理员 - 设置
      summary: 更新管理员系统设置
      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:
        - 管理员 - 资源
      summary: 更新资源库
      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:
        - 管理员 - 资源
      summary: 删除资源库
      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:
        - 管理员 - 资源
      summary: 更新资源项
      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:
        - 管理员 - 资源
      summary: 删除资源项
      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/packages/{id}:
    get:
      tags:
        - 管理员 - 课程包
      summary: 根据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:
        - 管理员 - 课程包
      summary: 更新课程包
      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:
        - 管理员 - 课程包
      summary: 删除课程包
      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/admin/courses/{id}:
    get:
      tags:
        - 管理员 - 课程
      summary: 根据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:
        - 管理员 - 课程
      summary: 更新课程
      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:
        - 管理员 - 课程
      summary: 删除课程
      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:
        - 管理员 - 课程课时
      summary: 根据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:
        - 管理员 - 课程课时
      summary: 更新课程课时
      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:
        - 管理员 - 课程课时
      summary: 删除课程课时
      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/teacher/tasks:
    get:
      tags:
        - 教师 - 任务
      summary: 获取任务分页
      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:
        - 教师 - 任务
      summary: 创建任务
      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/tasks/from-template:
    post:
      tags:
        - 教师 - 任务
      summary: 从模板创建任务
      operationId: createFromTemplate
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateTaskFromTemplateRequest'
        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:
        - 教师 - 通知
      summary: 标记通知为已读
      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:
        - 教师 - 通知
      summary: 标记所有通知为已读
      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:
        - 教师 - 课时
      summary: 获取我的课时
      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:
        - 教师 - 课时
      summary: 创建课时
      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:
        - 教师 - 课时
      summary: 开始课时
      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:
        - 教师 - 课时
      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:
        - 教师 - 课时
      summary: 取消课时
      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:
        - 教师 - 成长档案
      summary: 获取成长档案分页
      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:
        - 教师 - 成长档案
      summary: 创建成长档案
      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:
        - 学校 - 教师
      summary: 获取教师分页
      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:
        - 学校 - 教师
      summary: 创建教师
      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:
        - 学校 - 教师
      summary: 重置教师密码
      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:
        - 学校 - 任务
      summary: 获取任务分页
      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:
        - 学校 - 任务
      summary: 创建任务
      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/tasks/task-templates:
    get:
      tags:
        - 学校 - 任务
      summary: 获取任务模板列表
      operationId: getTemplates_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
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ResultPageResultTaskTemplate'
        '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:
        - 学校 - 任务
      summary: 创建任务模板
      operationId: createTemplate
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TaskTemplateCreateRequest'
        required: true
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ResultTaskTemplate'
        '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/from-template:
    post:
      tags:
        - 学校 - 任务
      summary: 从模板创建任务
      operationId: createFromTemplate_1
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateTaskFromTemplateRequest'
        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:
        - 学校 - 学生
      summary: 获取学生分页
      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:
        - 学校 - 学生
      summary: 创建学生
      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/students/import:
    post:
      tags:
        - 学校 - 学生
      summary: 批量导入学生
      operationId: importStudents
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/StudentCreateRequest'
        required: true
      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/school/school-courses:
    get:
      tags:
        - 学校 - 校本课程
      summary: 获取校本课程
      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:
        - 学校 - 校本课程
      summary: 创建校本课程
      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:
        - 学校 - 课表
      summary: 获取课表计划
      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
        - 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/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:
        - 学校 - 课表
      summary: 创建课表计划
      operationId: createSchedulePlan
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SchedulePlanCreateRequest'
        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:
        - 学校 - 课表
      summary: 获取课表模板
      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:
        - 学校 - 课表
      summary: 创建课表模板
      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/schedules/templates/{id}/apply:
    post:
      tags:
        - 学校 - 课表
      summary: 应用课表模板
      operationId: applyScheduleTemplate
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int64
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ScheduleTemplateApplyRequest'
        required: true
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ResultListSchedulePlan'
        '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/batch:
    post:
      tags:
        - 学校 - 课表
      summary: 批量创建排课
      operationId: batchCreateSchedules
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/SchedulePlanCreateRequest'
        required: true
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ResultListSchedulePlan'
        '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:
        - 学校 - 家长
      summary: 获取家长分页
      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:
        - 学校 - 家长
      summary: 创建家长
      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:
        - 学校 - 家长
      summary: 绑定学生到家长
      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:
        - 学校 - 家长
      summary: 解绑家长与学生关系
      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:
        - 学校 - 家长
      summary: 重置家长密码
      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/notifications/{id}/read:
    post:
      tags:
        - 学校 - 通知
      summary: 标记通知为已读
      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/school/notifications/read-all:
    post:
      tags:
        - 学校 - 通知
      summary: 标记所有通知为已读
      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/school/growth-records:
    get:
      tags:
        - 学校 - 成长档案
      summary: 获取成长档案分页
      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:
        - 学校 - 成长档案
      summary: 创建成长档案
      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:
        - 学校 - 班级
      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:
        - 学校 - 班级
      summary: 创建班级
      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:
        - 学校 - 班级
      summary: 分配教师到班级
      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:
        - 学校 - 班级
      summary: 分配学生到班级
      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:
        - 家长 - 任务
      summary: 完成任务
      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:
        - 家长 - 通知
      summary: 标记通知为已读
      operationId: markAsRead_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/parent/notifications/read-all:
    post:
      tags:
        - 家长 - 通知
      summary: 标记所有通知为已读
      operationId: markAllAsRead_2
      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: 创建成长档案
      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:
        - 文件上传
      summary: 上传文件
      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:
        - 认证
      summary: 用户登出
      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:
        - 认证
      summary: 用户登录
      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:
        - 认证
      summary: 修改密码
      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:
        - 管理员 - 主题
      summary: 获取所有主题
      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:
        - 管理员 - 主题
      summary: 创建主题
      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:
        - 管理员 - 租户
      summary: 获取租户分页
      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:
        - 管理员 - 租户
      summary: 创建租户
      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:
        - 管理员 - 租户
      summary: 重置租户学校账号密码
      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:
        - 管理员 - 资源
      summary: 获取所有资源库
      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:
        - 管理员 - 资源
      summary: 创建资源库
      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:
        - 管理员 - 资源
      summary: 获取资源项
      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:
        - 管理员 - 资源
      summary: 创建资源项
      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/packages:
    get:
      tags:
        - 管理员 - 课程包
      summary: 获取课程包列表
      operationId: getPackages_1
      parameters:
        - name: page
          in: query
          required: false
          schema:
            type: integer
            format: int32
            default: 1
        - name: pageSize
          in: query
          required: false
          schema:
            type: integer
            format: int32
            default: 20
        - 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:
        - 管理员 - 课程包
      summary: 创建课程包
      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/admin/packages/{id}/submit:
    post:
      tags:
        - 管理员 - 课程包
      summary: 提交课程包审核
      operationId: submitPackage
      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/packages/{id}/review:
    post:
      tags:
        - 管理员 - 课程包
      summary: 审核课程包（通过或拒绝）
      operationId: reviewPackage
      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/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/packages/{id}/publish:
    post:
      tags:
        - 管理员 - 课程包
      summary: 发布课程包
      operationId: publishPackage
      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/packages/{id}/offline:
    post:
      tags:
        - 管理员 - 课程包
      summary: 下架课程包
      operationId: offlinePackage
      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:
    get:
      tags:
        - 管理员 - 课程
      summary: 获取系统课程分页（所有状态）
      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
        - name: status
          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:
        - 管理员 - 课程
      summary: 创建系统课程
      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}/withdraw:
    post:
      tags:
        - 管理员 - 课程
      summary: 撤销课程审核
      operationId: withdrawCourse
      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}/unpublish:
    post:
      tags:
        - 管理员 - 课程
      summary: 取消发布（归档）课程
      operationId: unpublishCourse
      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}/submit:
    post:
      tags:
        - 管理员 - 课程
      summary: 提交课程审核
      operationId: submitCourse
      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}/republish:
    post:
      tags:
        - 管理员 - 课程
      summary: 重新发布课程
      operationId: republishCourse
      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}/reject:
    post:
      tags:
        - 管理员 - 课程
      summary: 驳回课程
      operationId: rejectCourse
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int64
        - name: comment
          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/admin/courses/{id}/publish:
    post:
      tags:
        - 管理员 - 课程
      summary: 发布课程
      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}/direct-publish:
    post:
      tags:
        - 管理员 - 课程
      summary: 直接发布课程（跳过审核）
      operationId: directPublishCourse
      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:
        - 管理员 - 课程
      summary: 归档课程
      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/{id}/approve:
    post:
      tags:
        - 管理员 - 课程
      summary: 审批课程
      operationId: approveCourse
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int64
        - name: comment
          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/admin/courses/{courseId}/lessons:
    get:
      tags:
        - 管理员 - 课程课时
      summary: 获取课程的课时列表
      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:
        - 管理员 - 课程课时
      summary: 创建课程课时
      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/teacher/tasks/{id}/completions:
    get:
      tags:
        - 教师 - 任务
      summary: 获取任务完成情况分页
      operationId: getCompletions
      parameters:
        - name: id
          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/ResultPageResultTaskCompletion'
        '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/task-templates:
    get:
      tags:
        - 教师 - 任务
      summary: 获取任务模板列表
      operationId: getTemplates
      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
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ResultPageResultTaskTemplate'
        '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/task-templates/{id}:
    get:
      tags:
        - 教师 - 任务
      summary: 根据 ID 获取任务模板
      operationId: getTemplate
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ResultTaskTemplate'
        '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/task-templates/default/{taskType}:
    get:
      tags:
        - 教师 - 任务
      summary: 获取默认模板（按类型）
      operationId: getDefaultTemplate
      parameters:
        - name: taskType
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ResultTaskTemplate'
        '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/stats:
    get:
      tags:
        - 教师 - 任务
      summary: 获取任务统计数据
      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/teacher/tasks/stats/monthly:
    get:
      tags:
        - 教师 - 任务
      summary: 获取月度统计趋势
      operationId: getMonthlyStats
      parameters:
        - name: months
          in: query
          required: false
          schema:
            type: integer
            format: int32
            default: 6
      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/tasks/stats/by-type:
    get:
      tags:
        - 教师 - 任务
      summary: 按任务类型统计
      operationId: getStatsByType
      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/tasks/stats/by-class:
    get:
      tags:
        - 教师 - 任务
      summary: 按班级统计
      operationId: getStatsByClass
      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/school-courses:
    get:
      tags:
        - 教师 - 校本课程
      summary: 获取校本课程
      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:
        - 教师 - 校本课程
      summary: 根据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:
        - 教师 - 课表
      summary: 获取教师课表计划
      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:
        - 教师 - 课表
      summary: 根据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:
        - 教师 - 通知
      summary: 获取我的通知
      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:
        - 教师 - 通知
      summary: 根据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:
        - 教师 - 通知
      summary: 获取未读通知数量
      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:
        - 教师 - 课时
      summary: 获取今天课时
      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:
        - 教师 - 仪表盘
      summary: 获取教师仪表盘概览
      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:
        - 教师 - 仪表盘
      summary: 获取本周课时
      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:
        - 教师 - 仪表盘
      summary: 获取今天课时
      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:
        - 教师 - 课程
      summary: 获取课程分页
      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:
        - 教师 - 课程
      summary: 根据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:
        - 教师 - 课程课时
      summary: 获取课程的课时列表
      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:
        - 教师 - 课程课时
      summary: 根据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:
        - 教师 - 课程
      summary: 获取所有课程
      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/tasks/{id}/completions:
    get:
      tags:
        - 学校 - 任务
      summary: 获取任务完成情况分页
      operationId: getCompletions_1
      parameters:
        - name: id
          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/ResultPageResultTaskCompletion'
        '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/task-templates/default/{taskType}:
    get:
      tags:
        - 学校 - 任务
      summary: 获取默认模板（按类型）
      operationId: getDefaultTemplate_1
      parameters:
        - name: taskType
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ResultTaskTemplate'
        '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/stats:
    get:
      tags:
        - 学校 - 任务
      summary: 获取任务统计数据
      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/school/tasks/stats/monthly:
    get:
      tags:
        - 学校 - 任务
      summary: 获取月度统计趋势
      operationId: getMonthlyStats_1
      parameters:
        - name: months
          in: query
          required: false
          schema:
            type: integer
            format: int32
            default: 6
      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/school/tasks/stats/by-type:
    get:
      tags:
        - 学校 - 任务
      summary: 按任务类型统计
      operationId: getStatsByType_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/school/tasks/stats/by-class:
    get:
      tags:
        - 学校 - 任务
      summary: 按班级统计
      operationId: getStatsByClass_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/school/students/import/template:
    get:
      tags:
        - 学校 - 学生
      summary: 获取导入模板
      operationId: getImportTemplate
      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/stats:
    get:
      tags:
        - 学校 - 统计
      summary: 获取学校统计数据
      operationId: getStats_2
      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/stats/teachers:
    get:
      tags:
        - 学校 - 统计
      summary: 获取活跃教师统计
      operationId: getActiveTeachers
      parameters:
        - name: limit
          in: query
          required: false
          schema:
            type: integer
            format: int32
            default: 5
      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/school/stats/lesson-trend:
    get:
      tags:
        - 学校 - 统计
      summary: 获取课时趋势（最近 N 个月）
      operationId: getLessonTrend
      parameters:
        - name: months
          in: query
          required: false
          schema:
            type: integer
            format: int32
            default: 6
      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/school/stats/courses:
    get:
      tags:
        - 学校 - 统计
      summary: 获取课程使用统计
      operationId: getCourseUsageStats
      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/school/stats/course-distribution:
    get:
      tags:
        - 学校 - 统计
      summary: 获取课程分布统计（饼图数据）
      operationId: getCourseDistribution
      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/school/stats/activities:
    get:
      tags:
        - 学校 - 统计
      summary: 获取最近活动记录
      operationId: getRecentActivities
      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/school/schedules/timetable:
    get:
      tags:
        - 学校 - 课表
      summary: 获取课表（按日期范围）
      operationId: getTimetable
      parameters:
        - name: startDate
          in: query
          required: false
          schema:
            type: string
            format: date
        - name: endDate
          in: query
          required: false
          schema:
            type: string
            format: date
        - name: classId
          in: query
          required: false
          schema:
            type: integer
            format: int64
      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/school/operation-logs:
    get:
      tags:
        - 学校 - 操作日志
      summary: 获取学校操作日志
      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/notifications:
    get:
      tags:
        - 学校 - 通知
      summary: 获取我的通知
      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/school/notifications/{id}:
    get:
      tags:
        - 学校 - 通知
      summary: 根据 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/school/notifications/unread-count:
    get:
      tags:
        - 学校 - 通知
      summary: 获取未读通知数量
      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/school/export/teachers:
    get:
      tags:
        - 学校 - 导出
      summary: 导出教师信息到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:
        - 学校 - 导出
      summary: 导出学生信息到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:
        - 学校 - 导出
      summary: 导出课时信息到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:
        - 学校 - 导出
      summary: 导出成长档案到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:
        - 学校 - 课程包
      summary: 获取可用课程包列表
      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:
        - 学校 - 课程包
      summary: 根据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:
        - 家长 - 任务
      summary: 根据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:
        - 家长 - 任务
      summary: 根据学生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:
        - 家长 - 通知
      summary: 获取我的通知
      operationId: getMyNotifications_2
      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:
        - 家长 - 通知
      summary: 根据ID获取通知
      operationId: getNotification_2
      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:
        - 家长 - 通知
      summary: 获取未读通知数量
      operationId: getUnreadCount_2
      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: 根据学生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: 获取最近成长档案
      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:
        - 家长 - 孩子
      summary: 获取我的孩子
      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:
        - 家长 - 孩子
      summary: 根据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:
        - 认证
      summary: 获取当前用户信息
      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:
        - 管理员 - 租户
      summary: 获取所有活跃租户
      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:
        - 管理员 - 统计
      summary: 获取整体统计数据
      operationId: getStats_3
      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:
        - 管理员 - 统计
      summary: 获取趋势数据（近6个月）
      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:
        - 管理员 - 统计
      summary: 获取活跃租户
      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:
        - 管理员 - 统计
      summary: 获取热门课程
      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:
        - 管理员 - 统计
      summary: 获取最近活动
      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:
        - 管理员 - 操作日志
      summary: 获取操作日志
      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/admin/courses/review:
    get:
      tags:
        - 管理员 - 课程
      summary: 获取待审核课程
      operationId: getReviewCoursePage
      parameters:
        - name: page
          in: query
          required: false
          schema:
            type: integer
            format: int32
        - name: pageSize
          in: query
          required: false
          schema:
            type: integer
            format: int32
      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/school/classes/{id}/teachers/{teacherId}:
    delete:
      tags:
        - 学校 - 班级
      summary: 移除班级教师
      operationId: removeTeacher
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int64
        - name: teacherId
          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}/students/{studentId}:
    delete:
      tags:
        - 学校 - 班级
      summary: 移除班级学生
      operationId: removeStudent
      parameters:
        - name: id
          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/files/delete:
    delete:
      tags:
        - 文件上传
      summary: 删除文件
      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
    ResultTaskCompletion:
      type: object
      properties:
        code:
          type: integer
          format: int32
        message:
          type: string
        data:
          $ref: '#/components/schemas/TaskCompletion'
    TaskCompletion:
      type: object
      properties:
        id:
          type: integer
          format: int64
        taskId:
          type: integer
          format: int64
        studentId:
          type: integer
          format: int64
        status:
          type: string
        completedAt:
          type: string
          format: date-time
        content:
          type: string
        attachments:
          type: string
        rating:
          type: integer
          format: int32
        feedback:
          type: string
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
        deleted:
          type: integer
          format: int32
    TaskUpdateRequest:
      type: object
      properties:
        title:
          type: string
          description: 任务标题
        description:
          type: string
          description: 描述
        type:
          type: string
          description: 任务类型
        startDate:
          type: string
          description: 开始日期
          format: date
        dueDate:
          type: string
          description: 截止日期
          format: date
        status:
          type: string
          description: 状态
        attachments:
          type: string
          description: 附件（JSON数组）
      description: 任务更新请求
    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: 课时更新请求
    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: 类型
        title:
          type: string
          description: 标题
        content:
          type: string
          description: 内容
        images:
          type: string
          description: 图片（JSON数组）
        recordDate:
          type: string
          description: 记录日期
          format: date
        tags:
          type: array
          description: 标签
          items:
            type: string
            description: 标签
      description: 成长档案更新请求
    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: 姓名
        phone:
          type: string
          description: 电话
        email:
          type: string
          description: 邮箱
        avatarUrl:
          type: string
          description: 头像URL
        gender:
          type: string
          description: 性别
        bio:
          type: string
          description: 个人简介
        status:
          type: string
          description: 状态
      description: 教师更新请求
    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
    TaskTemplateUpdateRequest:
      type: object
      properties:
        name:
          type: string
          description: 模板名称
        description:
          type: string
          description: 模板描述
        type:
          type: string
          description: 任务类型：阅读、作业、活动
        content:
          type: string
          description: 任务内容模板
        isPublic:
          type: integer
          description: 是否公共模板：0-私有，1-公共
          format: int32
      description: 任务模板更新请求
    ResultTaskTemplate:
      type: object
      properties:
        code:
          type: integer
          format: int32
        message:
          type: string
        data:
          $ref: '#/components/schemas/TaskTemplate'
    TaskTemplate:
      type: object
      properties:
        id:
          type: integer
          format: int64
        tenantId:
          type: integer
          format: int64
        name:
          type: string
        description:
          type: string
        type:
          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
    StudentUpdateRequest:
      type: object
      properties:
        name:
          type: string
          description: 姓名
        gender:
          type: string
          description: 性别
        birthDate:
          type: string
          description: 出生日期
          format: date
        avatarUrl:
          type: string
          description: 头像URL
        grade:
          type: string
          description: 年级
        studentNo:
          type: string
          description: 学号
        readingLevel:
          type: string
          description: 阅读水平
        interests:
          type: string
          description: 兴趣爱好
        notes:
          type: string
          description: 备注
        status:
          type: string
          description: 状态
      description: 学生更新请求
    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
        courseId:
          type: integer
          format: int64
        teacherId:
          type: integer
          format: int64
        dayOfWeek:
          type: integer
          format: int32
        period:
          type: integer
          format: int32
        startTime:
          $ref: '#/components/schemas/LocalTime'
        endTime:
          $ref: '#/components/schemas/LocalTime'
        startDate:
          type: string
          format: date
        endDate:
          type: string
          format: date
        location:
          type: string
        note:
          type: string
        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'
    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'
    ParentUpdateRequest:
      type: object
      properties:
        name:
          type: string
          description: 姓名
        phone:
          type: string
          description: 电话
        email:
          type: string
          description: 邮箱
        avatarUrl:
          type: string
          description: 头像URL
        gender:
          type: string
          description: 性别
        status:
          type: string
          description: 状态
      description: 家长更新请求
    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: 班级名称
        grade:
          type: string
          description: 年级
        description:
          type: string
          description: 描述
        capacity:
          type: integer
          description: 容量
          format: int32
        status:
          type: string
          description: 状态
      description: 班级更新请求
    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: 租户名称
        contactName:
          type: string
          description: 联系人
        contactPhone:
          type: string
          description: 联系电话
        contactEmail:
          type: string
          description: 联系邮箱
        address:
          type: string
          description: 地址
        logoUrl:
          type: string
          description: Logo URL
        status:
          type: string
          description: 状态
        expireAt:
          type: string
          description: 过期日期
          format: date-time
        maxStudents:
          type: integer
          description: 最大学生数
          format: int32
        maxTeachers:
          type: integer
          description: 最大教师数
          format: int32
        packageType:
          type: string
          description: 套餐类型（可选）
        startDate:
          type: string
          description: 开始日期（可选）
      description: 租户更新请求
    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'
    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'
    CourseUpdateRequest:
      type: object
      properties:
        name:
          type: string
          description: 课程名称
        code:
          type: string
          description: 课程编码
        description:
          type: string
          description: 描述
        coverUrl:
          type: string
          description: 封面URL
        coverImagePath:
          type: string
          description: 封面图片路径
        category:
          type: string
          description: 分类
        ageRange:
          type: string
          description: 年龄段
        difficultyLevel:
          type: string
          description: 难度等级
        durationMinutes:
          type: integer
          description: 时长（分钟）
          format: int32
        objectives:
          type: string
          description: 教学目标
        status:
          type: string
          description: 状态
        coreContent:
          type: string
          description: 核心内容
        introSummary:
          type: string
          description: 课程摘要
        introHighlights:
          type: string
          description: 课程亮点
        introGoals:
          type: string
          description: 课程目标
        introSchedule:
          type: string
          description: 内容安排
        introKeyPoints:
          type: string
          description: 重点难点
        introMethods:
          type: string
          description: 教学方法
        introEvaluation:
          type: string
          description: 评估方法
        introNotes:
          type: string
          description: 注意事项
        scheduleRefData:
          type: string
          description: 课表参考数据（JSON）
        environmentConstruction:
          type: string
          description: 环境创设内容
        themeId:
          type: integer
          description: 主题ID
          format: int64
        pictureBookName:
          type: string
          description: 绘本名称
        ebookPaths:
          type: string
          description: 电子书路径（JSON数组）
        audioPaths:
          type: string
          description: 音频路径（JSON数组）
        videoPaths:
          type: string
          description: 视频路径（JSON数组）
        otherResources:
          type: string
          description: 其他资源（JSON数组）
        pptPath:
          type: string
          description: PPT文件路径
        pptName:
          type: string
          description: PPT文件名
        posterPaths:
          type: string
          description: 海报路径（JSON数组）
        tools:
          type: string
          description: 教具（JSON数组）
        studentMaterials:
          type: string
          description: 学生材料
        lessonPlanData:
          type: string
          description: 教案数据（JSON）
        activitiesData:
          type: string
          description: 活动数据（JSON）
        assessmentData:
          type: string
          description: 评估数据（JSON）
        gradeTags:
          type: string
          description: 年级标签（JSON数组）
        domainTags:
          type: string
          description: 领域标签（JSON数组）
        hasCollectiveLesson:
          type: boolean
          description: 是否有集体课
      description: 课程更新请求
    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'
    TaskCreateRequest:
      required:
        - title
      type: object
      properties:
        title:
          type: string
          description: 任务标题
        description:
          type: string
          description: 描述
        type:
          type: string
          description: '任务类型: 阅读、作业、活动'
        courseId:
          type: integer
          description: 课程ID
          format: int64
        startDate:
          type: string
          description: 开始日期
          format: date
        dueDate:
          type: string
          description: 截止日期
          format: date
        attachments:
          type: string
          description: 附件（JSON数组）
        targetType:
          type: string
          description: '目标类型: 班级、学生'
        targetIds:
          type: array
          description: 目标ID列表
          items:
            type: integer
            description: 目标ID列表
            format: int64
      description: 任务创建请求
    CreateTaskFromTemplateRequest:
      required:
        - targetIds
      type: object
      properties:
        templateId:
          type: integer
          description: 模板 ID
          format: int64
        targetIds:
          type: array
          description: 目标 ID 列表（班级 ID 或学生 ID）
          items:
            type: integer
            description: 目标 ID 列表（班级 ID 或学生 ID）
            format: int64
        targetType:
          type: string
          description: 目标类型：CLASS-班级，STUDENT-学生
        startDate:
          type: string
          description: 任务开始日期
          format: date
        endDate:
          type: string
          description: 任务截止日期
          format: date
      description: 从模板创建任务请求
    LessonCreateRequest:
      required:
        - courseId
        - lessonDate
        - teacherId
        - title
      type: object
      properties:
        courseId:
          type: integer
          description: 课程ID
          format: int64
        classId:
          type: integer
          description: 班级ID
          format: int64
        teacherId:
          type: integer
          description: 教师ID
          format: int64
        title:
          type: string
          description: 课时标题
        lessonDate:
          type: string
          description: 课时日期
          format: date
        startTime:
          $ref: '#/components/schemas/LocalTime'
        endTime:
          $ref: '#/components/schemas/LocalTime'
        location:
          type: string
          description: 地点
        notes:
          type: string
          description: 备注
      description: 课时创建请求
    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: 成长档案创建请求
    TeacherCreateRequest:
      required:
        - name
        - password
        - username
      type: object
      properties:
        username:
          type: string
          description: 用户名
        password:
          type: string
          description: 密码
        name:
          type: string
          description: 姓名
        phone:
          type: string
          description: 电话
        email:
          type: string
          description: 邮箱
        gender:
          type: string
          description: 性别
        bio:
          type: string
          description: 个人简介
      description: 教师创建请求
    TaskTemplateCreateRequest:
      required:
        - name
      type: object
      properties:
        name:
          type: string
          description: 模板名称
        description:
          type: string
          description: 模板描述
        type:
          type: string
          description: 任务类型：阅读、作业、活动
        content:
          type: string
          description: 任务内容模板
        isPublic:
          type: integer
          description: 是否公共模板：0-私有，1-公共
          format: int32
      description: 任务模板创建请求
    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: 学生创建请求
    ResultListStudent:
      type: object
      properties:
        code:
          type: integer
          format: int32
        message:
          type: string
        data:
          type: array
          items:
            $ref: '#/components/schemas/Student'
    SchedulePlanCreateRequest:
      type: object
      properties:
        classId:
          type: integer
          description: 班级 ID
          format: int64
        courseId:
          type: integer
          description: 课程 ID
          format: int64
        dayOfWeek:
          type: integer
          description: 星期几：1-7
          format: int32
        period:
          type: integer
          description: 节次
          format: int32
        startTime:
          $ref: '#/components/schemas/LocalTime'
        endTime:
          $ref: '#/components/schemas/LocalTime'
        teacherId:
          type: integer
          description: 授课教师 ID
          format: int64
        startDate:
          type: string
          description: 开始日期
          format: date
        endDate:
          type: string
          description: 结束日期
          format: date
        location:
          type: string
          description: 教室/地点
        note:
          type: string
          description: 备注
      description: 课表计划创建请求
    ScheduleTemplateApplyRequest:
      required:
        - classId
        - startDate
      type: object
      properties:
        classId:
          type: integer
          description: 班级 ID
          format: int64
        startDate:
          type: string
          description: 应用开始日期
          format: date
        weeks:
          type: integer
          description: 应用周数
          format: int32
      description: 课表模板应用请求
    ResultListSchedulePlan:
      type: object
      properties:
        code:
          type: integer
          format: int32
        message:
          type: string
        data:
          type: array
          items:
            $ref: '#/components/schemas/SchedulePlan'
    ParentCreateRequest:
      required:
        - name
        - password
        - username
      type: object
      properties:
        username:
          type: string
          description: 用户名
        password:
          type: string
          description: 密码
        name:
          type: string
          description: 姓名
        phone:
          type: string
          description: 电话
        email:
          type: string
          description: 邮箱
        gender:
          type: string
          description: 性别
      description: Parent Create Request
    ClassCreateRequest:
      required:
        - name
      type: object
      properties:
        name:
          type: string
          description: 班级名称
        grade:
          type: string
          description: 年级
        description:
          type: string
          description: 描述
        capacity:
          type: integer
          description: 容量
          format: int32
      description: 班级创建请求
    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: 用户名
          example: admin
        password:
          type: string
          description: 密码
          example: admin123
        role:
          type: string
          description: 登录角色
          example: admin
      description: 登录请求
    LoginResponse:
      type: object
      properties:
        token:
          type: string
          description: JWT令牌
        userId:
          type: integer
          description: 用户ID
          format: int64
        username:
          type: string
          description: 用户名
        name:
          type: string
          description: 用户姓名
        role:
          type: string
          description: 用户角色
        tenantId:
          type: integer
          description: 租户ID
          format: int64
      description: 登录响应
    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: 租户名称
        code:
          type: string
          description: 租户编码 / 登录账号
        contactName:
          type: string
          description: 联系人
        contactPhone:
          type: string
          description: 联系电话
        contactEmail:
          type: string
          description: 联系邮箱
        address:
          type: string
          description: 地址
        logoUrl:
          type: string
          description: Logo URL
        expireAt:
          type: string
          description: 过期日期
          format: date-time
        maxStudents:
          type: integer
          description: 最大学生数
          format: int32
        maxTeachers:
          type: integer
          description: 最大教师数
          format: int32
        password:
          type: string
          description: '初始密码（默认: 123456）'
        packageType:
          type: string
          description: 套餐类型（可选）
        startDate:
          type: string
          description: 开始日期（可选）
      description: 租户创建请求
    CourseCreateRequest:
      required:
        - name
      type: object
      properties:
        name:
          type: string
          description: 课程名称
        code:
          type: string
          description: 课程编码
        description:
          type: string
          description: 描述
        coverUrl:
          type: string
          description: 封面URL
        coverImagePath:
          type: string
          description: 封面图片路径
        category:
          type: string
          description: 分类
        ageRange:
          type: string
          description: 年龄段
        difficultyLevel:
          type: string
          description: 难度等级
        durationMinutes:
          type: integer
          description: 时长（分钟）
          format: int32
        objectives:
          type: string
          description: 教学目标
        coreContent:
          type: string
          description: 核心内容
        introSummary:
          type: string
          description: 课程摘要
        introHighlights:
          type: string
          description: 课程亮点
        introGoals:
          type: string
          description: 课程目标
        introSchedule:
          type: string
          description: 内容安排
        introKeyPoints:
          type: string
          description: 重点难点
        introMethods:
          type: string
          description: 教学方法
        introEvaluation:
          type: string
          description: 评估方法
        introNotes:
          type: string
          description: 注意事项
        scheduleRefData:
          type: string
          description: 课表参考数据（JSON）
        environmentConstruction:
          type: string
          description: 环境创设内容
        themeId:
          type: integer
          description: 主题ID
          format: int64
        pictureBookName:
          type: string
          description: 绘本名称
        ebookPaths:
          type: string
          description: 电子书路径（JSON数组）
        audioPaths:
          type: string
          description: 音频路径（JSON数组）
        videoPaths:
          type: string
          description: 视频路径（JSON数组）
        otherResources:
          type: string
          description: 其他资源（JSON数组）
        pptPath:
          type: string
          description: PPT文件路径
        pptName:
          type: string
          description: PPT文件名
        posterPaths:
          type: string
          description: 海报路径（JSON数组）
        tools:
          type: string
          description: 教具（JSON数组）
        studentMaterials:
          type: string
          description: 学生材料
        lessonPlanData:
          type: string
          description: 教案数据（JSON）
        activitiesData:
          type: string
          description: 活动数据（JSON）
        assessmentData:
          type: string
          description: 评估数据（JSON）
        gradeTags:
          type: string
          description: 年级标签（JSON数组）
        domainTags:
          type: string
          description: 领域标签（JSON数组）
        hasCollectiveLesson:
          type: boolean
          description: 是否有集体课
      description: 课程创建请求
    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'
    PageResultTaskCompletion:
      type: object
      properties:
        total:
          type: integer
          format: int64
        pageSize:
          type: integer
          format: int64
        items:
          type: array
          items:
            $ref: '#/components/schemas/TaskCompletion'
        page:
          type: integer
          format: int64
        totalPages:
          type: integer
          format: int64
    ResultPageResultTaskCompletion:
      type: object
      properties:
        code:
          type: integer
          format: int32
        message:
          type: string
        data:
          $ref: '#/components/schemas/PageResultTaskCompletion'
    PageResultTaskTemplate:
      type: object
      properties:
        total:
          type: integer
          format: int64
        pageSize:
          type: integer
          format: int64
        items:
          type: array
          items:
            $ref: '#/components/schemas/TaskTemplate'
        page:
          type: integer
          format: int64
        totalPages:
          type: integer
          format: int64
    ResultPageResultTaskTemplate:
      type: object
      properties:
        code:
          type: integer
          format: int32
        message:
          type: string
        data:
          $ref: '#/components/schemas/PageResultTaskTemplate'
    ResultListMapStringObject:
      type: object
      properties:
        code:
          type: integer
          format: int32
        message:
          type: string
        data:
          type: array
          items:
            type: object
            additionalProperties:
              type: object
    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'
    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'
    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: 用户ID
          format: int64
        username:
          type: string
          description: 用户名
        name:
          type: string
          description: 用户姓名
        email:
          type: string
          description: 邮箱
        phone:
          type: string
          description: 电话
        avatarUrl:
          type: string
          description: 头像URL
        role:
          type: string
          description: 用户角色
        tenantId:
          type: integer
          description: 租户ID
          format: int64
      description: 用户信息响应
    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: 租户ID
          format: int64
        name:
          type: string
          description: 租户名称
        loginAccount:
          type: string
          description: 登录账号（租户编码）
        contactPerson:
          type: string
          description: 联系人
        contactPhone:
          type: string
          description: 联系电话
        contactEmail:
          type: string
          description: 联系邮箱
        address:
          type: string
          description: 地址
        logoUrl:
          type: string
          description: Logo URL
        status:
          type: string
          description: 状态
        expireDate:
          type: string
          description: 过期日期
          format: date-time
        studentQuota:
          type: integer
          description: 最大学生数 / 学生配额
          format: int32
        teacherQuota:
          type: integer
          description: 最大教师数 / 教师配额
          format: int32
        createdAt:
          type: string
          description: 创建时间
          format: date-time
      description: 租户响应
    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: []
