-
Notifications
You must be signed in to change notification settings - Fork 0
Description
Contrato REST API - Alocação de Horários na Agenda
POST /schedules
Criar horário de disponibilidade na agenda do intérprete.
- day: monday, tuesday, wednesday, thursday, friday, saturday, sunday
Request Headers:
Authorization: Bearer {access_token}
Request Body:
{
"interpreter_id": {UUID},
"day": {ENUM},
"start_time": {TIME},
"end_time": {TIME}
}
Responses:
201 Created
- Horário criado com sucesso{ "success": true, "message": "Horário de disponibilidade criado com sucesso", "data": { "schedule": { "id": "8f7c76bf-a6e4-4d18-8b06-9d7298c647c0", "interpreter_id": "b839baf2-696b-4a17-aa7d-7f72b32b9837", "day": "monday", "start_time": "08:00", "end_time": "18:00" } } }
400 Bad Request
- Dados inválidos ou horário conflitante401 Unauthorized
- Não autenticado403 Forbidden
- Sem permissão para este intérprete404 Not Found
- Intérprete não encontrado422 Unprocessable Entity
- Validação falhou
GET /schedules?interpreterId={InterpreterId}&status={status}&day={day}&dateFrom={DateFrom}&dateTo={DateTo}
status deve ser um Enum:
Listar todos os horários da agenda do intérprete.
Request Headers:
Authorization: Bearer {access_token}
Query Parameters:
- interpreterId: Id do Interprete
Tipos de Status
-
available: Disponível para agendamentos. Quando não há agendamento ativo em Appointment.
-
busy: Ocupado (não disponível). Quando há agendamento ativo em Appointment.
-
day
(optional): Filtrar por dia da semana -
startTime
(optional): Data inicial para horários específicos -
endTime
(optional): Data final para horários específicos
Responses:
200 OK
- Lista de horários retornada{ "success": true, "message": "Horários obtidos com sucesso", "data": { "schedules": [ { "id": "8f7c76bf-a6e4-4d18-8b06-9d7298c647c0", "interpreter_id": "b839baf2-696b-4a17-aa7d-7f72b32b9837", "day": "monday", "start_time": "08:00", "end_time": "18:00" }, { "id": "cf249c2a-6b99-4d79-aabc-4a92acc913aa", "interpreter_id": "d6438cb7-4cc2-449a-98ce-c1906e3bd2dd", "day": "tuesday", "start_time": "08:00", "end_time": "18:00" } ] } }
401 Unauthorized
- Não autenticado403 Forbidden
- Sem permissão404 Not Found
- Intérprete não encontrado
GET /schedules/{scheduleId}
Obter detalhes de um horário específico.
Request Headers:
Authorization: Bearer {access_token}
Responses:
200 OK
- Detalhes do horário retornados{ "success": true, "message": "Detalhes do horário obtidos com sucesso", "data": { "schedule": { "id": "8f7c76bf-a6e4-4d18-8b06-9d7298c647c0", "interpreter_id": "b839baf2-696b-4a17-aa7d-7f72b32b9837", "day": "monday", "start_time": "08:00", "end_time": "18:00", } } }
401 Unauthorized
- Não autenticado403 Forbidden
- Sem permissão404 Not Found
- Horário não encontrado
PATCH/schedules/{scheduleId}
Atualizar horário de disponibilidade.
Request Headers:
Authorization: Bearer {access_token}
Request Body:
{
"day": "tuesday",
"start_time": "09:00",
"end_time": "17:00"
}
Responses:
200 OK
- Horário atualizado com sucesso{ "success": true, "message": "Horário atualizado com sucesso", "data": { "schedule": { "id": "8f7c76bf-a6e4-4d18-8b06-9d7298c647c0", "interpreter_id": "b839baf2-696b-4a17-aa7d-7f72b32b9837", "day": "tuesday", "start_time": "09:00", "end_time": "17:00" } } }
400 Bad Request
- Dados inválidos401 Unauthorized
- Não autenticado403 Forbidden
- Sem permissão ou horário com agendamentos404 Not Found
- Horário não encontrado
DELETE /schedules/{scheduleId}
Excluir horário de disponibilidade.
Request Headers:
Authorization: Bearer {access_token}
Responses:
204 No Content
- Horário excluído com sucesso401 Unauthorized
- Não autenticado403 Forbidden
- Sem permissão404 Not Found
- Horário não encontrado
Metadata
Metadata
Assignees
Labels
featureNew feature or requestNew feature or request