diff --git a/design-documents/graph-ql/coverage/eav/EavGraphQl.graphqls b/design-documents/graph-ql/coverage/eav/EavGraphQl.graphqls new file mode 100644 index 000000000..a77a00b47 --- /dev/null +++ b/design-documents/graph-ql/coverage/eav/EavGraphQl.graphqls @@ -0,0 +1,48 @@ +# Copyright © Magento, Inc. All rights reserved. +# See COPYING.txt for license details. + +type Query { + customAttributeMetadata(attributes: [AttributeInput!]!): CustomAttributeMetadata @resolver(class: "Magento\\EavGraphQl\\Model\\Resolver\\CustomAttributeMetadata") @doc(description: "The customAttributeMetadata query returns the attribute type, given an attribute code and entity type") @cache(cacheable: false) +} + +type CustomAttributeMetadata @doc(description: "CustomAttributeMetadata defines an array of attribute_codes and entity_types") { + items: [Attribute] @doc(description: "An array of attributes") +} + +type Attribute @doc(description: "Attribute contains the attribute_type of the specified attribute_code and entity_type") { + attribute_code: String @doc(description: "The unique identifier for an attribute code. This value should be in lowercase letters without spaces.") + entity_type: String @doc(description: "The type of entity that defines the attribute") + attribute_type: String @doc(description: "The data type of the attribute") + input_type: String @doc(description: "The frontend input type of the attribute") + attribute_options: [AttributeOption] @resolver(class: "Magento\\EavGraphQl\\Model\\Resolver\\AttributeOptions") @doc(description: "Attribute options list.") + storefront_properties: StorefrontProperties +} + +type StorefrontProperties { + use_in_product_listing: Boolean + position: Int + visible_on_catalog_pages: Boolean + use_in_layered_navigation: UseInLayeredNavigationOptions + use_in_search_results_layered_navigation: Boolean +} + +enum UseInLayeredNavigationOptions { + NO + FILTERABLE_WITH_RESULTS + FILTERABLE_NO_RESULT +} + +type AttributeOption @doc(description: "Attribute option.") { + label: String @doc(description: "Attribute option label.") + value: String @doc(description: "Attribute option value.") +} + +input AttributeInput @doc(description: "AttributeInput specifies the attribute_code and entity_type to search") { + attribute_code: String @doc(description: "The unique identifier for an attribute code. This value should be in lowercase letters without spaces.") + entity_type: String @doc(description: "The type of entity that defines the attribute") +} + +# Additional changes made in CatalogGraphQl schema +type Aggregation @doc(description: "A bucket that contains information for each filterable option (such as price, category `UID`, and custom attributes).") { + position: Int @doc(description: "The position of attribute in layered navigation block.") +}