mirror of
https://github.com/we-promise/sure.git
synced 2026-04-08 14:54:49 +00:00
* FIX issue with stock price retrieval on weekend * make weekend provisional and increase lookback * FIX query error * fix gap fill The bug: When a price is provisional but the provider doesn't return a new value (weekends), we fall back to the existing DB value instead of gap-filling from Friday's correct price. * Update importer.rb Align provider fetch to use PROVISIONAL_LOOKBACK_DAYS for consistency. In the DB fallback, derive currency from provider_prices or db_prices and filter the query accordingly. * Update 20260110122603_mark_suspicious_prices_provisional.rb * Delete db/migrate/20260110122603_mark_suspicious_prices_provisional.rb Signed-off-by: soky srm <sokysrm@gmail.com> * Update importer.rb * FIX tests * FIX last tests * Update importer_test.rb The test doesn't properly force effective_start_date to skip old dates because there are many missing dates between the old date and recent dates. Let me fix it to properly test the subset processing scenario. --------- Signed-off-by: soky srm <sokysrm@gmail.com>
16 lines
598 B
Ruby
16 lines
598 B
Ruby
class Security::Price < ApplicationRecord
|
|
belongs_to :security
|
|
|
|
validates :date, :price, :currency, presence: true
|
|
validates :date, uniqueness: { scope: %i[security_id currency] }
|
|
|
|
# Provisional prices from recent days that should be re-fetched
|
|
# - Must be provisional (gap-filled)
|
|
# - Must be from the last few days (configurable, default 7)
|
|
# - Includes weekends: they get fixed via cascade when weekday prices are fetched
|
|
scope :refetchable_provisional, ->(lookback_days: 7) {
|
|
where(provisional: true)
|
|
.where(date: lookback_days.days.ago.to_date..Date.current)
|
|
}
|
|
end
|