from typing import List from server.db.models.users import Favorites from server.domains.users import settings def sum_accounts(favorites_list: List[Favorites]) -> List[Favorites]: """Sum favorites by entity ID and type. Args: favorites_list: Favorites objects list. Returns: List of favorites with a new 'accounts' field as a sum of all accounts that starred this entity. """ result = {} for item in favorites_list: key = (item.entity_id, item.entity_type) if key not in result: result[key] = item item.accounts = [item.account] else: result[key].accounts.append(item.account) return list(result.values()) def set_single_settings(data: list): """Set single settings item. Args: data: List of favorites. """ for item in data: settings.set_single_settings(item.accounts)