add season and series to unified search for characters
This commit is contained in:
parent
5ea5388bed
commit
e87650a2b0
1 changed files with 21 additions and 0 deletions
|
|
@ -5,6 +5,27 @@ module Api
|
||||||
class SearchBlueprint < Blueprinter::Base
|
class SearchBlueprint < Blueprinter::Base
|
||||||
identifier :searchable_id
|
identifier :searchable_id
|
||||||
fields :searchable_type, :granblue_id, :name_en, :name_jp, :element
|
fields :searchable_type, :granblue_id, :name_en, :name_jp, :element
|
||||||
|
|
||||||
|
# Character-specific fields (nil for non-characters)
|
||||||
|
field :season do |document|
|
||||||
|
document.searchable_type == 'Character' ? document.searchable&.season : nil
|
||||||
|
end
|
||||||
|
|
||||||
|
field :series do |document|
|
||||||
|
next nil unless document.searchable_type == 'Character'
|
||||||
|
|
||||||
|
character = document.searchable
|
||||||
|
next nil unless character
|
||||||
|
|
||||||
|
# Return series as array of objects with id, slug, and name
|
||||||
|
character.character_series_records.ordered.map do |series|
|
||||||
|
{
|
||||||
|
id: series.id,
|
||||||
|
slug: series.slug,
|
||||||
|
name: { en: series.name_en, ja: series.name_jp }
|
||||||
|
}
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue