defmodule ExOanda.MarginCallExtendTransaction do @moduledoc """ A MarginCallExtendTransaction is created when the margin call state for an Account has been extended. [Oanda Docs](https://developer.oanda.com/rest-live-v20/transaction-df/) """ use TypedEctoSchema import Ecto.Changeset alias ExOanda.Type.Atom @primary_key false typed_embedded_schema do field(:id, :string) field(:time, :utc_datetime_usec) field(:user_id, :integer) field(:account_id, :string) field(:batch_id, :string) field(:request_id, :string) field(:type, Atom, default: :MARGIN_CALL_EXTEND) field(:extension_number, :integer) end def changeset(struct, data) do struct |> cast(data, [ :id, :time, :user_id, :account_id, :batch_id, :request_id, :type, :extension_number ]) |> validate_required([ :id, :time, :user_id, :account_id, :batch_id, :type, :extension_number ]) end end