Skip to main content

CPTM API

API desenvolvida em FastAPI para o gerenciamento de atendimentos em uma rede de estações. Utiliza PostgreSQL como banco de dados, SQLModel para definição das tabelas, e segue uma arquitetura modular com separação entre rotas, controladores e modelos.


Estrutura de Pastas

  • main.py: ponto de entrada da aplicação, responsável por iniciar a API e registrar as rotas.
  • routes/: define os endpoints disponíveis na API.
  • controllers/: contém a lógica de negócio da aplicação.
  • models/: define os modelos de dados para entrada (request) e saída (response).

Como Funciona

Fluxo Geral

  1. Requisições HTTP chegam pelas rotas definidas em routes/atendimento_routes.py.
  2. Essas rotas redirecionam a chamada para as funções do controllers/atendimento_controller.py.
  3. Os controladores se conectam ao banco de dados e realizam as operações necessárias (criar, buscar ou deletar atendimentos).
  4. As respostas são formatadas e devolvidas para o usuário.

Endpoints

POST /atendimentos

Cria um novo atendimento no banco de dados. Recebe um JSON com os dados do atendimento.

GET /atendimentos/{user_id}

Lista todos os atendimentos do usuário especificado. Retorna os atendimentos em ordem decrescente de criação e marca como "vermelho" (campo red) aqueles com mais de 15 minutos.

DELETE /atendimentos/{atendimento_id}

Deleta um atendimento específico pelo seu ID.


Observações

  • A tabela atendimentos é criada automaticamente no evento de startup.
  • O projeto segue uma arquitetura limpa e fácil de manter.
  • O campo red é usado para indicar visualmente se o atendimento tem mais de 15 minutos.