Обновлены резолверы для обработки связанных и аксессуарных товаров. Теперь они объединяют данные из двух сторон связи, что улучшает полноту информации о товарах. Изменены типы данных в запросах для соответствия новым структурам. Это повышает гибкость и точность взаимодействия с API.
This commit is contained in:
@ -575,18 +575,30 @@ export const resolvers = {
|
|||||||
})
|
})
|
||||||
},
|
},
|
||||||
relatedProducts: async (parent: { id: string }) => {
|
relatedProducts: async (parent: { id: string }) => {
|
||||||
const product = await prisma.product.findUnique({
|
const product = await prisma.product.findUnique({
|
||||||
where: { id: parent.id },
|
where: { id: parent.id },
|
||||||
include: { relatedProducts: { include: { images: { orderBy: { order: 'asc' } } } } }
|
include: {
|
||||||
})
|
products_RelatedProducts_A: { include: { images: { orderBy: { order: 'asc' } } } },
|
||||||
return product?.relatedProducts || []
|
products_RelatedProducts_B: { include: { images: { orderBy: { order: 'asc' } } } }
|
||||||
|
}
|
||||||
|
})
|
||||||
|
// Объединяем связанные товары из обеих сторон связи
|
||||||
|
const relatedA = product?.products_RelatedProducts_A || []
|
||||||
|
const relatedB = product?.products_RelatedProducts_B || []
|
||||||
|
return [...relatedA, ...relatedB]
|
||||||
},
|
},
|
||||||
accessoryProducts: async (parent: { id: string }) => {
|
accessoryProducts: async (parent: { id: string }) => {
|
||||||
const product = await prisma.product.findUnique({
|
const product = await prisma.product.findUnique({
|
||||||
where: { id: parent.id },
|
where: { id: parent.id },
|
||||||
include: { accessoryProducts: { include: { images: { orderBy: { order: 'asc' } } } } }
|
include: {
|
||||||
})
|
products_AccessoryProducts_A: { include: { images: { orderBy: { order: 'asc' } } } },
|
||||||
return product?.accessoryProducts || []
|
products_AccessoryProducts_B: { include: { images: { orderBy: { order: 'asc' } } } }
|
||||||
|
}
|
||||||
|
})
|
||||||
|
// Объединяем аксессуары из обеих сторон связи
|
||||||
|
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 } },
|
characteristics: { include: { characteristic: true } },
|
||||||
relatedProducts: { include: { images: { orderBy: { order: 'asc' } } } },
|
products_RelatedProducts_A: { include: { images: { orderBy: { order: 'asc' } } } },
|
||||||
accessoryProducts: { 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) {
|
} catch (error) {
|
||||||
@ -879,8 +893,10 @@ export const resolvers = {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
characteristics: { include: { characteristic: true } },
|
characteristics: { include: { characteristic: true } },
|
||||||
relatedProducts: { include: { images: { orderBy: { order: 'asc' } } } },
|
products_RelatedProducts_A: { include: { images: { orderBy: { order: 'asc' } } } },
|
||||||
accessoryProducts: { 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) {
|
} catch (error) {
|
||||||
@ -4492,8 +4508,10 @@ export const resolvers = {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
characteristics: { include: { characteristic: true } },
|
characteristics: { include: { characteristic: true } },
|
||||||
relatedProducts: { include: { images: { orderBy: { order: 'asc' } } } },
|
products_RelatedProducts_A: { include: { images: { orderBy: { order: 'asc' } } } },
|
||||||
accessoryProducts: { 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 } },
|
characteristics: { include: { characteristic: true } },
|
||||||
relatedProducts: { include: { images: { orderBy: { order: 'asc' } } } },
|
products_RelatedProducts_A: { include: { images: { orderBy: { order: 'asc' } } } },
|
||||||
accessoryProducts: { 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' } } } }
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user