// SPI proto:

syntax = "proto3";

package com.wixpress.appservice.api.upstream.wix.restaurants.pos.v1;

import "wix/api/validations.proto";
import "wix/spi/definitions.proto";
import "wix/api/annotations.proto";

// Restaurants POS component
message RestaurantsPOSComponentData {
    option (.wix.api.decomposite_of) = "com.wixpress.restaurants.posspihost.spi.v1.RestaurantsPOSComponentData";
  // URL for the Restaurants POS registration web page.
  // The app instance and account ID query parameters are appended to the registration URL so that you can identify an account when accessing the vendor api. 
  // [Learn more](https://devforum.wix.com/en/article/app-instance).
  string registration_url = 1 [(.wix.api.format) = WEB_URL];

  // Base URL for all the Restaurants POS API calls.
  string api_base_uri = 2 [(.wix.spi.base_uri) = true];

  // Configuration parameters defining the behavoiur of the catalog sync.
  CatalogSyncConfiguration catalog_sync_configuration = 3;
}

message CatalogSyncConfiguration {
    option (.wix.api.decomposite_of) = "com.wixpress.restaurants.posspihost.spi.v1.CatalogSyncConfiguration";
  enum Default {
    WIX = 0;
    POS = 1;
  }

  // If menu, section, or dish availability will be updated on the POS side or on [Wix Menus](https://dev.wix.com/docs/rest/business-solutions/restaurants/menus/menus/introduction).
  Default entity_availability_updated = 1;
  // Whether fulfillment methods will be defined on the POS side or on [Wix Menus](https://dev.wix.com/docs/rest/business-solutions/restaurants/menus/menus/introduction).
  Default fulfillment_methods_definition = 2;
  // If dish images will be updated on the POS side or on [Wix Menus](https://dev.wix.com/docs/rest/business-solutions/restaurants/menus/menus/introduction).
  Default dish_images_updated = 3;
  // If sorting (Menu/Category/Dish/Options) will be done on the POS side (API order) or on [Wix Menus](https://dev.wix.com/docs/rest/business-solutions/restaurants/menus/menus/introduction).
  Default entity_sorting_control = 4;
  // If labels will be updated on the POS side or on [Wix Menus](https://dev.wix.com/docs/rest/business-solutions/restaurants/menus/menus/introduction).
  Default dish_labels_updated = 5;
  // If min/max amount of choices is to be set on the POS side or on [Wix Menus](https://dev.wix.com/docs/rest/business-solutions/restaurants/menus/menus/introduction).
  Default dish_options_min_max_updated = 6;
  // If dish in/out of stock will be retrieved from POS or updated on [Wix Menus](https://dev.wix.com/docs/rest/business-solutions/restaurants/menus/menus/introduction).
  Default dish_in_stock_updated = 7;
}