from custom_decorators import singleton from models import User from repositories.user import UserRepository @singleton class UserService: def __init__(self, config): self.config = config self.user_repo = UserRepository(config) def get_addresses(self, name=None, phone=None, email=None): if phone or email: users = self.user_repo.get_or_create(User(name=name, phone=phone, email=email)) addresses = set(user.address for user in users if user.address) return list(addresses) raise ValueError('A phone number, email, or address is required.')