The merchant dashboard's "catalog items needing answers" list, as CatalogItems rather than sessions. Same predicate as questionnaireSessions{containerType: CATALOG_ITEM, IN_PROGRESS}, but each node is a federated CatalogItem reference, so one query also yields the item's ItemDgs-owned fields (name, sku, image) for the row. Rooted here, not on ItemDgs' catalogItems, deliberately: a federated plan filters and paginates in the owning subgraph BEFORE this service resolves anything on the entity, so CatalogItem .hasOpenQuestionnaire can never narrow that page. The open-session set lives here, so the list must be rooted here and let the gateway hydrate the item. Ordering is by session start (newest first) — sorting or filtering by ItemDgs-owned item fields is not possible through this root.
Query.
catalogItemsWithOpenQuestionnaire
The merchant dashboard's "catalog items needing answers" list, as CatalogItems rather than sessions. Same predicate as questionnaireSessions{containerType: CATALOG_ITEM, IN_PROGRESS}, but each node is a federated CatalogItem reference, so one query also yields the item's ItemDgs-owned fields (name, sku, image) for the row. Rooted here, not on ItemDgs' catalogItems, deliberately: a federated plan filters and paginates in the owning subgraph BEFORE this service resolves anything on the entity, so CatalogItem .hasOpenQuestionnaire can never narrow that page. The open-session set lives here, so the list must be rooted here and let the gateway hydrate the item. Ordering is by session start (newest first) — sorting or filtering by ItemDgs-owned item fields is not possible through this root.
Arguments
after
String
before
String
first
Int
last
Int
Returns:
CatalogItemOpenQuestionnaireConnection!
type Query { catalogItemsWithOpenQuestionnaire(after: String, before: String, first: Int, last: Int): CatalogItemOpenQuestionnaireConnection! }