# Copyright 2019 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.

# NOTE: This file is auto generated by the elixir code generator program.
# Do not edit this file manually.

defmodule GoogleApi.MyBusinessLodging.V1.Model.FoodAndDrink do
  @moduledoc """
  Meals, snacks, and beverages available at the property.

  ## Attributes

  *   `bar` (*type:* `boolean()`, *default:* `nil`) - Bar. A designated room, lounge or area of an on-site restaurant with seating at a counter behind which a hotel staffer takes the guest's order and provides the requested alcoholic drink. Can be indoors or outdoors. Also known as Pub.
  *   `barException` (*type:* `String.t`, *default:* `nil`) - Bar exception.
  *   `breakfastAvailable` (*type:* `boolean()`, *default:* `nil`) - Breakfast available. The morning meal is offered to all guests. Can be free or for a fee.
  *   `breakfastAvailableException` (*type:* `String.t`, *default:* `nil`) - Breakfast available exception.
  *   `breakfastBuffet` (*type:* `boolean()`, *default:* `nil`) - Breakfast buffet. Breakfast meal service where guests serve themselves from a variety of dishes/foods that are put out on a table.
  *   `breakfastBuffetException` (*type:* `String.t`, *default:* `nil`) - Breakfast buffet exception.
  *   `buffet` (*type:* `boolean()`, *default:* `nil`) - Buffet. A type of meal where guests serve themselves from a variety of dishes/foods that are put out on a table. Includes lunch and/or dinner meals. A breakfast-only buffet is not sufficient.
  *   `buffetException` (*type:* `String.t`, *default:* `nil`) - Buffet exception.
  *   `dinnerBuffet` (*type:* `boolean()`, *default:* `nil`) - Dinner buffet. Dinner meal service where guests serve themselves from a variety of dishes/foods that are put out on a table.
  *   `dinnerBuffetException` (*type:* `String.t`, *default:* `nil`) - Dinner buffet exception.
  *   `freeBreakfast` (*type:* `boolean()`, *default:* `nil`) - Free breakfast. Breakfast is offered for free to all guests. Does not apply if limited to certain room packages.
  *   `freeBreakfastException` (*type:* `String.t`, *default:* `nil`) - Free breakfast exception.
  *   `restaurant` (*type:* `boolean()`, *default:* `nil`) - Restaurant. A business onsite at the hotel that is open to the public as well as guests, and offers meals and beverages to consume at tables or counters. May or may not include table service. Also known as cafe, buffet, eatery. A "breakfast room" where the hotel serves breakfast only to guests (not the general public) does not count as a restaurant.
  *   `restaurantException` (*type:* `String.t`, *default:* `nil`) - Restaurant exception.
  *   `restaurantsCount` (*type:* `integer()`, *default:* `nil`) - Restaurants count. The number of restaurants at the hotel.
  *   `restaurantsCountException` (*type:* `String.t`, *default:* `nil`) - Restaurants count exception.
  *   `roomService` (*type:* `boolean()`, *default:* `nil`) - Room service. A hotel staffer delivers meals prepared onsite to a guest's room as per their request. May or may not be available during specific hours. Services should be available to all guests (not based on rate/room booked/reward program, etc).
  *   `roomServiceException` (*type:* `String.t`, *default:* `nil`) - Room service exception.
  *   `tableService` (*type:* `boolean()`, *default:* `nil`) - Table service. A restaurant in which a staff member is assigned to a guest's table to take their order, deliver and clear away food, and deliver the bill, if applicable. Also known as sit-down restaurant.
  *   `tableServiceException` (*type:* `String.t`, *default:* `nil`) - Table service exception.
  *   `twentyFourHourRoomService` (*type:* `boolean()`, *default:* `nil`) - 24hr room service. Room service is available 24 hours a day.
  *   `twentyFourHourRoomServiceException` (*type:* `String.t`, *default:* `nil`) - 24hr room service exception.
  *   `vendingMachine` (*type:* `boolean()`, *default:* `nil`) - Vending machine. A glass-fronted mechanized cabinet displaying and dispensing snacks and beverages for purchase by coins, paper money and/or credit cards.
  *   `vendingMachineException` (*type:* `String.t`, *default:* `nil`) - Vending machine exception.
  """

  use GoogleApi.Gax.ModelBase

  @type t :: %__MODULE__{
          :bar => boolean() | nil,
          :barException => String.t() | nil,
          :breakfastAvailable => boolean() | nil,
          :breakfastAvailableException => String.t() | nil,
          :breakfastBuffet => boolean() | nil,
          :breakfastBuffetException => String.t() | nil,
          :buffet => boolean() | nil,
          :buffetException => String.t() | nil,
          :dinnerBuffet => boolean() | nil,
          :dinnerBuffetException => String.t() | nil,
          :freeBreakfast => boolean() | nil,
          :freeBreakfastException => String.t() | nil,
          :restaurant => boolean() | nil,
          :restaurantException => String.t() | nil,
          :restaurantsCount => integer() | nil,
          :restaurantsCountException => String.t() | nil,
          :roomService => boolean() | nil,
          :roomServiceException => String.t() | nil,
          :tableService => boolean() | nil,
          :tableServiceException => String.t() | nil,
          :twentyFourHourRoomService => boolean() | nil,
          :twentyFourHourRoomServiceException => String.t() | nil,
          :vendingMachine => boolean() | nil,
          :vendingMachineException => String.t() | nil
        }

  field(:bar)
  field(:barException)
  field(:breakfastAvailable)
  field(:breakfastAvailableException)
  field(:breakfastBuffet)
  field(:breakfastBuffetException)
  field(:buffet)
  field(:buffetException)
  field(:dinnerBuffet)
  field(:dinnerBuffetException)
  field(:freeBreakfast)
  field(:freeBreakfastException)
  field(:restaurant)
  field(:restaurantException)
  field(:restaurantsCount)
  field(:restaurantsCountException)
  field(:roomService)
  field(:roomServiceException)
  field(:tableService)
  field(:tableServiceException)
  field(:twentyFourHourRoomService)
  field(:twentyFourHourRoomServiceException)
  field(:vendingMachine)
  field(:vendingMachineException)
end

defimpl Poison.Decoder, for: GoogleApi.MyBusinessLodging.V1.Model.FoodAndDrink do
  def decode(value, options) do
    GoogleApi.MyBusinessLodging.V1.Model.FoodAndDrink.decode(value, options)
  end
end

defimpl Poison.Encoder, for: GoogleApi.MyBusinessLodging.V1.Model.FoodAndDrink do
  def encode(value, options) do
    GoogleApi.Gax.ModelBase.encode(value, options)
  end
end
