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
- Requisições HTTP chegam pelas rotas definidas em
routes/atendimento_routes.py
. - Essas rotas redirecionam a chamada para as funções do
controllers/atendimento_controller.py
. - Os controladores se conectam ao banco de dados e realizam as operações necessárias (criar, buscar ou deletar atendimentos).
- 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.