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] }
|
@cached_skills ||= all.index_by { |s| [s.skill_group, s.modifier] }
|
||||||
end
|
end
|
||||||
|
|
||||||
def cached_by_name
|
def cached_by_game_name
|
||||||
@name_cache ||= begin
|
@game_name_cache ||= begin
|
||||||
cache = {}
|
cache = {}
|
||||||
all.each do |skill|
|
all.each do |skill|
|
||||||
cache[skill.name_en] = skill
|
# Use game names for matching, fall back to display names if not set
|
||||||
cache[skill.name_jp] = skill
|
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
|
end
|
||||||
cache
|
cache
|
||||||
end
|
end
|
||||||
|
|
@ -50,13 +53,13 @@ class ArtifactSkill < ApplicationRecord
|
||||||
cached_skills[[group_key, modifier]]
|
cached_skills[[group_key, modifier]]
|
||||||
end
|
end
|
||||||
|
|
||||||
def find_by_name(name)
|
def find_by_game_name(name)
|
||||||
cached_by_name[name]
|
cached_by_game_name[name]
|
||||||
end
|
end
|
||||||
|
|
||||||
def clear_cache!
|
def clear_cache!
|
||||||
@cached_skills = nil
|
@cached_skills = nil
|
||||||
@name_cache = nil
|
@game_name_cache = nil
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -183,8 +183,8 @@ class ArtifactImportService
|
||||||
quality = info['skill_quality'] || info['level'] || 1
|
quality = info['skill_quality'] || info['level'] || 1
|
||||||
level = info['level'] || 1
|
level = info['level'] || 1
|
||||||
|
|
||||||
# Look up skill by name (supports both EN and JP)
|
# Look up skill by game name (supports both EN and JP)
|
||||||
skill = ArtifactSkill.find_by_name(name)
|
skill = ArtifactSkill.find_by_game_name(name)
|
||||||
return {} unless skill
|
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.
|
# 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
|
# These are extensions that must be enabled in order to support this database
|
||||||
enable_extension "btree_gin"
|
enable_extension "btree_gin"
|
||||||
enable_extension "pg_catalog.plpgsql"
|
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_en", default: ""
|
||||||
t.string "suffix_jp", default: ""
|
t.string "suffix_jp", default: ""
|
||||||
t.string "polarity", default: "positive", null: false
|
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", "modifier"], name: "index_artifact_skills_on_skill_group_and_modifier", unique: true
|
||||||
t.index ["skill_group"], name: "index_artifact_skills_on_skill_group"
|
t.index ["skill_group"], name: "index_artifact_skills_on_skill_group"
|
||||||
end
|
end
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue