Horarios (Schedules)
Routes
Method |
URI |
Action |
GET |
/schedules |
index |
GET |
/schedules/{id} |
show |
POST |
/schedules |
store |
PATCH |
/schedules/{id} |
update |
DELETE |
/schedules/{id} |
delete |
POST |
/schedules/bulk-store |
store |
GET |
/classrooms/{id}/schedules |
index |
GET |
/teachers/{id}/schedules |
index |
GET |
/sections/{id}/schedules |
index |
Model Attributes
{
"id": 1,
"day": 1, // 1 al 7, reprensenta un dia de la semana. 1 Seria lunes
"course_section_id": 1, // ID de materia_seccion
"specialization_id": 1, // ID de especialidad, este se auto asigna desde course_section (no modificable)
"semester_id": 1, // ID de semestre, este se auto asigna desde course_section (no modificable)
"classroom_id": 1, // ID de Aula
"class_hour_id": 1, // ID de Horario, debe ser del mismo periodo que materia_seccion
"period_id": 3, // ID de Periodo, se toma de materia_seccion
"updated_at": "2020-05-01 22:55:34",
"created_at": "2020-05-01 22:55:34"
}
Relations
- Pertenece a una Materia_Seccion
BelongsTo courseSection
- Pertenece a una Especialidad
BelongsTo specialization
- Pertenece a un semestre
BelongsTo semester
- Pertenece a una Aula
BelongsTo classroom
- Pertenece a una Hora de Clase
BelongsTo classHour
- Pertenece a una periodo
BelongsTo period
{primary} Al obtener un modelo con el metodo show
o index
se puede utilizar un query string para cargar las relaciones
?with=relation
o ?with=relationA,relationB
Index
Route GET /schedules
Policies
Filter |
Description |
day=int |
Obtiene los horarios de un dia en especifico. > , < , >= , <= (se debe colocar al inicio del value) |
course=id |
Obtiene los horarios de una materia |
section=id |
Obtiene los horarios de una sección |
specialization=id |
Obtiene los horarios de una specialidad |
semester=id |
Obtiene los horarios de un semestre |
classroom=id |
Obtiene los horarios de una aula |
class_hour=id |
Obtiene los horarios de una hora de clase |
period=id |
Obtiene los horarios de un periodo |
Response 200
[
{
// Schedule
}
]
Store
Consideraciones
- No se puede crear un horario en un mismo dia, en una misma aula, en la misma hora de clase (por periodo)
- Una materia_seccion no puede ser asignado a otra aula en el mismo dia, en la misma hora de clase (por periodo)
- Las horas de clase deben pertencer al mismo periodo que materia_seccion
Route POST /schedules
Policies
admin
coordinador
que coordine la especialidad de la materia_seccion especificada
Request Body
{
"day": "required|integer|in:1,2,3,4,5,6,7",
"course_section_id": "required|integer|exists:course_section,id",
"classroom_id": "required|integer|exists:classrooms,id",
"class_hour_id": "required|integer|exists:class_hours,id"
}
Response 201
{
// Schedule
}
Update
Route PATCH /schedules/{id}
Policies
admin
coordinador
que coordine la especialidad de la materia_seccion especificada
Request Body
{
"day": "integer|in:1,2,3,4,5,6,7",
"classroom_id": "integer|exists:classrooms,id",
"class_hour_id": "integer|exists:class_hours,id"
}
Response 200
{
// Schedule
}
Delete
Route DELETE /schedules/{id}
Policies
admin
coordinador
que coordine la especialidad de la materia_seccion especificada
Response 204
No Content
Bulk Store
Consideraciones
- No se puede crear un horario en un mismo dia, en una misma aula, en la misma hora de clase (por periodo)
- Una materia_seccion no puede ser asignado a otra aula en el mismo dia, en la misma hora de clase (por periodo)
day
no puede estar duplicado
- Las horas de clase deben pertencer al mismo periodo que materia_seccion
Route POST /schedules/bulk-store
Policies
admin
coordinador
que coordine la especialidad de la materia_seccion especificada
Request Body
{
"course_section_id": "required|integer|exists:course_section,id",
"classroom_id": "required|integer|exists:classrooms,id",
"schedules": [ // required|array|min:1
{
"day": 1, // required|integer|in:1,2,3,4,5,6,7
"class_hours_ids": [ // required|array|min:1
1 // required|integer
]
}
]
}
Response 201
[
{
// Schedule
}
]
Horarios de una aula
Route GET /classrooms/{id}/schedules
Policies
Response 200
[
{
// Schedule
}
]
Horarios de un profesor
Route GET /teachers/{id}/schedules
Policies
admins
coordinador
que supervise a ese profesor
profesor
relacionado a ese profesor
Response 200
Horarios de un estudiante
Route GET /students/{id}/schedules
Policies
Response 200
Horarios de un seccion
Route GET /sections/{id}/schedules
Policies
admins
coordinador
que coordine la especialidad de esa sección
Response 200