mirror of
https://github.com/maybe-finance/maybe.git
synced 2025-07-20 05:39:39 +02:00
* Initial pass at Synth-based ticker selection * Update _tickers.turbo_stream.erb * Functional combobox display * A few cleanup steps * Linter * Prevent long strings * Another step towards functional combobox * Deprecated files * Custom Combobox implementation * Lint * Test suite fixes * Lint * Make direct use of mic codes * Update splits * Update trades_test.rb
27 lines
678 B
Ruby
27 lines
678 B
Ruby
class Security < ApplicationRecord
|
|
include Providable
|
|
before_save :upcase_ticker
|
|
|
|
has_many :trades, dependent: :nullify, class_name: "Account::Trade"
|
|
has_many :prices, dependent: :destroy
|
|
|
|
validates :ticker, presence: true
|
|
validates :ticker, uniqueness: { scope: :exchange_mic, case_sensitive: false }
|
|
|
|
def current_price
|
|
@current_price ||= Security::Price.find_price(security: self, date: Date.current)
|
|
return nil if @current_price.nil?
|
|
Money.new(@current_price.price, @current_price.currency)
|
|
end
|
|
|
|
def to_combobox_display
|
|
"#{ticker} (#{exchange_acronym})"
|
|
end
|
|
|
|
|
|
private
|
|
|
|
def upcase_ticker
|
|
self.ticker = ticker.upcase
|
|
end
|
|
end
|