Add nullable region field to evolutions for regional form filtering

Regional evolutions (e.g., Pikachu → Alolan Raichu) only occur in specific
regions. This adds a nullable region column so the app can filter evolutions
by the game's region. When a regional evolution exists for a given trigger/item,
the non-regional counterpart is automatically hidden.

Full-stack: migration, model, schemas, API with region query param, seeder,
Go fetch tool, frontend types/API/hook/components, and admin form.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-07 20:05:07 +01:00
parent 23a7b6ad53
commit a65efa22da
17 changed files with 147 additions and 11 deletions

View File

@@ -165,6 +165,7 @@ type EvolutionOverrides struct {
Item *string `json:"item"`
HeldItem *string `json:"held_item"`
Condition *string `json:"condition"`
Region *string `json:"region"`
} `json:"add"`
Modify []struct {
FromDex int `json:"from_dex"`
@@ -213,6 +214,7 @@ func applyEvolutionOverrides(evolutions []EvolutionOutput, overridesPath string)
Item: addition.Item,
HeldItem: addition.HeldItem,
Condition: addition.Condition,
Region: addition.Region,
})
}
@@ -252,6 +254,12 @@ func applyEvolutionOverrides(evolutions []EvolutionOutput, overridesPath string)
} else if value == nil {
e.Condition = nil
}
case "region":
if s, ok := value.(string); ok {
e.Region = &s
} else if value == nil {
e.Region = nil
}
}
}
}