2024-10-30 09:23:44 -04:00
|
|
|
class Security::SynthComboboxOption
|
|
|
|
include ActiveModel::Model
|
|
|
|
include Providable
|
|
|
|
|
|
|
|
attr_accessor :symbol, :name, :logo_url, :exchange_acronym, :exchange_mic
|
|
|
|
|
|
|
|
class << self
|
|
|
|
def find_in_synth(query)
|
2024-10-30 10:42:57 -04:00
|
|
|
country = Current.family.country
|
|
|
|
country = "#{country},US" unless country == "US"
|
|
|
|
|
|
|
|
security_prices_provider.search_securities(
|
|
|
|
query:,
|
|
|
|
dataset: "limited",
|
|
|
|
country_code: country
|
|
|
|
).securities.map { |attrs| new(**attrs) }
|
2024-10-30 09:23:44 -04:00
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
def id
|
|
|
|
"#{symbol}|#{exchange_mic}" # submitted by combobox as value
|
|
|
|
end
|
|
|
|
|
|
|
|
def to_combobox_display
|
|
|
|
"#{symbol} - #{name} (#{exchange_acronym})" # shown in combobox input when selected
|
|
|
|
end
|
|
|
|
end
|