refactor: Implementa arquitetura MVC limpa
- 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>
This commit is contained in:
35
services/database_service.py
Normal file
35
services/database_service.py
Normal file
@@ -0,0 +1,35 @@
|
||||
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()
|
||||
Reference in New Issue
Block a user