# NOTE: This file is auto generated by OpenAPI Generator 7.14.0 (https://openapi-generator.tech).
# Do not edit this file manually.

defmodule FinFeedAPIStockRESTAPI.Model.Level3OrderBookModel do
  @moduledoc """
  Represents the response DTO for Level-3 order book information
  """

  @derive JSON.Encoder
  defstruct [
    :add_order,
    :delete_order,
    :modify_order,
    :executed_order,
    :clear_book
  ]

  @type t :: %__MODULE__{
    :add_order => FinFeedAPIStockRESTAPI.Model.Level3AddOrderModel.t | nil,
    :delete_order => FinFeedAPIStockRESTAPI.Model.Level3DeleteOrderModel.t | nil,
    :modify_order => FinFeedAPIStockRESTAPI.Model.Level3ModifyOrderModel.t | nil,
    :executed_order => FinFeedAPIStockRESTAPI.Model.Level3ExecutedOrderModel.t | nil,
    :clear_book => FinFeedAPIStockRESTAPI.Model.Level3ClearBookModel.t | nil
  }

  alias FinFeedAPIStockRESTAPI.Deserializer

  def decode(value) do
    value
     |> Deserializer.deserialize(:add_order, :struct, FinFeedAPIStockRESTAPI.Model.Level3AddOrderModel)
     |> Deserializer.deserialize(:delete_order, :struct, FinFeedAPIStockRESTAPI.Model.Level3DeleteOrderModel)
     |> Deserializer.deserialize(:modify_order, :struct, FinFeedAPIStockRESTAPI.Model.Level3ModifyOrderModel)
     |> Deserializer.deserialize(:executed_order, :struct, FinFeedAPIStockRESTAPI.Model.Level3ExecutedOrderModel)
     |> Deserializer.deserialize(:clear_book, :struct, FinFeedAPIStockRESTAPI.Model.Level3ClearBookModel)
  end
end

