From e87650a2b0785da0e959f5d875ab54b8ef5253d7 Mon Sep 17 00:00:00 2001 From: Justin Edmund Date: Sat, 20 Dec 2025 04:13:16 -0800 Subject: [PATCH] add season and series to unified search for characters --- app/blueprints/api/v1/search_blueprint.rb | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/app/blueprints/api/v1/search_blueprint.rb b/app/blueprints/api/v1/search_blueprint.rb index f80531b..e6b2582 100644 --- a/app/blueprints/api/v1/search_blueprint.rb +++ b/app/blueprints/api/v1/search_blueprint.rb @@ -5,6 +5,27 @@ module Api class SearchBlueprint < Blueprinter::Base identifier :searchable_id 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