{
  "ambiente": "prafrot",
  "label": "Prafrot (Prafrota)",
  "recursoBase": "/cadastro_frota",
  "rotas": [
    {
      "id": "cadastro_frota-listar",
      "recurso": "cadastro_frota",
      "operations": [
        {
          "method": "GET",
          "path": "/cadastro_frota/apresentar",
          "descricao": "Lista veículos cadastrados na frota",
          "responseShape": [
            { "field": "idveiculo_frota", "type": "number", "description": "ID do veículo" },
            { "field": "placa", "type": "string", "description": "Placa" },
            { "field": "modelo", "type": "string", "description": "Modelo" },
            { "field": "base", "type": "string", "description": "Unidade/Base" },
            { "field": "motorista", "type": "string", "description": "Motorista" },
            { "field": "status", "type": "string", "description": "Status" },
            { "field": "manutencao", "type": "string", "description": "Manutenção" },
            { "field": "atuacao", "type": "string", "description": "Atuação" },
            { "field": "proprietario", "type": "string", "description": "Proprietário" },
            { "field": "obs", "type": "string", "description": "Observações" }
          ],
          "suggestedColumns": [
            { "field": "placa", "header": "Placa", "width": "100px" },
            { "field": "modelo", "header": "Modelo", "width": "150px" },
            { "field": "base", "header": "Unidade", "width": "120px" },
            { "field": "motorista", "header": "Motorista", "width": "180px" },
            { "field": "status", "header": "Status", "width": "140px" }
          ],
          "filterDefs": [
            { "field": "placa", "label": "Placa", "type": "text" },
            { "field": "motorista", "label": "Motorista", "type": "text" },
            { "field": "base", "label": "Unidade", "type": "select" }
          ]
        },
        {
          "method": "GET",
          "path": "/cadastro_frota/:id",
          "descricao": "Detalhe de um veículo",
          "responseShape": [
            { "field": "idveiculo_frota", "type": "number", "description": "ID" },
            { "field": "placa", "type": "string", "description": "Placa" },
            { "field": "modelo", "type": "string", "description": "Modelo" },
            { "field": "chassi", "type": "string", "description": "Chassi" },
            { "field": "ano_fabricacao", "type": "number", "description": "Ano fabricação" }
          ]
        },
        {
          "method": "POST",
          "path": "/cadastro_frota",
          "descricao": "Criar novo veículo",
          "requestBody": [
            { "field": "placa", "type": "string", "required": true },
            { "field": "modelo", "type": "string", "required": true },
            { "field": "base", "type": "string", "required": false }
          ]
        },
        {
          "method": "PUT",
          "path": "/cadastro_frota/:id",
          "descricao": "Atualizar veículo",
          "requestBody": [
            { "field": "placa", "type": "string", "required": false },
            { "field": "modelo", "type": "string", "required": false },
            { "field": "status", "type": "string", "required": false }
          ]
        }
      ]
    },
    {
      "id": "manutencao_frota-listar",
      "recurso": "manutencao_frota",
      "operations": [
        {
          "method": "GET",
          "path": "/manutencao_frota/apresentar",
          "descricao": "Lista todas as manutenções",
          "responseShape": [
            { "field": "idmanutencao_frota", "type": "number", "description": "ID manutenção" },
            { "field": "atendimento", "type": "string", "description": "Nº atendimento" },
            { "field": "placa", "type": "string", "description": "Placa" },
            { "field": "modelo", "type": "string", "description": "Modelo" },
            { "field": "oficina", "type": "string", "description": "Oficina" },
            { "field": "status", "type": "string", "description": "Status" },
            { "field": "data_solicitacao", "type": "string", "description": "Data solicitação" },
            { "field": "data_finalizacao", "type": "string", "description": "Data finalização" },
            { "field": "orcamento_inicial", "type": "number", "description": "Orçamento inicial" },
            { "field": "orcamento_final", "type": "number", "description": "Orçamento final" }
          ],
          "suggestedColumns": [
            { "field": "idmanutencao_frota", "header": "ID", "width": "80px" },
            { "field": "placa", "header": "PLACA", "width": "100px" },
            { "field": "modelo", "header": "MODELO", "width": "110px" },
            { "field": "oficina", "header": "OFICINA", "width": "160px" },
            { "field": "status", "header": "STATUS", "width": "140px" }
          ],
          "filterDefs": [
            { "field": "placa", "label": "Placa", "type": "text" },
            { "field": "oficina", "label": "Oficina", "type": "select" },
            { "field": "status", "label": "Status", "type": "select" }
          ]
        },
        {
          "method": "GET",
          "path": "/manutencao_frota/:id",
          "descricao": "Detalhe de uma manutenção",
          "responseShape": [
            { "field": "idmanutencao_frota", "type": "number", "description": "ID" },
            { "field": "placa", "type": "string", "description": "Placa" },
            { "field": "oficina", "type": "string", "description": "Oficina" },
            { "field": "status", "type": "string", "description": "Status" },
            { "field": "orcamento_final", "type": "number", "description": "Orçamento final" }
          ]
        },
        {
          "method": "POST",
          "path": "/manutencao_frota",
          "descricao": "Criar nova manutenção",
          "requestBody": [
            { "field": "placa", "type": "string", "required": true },
            { "field": "oficina", "type": "string", "required": true },
            { "field": "motivo_atendimento", "type": "string", "required": false }
          ]
        },
        {
          "method": "PUT",
          "path": "/manutencao_frota/:id",
          "descricao": "Atualizar manutenção",
          "requestBody": [
            { "field": "status", "type": "string", "required": false },
            { "field": "data_finalizacao", "type": "string", "required": false },
            { "field": "orcamento_final", "type": "number", "required": false }
          ]
        }
      ]
    },
    {
      "id": "disponibilidade_frota",
      "recurso": "disponibilidade_frota",
      "operations": [
        {
          "method": "GET",
          "path": "/disponibilidade_frota/apresentar",
          "descricao": "Lista disponibilidade de veículos",
          "responseShape": [
            { "field": "placa", "type": "string", "description": "Placa" },
            { "field": "disponivel", "type": "boolean", "description": "Disponível" }
          ]
        }
      ]
    }
  ]
}
