Este projeto está organizado em diversos módulos:
app/: Diretório principal da aplicaçãocontrollers/: Manipuladores de requisições HTTPcore/: Configurações e utilitários principaisschemas/: Modelos Pydantic para validação de requisições/respostasservices/: Implementação da lógica de negóciosmodels/: Modelos de banco de dados e implementações SQLAlchemy Core
O projeto utiliza SQLAlchemy Core através da wx_dbClass para operações de banco de dados. Exemplo de uso:
from wx_dbClass import wx_dbClass
class MeuServico:
def __init__(self):
self.db = wx_dbClass()
def obter_dados(self):
query = "SELECT * FROM minha_tabela"
resultado = self.db.execute(query)
return resultadoLocalizados em app/rodadas/schemas.py, definem validação e serialização de dados:
from pydantic import BaseModel
class RodadaBase(BaseModel):
nome: str
data: datetimeLocalizados em app/rodadas/service.py, implementam a lógica de negócios:
class RodadaService:
def __init__(self):
self.db = wx_dbClass()
def criar_rodada(self, rodada: RodadaBase):
# Implementação da lógica de negócios
passLocalizados em app/rodadas/controller.py, manipulam requisições HTTP:
@router.post("/rodadas/")
async def criar_rodada(rodada: RodadaBase):
service = RodadaService()
return service.criar_rodada(rodada)