add game_name columns for artifact skill matching
separate game names (used for import matching) from display names
This commit is contained in:
parent
3390eaf755
commit
db2aa43d81
4 changed files with 25 additions and 10 deletions
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Reference in a new issue