教室管理 API

1. 获取教室列表(登录后)

GET /api/v1/classrooms

Query:

  • building

  • capacity_min

  • status

  • page, page_size(兼容 size)

2. 教室详情

(登录用户)

GET /api/v1/classrooms/{id}

3. 创建教室(superadmin)

POST /api/v1/classrooms

4. 更新教室信息(superadmin / assistant)

PUT /api/v1/classrooms/{id}

5. 删除教室(superadmin)

DELETE /api/v1/classrooms/{id}

6. 导入教室 Excel(superadmin)

POST /api/v1/classrooms/import
Content-Type: multipart/form-data

7. 教室课表

获取某一教室在指定日期范围内的占用时间段。

课表由 已批准(approved) 的人工借用记录(source_type=manual)与课程表(CourseSession,通常由课程导入生成)共同生成,并按照时间顺序返回一组时间块。空闲时段也会以 occupied=false 的块返回,便于前端直接绘制时间轴。

GET /api/v1/classrooms/{id}/schedule

说明:需登录后访问。

Query:

  • start_date(yyyy-mm-dd)

  • end_date(yyyy-mm-dd)

Response

{
  "code": 0,
  "message": "success",
  "data": [
    {
      "start_time": "2025-04-12T00:00:00+08:00",
      "end_time": "2025-04-12T08:00:00+08:00",
      "occupied": false,
      "reason": null
    },
    {
      "start_time": "2025-04-12T08:00:00+08:00",
      "end_time": "2025-04-12T09:40:00+08:00",
      "occupied": true,
      "reason": "Calculus"
    }
  ]
}

8. 获取同时段空闲教室

紧急换教室用,需登录后访问。

GET /api/v1/classrooms/free

Query:

  • start_time

  • end_time