diff --git a/design-documents/graph-ql/coverage/shipping/store-pickup.graphqls b/design-documents/graph-ql/coverage/shipping/store-pickup.graphqls index 772484150..a4db6f882 100644 --- a/design-documents/graph-ql/coverage/shipping/store-pickup.graphqls +++ b/design-documents/graph-ql/coverage/shipping/store-pickup.graphqls @@ -1,12 +1,15 @@ type Query { pickupLocations ( - filter: PickupLocationFilterInput, + area: AreaInput, + filters: PickupLocationFilterInput, + sort: PickupLocationSortInput, pageSize: Int = 20, - currentPage: Int = 1 + currentPage: Int = 1, + productsInfo: [ProductInfoInput] ): PickupLocations } -input PickupLocationFilterInput { +input AreaInput { # This type is added for extensibility search_term: String! # Depending on the distance calculation algorithm selected in the admin, this field will require ZIP code (for offline mode) or arbitrary part of the address (for Google mode). IMPORTANT: Current mode must be exposed as part of storeConfig query and used on the client to display different hints for the input field radius: Int # This field is not part of MVP and can be added later. IMPORTANT: Radius units must be exposed as part of storeConfig query and displayed on the client @@ -18,12 +21,55 @@ type PickupLocations { total_count: Int } +input PickupLocationFilterInput { + name: FilterTypeInput + pickup_location_code: FilterTypeInput + country_id: FilterTypeInput + postcode: FilterTypeInput + region: FilterTypeInput + region_id: FilterTypeInput + city: FilterTypeInput + street: FilterTypeInput +} + +input PickupLocationSortInput { + name: SortEnum + pickup_location_code: SortEnum + distance: SortEnum + country_id: SortEnum + region: SortEnum + region_id: SortEnum + city: SortEnum + street: SortEnum + postcode: SortEnum + longitude: SortEnum + latitude: SortEnum + email: SortEnum + fax: SortEnum + phone: SortEnum + contact_name: SortEnum + description: SortEnum +} + type PickupLocation { + pickup_location_code: String name: String! # In the admin is called Frontend Name description: String! # In the admin is called Frontend Description - country: String! - region: String! - city: String! - street: String! - postcode: String! + email: String + fax: String + contact_name: String + latitude: Float + longitude: Float + country_id: String + region_id: Int + region: String + city: String + street: String + postcode: String + phone: String +} + +# Used in products assignment intersection search - select Pickup Locations which can be used to deliver all products in the request. +input ProductInfoInput { + sku: String! }