module AutoSync extend ActiveSupport::Concern included do before_action :sync_family, if: :family_needs_auto_sync? end private def sync_family Current.family.sync_later end def family_needs_auto_sync? return false unless Current.family&.accounts&.active&.any? return false if (Current.family.last_sync_created_at&.to_date || 1.day.ago) >= Date.current Rails.logger.info "Auto-syncing family #{Current.family.id}, last sync was #{Current.family.last_sync_created_at}" true end end