Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions pages/v2/openapi-corridas.json
Original file line number Diff line number Diff line change
Expand Up @@ -3588,7 +3588,7 @@
"/corridas/{id}/cancelar": {
"post": {
"summary": "Cancelar corrida",
"description": "Cancela uma corrida existente pelo motivo informado.",
"description": "Cancela uma corrida existente pelo motivo informado.\n\nA corrida **não pode** estar em um status final: `C` (Cancelada), `F` (Finalizada) ou `N` (Não atendida). Nesses casos o cancelamento é rejeitado.",
"parameters": [
{
"name": "id",
Expand All @@ -3612,7 +3612,8 @@
"properties": {
"motivo_id": {
"type": "integer",
"description": "Motivo de cancelamento."
"description": "ID do motivo do cancelamento:\n- `1`: Tempo de espera\n- `2`: Mudança de planos\n- `3`: Acidente/veículo quebrado\n- `4`: Difícil acesso\n- `5`: Passageiro não entrou\n- `6`: Outros\n- `7`: Endereço errado\n- `8`: Corrida em andamento há mais de 24 horas\n- `9`: Falha no sistema\n- `10`: Outros casos\n- `11`: Rejeitada\n- `12`: Motorista não está vindo\n- `13`: Transação rejeitada\n- `16`: Despachado na plataforma parceira\n- `17`: Cancelado na plataforma parceira\n- `18`: Não foi possível realizar o pagamento\n- `19`: Pagamento não realizado",

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sugestão (nit) — a lista de motivos em /corridas/{id}/cancelar inclui IDs como 11 (Rejeitada), 13 (Transação rejeitada), 16-19 (plataforma parceira / falhas de pagamento) que parecem motivos aplicados automaticamente pelo sistema (semelhante ao que a doc de entregas descreve para cancelamento pela central). Se o consumidor externo desse endpoint não pode enviar esses IDs (só o sistema os usa internamente), valeria filtrar o enum apenas para os motivos que o cliente pode legitimamente informar — ou explicitar na descrição quais são "informáveis pelo cliente" vs. "aplicados pelo sistema". Do jeito atual, o enum sugere que qualquer um dos 17 valores é aceitável no request, o que pode induzir erro.

"enum": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16, 17, 18, 19]
}
}
},
Expand Down
6 changes: 4 additions & 2 deletions pages/v2/openapi-entregas.json
Original file line number Diff line number Diff line change
Expand Up @@ -4163,7 +4163,7 @@
"/entregas/{id}/cancelar": {
"post": {
"summary": "Cancelar entrega",
"description": "Cancela a solicitação de entrega, modificando seu status para `C`. A solicitação não pode ter sido finalizada, cancelada ou não atendida anteriormente.",
"description": "Cancela a solicitação de entrega, modificando seu status para `C`. A solicitação não pode ter sido finalizada, cancelada ou não atendida anteriormente (status `F`, `C` ou `N`).\n\n**O motivo aceito depende do status atual da entrega e de quem cancela.**\n\n**Cancelamento pela empresa:**\n\n| Status atual | Motivo aceito |\n|---|---|\n| `D` Distribuindo, `T` Redistribuindo, `P` Pendente, `G` Aguardando aceite (em despacho) | Somente `10` (Outros casos) |\n| `A` Aceita, `E` Em andamento, `S` Em espera (com condutor) | Somente motivos de empresa: `12` (Motorista não está vindo) |\n\nEnviar um motivo fora do permitido para o status atual retorna erro `102` (motivo inválido para a empresa). Um `motivo_id` inexistente retorna erro `26` (motivo de cancelamento não encontrado).\n\n**Cancelamento pela central:** quando a entrega é cancelada pela central, o motivo é definido automaticamente conforme o status, não sendo necessário informar `motivo_id`:\n\n| Status atual | Motivo aplicado |\n|---|---|\n| `L` Aguardando liberação | `11` (Rejeitada) |\n| `D` Distribuindo, `T` Redistribuindo, `G` Aguardando aceite, `P` Pendente, `A` Aceita, `S` Em espera, `R` Aguardando pagamento | `10` (Outros casos) |",
"parameters": [
{
"name": "id",
Expand All @@ -4183,7 +4183,9 @@
"type": "object",
"properties": {
"motivo_id": {
"type": "integer"
"type": "integer",
"description": "ID do motivo do cancelamento. O motivo permitido varia conforme o status atual da entrega (ver descrição do endpoint):\n- `10`: Outros casos (único aceito enquanto a entrega está em despacho)\n- `12`: Motorista não está vindo (motivo de empresa)",
"enum": [10, 12]

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sugestão (nit) — a descrição do endpoint menciona que o motivo 10 é o único aceito enquanto a entrega está em despacho e 12 é motivo de empresa quando há condutor, mas o enum: [10, 12] no schema não distingue os contextos. Considere adicionar exemplo (example: 10) e/ou reforçar no description do campo que enviar 12 fora do contexto correto retorna erro 102, alinhando o schema com o texto explicativo do endpoint.

}
}
}
Expand Down