"""Account payee dataload logic.""" from owsresponse import response from abacus_account.models.account_payee import AccountPayee from abacus_account.schemas.account_payee import AccountPayeeDetail from abacus_account.schemas.account_payee import AccountPayeeDetailSchema from abacus_account.utils.format_response import prepare_dataload_response account_payee_detail_schema = AccountPayeeDetailSchema() account_payee_model = AccountPayee() def get_payees_by_account_ids(account_ids: list[int]) -> list[AccountPayeeDetail]: """Search accounts payees by account ids.""" payees_by_params = _execute_payee_query({'account_ids': account_ids}) return account_payee_detail_schema.dump(payees_by_params, many=True) def get_payees_by_ids(payee_ids: list[int]) -> list[AccountPayeeDetail]: """Search accounts payees by account_payee_ids.""" payees_by_params = _execute_payee_query({'account_payee_ids': payee_ids}) return account_payee_detail_schema.dump(payees_by_params, many=True) def format_payees_for_dataloader( input_ids: list[int], payees_list: list[AccountPayeeDetail], key: str ) -> response.Response: """Prepare dataload response.""" result = prepare_dataload_response(input_ids, payees_list, key) return response.Response({'items': result}) def _execute_payee_query(params): """Search for account payee.""" result = AccountPayee.get_filtered_query(params).all() return result