DriveB

31. Solicitação de Agendamento

Retorna os dados completos de uma solicitação de agendamento específica, incluindo informações do veículo, oficina, motorista, status do serviço, previsões, faturamento e demais dados relacionados ao atendimento.


Consultar entidade específica por Id

Retorna os dados completos de uma solicitação de agendamento específica, incluindo informações do veículo, oficina, motorista, status do serviço, previsões, faturamento e demais dados relacionados ao atendimento.

Endpoint: /api/scheduling-requests/{id}

Método: GET

Parâmetros:

  • id (path, obrigatório, integer) — Identificador da entidade.

Códigos de resposta:

  • 200 — Return specific entity.
  • 403 — Unauthorized.
  • 500 — Unknown Server Error.

Response body:

{
"id": 0,
"requestId": "string",
"stepStatus": "string",
"vehicleId": 0,
"clientId": 0,
"parentId": 0,
"budgetId": 0,
"parentServiceRequestId": 0,
"parentRequestId": "string",
"currentKm": 0,
"correctiveDescription": "string",
"tiresDescription": "string",
"tiresAmount": 0,
"observations": "string",
"observationRemoveVehicle": "string",
"serviceType": "string",
"status": "string",
"displayConfirmedScheduling": "string",
"carWorkshopName": "string",
"carWorkshopId": 0,
"carWorkshopOriginId": 0,
"carWorkshopCityName": "string",
"preventiveReviewKm": 0,
"modifiedAt": "2024-01-01T00:00:00Z",
"modifiedBy": "string",
"serviceConfirmedDrive": true,
"isEmptyBudgetFlow": true,
"isComplementary": true,
"reasonCancel": "string",
"reasonsToCancel": [
"REASON_VEHICLE_NO_SHOW_FOR_APPOINTMENT"
],
"displayReasonCancel": "string",
"observationCancel": "string",
"date": "2024-01-01T00:00:00Z",
"period": "string",
"serviceRequestRatingId": 0,
"serviceRequestRating": {
"id": 0,
"createdAt": "2024-01-01T00:00:00Z",
"username": "string",
"carWorkshopAttendanceRating": 0,
"carWorkshopCleaningRating": 0,
"serviceRating": 0,
"platformRating": 0,
"observation": "string"
},
"completionPrediction": "2024-01-01T00:00:00Z",
"completionPredictionPeriod": "string",
"displayCompletionPredictionPeriod": "string",
"isPreApproved": true,
"isPreApprovedCarworkshop": true,
"checkinChecklistFilled": true,
"checkoutChecklistFilled": true,
"carWorkshopKm": 0,
"periodLimitCancel": "2024-01-01T00:00:00Z",
"vehicleArrivalConfirmationDate": "2024-01-01T00:00:00Z",
"vehicleArrivalConfirmationDateByUser": "2024-01-01T00:00:00Z",
"drivers": [
{
"id": 0,
"serviceRequestId": 0,
"driverId": 0,
"name": "string",
"telephoneNumber": "string",
"profilePicture": "string"
}
],
"serviceStartedAt": "2024-01-01T00:00:00Z",
"endedIn": "2024-01-01T00:00:00Z",
"vehicleArrived": true,
"isPuc": true,
"hadIntentionOnComplementaryService": true,
"workshopQuotationPrevisionDate": "2024-01-01T00:00:00Z",
"workshopQuotationPrevisionPeriod": "MORNING",
"workshopCompletionPrevisionDate": "2024-01-01T00:00:00Z",
"workshopCompletionPrevisionPeriod": "MORNING",
"vehicleAttendanceWorkshopStatus": "OUTSIDE_WORKSHOP",
"confirmedUnattendanceDate": "2024-01-01T00:00:00Z",
"billingCheckNfByBotPart": true,
"billingCheckNfByBotService": true,
"timeService": "2024-01-01T00:00:00Z",
"orderIdPart": "string",
"orderIdService": "string",
"serviceRecommendationPlans": [
{
"id": 0,
"nextServicePredictionId": 0,
"key": "string",
"displayValue": "string",
"enabled": true,
"mandatoryFields": "string",
"timeToService": {
"value": null,
"unit": null
},
"nextServiceStatus": "SCHEDULED",
"damageReports": [],
"seasonalNeeds": [],
"oemServices": [],
"isSelected": true
}
],
"createdAt": "2024-01-01T00:00:00Z",
"serviceInvoiceForCustomer": true,
"billingCorporateNameByPart": "string",
"billingTaxIdentifierByPart": "string",
"billingAddressByPart": "string",
"billingCorporateNameByService": "string",
"billingTaxIdentifierByService": "string",
"billingAddressByService": "string",
"billingCutOffDay": 0,
"billingRulesByCarWorkShop": "string",
"serverUrl": "string",
"categoryVehicleAttendanceEvidence": "MANDATORY",
"categoryServiceWearEvidence": "MANDATORY",
"categoryServiceFinishedEvidence": "MANDATORY",
"orderId": "string",
"fee": true,
"preventive": true,
"isFee": true
}

Atualizar entidade específica

Atualiza os dados de uma solicitação de agendamento existente.

Endpoint: /api/scheduling-requests/{id}

Método: PUT

Parâmetros:

  • id (path, obrigatório, integer) — Identificador da entidade.

Request body:

{
"...": "Mesmo payload utilizado no endpoint 'Consultar entidade específica por Id'."
}

Códigos de resposta:

  • 200 — Update specific entity.
  • 403 — Unauthorized.
  • 500 — Unknown Server Error.

Response body:

{
"...": "Mesmo objeto retornado pelo endpoint GET /api/scheduling-requests/{id}."
}

Consultar histórico de status do serviço

Retorna todos os status percorridos pela solicitação de agendamento até o status atual.

Endpoint: /api/scheduling-requests/{id}/service-status

Método: GET

Parâmetros:

  • id (path, obrigatório, integer) — Identificador da entidade.

Códigos de resposta:

  • 200 — Service Status.
  • 400 — Bad Request.
  • 401 — Unauthorized.
  • 403 — Forbidden.
  • 500 — Unknown Server Error.

Response body:

[
{
"id": 0,
"order": 0,
"status": "string",
"displayStatus": "string",
"stepStatus": "string",
"displayStepStatus": "string",
"budgetStatus": "string",
"displayBudgetStatus": "string"
}
]

Atualizar status do serviço

Atualiza o status de uma solicitação de agendamento.

Endpoint: /api/scheduling-requests/{id}/service-status

Método: PUT

Parâmetros:

  • id (path, obrigatório, integer) — Identificador da entidade.

Request body:

{
"id": 0,
"order": 0,
"status": "string",
"displayStatus": "string",
"stepStatus": "string",
"displayStepStatus": "string",
"budgetStatus": "string",
"displayBudgetStatus": "string"
}

Códigos de resposta:

  • 200 — Update SchedulingServiceStatus entity.
  • 400 — Bad Request.
  • 401 — Unauthorized.
  • 403 — Forbidden.
  • 500 — Unknown Server Error.

Response body:

{
"message": "string",
"payLoad": {
"...": "Objeto SchedulingRequest atualizado."
},
"warning": true
}

Consultar histórico de status de cancelamento

Retorna todos os status de cancelamento percorridos pela solicitação de agendamento até o status atual.

Endpoint: /api/scheduling-requests/{id}/service-status-cancel

Método: GET

Parâmetros:

  • id (path, obrigatório, integer) — Identificador da entidade.

Códigos de resposta:

  • 200 — Service Status.
  • 400 — Bad Request.
  • 401 — Unauthorized.
  • 403 — Forbidden.
  • 500 — Unknown Server Error.

Response body:

[
{
"id": 0,
"order": 0,
"status": "string",
"displayStatus": "string",
"stepStatus": "string",
"displayStepStatus": "string",
"budgetStatus": "string",
"displayBudgetStatus": "string"
}
]

Atualizar status de cancelamento

Atualiza o status de cancelamento de uma solicitação de agendamento.

Endpoint: /api/scheduling-requests/{id}/service-status-cancel

Método: PUT

Parâmetros:

  • id (path, obrigatório, integer) — Identificador da entidade.

Request body:

{
"id": 0,
"order": 0,
"status": "string",
"displayStatus": "string",
"stepStatus": "string",
"displayStepStatus": "string",
"budgetStatus": "string",
"displayBudgetStatus": "string"
}

Response body:

{
"message": "string",
"payLoad": {
"...": "Objeto SchedulingRequest atualizado."
},
"warning": true
}

Atualizar Order ID da Ordem de Serviço

Atualiza os identificadores das ordens de serviço referentes às notas de peças e serviços de uma solicitação de agendamento.

Endpoint: /api/scheduling-requests/{id}/service-request-order-id

Método: PUT

Parâmetros:

  • id (path, obrigatório, integer) — Identificador da entidade.

Request body:

{
"orderIdPart": "string",
"orderIdService": "string"
}

Response body:

{
"message": "string",
"payLoad": {
"...": "Objeto SchedulingRequest atualizado."
},
"warning": true
}

Criar solicitação de agendamento parcial

Cria uma solicitação de agendamento parcial, permitindo registrar informações iniciais do atendimento antes da conclusão do processo completo de agendamento.

Endpoint: /api/scheduling-requests/partial

Método: POST

Request body:

{
"...": "Mesmo objeto SchedulingRequest utilizado no endpoint 'Consultar entidade específica por Id'."
}

Response body:

{
"...": "Objeto SchedulingRequest criado."
}

Criar solicitação de agendamento

Cria uma nova solicitação de agendamento fora do fluxo padrão da plataforma.

Endpoint: /api/scheduling-requests/outside-request

Método: POST

Parâmetros:

  • Corpo da requisição não detalhado na documentação de origem.

Códigos de resposta:

  • 201 — Scheduling request created.
  • 400 — Bad Request.
  • 401 — Unauthorized.
  • 403 — Forbidden.
  • 500 — Unknown Server Error.

Importar solicitações de serviço

Importa solicitações de serviço a partir de um arquivo, realizando a validação das informações durante o processamento.

Endpoint: /api/scheduling-requests/import

Método: POST

Códigos de resposta:

  • 200 — Import service request from file.
  • 403 — Unauthorized.
  • 500 — Unknown Server Error.

Response body:

[
{
"linePosition": 0,
"rowValues": "string",
"errorMessage": "string"
}
]

Importar finalização de solicitações de serviço

Importa informações para finalizar solicitações de serviço em lote.

Endpoint: /api/scheduling-requests/import-finish

Método: POST

Request body:

{
"...": "Objeto SchedulingRequest criado."
}

Códigos de resposta:

  • 200 — Ok.
  • 403 — Unauthorized.
  • 500 — Unknown Server Error.

Response body:

{
"message": "string",
"payLoad": null,
"warning": true
}

Buscar todos os tipos de serviço

Retorna todos os tipos de serviço disponíveis para agendamento.

Endpoint: /api/scheduling-requests/service-types

Método: GET

Parâmetros:

  • Este endpoint não recebe parâmetros.

Códigos de resposta:

  • 200 — Service Types.
  • 403 — Unauthorized.
  • 500 — Unknown Server Error.

Response body:

[
{
"name": "string",
"value": "string"
}
]

Buscar todos os períodos disponíveis

Retorna todos os períodos disponíveis para agendamento.

Endpoint: /api/scheduling-requests/period-types

Método: GET

Parâmetros:

  • Este endpoint não recebe parâmetros.

Códigos de resposta:

  • 200 — Service Status.
  • 403 — Unauthorized.
  • 500 — Unknown Server Error.

Response body:

[
{
"name": "string",
"value": "string"
}
]

Consultar solicitação de agendamento pendente

Retorna uma solicitação de agendamento pendente, incluindo informações do veículo, oficina, motoristas e recomendações de serviço.

Endpoint: /api/scheduling-requests/pending/{id}

Método: GET

Parâmetros:

  • id (path, obrigatório, integer) — Identificador da entidade.

Códigos de resposta:

  • 201 — Partial scheduling request created.
  • 400 — Bad Request.
  • 401 — Unauthorized.
  • 403 — Forbidden.
  • 500 — Unknown Server Error.

Response body:

{
"...": "Objeto PendingSchedulingRequest."
}

Buscar frequência de manutenção

Retorna todas as frequências de manutenção (Km) para um determinado modelo e cliente.

Endpoint: /api/scheduling-requests/frequency/{modelId}/{clientId}

Método: GET

Parâmetros:

  • modelId (path, obrigatório, integer) — Identificador do modelo.
  • clientId (path, obrigatório, integer) — Identificador do cliente.

Códigos de resposta:

  • 200 — Find all frequency Km.
  • 403 — Unauthorized.
  • 500 — Unknown Server Error.

Response body:

[
0
]

Pesquisar solicitações de agendamento utilizando filtros

Retorna uma lista paginada de solicitações de agendamento de acordo com os filtros informados.

Endpoint: /api/scheduling-requests/filters

Método: GET

Parâmetros:

  • filterDTO (query, obrigatório) — Filtros utilizados na pesquisa das solicitações de agendamento.
  • page (query, obrigatório) — Informações de paginação.

Códigos de resposta:

  • 200 — Drivers.
  • 403 — Unauthorized.
  • 500 — Unknown Server Error.

Response body:

{
"totalElements": 0,
"totalPages": 0,
"size": 0,
"content": [
{
"id": 0,
"requestId": "string",
"vehicleDisplay": "string",
"serviceType": "string",
"displayConfirmedScheduling": "string",
"displayConfirmedRescheduling": "string",
"carWorkshopName": "string",
"status": "string",
"displayStatus": "string",
"stepStatus": "string",
"backofficePendency": true,
"date": "2024-01-01T00:00:00Z",
"period": "string",
"clientBlockName": "string",
"vehicleArrived": true,
"serviceConfirmedDrive": true,
"clientCanApproveBudget": true,
"vehicleAttendanceWorkshopStatus": "OUTSIDE_WORKSHOP",
"budgetsIds": [
0
],
"isEmpty": true,
"isNewPreventiveFlow": true,
"budgetStatus": "string",
"countWorkshopMaintenanceProposalsOnCounterProposal": 0,
"callToAction": "BACKOFFICE_PENDING_SCHEDULED"
}
],
"number": 0,
"sort": {
"empty": true,
"sorted": true,
"unsorted": true
},
"pageable": {
"offset": 0,
"sort": {
"empty": true,
"sorted": true,
"unsorted": true
},
"pageNumber": 0,
"unpaged": true,
"paged": true,
"pageSize": 0
},
"numberOfElements": 0,
"first": true,
"last": true,
"empty": true
}

Pesquisar solicitações de agendamento

Retorna uma lista paginada de solicitações de agendamento cadastradas na plataforma.

Endpoint: /api/scheduling-requests

Método: GET

Parâmetros:

  • filterDTO (query, obrigatório) — Filtros utilizados na pesquisa das solicitações de agendamento.
  • page (query, obrigatório) — Informações de paginação.

Códigos de resposta:

  • 200 — Service Requests.
  • 403 — Unauthorized.
  • 500 — Unknown Server Error.

Response body:

{
"totalElements": 0,
"totalPages": 0,
"size": 0,
"content": [
{
"id": 0,
"requestId": "string",
"vehicleDisplay": "string",
"serviceType": "string",
"displayConfirmedScheduling": "string",
"displayConfirmedRescheduling": "string",
"carWorkshopName": "string",
"status": "string",
"displayStatus": "string",
"stepStatus": "string",
"backofficePendency": true,
"date": "2024-01-01T00:00:00Z",
"period": "string",
"clientBlockName": "string",
"vehicleArrived": true,
"serviceConfirmedDrive": true,
"clientCanApproveBudget": true,
"vehicleAttendanceWorkshopStatus": "OUTSIDE_WORKSHOP",
"budgetsIds": [
0
],
"isEmpty": true,
"isNewPreventiveFlow": true,
"budgetStatus": "string",
"countWorkshopMaintenanceProposalsOnCounterProposal": 0,
"callToAction": "BACKOFFICE_PENDING_SCHEDULED"
}
],
"number": 0,
"sort": {
"empty": true,
"sorted": true,
"unsorted": true
},
"pageable": {
"offset": 0,
"sort": {
"empty": true,
"sorted": true,
"unsorted": true
},
"pageNumber": 0,
"unpaged": true,
"paged": true,
"pageSize": 0
},
"numberOfElements": 0,
"first": true,
"last": true,
"empty": true
}