diff --git a/app/blueprints/api/v1/weapon_series_blueprint.rb b/app/blueprints/api/v1/weapon_series_blueprint.rb index eaf7dfe..ab18d5d 100644 --- a/app/blueprints/api/v1/weapon_series_blueprint.rb +++ b/app/blueprints/api/v1/weapon_series_blueprint.rb @@ -10,12 +10,10 @@ module Api } end - fields :slug, :order + fields :slug, :order, :extra, :element_changeable, :has_weapon_keys, + :has_awakening, :has_ax_skills view :full do - fields :extra, :element_changeable, :has_weapon_keys, - :has_awakening, :has_ax_skills - field :weapon_count do |ws| ws.weapons.count end diff --git a/app/models/weapon.rb b/app/models/weapon.rb index 93415f8..6fd5cf7 100644 --- a/app/models/weapon.rb +++ b/app/models/weapon.rb @@ -156,4 +156,14 @@ class Weapon < ApplicationRecord def series_slug weapon_series&.slug || SERIES_SLUGS[series] end + + # Virtual attribute to set weapon_series by ID or slug + # Supports both UUID and slug lookup for flexibility + def series=(value) + return self.weapon_series = nil if value.blank? + + # Try to find by ID first, then by slug + found = WeaponSeries.find_by(id: value) || WeaponSeries.find_by(slug: value) + self.weapon_series = found + end end