""" Product catalog of the ORD playground shop. `Product.id` is the join key used by the Orders OData service (`OrderItems.ProductID`). """ type Query { "List products, optionally filtered." products(categoryId: ID, supplierId: ID, maxPrice: Float, search: String): [Product!]! "Get a single product by its ID (e.g. P001)." product(id: ID!): Product "Batch lookup, handy to resolve the product IDs of order items." productsByIds(ids: [ID!]!): [Product!]! categories: [Category!]! suppliers: [Supplier!]! } type Mutation { "Adjust the stock level of a product (in memory only)." adjustStock(productId: ID!, delta: Int!): Product! } type Product { id: ID! sku: String! name: String! description: String price: Float! currency: String! stock: Int! tags: [String!]! category: Category! supplier: Supplier! } type Category { id: ID! name: String! products: [Product!]! } type Supplier { id: ID! name: String! country: String! products: [Product!]! }