add game_name columns for artifact skill matching

separate game names (used for import matching) from display names
This commit is contained in:
Justin Edmund 2025-12-18 22:48:08 -08:00
parent 3390eaf755
commit db2aa43d81
4 changed files with 25 additions and 10 deletions

View file

@ -28,12 +28,15 @@ class ArtifactSkill < ApplicationRecord
@cached_skills ||= all.index_by { |s| [s.skill_group, s.modifier] }
end
def cached_by_name
@name_cache ||= begin
def cached_by_game_name
@game_name_cache ||= begin
cache = {}
all.each do |skill|
cache[skill.name_en] = skill
cache[skill.name_jp] = skill
# Use game names for matching, fall back to display names if not set
en_key = skill.game_name_en.presence || skill.name_en
jp_key = skill.game_name_jp.presence || skill.name_jp
cache[en_key] = skill
cache[jp_key] = skill
end
cache
end
@ -50,13 +53,13 @@ class ArtifactSkill < ApplicationRecord
cached_skills[[group_key, modifier]]
end
def find_by_name(name)
cached_by_name[name]
def find_by_game_name(name)
cached_by_game_name[name]
end
def clear_cache!
@cached_skills = nil
@name_cache = nil
@game_name_cache = nil
end
end

View file

@ -183,8 +183,8 @@ class ArtifactImportService
quality = info['skill_quality'] || info['level'] || 1
level = info['level'] || 1
# Look up skill by name (supports both EN and JP)
skill = ArtifactSkill.find_by_name(name)
# Look up skill by game name (supports both EN and JP)
skill = ArtifactSkill.find_by_game_name(name)
return {} unless skill
{

View file

@ -0,0 +1,8 @@
class AddGameNamesToArtifactSkills < ActiveRecord::Migration[8.0]
def change
add_column :artifact_skills, :game_name_en, :string
add_column :artifact_skills, :game_name_jp, :string
add_index :artifact_skills, :game_name_en
add_index :artifact_skills, :game_name_jp
end
end

View file

@ -10,7 +10,7 @@
#
# It's strongly recommended that you check this file into your version control system.
ActiveRecord::Schema[8.0].define(version: 2025_12_19_062316) do
ActiveRecord::Schema[8.0].define(version: 2025_12_19_064037) do
# These are extensions that must be enabled in order to support this database
enable_extension "btree_gin"
enable_extension "pg_catalog.plpgsql"
@ -33,6 +33,10 @@ ActiveRecord::Schema[8.0].define(version: 2025_12_19_062316) do
t.string "suffix_en", default: ""
t.string "suffix_jp", default: ""
t.string "polarity", default: "positive", null: false
t.string "game_name_en"
t.string "game_name_jp"
t.index ["game_name_en"], name: "index_artifact_skills_on_game_name_en"
t.index ["game_name_jp"], name: "index_artifact_skills_on_game_name_jp"
t.index ["skill_group", "modifier"], name: "index_artifact_skills_on_skill_group_and_modifier", unique: true
t.index ["skill_group"], name: "index_artifact_skills_on_skill_group"
end