mirror of
https://github.com/Growstuff/growstuff.git
synced 2026-03-30 04:35:28 -04:00
67 lines
1.6 KiB
Ruby
67 lines
1.6 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
module SearchActivities
|
|
extend ActiveSupport::Concern
|
|
|
|
included do
|
|
searchkick merge_mappings: true,
|
|
settings: { number_of_shards: 1, number_of_replicas: 0 },
|
|
mappings: {
|
|
properties: {
|
|
active: { type: :boolean },
|
|
created_at: { type: :integer },
|
|
updated_at: { type: :integer },
|
|
due_date: { type: :date }
|
|
}
|
|
}
|
|
|
|
def search_data
|
|
{
|
|
slug:,
|
|
active:,
|
|
finished: finished?,
|
|
name:,
|
|
due_date:,
|
|
category:,
|
|
garden_id:,
|
|
garden_name: garden&.name,
|
|
garden_slug: garden&.garden_slug,
|
|
planting_id:,
|
|
planting_name: planting&.crop&.name,
|
|
planting_slug: planting&.slug,
|
|
description:,
|
|
|
|
# owner
|
|
owner_id:,
|
|
owner_login_name:,
|
|
owner_slug:,
|
|
|
|
# timestamps
|
|
created_at: created_at.to_i,
|
|
updated_at: updated_at.to_i
|
|
}
|
|
end
|
|
|
|
def self.homepage_records(limit)
|
|
records = []
|
|
owners = []
|
|
1..limit.times do
|
|
where = {
|
|
# photos_count: { gt: 0 },
|
|
owner_id: { not: owners }
|
|
}
|
|
one_record = search('*',
|
|
limit: 1,
|
|
where:,
|
|
boost_by: [:created_at],
|
|
load: false).first
|
|
return records if one_record.nil?
|
|
|
|
owners << one_record.owner_id
|
|
records << one_record
|
|
end
|
|
records
|
|
end
|
|
end
|
|
end
|