# 教室管理 API ## 1. 获取教室列表(登录后) ```bash GET /api/v1/classrooms ``` Query: - building - capacity_min - status - page, page_size(兼容 size) ## 2. 教室详情 (登录用户) ```bash GET /api/v1/classrooms/{id} ``` ## 3. 创建教室(superadmin) ```bash POST /api/v1/classrooms ``` ## 4. 更新教室信息(superadmin / assistant) ```bash PUT /api/v1/classrooms/{id} ``` ## 5. 删除教室(superadmin) ```bash DELETE /api/v1/classrooms/{id} ``` ## 6. 导入教室 Excel(superadmin) ```bash POST /api/v1/classrooms/import Content-Type: multipart/form-data ``` ## 7. 教室课表 获取某一教室在指定日期范围内的占用时间段。 课表由 **已批准(approved)** 的人工借用记录(`source_type=manual`)与课程表(`CourseSession`,通常由课程导入生成)共同生成,并按照时间顺序返回一组时间块。空闲时段也会以 `occupied=false` 的块返回,便于前端直接绘制时间轴。 ```bash GET /api/v1/classrooms/{id}/schedule ``` 说明:需登录后访问。 Query: - start_date(yyyy-mm-dd) - end_date(yyyy-mm-dd) Response ```json { "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. 获取同时段空闲教室 紧急换教室用,需登录后访问。 ```bash GET /api/v1/classrooms/free ``` Query: - start_time - end_time