Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 26 additions & 13 deletions backend/src/infrastructure/dependencie_injection.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import os
from src.infrastructure.adapters.outbound_postgres_adapter import PostgresAdapter
from src.infrastructure.services.portfolio_data_service import PortfolioDataService
from src.infrastructure.utils.logger import get_logger
Expand All @@ -9,22 +10,34 @@ class ApplicationDependencies:

def __new__(cls):
if cls._instance is None:
logger.info("Criando nova instância de ApplicationDependencies")
logger.info("🚀 Inicializando dependências da aplicação")
cls._instance = super().__new__(cls)

try:
logger.info("Inicializando PostgresAdapter...")
# Inicializa o repositório de dados (PostgresAdapter)
logger.info("📦 Configurando repositório de dados (PostgreSQL)")
cls._instance.data_repository = PostgresAdapter()
logger.info("PostgresAdapter inicializado com sucesso")

logger.info("Inicializando PortfolioDataService...")
cls._instance.portfolio_data_service = PortfolioDataService(cls._instance.data_repository)
logger.info("PortfolioDataService inicializado com sucesso")

logger.info("✅ Repositório de dados configurado com sucesso")

# Inicializa o serviço de portfólio
logger.info("⚙️ Inicializando serviço de portfólio")
cls._instance.portfolio_data_service = PortfolioDataService(
cls._instance.data_repository
)
logger.info("✅ Serviço de portfólio inicializado com sucesso")

# Log final de sucesso com informações do ambiente
env = os.getenv("FLASK_ENV", "development")
logger.info(
f"🎉 Todas as dependências carregadas com sucesso "
f"(Ambiente: {env}) [PID: {os.getpid()}]"
)

except Exception as e:
logger.error(f"Erro ao inicializar ApplicationDependencies: {str(e)}", exc_info=True)
logger.error(
f"❌ Falha crítica na inicialização das dependências: {str(e)}",
exc_info=True
)
raise

logger.info("ApplicationDependencies inicializado com sucesso")


return cls._instance