removed all ocurences of GameSystem: "midgard"

This commit is contained in:
2026-01-29 09:14:33 +01:00
parent dc5b3c3944
commit 558c5735be
19 changed files with 170 additions and 146 deletions
+2 -2
View File
@@ -1141,8 +1141,8 @@ func TestSearchBeliefs(t *testing.T) {
//database.DB.Exec("INSERT OR IGNORE INTO game_systems(code,name,description,is_active,created_at,modified_at) VALUES (?,?,?,?,strftime('%s','now'),strftime('%s','now'))", "midgard", "midgard", "", true) //database.DB.Exec("INSERT OR IGNORE INTO game_systems(code,name,description,is_active,created_at,modified_at) VALUES (?,?,?,?,strftime('%s','now'),strftime('%s','now'))", "midgard", "midgard", "", true)
// Create some test believes for midgard // Create some test believes for midgard
b1 := &models.Believe{GameSystem: "midgard", Name: "TestFaithOne", SourceID: 1} b1 := &models.Believe{GameSystemId: 1, Name: "TestFaithOne", SourceID: 1}
b2 := &models.Believe{GameSystem: "midgard", Name: "OtherFaith", SourceID: 1} b2 := &models.Believe{GameSystemId: 1, Name: "OtherFaith", SourceID: 1}
err = b1.Create() err = b1.Create()
assert.NoError(t, err) assert.NoError(t, err)
err = b2.Create() err = b2.Create()
+1 -1
View File
@@ -40,7 +40,7 @@ func TestLearnSpell(t *testing.T) {
} }
} else { } else {
// Create minimal spell entry if missing // Create minimal spell entry if missing
spell = models.Spell{GameSystem: "midgard", Name: "Befestigen", Stufe: 1, Category: "Zauber", LearningCategory: "Zauber"} spell = models.Spell{GameSystemId: 1, Name: "Befestigen", Stufe: 1, Category: "Zauber", LearningCategory: "Zauber"}
_ = spell.Create() _ = spell.Create()
} }
+13 -13
View File
@@ -177,7 +177,7 @@ func TestExportImportSources(t *testing.T) {
source := models.Source{ source := models.Source{
Code: "ARK", Code: "ARK",
Name: "Arkanum", Name: "Arkanum",
GameSystem: "midgard", GameSystemId: 1,
IsActive: true, IsActive: true,
} }
database.DB.Create(&source) database.DB.Create(&source)
@@ -218,7 +218,7 @@ func TestExportImportSkillCategoryDifficulty(t *testing.T) {
source := getOrCreateSource("KOD", "Kodex") source := getOrCreateSource("KOD", "Kodex")
skill := models.Skill{ skill := models.Skill{
Name: "Tanzen", Name: "Tanzen",
GameSystem: "midgard", GameSystemId: 1,
SourceID: source.ID, SourceID: source.ID,
} }
if err := skill.Create(); err != nil { if err := skill.Create(); err != nil {
@@ -275,7 +275,7 @@ func TestExportImportSkillCategories(t *testing.T) {
source := getOrCreateSource("TEST_SC", "Test Source") source := getOrCreateSource("TEST_SC", "Test Source")
category := models.SkillCategory{ category := models.SkillCategory{
Name: "TestCategory", Name: "TestCategory",
GameSystem: "midgard", GameSystemId: 1,
SourceID: source.ID, SourceID: source.ID,
} }
database.DB.Create(&category) database.DB.Create(&category)
@@ -321,7 +321,7 @@ func TestExportImportSkillDifficulties(t *testing.T) {
// Create test data // Create test data
difficulty := models.SkillDifficulty{ difficulty := models.SkillDifficulty{
Name: "TestDifficulty", Name: "TestDifficulty",
GameSystem: "midgard", GameSystemId: 1,
} }
database.DB.Create(&difficulty) database.DB.Create(&difficulty)
@@ -436,10 +436,10 @@ func TestExportImportAll(t *testing.T) {
// Create test data // Create test data
source := getOrCreateSource("TEST_ALL", "Test All Source") source := getOrCreateSource("TEST_ALL", "Test All Source")
category := models.SkillCategory{Name: "AllCategory", GameSystem: "midgard", SourceID: source.ID} category := models.SkillCategory{Name: "AllCategory", GameSystemId: 1, SourceID: source.ID}
database.DB.Create(&category) database.DB.Create(&category)
difficulty := models.SkillDifficulty{Name: "AllDifficulty", GameSystem: "midgard"} difficulty := models.SkillDifficulty{Name: "AllDifficulty", GameSystemId: 1}
database.DB.Create(&difficulty) database.DB.Create(&difficulty)
skill := models.Skill{ skill := models.Skill{
@@ -454,7 +454,7 @@ func TestExportImportAll(t *testing.T) {
spell := models.Spell{ spell := models.Spell{
Name: "AllSpell", Name: "AllSpell",
GameSystem: "midgard", GameSystemId: 1,
SourceID: source.ID, SourceID: source.ID,
Stufe: 2, Stufe: 2,
} }
@@ -1161,13 +1161,13 @@ func TestExportImportClassCategoryLearningPoints(t *testing.T) {
class := models.CharacterClass{ class := models.CharacterClass{
Code: "TEST_KRI", Code: "TEST_KRI",
Name: "Test-Krieger", Name: "Test-Krieger",
GameSystem: "midgard", GameSystemId: 1,
} }
database.DB.Create(&class) database.DB.Create(&class)
category := models.SkillCategory{ category := models.SkillCategory{
Name: "Test-Kampf", Name: "Test-Kampf",
GameSystem: "midgard", GameSystemId: 1,
} }
database.DB.Create(&category) database.DB.Create(&category)
@@ -1210,7 +1210,7 @@ func TestExportImportClassSpellPoints(t *testing.T) {
class := models.CharacterClass{ class := models.CharacterClass{
Code: "TEST_MAG", Code: "TEST_MAG",
Name: "Test-Magier", Name: "Test-Magier",
GameSystem: "midgard", GameSystemId: 1,
} }
database.DB.Create(&class) database.DB.Create(&class)
@@ -1252,7 +1252,7 @@ func TestExportImportClassTypicalSkills(t *testing.T) {
class := models.CharacterClass{ class := models.CharacterClass{
Code: "TEST_WAL", Code: "TEST_WAL",
Name: "Test-Waldläufer", Name: "Test-Waldläufer",
GameSystem: "midgard", GameSystemId: 1,
} }
database.DB.Create(&class) database.DB.Create(&class)
@@ -1309,13 +1309,13 @@ func TestExportImportClassTypicalSpells(t *testing.T) {
class := models.CharacterClass{ class := models.CharacterClass{
Code: "TEST_DRU", Code: "TEST_DRU",
Name: "Test-Druide", Name: "Test-Druide",
GameSystem: "midgard", GameSystemId: 1,
} }
database.DB.Create(&class) database.DB.Create(&class)
spell := models.Spell{ spell := models.Spell{
Name: "Test-Heilen", Name: "Test-Heilen",
GameSystem: "midgard", GameSystemId: 1,
Stufe: 1, Stufe: 1,
} }
database.DB.Create(&spell) database.DB.Create(&spell)
+5 -5
View File
@@ -118,7 +118,7 @@ func TestSkill_First(t *testing.T) {
name: "existing skill", name: "existing skill",
skill: &models.Skill{ skill: &models.Skill{
Name: "Test Skill", Name: "Test Skill",
GameSystem: "midgard", GameSystemId: 1,
}, },
findName: "Test Skill", findName: "Test Skill",
wantErr: false, wantErr: false,
@@ -174,7 +174,7 @@ func TestSkill_FirstId(t *testing.T) {
name: "existing skill", name: "existing skill",
skill: &models.Skill{ skill: &models.Skill{
Name: "Test Skill", Name: "Test Skill",
GameSystem: "midgard", GameSystemId: 1,
}, },
findId: 1, findId: 1,
wantErr: false, wantErr: false,
@@ -286,7 +286,7 @@ func TestSkill_Delete(t *testing.T) {
name: "delete existing skill", name: "delete existing skill",
skill: &models.Skill{ skill: &models.Skill{
Name: "Test Skill", Name: "Test Skill",
GameSystem: "midgard", GameSystemId: 1,
}, },
wantErr: false, wantErr: false,
}, },
@@ -340,11 +340,11 @@ func TestSkill_GetSkillCategories(t *testing.T) {
testCategories := []*models.SkillCategory{ testCategories := []*models.SkillCategory{
{ {
Name: "Category1", Name: "Category1",
GameSystem: "midgard", GameSystemId: 1,
}, },
{ {
Name: "Category2", Name: "Category2",
GameSystem: "midgard", GameSystemId: 1,
}, },
} }
@@ -105,7 +105,7 @@ func linkExistingSpellsToSchools() error {
// Zauberschule existiert nicht, erstelle sie // Zauberschule existiert nicht, erstelle sie
newSchool := models.SpellSchool{ newSchool := models.SpellSchool{
Name: spell.Category, Name: spell.Category,
GameSystem: "midgard", GameSystemId: 1,
} }
if err := newSchool.Create(); err != nil { if err := newSchool.Create(); err != nil {
log.Printf("Warning: Failed to create spell school %s for spell %s: %v", spell.Category, spell.Name, err) log.Printf("Warning: Failed to create spell school %s for spell %s: %v", spell.Category, spell.Name, err)
@@ -225,11 +225,12 @@ func findSkillInLearningData(skillName string) (string, string) {
func createSkillCategoryLink(skillID uint, skillName, categoryName, difficultyName string) error { func createSkillCategoryLink(skillID uint, skillName, categoryName, difficultyName string) error {
// Hole oder erstelle die Kategorie // Hole oder erstelle die Kategorie
var skillCategory models.SkillCategory var skillCategory models.SkillCategory
gs := GetGameSystem(0, "midgard")
if err := skillCategory.FirstByName(categoryName); err != nil { if err := skillCategory.FirstByName(categoryName); err != nil {
// Kategorie existiert nicht, erstelle sie // Kategorie existiert nicht, erstelle sie
skillCategory = models.SkillCategory{ skillCategory = models.SkillCategory{
Name: categoryName, Name: categoryName,
GameSystem: "midgard", GameSystemId: gs.ID,
} }
if err := skillCategory.Create(); err != nil { if err := skillCategory.Create(); err != nil {
return fmt.Errorf("failed to create skill category %s: %w", categoryName, err) return fmt.Errorf("failed to create skill category %s: %w", categoryName, err)
@@ -243,7 +244,7 @@ func createSkillCategoryLink(skillID uint, skillName, categoryName, difficultyNa
// Schwierigkeit existiert nicht, erstelle sie // Schwierigkeit existiert nicht, erstelle sie
skillDifficulty = models.SkillDifficulty{ skillDifficulty = models.SkillDifficulty{
Name: difficultyName, Name: difficultyName,
GameSystem: "midgard", GameSystemId: gs.ID,
} }
if err := skillDifficulty.Create(); err != nil { if err := skillDifficulty.Create(); err != nil {
return fmt.Errorf("failed to create skill difficulty %s: %w", difficultyName, err) return fmt.Errorf("failed to create skill difficulty %s: %w", difficultyName, err)
+10 -5
View File
@@ -157,13 +157,14 @@ func migrateCharacterClasses() error {
"PS": "Priester Streiter", "PS": "Priester Streiter",
"Sc": "Schamane", "Sc": "Schamane",
} }
gs := GetGameSystem(0, "")
for code, name := range characterClasses { for code, name := range characterClasses {
class := models.CharacterClass{ class := models.CharacterClass{
Code: code, Code: code,
Name: name, Name: name,
SourceID: kodSource.ID, SourceID: kodSource.ID,
GameSystem: "midgard", GameSystemId: gs.ID,
} }
// Prüfe ob die Klasse bereits existiert // Prüfe ob die Klasse bereits existiert
@@ -193,6 +194,7 @@ func migrateSkillCategories() error {
"Alltag", "Freiland", "Halbwelt", "Kampf", "Körper", "Alltag", "Freiland", "Halbwelt", "Kampf", "Körper",
"Sozial", "Unterwelt", "Waffen", "Wissen", "Schilde und Parierwaffen", "Sozial", "Unterwelt", "Waffen", "Wissen", "Schilde und Parierwaffen",
} }
gs := GetGameSystem(0, "")
for _, categoryName := range categories { for _, categoryName := range categories {
sourceID := kodSource.ID sourceID := kodSource.ID
@@ -208,7 +210,7 @@ func migrateSkillCategories() error {
category := models.SkillCategory{ category := models.SkillCategory{
Name: categoryName, Name: categoryName,
SourceID: sourceID, SourceID: sourceID,
GameSystem: "midgard", GameSystemId: gs.ID,
} }
// Prüfe ob die Kategorie bereits existiert // Prüfe ob die Kategorie bereits existiert
@@ -228,11 +230,12 @@ func migrateSkillCategories() error {
// migrateSkillDifficulties erstellt Schwierigkeitsgrade // migrateSkillDifficulties erstellt Schwierigkeitsgrade
func migrateSkillDifficulties() error { func migrateSkillDifficulties() error {
difficulties := []string{"leicht", "normal", "schwer", "sehr schwer"} difficulties := []string{"leicht", "normal", "schwer", "sehr schwer"}
gs := GetGameSystem(0, "")
for _, difficultyName := range difficulties { for _, difficultyName := range difficulties {
difficulty := models.SkillDifficulty{ difficulty := models.SkillDifficulty{
Name: difficultyName, Name: difficultyName,
GameSystem: "midgard", GameSystemId: gs.ID,
} }
// Prüfe ob die Schwierigkeit bereits existiert // Prüfe ob die Schwierigkeit bereits existiert
@@ -261,6 +264,7 @@ func migrateSpellSchools() error {
if err := arkSource.FirstByCode("ARK"); err != nil { if err := arkSource.FirstByCode("ARK"); err != nil {
return fmt.Errorf("ARK source not found: %w", err) return fmt.Errorf("ARK source not found: %w", err)
} }
gs := GetGameSystem(0, "")
schools := map[string]uint{ schools := map[string]uint{
// Basis-Zauberschulen (Kodex) // Basis-Zauberschulen (Kodex)
@@ -281,7 +285,7 @@ func migrateSpellSchools() error {
school := models.SpellSchool{ school := models.SpellSchool{
Name: schoolName, Name: schoolName,
SourceID: sourceID, SourceID: sourceID,
GameSystem: "midgard", GameSystemId: gs.ID,
} }
// Prüfe ob die Schule bereits existiert // Prüfe ob die Schule bereits existiert
@@ -371,11 +375,12 @@ func migrateClassSpellSchoolEPCosts() error {
// migrateSpellLevelLECosts migriert LE-Kosten pro Zauber-Level // migrateSpellLevelLECosts migriert LE-Kosten pro Zauber-Level
func migrateSpellLevelLECosts() error { func migrateSpellLevelLECosts() error {
gs := GetGameSystem(0, "")
for level, leCost := range learningCostsData.SpellLEPerLevel { for level, leCost := range learningCostsData.SpellLEPerLevel {
cost := models.SpellLevelLECost{ cost := models.SpellLevelLECost{
Level: level, Level: level,
LERequired: leCost, LERequired: leCost,
GameSystem: "midgard", GameSystemId: gs.ID,
} }
if err := cost.Create(); err != nil { if err := cost.Create(); err != nil {
@@ -26,7 +26,7 @@ func getOrCreateSource(code, name string) models.Source {
source = models.Source{ source = models.Source{
Code: code, Code: code,
Name: name, Name: name,
GameSystem: "midgard", GameSystemId: 1,
IsActive: true, IsActive: true,
} }
database.DB.Create(&source) database.DB.Create(&source)
@@ -40,7 +40,7 @@ func getOrCreateCategory(name string, sourceID uint) models.SkillCategory {
if err := database.DB.Where("name = ? AND game_system = ?", name, "midgard").First(&category).Error; err != nil { if err := database.DB.Where("name = ? AND game_system = ?", name, "midgard").First(&category).Error; err != nil {
category = models.SkillCategory{ category = models.SkillCategory{
Name: name, Name: name,
GameSystem: "midgard", GameSystemId: 1,
SourceID: sourceID, SourceID: sourceID,
} }
database.DB.Create(&category) database.DB.Create(&category)
@@ -54,7 +54,7 @@ func getOrCreateDifficulty(name string) models.SkillDifficulty {
if err := database.DB.Where("name = ? AND game_system = ?", name, "midgard").First(&difficulty).Error; err != nil { if err := database.DB.Where("name = ? AND game_system = ?", name, "midgard").First(&difficulty).Error; err != nil {
difficulty = models.SkillDifficulty{ difficulty = models.SkillDifficulty{
Name: name, Name: name,
GameSystem: "midgard", GameSystemId: 1,
} }
database.DB.Create(&difficulty) database.DB.Create(&difficulty)
} }
+1 -1
View File
@@ -25,7 +25,7 @@ func TestExportChar2VTT(t *testing.T) {
assert.NoError(t, err, "Expected no error when exporting char") assert.NoError(t, err, "Expected no error when exporting char")
// Basic validations // Basic validations
assert.Equal(t, char.UserID, 1) assert.Equal(t, char.UserID, uint(1))
assert.Equal(t, char.Name, exportedChar.Name) assert.Equal(t, char.Name, exportedChar.Name)
assert.Equal(t, char.Rasse, exportedChar.Rasse) assert.Equal(t, char.Rasse, exportedChar.Rasse)
assert.Equal(t, char.Typ, exportedChar.Typ) assert.Equal(t, char.Typ, exportedChar.Typ)
+13 -10
View File
@@ -38,7 +38,7 @@ func lookupSourceID(sourceCode string) (uint, error) {
newSource := models.Source{ newSource := models.Source{
Code: sourceCode, Code: sourceCode,
Name: sourceCode, // Use code as name initially Name: sourceCode, // Use code as name initially
GameSystem: "midgard", // Default game system GameSystemId: models.GetGameSystem(0, "").ID, // Default game system
IsActive: true, // Set as active by default IsActive: true, // Set as active by default
} }
@@ -63,7 +63,8 @@ func ImportChar(char CharacterImport) (*models.Char, error) {
func CheckSkill(fertigkeit *Fertigkeit, autocreate bool) (*models.Skill, error) { func CheckSkill(fertigkeit *Fertigkeit, autocreate bool) (*models.Skill, error) {
stammF := models.Skill{} stammF := models.Skill{}
//err := database.DB.First(&stammF, "system=? AND name = ?", gameSystem, fertigkeit.Name).Error //err := database.DB.First(&stammF, "system=? AND name = ?", gameSystem, fertigkeit.Name).Error
err := stammF.First(fertigkeit.Name) gs := models.GetGameSystem(0, "midgard")
err := stammF.FirstwGS(fertigkeit.Name, gs.ID)
if err == nil { if err == nil {
// Fertigkeit found // Fertigkeit found
return &stammF, nil return &stammF, nil
@@ -71,7 +72,7 @@ func CheckSkill(fertigkeit *Fertigkeit, autocreate bool) (*models.Skill, error)
if !autocreate { if !autocreate {
return nil, fmt.Errorf("does not exist in Fertigkeit importer") return nil, fmt.Errorf("does not exist in Fertigkeit importer")
} }
stammF.GameSystem = "midgard" stammF.GameSystemId = models.GetGameSystem(0, "midgard").ID
stammF.Name = fertigkeit.Name stammF.Name = fertigkeit.Name
if stammF.Name != "Sprache" { if stammF.Name != "Sprache" {
stammF.Beschreibung = fertigkeit.Beschreibung stammF.Beschreibung = fertigkeit.Beschreibung
@@ -92,7 +93,7 @@ func CheckSkill(fertigkeit *Fertigkeit, autocreate bool) (*models.Skill, error)
} }
//err = database.DB.First(&stammF, "system=? AND name = ?", gameSystem, fertigkeit.Name).Error //err = database.DB.First(&stammF, "system=? AND name = ?", gameSystem, fertigkeit.Name).Error
err = stammF.First(fertigkeit.Name) err = stammF.FirstwGS(fertigkeit.Name, gs.ID)
if err != nil { if err != nil {
// Fertigkeit found // Fertigkeit found
return nil, err return nil, err
@@ -104,7 +105,8 @@ func CheckSpell(zauber *Zauber, autocreate bool) (*models.Spell, error) {
stammF := models.Spell{} stammF := models.Spell{}
//err := database.DB.First(&stammF, "system=? AND name = ?", gameSystem, zauber.Name).Error //err := database.DB.First(&stammF, "system=? AND name = ?", gameSystem, zauber.Name).Error
err := stammF.First(zauber.Name) gs := models.GetGameSystem(0, "midgard")
err := stammF.FirstwGS(zauber.Name, gs.ID)
if err == nil { if err == nil {
// zauber found // zauber found
return &stammF, nil return &stammF, nil
@@ -112,7 +114,7 @@ func CheckSpell(zauber *Zauber, autocreate bool) (*models.Spell, error) {
if !autocreate { if !autocreate {
return nil, fmt.Errorf("does not exist in zauber importer") return nil, fmt.Errorf("does not exist in zauber importer")
} }
stammF.GameSystem = "midgard" stammF.GameSystemId = models.GetGameSystem(0, "midgard").ID
stammF.Name = zauber.Name stammF.Name = zauber.Name
stammF.Beschreibung = zauber.Beschreibung stammF.Beschreibung = zauber.Beschreibung
stammF.AP = "1" stammF.AP = "1"
@@ -129,7 +131,7 @@ func CheckSpell(zauber *Zauber, autocreate bool) (*models.Spell, error) {
} }
//err = database.DB.First(&stammF, "system=? AND name = ?", gameSystem, zauber.Name).Error //err = database.DB.First(&stammF, "system=? AND name = ?", gameSystem, zauber.Name).Error
err = stammF.First(zauber.Name) err = stammF.FirstwGS(zauber.Name, gs.ID)
if err != nil { if err != nil {
// spell found // spell found
return nil, err return nil, err
@@ -177,7 +179,7 @@ func ImportCsv2Spell(filepath string) error {
// Create spell struct // Create spell struct
spell := models.Spell{ spell := models.Spell{
GameSystem: "midgard", // Default value GameSystemId: models.GetGameSystem(0, "midgard").ID, // Default value
} }
// Map CSV fields to struct fields // Map CSV fields to struct fields
@@ -200,7 +202,8 @@ func ImportCsv2Spell(filepath string) error {
} }
} }
if idx, exists := fieldMap["game_system"]; exists && idx < len(record) && strings.TrimSpace(record[idx]) != "" { if idx, exists := fieldMap["game_system"]; exists && idx < len(record) && strings.TrimSpace(record[idx]) != "" {
spell.GameSystem = strings.ToLower(strings.TrimSpace(record[idx])) //spell.GameSystem = strings.ToLower(strings.TrimSpace(record[idx]))
spell.GameSystemId = models.GetGameSystem(0, strings.ToLower(strings.TrimSpace(record[idx]))).ID
} }
/* /*
if idx, exists := fieldMap["source_id"]; exists && idx < len(record) { if idx, exists := fieldMap["source_id"]; exists && idx < len(record) {
@@ -262,7 +265,7 @@ func ImportCsv2Spell(filepath string) error {
// Try to find existing spell by name // Try to find existing spell by name
existingSpell := models.Spell{} existingSpell := models.Spell{}
err := existingSpell.First(spell.Name) err := existingSpell.FirstwGS(spell.Name, spell.GameSystemId)
if err == nil { if err == nil {
// Spell exists, update it // Spell exists, update it
+4 -4
View File
@@ -27,9 +27,9 @@ func NoT_estImportCsv2Spell(t *testing.T) {
/* /*
// Create test source data // Create test source data
testSources := []models.Source{ testSources := []models.Source{
{Code: "ARK", Name: "Arkanum", GameSystem: "midgard"}, {Code: "ARK", Name: "Arkanum", GameSystemId: 1},
{Code: "MYS", Name: "Mysterium", GameSystem: "midgard"}, {Code: "MYS", Name: "Mysterium", GameSystemId: 1},
{Code: "KOD", Name: "Kodex", GameSystem: "midgard"}, {Code: "KOD", Name: "Kodex", GameSystemId: 1},
} }
for _, source := range testSources { for _, source := range testSources {
source.Create() source.Create()
@@ -216,7 +216,7 @@ func NoT_estImportSpellCSVHandler(t *testing.T) {
models.MigrateStructure() models.MigrateStructure()
// Create test source // Create test source
testSource := models.Source{Code: "ARK", Name: "Arkanum", GameSystem: "midgard"} testSource := models.Source{Code: "ARK", Name: "Arkanum", GameSystemId: 1}
testSource.Create() testSource.Create()
// Setup Gin in test mode // Setup Gin in test mode
+2 -2
View File
@@ -36,7 +36,7 @@ func TestMigrateSkillCategoriesToRelations(t *testing.T) {
source := models.Source{ source := models.Source{
Code: "TSTMIG1", Code: "TSTMIG1",
Name: "Test Migration Source", Name: "Test Migration Source",
GameSystem: "midgard", GameSystemId: 1,
IsActive: true, IsActive: true,
} }
if err := testDB.Create(&source).Error; err != nil { if err := testDB.Create(&source).Error; err != nil {
@@ -177,7 +177,7 @@ func TestMigrateSkillCategoryDifficulty_NoCategory(t *testing.T) {
source = models.Source{ source = models.Source{
Code: "TSTMIG2", Code: "TSTMIG2",
Name: "Test Migration Source 2", Name: "Test Migration Source 2",
GameSystem: "midgard", GameSystemId: 1,
IsActive: true, IsActive: true,
} }
if err := testDB.Create(&source).Error; err != nil { if err := testDB.Create(&source).Error; err != nil {
+1 -1
View File
@@ -388,7 +388,7 @@ func TestMigrationWorkflow_StructureIntegrity(t *testing.T) {
testSource := &Source{ testSource := &Source{
Code: "TEST", Code: "TEST",
Name: "Test Source", Name: "Test Source",
GameSystem: "midgard", GameSystemId: 1,
IsActive: true, IsActive: true,
} }
err = database.DB.Create(testSource).Error err = database.DB.Create(testSource).Error
+20 -5
View File
@@ -174,12 +174,11 @@ func (stamm *Skill) Create() error {
return err return err
} }
func (stamm *Skill) First(name string) error { func (stamm *Skill) FirstwGS(name string, gameSystemId uint) error {
if name == "" { if name == "" {
return fmt.Errorf("name cannot be empty") return fmt.Errorf("name cannot be empty")
} }
gs := GetGameSystem(stamm.GameSystemId, stamm.GameSystem) gs := GetGameSystem(gameSystemId, stamm.GameSystem)
// Order by ID to get the record with the lowest ID when multiple categories exist
err := database.DB.Where("(game_system=? OR game_system_id=?) AND name = ?", gs.Name, gs.ID, name).Order("id ASC").First(&stamm).Error err := database.DB.Where("(game_system=? OR game_system_id=?) AND name = ?", gs.Name, gs.ID, name).Order("id ASC").First(&stamm).Error
if err != nil { if err != nil {
// Fertigkeit found // Fertigkeit found
@@ -188,6 +187,14 @@ func (stamm *Skill) First(name string) error {
return nil return nil
} }
func (stamm *Skill) First(name string) error {
if name == "" {
return fmt.Errorf("name cannot be empty")
}
gs := GetGameSystem(stamm.GameSystemId, stamm.GameSystem)
return stamm.FirstwGS(name, gs.ID)
}
func (object *Skill) FirstId(value uint) error { func (object *Skill) FirstId(value uint) error {
gs := GetGameSystem(object.GameSystemId, object.GameSystem) gs := GetGameSystem(object.GameSystemId, object.GameSystem)
err := database.DB.First(&object, "(game_system=? OR game_system_id=?) AND id = ?", gs.Name, gs.ID, value).Error err := database.DB.First(&object, "(game_system=? OR game_system_id=?) AND id = ?", gs.Name, gs.ID, value).Error
@@ -349,11 +356,11 @@ func (stamm *Spell) Create() error {
return err return err
} }
func (stamm *Spell) First(name string) error { func (stamm *Spell) FirstwGS(name string, gameSystemId uint) error {
if name == "" { if name == "" {
return fmt.Errorf("name cannot be empty") return fmt.Errorf("name cannot be empty")
} }
gs := GetGameSystem(stamm.GameSystemId, stamm.GameSystem) gs := GetGameSystem(gameSystemId, stamm.GameSystem)
err := database.DB.First(&stamm, "(game_system=? OR game_system_id=?) AND name = ?", gs.Name, gs.ID, name).Error err := database.DB.First(&stamm, "(game_system=? OR game_system_id=?) AND name = ?", gs.Name, gs.ID, name).Error
if err != nil { if err != nil {
// zauber found // zauber found
@@ -362,6 +369,14 @@ func (stamm *Spell) First(name string) error {
return nil return nil
} }
func (stamm *Spell) First(name string) error {
if name == "" {
return fmt.Errorf("name cannot be empty")
}
gs := GetGameSystem(stamm.GameSystemId, stamm.GameSystem)
return stamm.FirstwGS(name, gs.ID)
}
func (object *Spell) FirstId(value uint) error { func (object *Spell) FirstId(value uint) error {
gs := GetGameSystem(object.GameSystemId, object.GameSystem) gs := GetGameSystem(object.GameSystemId, object.GameSystem)
err := database.DB.First(&object, "(game_system=? OR game_system_id=?) AND id = ?", gs.Name, gs.ID, value).Error err := database.DB.First(&object, "(game_system=? OR game_system_id=?) AND id = ?", gs.Name, gs.ID, value).Error
+6 -6
View File
@@ -288,14 +288,14 @@ func TestSkill_GetSkillCategories(t *testing.T) {
// Create test skill categories in the lookup table // Create test skill categories in the lookup table
cat1 := &SkillCategory{ cat1 := &SkillCategory{
GameSystem: "midgard", GameSystemId: 1,
Name: "TestCategory1", Name: "TestCategory1",
} }
err := cat1.Create() err := cat1.Create()
require.NoError(t, err) require.NoError(t, err)
cat2 := &SkillCategory{ cat2 := &SkillCategory{
GameSystem: "midgard", GameSystemId: 1,
Name: "TestCategory2", Name: "TestCategory2",
} }
err = cat2.Create() err = cat2.Create()
@@ -530,14 +530,14 @@ func TestSpell_GetSpellCategories(t *testing.T) {
// Create test spell categories in the lookup table (SpellSchool) // Create test spell categories in the lookup table (SpellSchool)
school1 := &SpellSchool{ school1 := &SpellSchool{
GameSystem: "midgard", GameSystemId: 1,
Name: "TestSpellCat1", Name: "TestSpellCat1",
} }
err := school1.Create() err := school1.Create()
require.NoError(t, err) require.NoError(t, err)
school2 := &SpellSchool{ school2 := &SpellSchool{
GameSystem: "midgard", GameSystemId: 1,
Name: "TestSpellCat2", Name: "TestSpellCat2",
} }
err = school2.Create() err = school2.Create()
@@ -869,7 +869,7 @@ func TestWeapon_IsRanged(t *testing.T) {
// Test ranged weapon (has at least one range > 0) // Test ranged weapon (has at least one range > 0)
rangedWeapon := &Weapon{ rangedWeapon := &Weapon{
Equipment: Equipment{ Equipment: Equipment{
GameSystem: "midgard", GameSystemId: 1,
Name: "TestArmbrust", Name: "TestArmbrust",
}, },
SkillRequired: "Armbrust", SkillRequired: "Armbrust",
@@ -886,7 +886,7 @@ func TestWeapon_IsRanged(t *testing.T) {
// Test melee weapon (all ranges are 0) // Test melee weapon (all ranges are 0)
meleeWeapon := &Weapon{ meleeWeapon := &Weapon{
Equipment: Equipment{ Equipment: Equipment{
GameSystem: "midgard", GameSystemId: 1,
Name: "TestSchwert", Name: "TestSchwert",
}, },
SkillRequired: "Einhandschwerter", SkillRequired: "Einhandschwerter",
+1 -1
View File
@@ -1088,7 +1088,7 @@ func BenchmarkSimple_SourceStruct(b *testing.B) {
Name: "Kodex", Name: "Kodex",
IsCore: true, IsCore: true,
IsActive: true, IsActive: true,
GameSystem: "midgard", GameSystemId: 1,
} }
_ = source.Code _ = source.Code
_ = source.Name _ = source.Name
+1 -1
View File
@@ -199,7 +199,7 @@ func TestMapCharacterToViewModel_Weapons(t *testing.T) {
database.DB.Where("name = ?", "Langschwert").Delete(&models.Weapon{}) database.DB.Where("name = ?", "Langschwert").Delete(&models.Weapon{})
testWeapon := &models.Weapon{ testWeapon := &models.Weapon{
Equipment: models.Equipment{ Equipment: models.Equipment{
GameSystem: "midgard", GameSystemId: 1,
Name: "Langschwert", Name: "Langschwert",
}, },
SkillRequired: "Schwerter", SkillRequired: "Schwerter",
+1 -1
View File
@@ -147,7 +147,7 @@ func TestWeaponsWithEW(t *testing.T) {
database.DB.Where("name = ?", "Schwert").Delete(&models.Weapon{}) database.DB.Where("name = ?", "Schwert").Delete(&models.Weapon{})
testWeapon := &models.Weapon{ testWeapon := &models.Weapon{
Equipment: models.Equipment{ Equipment: models.Equipment{
GameSystem: "midgard", GameSystemId: 1,
Name: "Schwert", Name: "Schwert",
}, },
SkillRequired: "Schwerter", SkillRequired: "Schwerter",
+5 -5
View File
@@ -15,7 +15,7 @@ func TestMapWeapons_WithEWCalculation(t *testing.T) {
// Create weapons in gsmaster with skill requirements // Create weapons in gsmaster with skill requirements
testSword := &models.Weapon{ testSword := &models.Weapon{
Equipment: models.Equipment{ Equipment: models.Equipment{
GameSystem: "midgard", GameSystemId: 1,
Name: "Langschwert", Name: "Langschwert",
}, },
SkillRequired: "Schwerter", SkillRequired: "Schwerter",
@@ -25,7 +25,7 @@ func TestMapWeapons_WithEWCalculation(t *testing.T) {
testBow := &models.Weapon{ testBow := &models.Weapon{
Equipment: models.Equipment{ Equipment: models.Equipment{
GameSystem: "midgard", GameSystemId: 1,
Name: "Langbogen", Name: "Langbogen",
}, },
SkillRequired: "Bogen", SkillRequired: "Bogen",
@@ -141,7 +141,7 @@ func TestMapWeapons_WithDamageCalculation(t *testing.T) {
// Create test weapon in gsmaster if it doesn't exist // Create test weapon in gsmaster if it doesn't exist
testWeapon := &models.Weapon{ testWeapon := &models.Weapon{
Equipment: models.Equipment{ Equipment: models.Equipment{
GameSystem: "midgard", GameSystemId: 1,
Name: "Langschwert", Name: "Langschwert",
}, },
SkillRequired: "Schwerter", SkillRequired: "Schwerter",
@@ -230,7 +230,7 @@ func TestMapWeapons_WithRangedWeaponRanges(t *testing.T) {
// Create a ranged weapon in gsmaster with range values // Create a ranged weapon in gsmaster with range values
testBow := &models.Weapon{ testBow := &models.Weapon{
Equipment: models.Equipment{ Equipment: models.Equipment{
GameSystem: "midgard", GameSystemId: 1,
Name: "Langbogen", Name: "Langbogen",
}, },
SkillRequired: "Bogen", SkillRequired: "Bogen",
@@ -258,7 +258,7 @@ func TestMapWeapons_WithRangedWeaponRanges(t *testing.T) {
// Create a melee weapon without ranges // Create a melee weapon without ranges
testSword := &models.Weapon{ testSword := &models.Weapon{
Equipment: models.Equipment{ Equipment: models.Equipment{
GameSystem: "midgard", GameSystemId: 1,
Name: "Kurzschwert", Name: "Kurzschwert",
}, },
SkillRequired: "Schwerter", SkillRequired: "Schwerter",
+2 -2
View File
@@ -163,14 +163,14 @@ func TestImportCharacterSetsSourceIDDefault(t *testing.T) {
GSMSkills: []models.Skill{ GSMSkills: []models.Skill{
{ {
Name: "TestSkill", Name: "TestSkill",
GameSystem: "midgard", GameSystemId: 1,
SourceID: 0, // Should be set to 1 SourceID: 0, // Should be set to 1
}, },
}, },
GSMSpells: []models.Spell{ GSMSpells: []models.Spell{
{ {
Name: "TestSpell", Name: "TestSpell",
GameSystem: "midgard", GameSystemId: 1,
SourceID: 0, // Should be set to 2 SourceID: 0, // Should be set to 2
}, },
}, },