add series= setter for weapon, include flags in series list

This commit is contained in:
Justin Edmund 2025-12-03 12:38:41 -08:00
parent 38f126f2ef
commit f64fd63b6c
2 changed files with 12 additions and 4 deletions

View file

@ -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

View file

@ -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