Atribuir por hora

Atribui um operador ao turno que a máquina machineId estava a executar em start, a partir de start. Use-o para registar quem operou uma máquina a posteriori, por exemplo um dia depois a partir de um sistema de planeamento, quando sabe a máquina e a hora mas não o ID do turno (GET /v1/shifts lista os IDs). Para um turno em curso num terminal de fábrica, POST /v1/realtime/{machine_id}/operator é a chamada mais curta.

Como as atribuições de operador se somam. Cada turno mantém uma cronologia de quem operou a máquina. Uma atribuição significa "a partir de start, este operador opera a máquina": dura até ao fim do turno, ou até à atribuição seguinte.

  • Primeira atribuição. Se o turno ainda não tiver ninguém atribuído, o operador cobre o turno completo, desde o seu primeiro minuto, mesmo quando start é posterior.
  • Atribuições posteriores. Cada uma divide a cronologia em start: quem tinha a máquina mantém-na até start, e o novo operador assume-a de start até ao fim do turno.
  • A ordem importa. Envie as atribuições por ordem cronológica. Um start anterior à última mudança do turno é rejeitado com 400, por isso depois não é possível inserir um operador a meio. Um start igual à última mudança substitui o operador que assumiu a máquina nesse momento.
  • As repetições são seguras. Enviar a mesma atribuição outra vez não altera nada.
  • start é arredondado para baixo ao minuto.

Por exemplo, para um turno Morning das 06:00 às 14:00 ainda sem ninguém atribuído:

PedidoCronologia depois dele
operador 1063 a partir das 10:001063 06:00–14:00 (a primeira atribuição cobre o turno completo)
operador 2071 a partir das 10:001063 06:00–10:00, 2071 10:00–14:00
operador 3300 a partir das 12:001063 06:00–10:00, 2071 10:00–12:00, 3300 12:00–14:00
operador 4410 a partir das 08:00Rejeitado com 400: 08:00 é antes da última mudança, às 12:00

Para registar um turno que teve vários operadores, envie o primeiro a partir do início do turno e depois os restantes pela ordem em que assumiram a máquina.

As métricas de operador do turno são recalculadas em segundo plano, por isso os relatórios podem demorar um momento a mostrar a alteração.

Erros:

  • 400: nenhum turno corresponde, ou start está fora do turno, no futuro, ou antes da última mudança de operador do turno.
  • 403: o turno tem produção marcada como revista, o que o bloqueia.
  • 404: o operador não existe na sua empresa.

Corpo do pedido

application/json

Definições de TypeScript

Utilize o tipo request body em TypeScript.

Corpo da resposta

application/json

application/json

Experimente em direto
POST
/v1/shifts/operator

Este endpoint requer autenticação. Cole um token na secção Autorização, mais abaixo.

curl -X POST "https://example.com/v1/shifts/operator" \  -H "Content-Type: application/json" \  -d '{    "machineId": 12,    "operatorId": 1063,    "start": "2026-10-12T10:00:00Z"  }'
{  "shiftId": 48213,  "machineId": 12,  "operatorId": 1063,  "start": "2026-10-12T10:00:00Z"}

Definir objetivos de turnos PUT

Define o objetivo de produção de turnos existentes, para dias futuros ou passados. O corpo é um **array** JSON de até 1000 linhas, por isso um plano completo (ou a sua exportação para CSV) cabe numa única chamada. Cada linha indica um turno pela sua máquina (`uuid` ou `name`), pela data (`date`) em que começa no fuso horário da empresa, e pelo seu nome (`title`, por exemplo `Morning`). Enviar os mesmos valores outra vez não causa problemas: o objetivo é substituído, não somado. Cada linha é devolvida com um `status`, e só as linhas `updated` alteraram alguma coisa: * `updated`: o objetivo do turno passa a ser `targetQuantity`. * `machineNotFound` / `ambiguousMachine`: nenhuma máquina, ou mais do que uma, corresponde a `machine`. * `shiftNotFound` / `ambiguousShift`: a máquina não tem nenhum turno, ou tem mais do que um, com esse nome que comece nessa data. * `duplicateShift`: outra linha do mesmo pedido aponta para o mesmo turno, por isso nenhuma das duas foi aplicada. Os objetivos são lidos em direto do turno, por isso as vistas de tempo real e de turnos mostram o novo valor de imediato. Nada é recalculado: o objetivo não entra no cálculo do OEE.

Atribuir operador ao turno POST

Atribui um operador a um turno pelo seu ID (o que é devolvido por `GET /v1/shifts`), mesmo em turnos que já terminaram. Sem `start`, o operador assume a máquina desde o início do turno. **Como as atribuições de operador se somam.** Cada turno mantém uma cronologia de quem operou a máquina. Uma atribuição significa "a partir de `start`, este operador opera a máquina": dura até ao fim do turno, ou até à atribuição seguinte. * **Primeira atribuição.** Se o turno ainda não tiver ninguém atribuído, o operador cobre o **turno completo**, desde o seu primeiro minuto, mesmo quando `start` é posterior. * **Atribuições posteriores.** Cada uma divide a cronologia em `start`: quem tinha a máquina mantém-na até `start`, e o novo operador assume-a de `start` até ao fim do turno. * **A ordem importa.** Envie as atribuições por ordem cronológica. Um `start` anterior à última mudança do turno é rejeitado com `400`, por isso depois não é possível inserir um operador a meio. Um `start` igual à última mudança substitui o operador que assumiu a máquina nesse momento. * **As repetições são seguras.** Enviar a mesma atribuição outra vez não altera nada. * `start` é arredondado para baixo ao minuto. Por exemplo, para um turno `Morning` das 06:00 às 14:00 ainda sem ninguém atribuído: | Pedido | Cronologia depois dele | | --- | --- | | operador 1063 a partir das 10:00 | 1063 06:00–14:00 (a primeira atribuição cobre o turno completo) | | operador 2071 a partir das 10:00 | 1063 06:00–10:00, 2071 10:00–14:00 | | operador 3300 a partir das 12:00 | 1063 06:00–10:00, 2071 10:00–12:00, 3300 12:00–14:00 | | operador 4410 a partir das 08:00 | Rejeitado com `400`: 08:00 é antes da última mudança, às 12:00 | Para registar um turno que teve vários operadores, envie o primeiro a partir do início do turno e depois os restantes pela ordem em que assumiram a máquina. As métricas de operador do turno são recalculadas em segundo plano, por isso os relatórios podem demorar um momento a mostrar a alteração. Erros: * `400`: nenhum turno corresponde, ou `start` está fora do turno, no futuro, ou antes da última mudança de operador do turno. * `403`: o turno tem produção marcada como revista, o que o bloqueia. * `404`: o operador não existe na sua empresa.