В сиквелизе у меня есть модель коллекции, связанная с моделью продукта. у каждого продукта есть изображение. но я использую Polymorphi c Associations для модели изображения. потому что товар, категория, коллекция тоже имеют изображение. поэтому у меня есть imageableId и imageableType в модели изображения. например, для хранения изображения в db, принадлежащего Product:
Image Model : {
id
url
imageableId : 3 //productId
imageableType: 'product'
}
теперь я хочу найти коллекцию со всеми ее продуктами и изображением, которое принадлежит каждому продукту: я пишу этот простой запрос, но я знаю это неправильно. но я показываю алгоритмы, которые я ищу.
const getOne = async (collectionId) => {
const collection = await Collection.findByPk(collectionId, {
include: {
model: Product,
as: 'products',
attributes: ['id', 'name_en', 'price', 'old_price'],
through: {
attributes: [],
},
include: {
model: Image,
where: { imageableId: productId, imageableType: 'product'}
}
},
})
}
ответ, который я хочу получить:
{
collectionId,
collectionName,
...
products: [{
id
name_en
price
old_price
imageUrl
}, ...]
}