from dependency_injector import containers, providers from controllers import UserController, AuthController, QuizController from repositories import UserRepository, QuizRepository, UserAnswerRepository from services import UserService, AuthService, QuizService, AnswerService class Container(containers.DeclarativeContainer): """Dependency Injection Container""" mongo = providers.Dependency() # repository user_repository = providers.Factory(UserRepository, mongo.provided.db) quiz_repository = providers.Factory(QuizRepository, mongo.provided.db) answer_repository = providers.Factory(UserAnswerRepository, mongo.provided.db) # services auth_service = providers.Factory(AuthService, user_repository) user_service = providers.Factory(UserService, user_repository) quiz_service = providers.Factory(QuizService, quiz_repository) answer_service = providers.Factory(AnswerService, answer_repository) # controllers auth_controller = providers.Factory(AuthController, user_service, auth_service) user_controller = providers.Factory(UserController, user_service) quiz_controller = providers.Factory(QuizController, quiz_service, answer_service)