Обновлены резолверы для обработки связанных и аксессуарных товаров. Теперь они объединяют данные из двух сторон связи, что улучшает полноту информации о товарах. Изменены типы данных в запросах для соответствия новым структурам. Это повышает гибкость и точность взаимодействия с API.

This commit is contained in:
Bivekich
2025-07-10 10:28:15 +03:00
parent c7dcb96c05
commit 013c05fb02

View File

@ -577,16 +577,28 @@ export const resolvers = {
relatedProducts: async (parent: { id: string }) => {
const product = await prisma.product.findUnique({
where: { id: parent.id },
include: { relatedProducts: { include: { images: { orderBy: { order: 'asc' } } } } }
include: {
products_RelatedProducts_A: { include: { images: { orderBy: { order: 'asc' } } } },
products_RelatedProducts_B: { include: { images: { orderBy: { order: 'asc' } } } }
}
})
return product?.relatedProducts || []
// Объединяем связанные товары из обеих сторон связи
const relatedA = product?.products_RelatedProducts_A || []
const relatedB = product?.products_RelatedProducts_B || []
return [...relatedA, ...relatedB]
},
accessoryProducts: async (parent: { id: string }) => {
const product = await prisma.product.findUnique({
where: { id: parent.id },
include: { accessoryProducts: { include: { images: { orderBy: { order: 'asc' } } } } }
include: {
products_AccessoryProducts_A: { include: { images: { orderBy: { order: 'asc' } } } },
products_AccessoryProducts_B: { include: { images: { orderBy: { order: 'asc' } } } }
}
})
return product?.accessoryProducts || []
// Объединяем аксессуары из обеих сторон связи
const accessoryA = product?.products_AccessoryProducts_A || []
const accessoryB = product?.products_AccessoryProducts_B || []
return [...accessoryA, ...accessoryB]
}
},
@ -855,8 +867,10 @@ export const resolvers = {
}
},
characteristics: { include: { characteristic: true } },
relatedProducts: { include: { images: { orderBy: { order: 'asc' } } } },
accessoryProducts: { include: { images: { orderBy: { order: 'asc' } } } }
products_RelatedProducts_A: { include: { images: { orderBy: { order: 'asc' } } } },
products_RelatedProducts_B: { include: { images: { orderBy: { order: 'asc' } } } },
products_AccessoryProducts_A: { include: { images: { orderBy: { order: 'asc' } } } },
products_AccessoryProducts_B: { include: { images: { orderBy: { order: 'asc' } } } }
}
})
} catch (error) {
@ -879,8 +893,10 @@ export const resolvers = {
}
},
characteristics: { include: { characteristic: true } },
relatedProducts: { include: { images: { orderBy: { order: 'asc' } } } },
accessoryProducts: { include: { images: { orderBy: { order: 'asc' } } } }
products_RelatedProducts_A: { include: { images: { orderBy: { order: 'asc' } } } },
products_RelatedProducts_B: { include: { images: { orderBy: { order: 'asc' } } } },
products_AccessoryProducts_A: { include: { images: { orderBy: { order: 'asc' } } } },
products_AccessoryProducts_B: { include: { images: { orderBy: { order: 'asc' } } } }
}
})
} catch (error) {
@ -4492,8 +4508,10 @@ export const resolvers = {
}
},
characteristics: { include: { characteristic: true } },
relatedProducts: { include: { images: { orderBy: { order: 'asc' } } } },
accessoryProducts: { include: { images: { orderBy: { order: 'asc' } } } }
products_RelatedProducts_A: { include: { images: { orderBy: { order: 'asc' } } } },
products_RelatedProducts_B: { include: { images: { orderBy: { order: 'asc' } } } },
products_AccessoryProducts_A: { include: { images: { orderBy: { order: 'asc' } } } },
products_AccessoryProducts_B: { include: { images: { orderBy: { order: 'asc' } } } }
}
})
@ -4562,8 +4580,10 @@ export const resolvers = {
}
},
characteristics: { include: { characteristic: true } },
relatedProducts: { include: { images: { orderBy: { order: 'asc' } } } },
accessoryProducts: { include: { images: { orderBy: { order: 'asc' } } } }
products_RelatedProducts_A: { include: { images: { orderBy: { order: 'asc' } } } },
products_RelatedProducts_B: { include: { images: { orderBy: { order: 'asc' } } } },
products_AccessoryProducts_A: { include: { images: { orderBy: { order: 'asc' } } } },
products_AccessoryProducts_B: { include: { images: { orderBy: { order: 'asc' } } } }
}
})