Gửi ý kiến phản hồi
Gói proto nguồn cấp dữ liệu trình đơn
Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang
Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.
// Feeds declaration
syntax = "proto3" ;
package food . menu . v1 ;
import "google/protobuf/timestamp.proto" ;
import "money.proto" ;
import "localized_text.proto" ;
option go_package = "food/menu/v1/proto" ;
message FoodMenuFeed {
repeated MenuComponent data = 1 ;
}
message MenuComponent {
oneof type {
food . menu . v1 . Menu menu = 1 ;
food . menu . v1 . MenuSection section = 2 ;
food . menu . v1 . MenuItem item = 3 ;
food . menu . v1 . MenuItemOption option = 4 ;
}
}
// Top - level catalog of food items offered by a Food establishment . Menu
// contains a list of merchant ids and the menu that apply to those merchants .
// A Menu can be used to represent single merchant with the menu , or multiple
// merchants ( typically chain restaurants ) with the menus .
message Menu {
// An opaque string from a partner which uniquely identifies the Menu within
// the partner feed .
// Required .
string menu_id = 1
;
// The merchants to whom the menu apply .
// Note : This field is repeated so chain restaurants can share the same menu
// across multiple locations , each of which is a separate merchant .
// Required .
repeated string merchant_ids = 2
;
// The name that can identify the Menu when a user is browsing the menu .
// Optional .
TextField display_name = 3 ;
// The default language code associated with the text labels contained in the
// menu . Expects BCP - 47 language code , such as "en-US" or "sr-Latn" .
//
// For more information , see
// http : // www . unicode . org / reports / tr35 / #Unicode_locale_identifier.
// Optional .
string language = 4 ;
// Disclaimer to be shown to the user for the menu . For example , nutritional
// information disclosure and allergen disclosure .
// Optional .
Disclaimer disclaimer = 5 ;
// IDs of items contained within this menu . Expects first - level menu items
// only .
// Optional .
repeated string menu_item_ids = 6
;
// IDs of sections contained within this menu . Expects first - level menu
// sections only .
// Optional .
repeated string menu_section_ids = 7
;
// Timestamp when this Menu or any of its contents was last updated by the
// restaurant ; i . e . a date to be associated with the phrase “ accurate as of
// date ” .
// Optional .
google . protobuf . Timestamp last_merchant_update_time = 8
;
}
// A menu section is a grouping of items on a menu . Separate MenuSections are
// usually created for each logical grouping of items on a menu . For example ,
// meal course type ( Appetizer , Main , Dessert ) and food categories ( Burgers ,
// Drinks ) are typical sections .
message MenuSection {
// An opaque string from a partner that uniquely identifies the MenuSection
// within the partner feed .
// Required .
string menu_section_id = 1
;
// The name that can identify the MenuSection when a user is browsing the
// menu .
// Required .
TextField display_name = 2
;
// A description of the menu section .
// Optional .
TextField description = 3 ;
// Image ( s ) of the menu section .
// Optional .
repeated Image images = 4 ;
// IDs of MenuItem entities that correspond to this MenuSection entity . A
// section is expected to have at least 1 item if it does not contain any
// sub - sections .
// Optional .
repeated string menu_item_ids = 6
;
// Child MenuSections ( sub - sections ) that correspond to this MenuSection
// entity .
// Optional .
repeated string menu_section_ids = 7
;
}
// Represents a single food or drink item offered by a Food establishment .
message MenuItem {
// An opaque string from a partner that uniquely identifies the MenuItem
// within the partner feed .
// Required .
string menu_item_id = 1
;
// The name that can identify the MenuItem when a user is browsing the menu .
// Required .
TextField display_name = 2
;
// A description of the menu item .
// Optional .
TextField description = 3 ;
// Image ( s ) of the menu item .
// Optional .
repeated Image images = 4 ;
// Container that specifies a list of options available on an item .
message MenuItemOptionSet {
// IDs of menu item options that are applicable to this menu item .
// Required .
repeated string menu_item_option_ids = 1
;
}
// The menu item must either have a price , or a set of menu item options .
// Required .
oneof pricing {
option ( validator . one_of ) = {
// Available offers to purchase this food item .
OfferSet offer_set = 6 ;
// Available options for this menu item .
MenuItemOptionSet menu_item_option_set = 7 ;
}
// Attributes about this menu item .
// Optional .
MenuItemAttributes item_attributes = 8 ;
}
// Describes choices that a user would be required to make when selecting a
// dish / combo . The user must select an option , otherwise the order is
// considered invalid ( e . g . the user must choose small , medium , or large for a
// pizza ) .
message MenuItemOption {
// An opaque string from a partner that uniquely identifies the
// MenuItemOption within the partner feed .
// Required .
string menu_item_option_id = 9
;
// Option property and value e . g . Size : Small .
// Required .
MenuItemOptionProperty value = 2
;
// Available offers to purchase this menu item option .
// Required .
OfferSet offer_set = 4
;
// Attributes about this menu item option .
// Optional .
MenuItemAttributes item_attributes = 5 ;
}
// Describes attributes about a particular menu item or option .
message MenuItemAttributes {
// Number of servings available in a given menu item .
// Optional .
int32 number_of_servings = 1 ;
// Describes all the nutritional information of the item , e . g . calories , fat
// content .
// Optional .
NutritionInformation nutrition_information = 2 ;
// The dietary restrictions that this menu item complies with .
// Optional .
repeated DietaryRestriction suitable_diets = 3
;
// Additives of this menu item .
// Optional .
repeated Additive additive = 4 ;
// Allergens of this menu item .
// Optional .
repeated Allergen allergen = 5 ;
// Packaging and recycling information of this menu item .
// Optional .
DepositInfo packaging_deposit_info = 6 ;
}
// Container for a list of offers available on a menu item / option .
// Only one offer should be applicable / valid at one particular time .
// For example , a drink can have 2 offers where one is applicable in the morning
// while the other is applicable in the evening during happy hours .
message OfferSet {
// List of possible offers .
// Required .
repeated Offer offers = 1
;
}
// Represents pricing and availability information for MenuItems and
// MenuItemOptions .
message Offer {
// Monetary value of the menu item / option on sale . Can be 0 to represent free .
// Required .
google . type . Money price = 1
;
}
// Partner provided disclaimer shown to the user . Contains a text disclaimer
// along with an optional URL for more information .
// Some example include : associated medical risks / warnings , any additional
// fees / gratutity , etc .
message Disclaimer {
// Body of the disclaimer text to be shown to the user .
// Required .
TextField text = 1
;
// URL containing more information about the disclaimer .
// Optional .
string uri = 2 ;
}
// A text payload that contains one or more localized values .
message TextField {
// Per - locale text values .
//
// If there is only one desired locale support , then the language_code within
// each text is not required to be set and the language will be inferred from
// the default language of the menu .
//
// If there are multiple texts across different locales , then the
// language_code must be set for each text . The first text in the list is
// considered the preferred representation .
// Required .
repeated google . type . LocalizedText text = 1
;
}
// Represents an image associated with a menu entity .
message Image {
// URL containing the raw pixels of the image .
// Required .
string uri = 1
;
}
// Describes the property of a menu item option and its value .
message MenuItemOptionProperty {
// Types of property that the option is for .
enum PropertyType {
// Do not use . The property type is not explicitly specified .
UNKNOWN_PROPERTY_TYPE = 0 ;
// A generic menu item option property , which is not one of the more
// specific types below . Use this if the property is not of type
// SIZE or PIZZA_SIDE .
OPTION = 1 ;
// Denotes the menu item option property of size ( e . g . small , medium , or
// large ) .
SIZE = 2 ;
// Property specific to pizzas . For example : this MenuItemOption is only
// valid for a portion / whole pizza , such as mushroom toppings on the left
// side , right side , or whole pizza ) .
PIZZA_SIDE = 3 ;
}
// Well - defined values for the option property .
enum PropertyValue {
// Do not use . The property value is not explicitly specified .
UNKNOWN_PROPERTY_VALUE = 0 ;
// The MenuItemOption applies only to the left side of a pizza .
PIZZA_SIDE_LEFT = 1 ;
// The MenuItemOption applies only to the right side of a pizza .
PIZZA_SIDE_RIGHT = 2 ;
// The MenuItemOption applies to the entire pizza .
PIZZA_SIDE_WHOLE = 3 ;
}
// The type of this option property .
// Required .
PropertyType property_type =
;
// Required .
oneof value {
// A well - defined value for the option property . Currently only expected
// if the property_type is PIZZA_SIDE .
PropertyValue property_val = 2
;
// A free - form text for the value of the property . Expected for
// property_type OPTION and SIZE .
TextField text_val = 3
;
}
}
// Describes all the nutritional measurements of a MenuItem or add - on .
message NutritionInformation {
// Describes a single nutritional measurement of the serving of food .
message NutritionValue {
// Describes a closed range for the nutrition value . E . g . "100-150 cal"
message Range {
// The minimum amount of nutrition value .
// Required .
double min =
1
;
// The maximum amount of nutrition value .
// Required .
double max =
2
;
}
// Required oneof .
oneof value {
option ( validator . one_of ) = {
// A single number representing the amount of nutritional value .
double amount = 1
;
// A range representing the amount of nutritional value .
Range range = 3 ;
}
// The unit associated with the amount as specified from the partner . We
// will validate the feed so that the unit for each type of nutrition value
// is expected for that type of value . For example , only ENERGY_CALORIES
// and ENERGY_KILOJOULES are expected on energy property of
// NutritionalInformation .
// Required .
NutritionValueUnit unit =
2
;
}
// The amount of nutritional energy of the serving of food . Can be defined
// in Calories or kilojoules .
// Optional .
NutritionValue energy = 1 ;
// The amount of sodium content , measured in grams or milligrams .
// Optional .
NutritionValue sodium_content = 2 ;
// The number of servings the nutrition value applies to .
// Optional .
int32 serving_size = 3
;
// Nutrition information in free text . For example "Contains preservatives" .
// Optional .
TextField description = 4 ;
}
// Indicates a dietary restriction or guideline adhered to during
// food preparation .
enum DietaryRestriction {
// Do not use . The dietary restriction is not explicitly specified .
DIET_UNSPECIFIED = 0 ;
DIET_DIABETIC = 1 ;
DIET_GLUTEN_FREE = 2 ;
DIET_HALAL = 3 ;
DIET_HINDU = 4 ;
DIET_KOSHER = 5 ;
DIET_LOW_CALORIE = 6 ;
DIET_LOW_FAT = 7 ;
DIET_LOW_LACTOSE = 8 ;
DIET_LOW_SALT = 9 ;
DIET_VEGAN = 10 ;
DIET_VEGETARIAN = 11 ;
}
// Additive shown to the user on the MenuItem . An additive preserves or enhances
// the quality of the food .
message Additive {
// Descriptive text of the additive , e . g . "preservatives" .
// Required .
TextField name = 1
;
// Whether the MenuItem contains , may contain , or is free from this additive .
// Defaults to contains .
// Optional .
ContainmentLevelCode containment_level_code = 2 ;
}
// Allergen shown to the user on the MenuItem . An allergen relates to qualities
// of food that causes allergic reactions .
message Allergen {
// Type of allergen .
// Required .
AllergenTypeCode allergen_type_code =
1
;
// Whether the MenuItem contains , may contain , or is free from this allergen .
// Defaults to contains .
// Optional .
ContainmentLevelCode containment_level_code = 2 ;
}
// Allergen type derived from GS1 : http : // gs1 . org / voc / AllergenTypeCode
enum AllergenTypeCode {
// Do not use . The allergen type code is not explicitly specified .
ALLERGEN_TYPE_CODE_UNSPECIFIED = 0 ;
ALLERGEN_TYPE_CODE_ALMONDS = 1 ;
ALLERGEN_TYPE_CODE_ALPHA_ISOMETHYL_IONONE = 2 ;
ALLERGEN_TYPE_CODE_ALCOHOL = 3 ;
ALLERGEN_TYPE_CODE_AMYL_CINNAMAL = 4 ;
ALLERGEN_TYPE_CODE_ANISE_ALCOHOL = 5 ;
ALLERGEN_TYPE_CODE_BARLEY = 6 ;
ALLERGEN_TYPE_CODE_BENZYL_ALCOHOL = 7 ;
ALLERGEN_TYPE_CODE_BENZYL_BENZOATE = 8 ;
ALLERGEN_TYPE_CODE_BENZYL_CINNAMATE = 9 ;
ALLERGEN_TYPE_CODE_BENZYL_SALICYLATE = 10 ;
ALLERGEN_TYPE_CODE_BRAZIL_NUTS = 11 ;
ALLERGEN_TYPE_CODE_BUTYLPHENYL_METHYLPROPIONATE = 12 ;
ALLERGEN_TYPE_CODE_CARROTS = 13 ;
ALLERGEN_TYPE_CODE_CASHEW_NUTS = 14 ;
ALLERGEN_TYPE_CODE_CELERY = 15 ;
ALLERGEN_TYPE_CODE_CEREALS_CONTAINING_GLUTEN = 16 ;
ALLERGEN_TYPE_CODE_CINNAMAL = 17 ;
ALLERGEN_TYPE_CODE_CINNAMYL_ALCOHOL = 18 ;
ALLERGEN_TYPE_CODE_CITRAL = 19 ;
ALLERGEN_TYPE_CODE_CITRONELLOL = 20 ;
ALLERGEN_TYPE_CODE_COCOA = 21 ;
ALLERGEN_TYPE_CODE_CORIANDER = 22 ;
ALLERGEN_TYPE_CODE_CORN = 23 ;
ALLERGEN_TYPE_CODE_COUMARIN = 24 ;
ALLERGEN_TYPE_CODE_CRUSTACEANS = 25 ;
ALLERGEN_TYPE_CODE_EGGS = 26 ;
ALLERGEN_TYPE_CODE_EUGENOL = 27 ;
ALLERGEN_TYPE_CODE_EVERNIA_FURFURACEA = 28 ;
ALLERGEN_TYPE_CODE_EVERNIA_PRUNASTRI = 29 ;
ALLERGEN_TYPE_CODE_FARNESOL = 30 ;
ALLERGEN_TYPE_CODE_FISH = 31 ;
ALLERGEN_TYPE_CODE_GERANIOL = 32 ;
ALLERGEN_TYPE_CODE_GLUTEN = 33 ;
ALLERGEN_TYPE_CODE_HAZELNUTS = 34 ;
ALLERGEN_TYPE_CODE_HEXYL_CINNAMAL = 35 ;
ALLERGEN_TYPE_CODE_HYDROXYCITRONELLAL = 36 ;
ALLERGEN_TYPE_CODE_HYDROXYISOHEXYL_3_CYCLOHEXENE_CARBOXALDEHYDE_ISOEUGENOL_LIMONENE_LINAL =
37 ;
ALLERGEN_TYPE_CODE_KAMUT = 38 ;
ALLERGEN_TYPE_CODE_LACTOSE = 39 ;
ALLERGEN_TYPE_CODE_LUPINE = 40 ;
ALLERGEN_TYPE_CODE_MACADAMIA_NUTS = 41 ;
ALLERGEN_TYPE_CODE_METHYL_2_OCTYNOATE = 42 ;
ALLERGEN_TYPE_CODE_MILK = 43 ;
ALLERGEN_TYPE_CODE_MOLLUSCS = 44 ;
ALLERGEN_TYPE_CODE_MUSTARD = 45 ;
ALLERGEN_TYPE_CODE_NO_DECLARED_ALLERGENS = 46 ;
ALLERGEN_TYPE_CODE_OAT = 47 ;
ALLERGEN_TYPE_CODE_PEANUTS = 48 ;
ALLERGEN_TYPE_CODE_PEAS = 49 ;
ALLERGEN_TYPE_CODE_PECAN_NUTS = 50 ;
ALLERGEN_TYPE_CODE_PISTACHIOS = 51 ;
ALLERGEN_TYPE_CODE_POD_FRUITS = 52 ;
ALLERGEN_TYPE_CODE_QUEENSLAND_NUTS = 53 ;
ALLERGEN_TYPE_CODE_RYE = 54 ;
ALLERGEN_TYPE_CODE_SESAME_SEEDS = 55 ;
ALLERGEN_TYPE_CODE_SOYBEANS = 56 ;
ALLERGEN_TYPE_CODE_SPELT = 57 ;
ALLERGEN_TYPE_CODE_SULPHUR_DIOXIDE = 58 ;
ALLERGEN_TYPE_CODE_TREE_NUTS = 59 ;
ALLERGEN_TYPE_CODE_TREE_NUT_TRACES = 60 ;
ALLERGEN_TYPE_CODE_WALNUTS = 61 ;
ALLERGEN_TYPE_CODE_WHEAT = 62 ;
}
// Partner provided deposit info to instruct the user how to deposit a food item
// or bottle and the value of such deposit .
message DepositInfo {
// The deposit strategy to employ , e . g . "reusable" .
// Optional .
DepositCode deposit_code = 1 ;
// Value refunded for depositing the item properly .
// Optional .
google . type . Money deposit_value = 2
;
}
enum NutritionValueUnit {
// Do not use . The nutrition value unit is not explicitly set .
NUTRITION_VALUE_UNIT_UNSPECIFIED = 0 ;
// Units used to express the amount of energy in a menu item .
ENERGY_CALORIES = 1 ;
ENERGY_KILOJOULES = 2 ;
// Units used to express the amount in weight a substance is present in the
// menu item .
WEIGHT_MILLIGRAMS = 3 ;
WEIGHT_GRAMS = 4 ;
}
// Indicates the level of containment a food item has of a certain attribute ,
// such as allergens or additives .
enum ContainmentLevelCode {
// Do not use . The containment level code is not explicitly specified .
CONTAINMENT_LEVEL_CODE_UNSPECIFIED = 0 ;
CONTAINMENT_LEVEL_CODE_CONTAINS = 1 ;
CONTAINMENT_LEVEL_CODE_DOES_NOT_CONTAIN = 2 ;
CONTAINMENT_LEVEL_CODE_MAY_CONTAIN = 3 ;
}
// Indicates how to properly deposit a food item or bottle .
enum DepositCode {
// Do not use . The deposite code is not explicitly specified .
DEPOSIT_CODE_UNSPECIFIED = 0 ;
DEPOSIT_CODE_REUSABLE = 1 ;
DEPOSIT_CODE_RECYCLABLE = 2 ;
}
money.proto
// Copyright 2024 Google LLC
//
// Licensed under the Apache License , Version 2.0 ( the "License" );
// you may not use this file except in compliance with the License .
// You may obtain a copy of the License at
//
// http :// www . apache . org / licenses / LICENSE - 2.0
//
// Unless required by applicable law or agreed to in writing , software
// distributed under the License is distributed on an "AS IS" BASIS ,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND , either express or implied .
// See the License for the specific language governing permissions and
// limitations under the License .
syntax = "proto3" ;
package google . type ;
option cc_enable_arenas = true ;
option go_package = "google.golang.org/genproto/googleapis/type/money;money" ;
option java_multiple_files = true ;
option java_outer_classname = "MoneyProto" ;
option java_package = "com.google.type" ;
option objc_class_prefix = "GTP" ;
// Represents an amount of money with its currency type .
message Money {
// The three - letter currency code defined in ISO 4217.
string currency_code = 1 ;
// The whole units of the amount .
// For example if `currencyCode` is `"USD"` , then 1 unit is one US dollar .
int64 units = 2 ;
// Number of nano ( 10 ^- 9 ) units of the amount .
// The value must be between - 999 , 999 , 999 and + 999 , 999 , 999 inclusive .
// If `units` is positive , `nanos` must be positive or zero .
// If `units` is zero , `nanos` can be positive , zero , or negative .
// If `units` is negative , `nanos` must be negative or zero .
// For example $ - 1.75 is represented as `units` =- 1 and `nanos` =- 750 , 000 , 000.
int32 nanos = 3 ;
}
localized_text.proto
// Copyright 2024 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
syntax = "proto3" ;
package google . type ;
option cc_enable_arenas = true ;
option go_package = "google.golang.org/genproto/googleapis/type/localized_text;localized_text" ;
option java_multiple_files = true ;
option java_outer_classname = "LocalizedTextProto" ;
option java_package = "com.google.type" ;
option objc_class_prefix = "GTP" ;
// Localized variant of a text in a particular language.
message LocalizedText {
// Localized string in the language corresponding to `language_code' below.
string text = 1 ;
// The text's BCP-47 language code, such as "en-US" or "sr-Latn".
//
// For more information, see
// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
string language_code = 2 ;
}
Gửi ý kiến phản hồi
Trừ phi có lưu ý khác, nội dung của trang này được cấp phép theo Giấy phép ghi nhận tác giả 4.0 của Creative Commons và các mẫu mã lập trình được cấp phép theo Giấy phép Apache 2.0 . Để biết thông tin chi tiết, vui lòng tham khảo Chính sách trang web của Google Developers . Java là nhãn hiệu đã đăng ký của Oracle và/hoặc các đơn vị liên kết với Oracle.
Cập nhật lần gần đây nhất: 2024-11-26 UTC.
Bạn muốn chia sẻ thêm với chúng tôi?
[[["Dễ hiểu","easyToUnderstand","thumb-up"],["Giúp tôi giải quyết được vấn đề","solvedMyProblem","thumb-up"],["Khác","otherUp","thumb-up"]],[["Thiếu thông tin tôi cần","missingTheInformationINeed","thumb-down"],["Quá phức tạp/quá nhiều bước","tooComplicatedTooManySteps","thumb-down"],["Đã lỗi thời","outOfDate","thumb-down"],["Vấn đề về bản dịch","translationIssue","thumb-down"],["Vấn đề về mẫu/mã","samplesCodeIssue","thumb-down"],["Khác","otherDown","thumb-down"]],["Cập nhật lần gần đây nhất: 2024-11-26 UTC."],[[["The `food_menu.proto` file defines a protocol buffer schema for representing food menus, encompassing menus, sections, items, options, pricing, and nutritional data."],["Key messages include `FoodMenuFeed`, `MenuComponent`, `Menu`, `MenuSection`, `MenuItem`, `MenuItemOption`, and others for detailed menu representation."],["Enums like `DietaryRestriction`, `MenuItemOptionProperty`, and `AllergenTypeCode` categorize dietary restrictions, menu item properties, and allergens."],["Data types include strings, integers, doubles, booleans, timestamps, and custom messages to represent various data elements."],["The schema utilizes imports, options, and validators for code generation, data constraints, and efficient data exchange."]]],[]]