Current section
Files
Jump to
Current section
Files
lib/schema/user.ex
defmodule Ameritrade.User.Principals do
@moduledoc false
alias Ameritrade.User.Quotes
alias Ameritrade.User.StreamerInfo
alias Ameritrade.User.StreamerSubscriptionKeys
alias Ameritrade.User.Account
@type t :: %__MODULE__{
authToken: String.t() | nil,
userId: String.t() | nil,
userCdDomainId: String.t() | nil,
primaryAccountId: String.t() | nil,
lastLoginTime: String.t() | nil,
tokenExpirationTime: String.t() | nil,
accessLevel: String.t() | nil,
stalePassword: String.t() | nil,
streamerInfo: map,
professionalStatus: String.t() | nil,
quotes: map,
streamerSubscriptionKeys: map,
accounts: list
}
@derive Jason.Encoder
defstruct authToken: nil,
userId: nil,
userCdDomainId: nil,
primaryAccountId: nil,
lastLoginTime: nil,
tokenExpirationTime: nil,
accessLevel: nil,
stalePassword: nil,
streamerInfo: %{},
professionalStatus: nil,
quotes: %{},
streamerSubscriptionKeys: %{},
accounts: []
end
defmodule Ameritrade.User.StreamerInfo do
@moduledoc false
@type t :: %__MODULE__{
streamerBinaryUrl: String.t() | nil,
streamerSocketUrl: String.t() | nil,
token: String.t() | nil,
tokenTimestamp: String.t() | nil,
userGroup: String.t() | nil,
accessLevel: String.t() | nil,
acl: String.t() | nil,
appId: String.t() | nil
}
@derive Jason.Encoder
defstruct streamerBinaryUrl: nil,
streamerSocketUrl: nil,
token: nil,
tokenTimestamp: nil,
userGroup: nil,
accessLevel: nil,
acl: nil,
appId: nil
end
defmodule Ameritrade.User.Quotes do
@moduledoc false
@type t :: %__MODULE__{
isNyseDelayed: Boolean.t(),
isNasdaqDelayed: Boolean.t(),
isOpraDelayed: Boolean.t(),
isAmexDelayed: Boolean.t(),
isCmeDelayed: Boolean.t(),
isIceDelayed: Boolean.t(),
isForexDelayed: Boolean.t()
}
@derive Jason.Encoder
defstruct isNyseDelayed: false,
isNasdaqDelayed: false,
isOpraDelayed: false,
isAmexDelayed: false,
isCmeDelayed: false,
isIceDelayed: false,
isForexDelayed: false
end
defmodule Ameritrade.User.StreamerSubscriptionKeys do
@moduledoc false
@type t :: %__MODULE__{
keys: list
}
@derive Jason.Encoder
defstruct keys: []
end
defmodule Ameritrade.User.Account do
@moduledoc false
alias Ameritrade.User.Account.Preferences
alias Ameritrade.User.Account.Authorizations
@type t :: %__MODULE__{
accountId: String.t() | nil,
description: String.t() | nil,
displayName: String.t() | nil,
accountCdDomainId: String.t() | nil,
company: String.t() | nil,
segment: String.t() | nil,
surrogateIds: map | nil,
preferences: map,
acl: String.t() | nil,
authorizations: map
}
@derive Jason.Encoder
defstruct accountId: nil,
description: nil,
displayName: nil,
accountCdDomainId: nil,
company: nil,
segment: nil,
surrogateIds: nil,
preferences: %{},
acl: nil,
authorizations: %{}
end
defmodule Ameritrade.User.Account.Preferences do
@moduledoc false
@type t :: %__MODULE__{
expressTrading: Boolean.t(),
directOptionsRouting: Boolean.t(),
directEquityRouting: Boolean.t(),
defaultEquityOrderLegInstruction: String.t() | nil,
defaultEquityOrderType: String.t() | nil,
defaultEquityOrderPriceLinkType: String.t() | nil,
defaultEquityOrderDuration: String.t() | nil,
defaultEquityOrderMarketSession: String.t() | nil,
defaultEquityQuantity: String.t() | nil,
mutualFundTaxLotMethod: String.t() | nil,
optionTaxLotMethod: String.t() | nil,
equityTaxLotMethod: String.t() | nil,
defaultAdvancedToolLaunch: String.t() | nil,
authTokenTimeout: String.t() | nil
}
@derive Jason.Encoder
defstruct expressTrading: false,
directOptionsRouting: false,
directEquityRouting: false,
defaultEquityOrderLegInstruction: nil,
defaultEquityOrderType: nil,
defaultEquityOrderPriceLinkType: nil,
defaultEquityOrderDuration: nil,
defaultEquityOrderMarketSession: nil,
defaultEquityQuantity: 0,
mutualFundTaxLotMethod: nil,
optionTaxLotMethod: nil,
equityTaxLotMethod: nil,
defaultAdvancedToolLaunch: nil,
authTokenTimeout: nil
end
defmodule Ameritrade.User.Account.Authorizations do
@moduledoc false
@type t :: %__MODULE__{
apex: Boolean.t(),
levelTwoQuotes: Boolean.t(),
stockTrading: Boolean.t(),
marginTrading: Boolean.t(),
streamingNews: Boolean.t(),
optionTradingLevel: Boolean.t(),
streamerAccess: Boolean.t(),
advancedMargin: Boolean.t(),
scottradeAccount: Boolean.t()
}
@derive Jason.Encoder
defstruct apex: false,
levelTwoQuotes: false,
stockTrading: false,
marginTrading: false,
streamingNews: false,
optionTradingLevel: nil,
streamerAccess: false,
advancedMargin: false,
scottradeAccount: false
end