if (query?.search) { queryParams = Object.assign(queryParams, { [Op.or]: [{ ['$transaction.topup.address$']: { [Op.iLike]: `%${query.search}%` } }, { ['$transaction.remittances.address$']: { [Op.iLike]: `%${query.search}%` } }, { ['$transaction.payment.address$']: { [Op.iLike]: `%${query.search}%` } }, ], }) } const callbacks: Callback[] = await this.callbackService.findAll({ where: { partnerId: user.partnerId, ...queryParams }, attributes: ['createdTime', 'transactionId', 'status', 'responseData'], include: [{ model: Transaction, include: [{ model: Topup, attributes: ['address'] }, { model: Remittances, attributes: ['address'] }, { model: Payment, attributes: ['address'] }, ], }, ], }) let merchants: Merchant[] = await this.merchantService.findAll({ where: { 'partnerId': user.partnerId, ...queryParams, '$merchantDetail.brandname$': 'KPK' }, offset, limit, order: [['createdtime', order]], include: [ { model: Partner, attributes: ['id', 'code'], include: [{ model: User, attributes: ['status'] }], }, { model: MerchantDetail, attributes: ['id', 'companyName'], }, { model: Account, attributes: ['id', 'number'], }, ], }) return Book.findAll({ where: { '$Authors.lastName$': 'Testerson' }, include: [ {model: Author, as: Author.tableName} ] });