- Separa modelos em entidades individuais - Cria camada de serviços para acesso a dados - Implementa controladores para lógica de negócio - Organiza rotas em blueprints por funcionalidade - Adiciona documentação de arquitetura no README - Cria script para preparação da estrutura 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
35 lines
1020 B
Python
35 lines
1020 B
Python
from sqlalchemy import text
|
|
from models.entities.base import engine, SessionLocal
|
|
|
|
class DatabaseService:
|
|
"""Serviço para gerenciar conexões com o banco de dados"""
|
|
|
|
@staticmethod
|
|
def get_db_connection():
|
|
"""Retorna uma nova sessão do banco de dados"""
|
|
db = SessionLocal()
|
|
|
|
try:
|
|
# Configurar SQLite para melhor tratamento de concorrência
|
|
db.execute(text("PRAGMA journal_mode=WAL"))
|
|
db.execute(text("PRAGMA busy_timeout=5000"))
|
|
return db
|
|
except:
|
|
db.close()
|
|
raise
|
|
|
|
@staticmethod
|
|
def execute_query(query, params=None):
|
|
"""
|
|
Executa uma query usando SQLAlchemy
|
|
"""
|
|
session = DatabaseService.get_db_connection()
|
|
try:
|
|
result = session.execute(query, params)
|
|
session.commit()
|
|
return result
|
|
except Exception as e:
|
|
session.rollback()
|
|
raise e
|
|
finally:
|
|
session.close() |