lib/open_xchange_client/model/analysis_change.ex

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

defmodule OpenXchangeClient.Model.AnalysisChange do
  @moduledoc """

  """

  @derive [Poison.Encoder]
  defstruct [
    :introduction,
    :type,
    :exception,
    :newEvent,
    :currentEvent,
    :masterEvent,
    :deletedEvent,
    :conflicts,
    :diffDescription
  ]

  @type t :: %__MODULE__{
          :introduction => String.t() | nil,
          :type => String.t() | nil,
          :exception => boolean() | nil,
          :newEvent => OpenXchangeClient.Model.AnalysisChangeNewEvent.t() | nil,
          :currentEvent => OpenXchangeClient.Model.AnalysisChangeCurrentEvent.t() | nil,
          :masterEvent => OpenXchangeClient.Model.AnalysisChangeMasterEvent.t() | nil,
          :deletedEvent => OpenXchangeClient.Model.AnalysisChangeDeletedEvent.t() | nil,
          :conflicts => [OpenXchangeClient.Model.Conflict.t()] | nil,
          :diffDescription => [String.t()] | nil
        }
end

defimpl Poison.Decoder, for: OpenXchangeClient.Model.AnalysisChange do
  import OpenXchangeClient.Deserializer

  def decode(value, options) do
    value
    |> deserialize(:newEvent, :struct, OpenXchangeClient.Model.AnalysisChangeNewEvent, options)
    |> deserialize(
      :currentEvent,
      :struct,
      OpenXchangeClient.Model.AnalysisChangeCurrentEvent,
      options
    )
    |> deserialize(
      :masterEvent,
      :struct,
      OpenXchangeClient.Model.AnalysisChangeMasterEvent,
      options
    )
    |> deserialize(
      :deletedEvent,
      :struct,
      OpenXchangeClient.Model.AnalysisChangeDeletedEvent,
      options
    )
    |> deserialize(:conflicts, :list, OpenXchangeClient.Model.Conflict, options)
  end
end