defmodule Ibex.Contracts.Contract do
defstruct [
:con_id,
:symbol,
:sec_type,
:last_trade_date_or_contract_month,
:strike,
:right,
:multiplier,
:exchange,
:primary_exchange,
:currency,
:localSYmbol,
:trading_class,
:include_expired,
:sec_id_type,
:sec_id,
:description,
:issuer_id,
:combo_legs_descrip,
:combo_legs,
:delta_neutral_contract
]
def t() do
%__MODULE__{}
end
end
defmodule Ibex.Contracts.ContractDescription do
defstruct [:contract, :derivative_sec_types]
def t() do
%__MODULE__{
contract: Ibex.Contracts.Contract.t(),
derivative_sec_types: []
}
end
def insert_derivative_types(cd, derivs) do
Map.put(cd, :derivative_sec_types, derivs)
end
def insert_into_contract(cd, field, value) do
contract = Map.get(cd, :contract)
contract = Map.put(contract, field, value)
Map.put(cd, :contract, contract)
end
end