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()