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

defmodule CoinAPIMarketDataRESTAPI.Model.V1Symbol do
  @moduledoc """
  Represents a symbol data model.
  """

  @derive JSON.Encoder
  defstruct [
    :symbol_id,
    :exchange_id,
    :symbol_type,
    :asset_id_base,
    :asset_id_quote,
    :asset_id_unit,
    :future_contract_unit,
    :future_contract_unit_asset,
    :future_delivery_time,
    :option_type_is_call,
    :option_strike_price,
    :option_contract_unit,
    :option_exercise_style,
    :option_expiration_time,
    :contract_delivery_time,
    :contract_unit,
    :contract_unit_asset,
    :contract_id,
    :contract_display_name,
    :contract_display_description,
    :data_start,
    :data_end,
    :data_quote_start,
    :data_quote_end,
    :data_orderbook_start,
    :data_orderbook_end,
    :data_trade_start,
    :data_trade_end,
    :index_id,
    :index_display_name,
    :index_display_description,
    :volume_1hrs,
    :volume_1hrs_usd,
    :volume_1day,
    :volume_1day_usd,
    :volume_1mth,
    :volume_1mth_usd,
    :price,
    :symbol_id_exchange,
    :asset_id_base_exchange,
    :asset_id_quote_exchange,
    :price_precision,
    :size_precision,
    :raw_kvp,
    :volume_to_usd,
    :symbol_id_int
  ]

  @type t :: %__MODULE__{
    :symbol_id => String.t | nil,
    :exchange_id => String.t | nil,
    :symbol_type => String.t | nil,
    :asset_id_base => String.t | nil,
    :asset_id_quote => String.t | nil,
    :asset_id_unit => String.t | nil,
    :future_contract_unit => float() | nil,
    :future_contract_unit_asset => String.t | nil,
    :future_delivery_time => DateTime.t | nil,
    :option_type_is_call => boolean() | nil,
    :option_strike_price => float() | nil,
    :option_contract_unit => float() | nil,
    :option_exercise_style => String.t | nil,
    :option_expiration_time => DateTime.t | nil,
    :contract_delivery_time => DateTime.t | nil,
    :contract_unit => float() | nil,
    :contract_unit_asset => String.t | nil,
    :contract_id => String.t | nil,
    :contract_display_name => String.t | nil,
    :contract_display_description => String.t | nil,
    :data_start => String.t | nil,
    :data_end => String.t | nil,
    :data_quote_start => DateTime.t | nil,
    :data_quote_end => DateTime.t | nil,
    :data_orderbook_start => DateTime.t | nil,
    :data_orderbook_end => DateTime.t | nil,
    :data_trade_start => DateTime.t | nil,
    :data_trade_end => DateTime.t | nil,
    :index_id => String.t | nil,
    :index_display_name => String.t | nil,
    :index_display_description => String.t | nil,
    :volume_1hrs => float() | nil,
    :volume_1hrs_usd => float() | nil,
    :volume_1day => float() | nil,
    :volume_1day_usd => float() | nil,
    :volume_1mth => float() | nil,
    :volume_1mth_usd => float() | nil,
    :price => float() | nil,
    :symbol_id_exchange => String.t | nil,
    :asset_id_base_exchange => String.t | nil,
    :asset_id_quote_exchange => String.t | nil,
    :price_precision => float() | nil,
    :size_precision => float() | nil,
    :raw_kvp => %{optional(String.t) => String.t} | nil,
    :volume_to_usd => float() | nil,
    :symbol_id_int => integer() | nil
  }

  def decode(value) do
    value
  end
end

