2024-07-25 12:51:50 -04:00
|
|
|
module AutoSync
|
|
|
|
extend ActiveSupport::Concern
|
|
|
|
|
|
|
|
included do
|
2024-11-15 13:49:37 -05:00
|
|
|
before_action :sync_family, if: :family_needs_auto_sync?
|
2024-07-25 12:51:50 -04:00
|
|
|
end
|
|
|
|
|
|
|
|
private
|
|
|
|
def sync_family
|
2024-11-15 13:49:37 -05:00
|
|
|
Current.family.update!(last_synced_at: Time.current)
|
|
|
|
Current.family.sync_later
|
|
|
|
end
|
|
|
|
|
|
|
|
def family_needs_auto_sync?
|
|
|
|
return false unless Current.family.present?
|
2025-03-07 17:35:55 -05:00
|
|
|
return false unless Current.family.accounts.active.any?
|
2024-11-15 13:49:37 -05:00
|
|
|
|
2025-02-21 11:57:59 -05:00
|
|
|
(Current.family.last_synced_at&.to_date || 1.day.ago) < Date.current
|
2024-07-25 12:51:50 -04:00
|
|
|
end
|
|
|
|
end
|