removed all ocurences of GameSystem: "midgard"
This commit is contained in:
@@ -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)
|
||||
|
||||
// Create some test believes for midgard
|
||||
b1 := &models.Believe{GameSystem: "midgard", Name: "TestFaithOne", SourceID: 1}
|
||||
b2 := &models.Believe{GameSystem: "midgard", Name: "OtherFaith", SourceID: 1}
|
||||
b1 := &models.Believe{GameSystemId: 1, Name: "TestFaithOne", SourceID: 1}
|
||||
b2 := &models.Believe{GameSystemId: 1, Name: "OtherFaith", SourceID: 1}
|
||||
err = b1.Create()
|
||||
assert.NoError(t, err)
|
||||
err = b2.Create()
|
||||
|
||||
@@ -40,7 +40,7 @@ func TestLearnSpell(t *testing.T) {
|
||||
}
|
||||
} else {
|
||||
// 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()
|
||||
}
|
||||
|
||||
|
||||
@@ -175,10 +175,10 @@ func TestExportImportSources(t *testing.T) {
|
||||
|
||||
// Create test source
|
||||
source := models.Source{
|
||||
Code: "ARK",
|
||||
Name: "Arkanum",
|
||||
GameSystem: "midgard",
|
||||
IsActive: true,
|
||||
Code: "ARK",
|
||||
Name: "Arkanum",
|
||||
GameSystemId: 1,
|
||||
IsActive: true,
|
||||
}
|
||||
database.DB.Create(&source)
|
||||
|
||||
@@ -217,9 +217,9 @@ func TestExportImportSkillCategoryDifficulty(t *testing.T) {
|
||||
// Create dependencies
|
||||
source := getOrCreateSource("KOD", "Kodex")
|
||||
skill := models.Skill{
|
||||
Name: "Tanzen",
|
||||
GameSystem: "midgard",
|
||||
SourceID: source.ID,
|
||||
Name: "Tanzen",
|
||||
GameSystemId: 1,
|
||||
SourceID: source.ID,
|
||||
}
|
||||
if err := skill.Create(); err != nil {
|
||||
t.Fatalf("failed to create skill: %v", err)
|
||||
@@ -274,9 +274,9 @@ func TestExportImportSkillCategories(t *testing.T) {
|
||||
// Create test data
|
||||
source := getOrCreateSource("TEST_SC", "Test Source")
|
||||
category := models.SkillCategory{
|
||||
Name: "TestCategory",
|
||||
GameSystem: "midgard",
|
||||
SourceID: source.ID,
|
||||
Name: "TestCategory",
|
||||
GameSystemId: 1,
|
||||
SourceID: source.ID,
|
||||
}
|
||||
database.DB.Create(&category)
|
||||
|
||||
@@ -320,8 +320,8 @@ func TestExportImportSkillDifficulties(t *testing.T) {
|
||||
|
||||
// Create test data
|
||||
difficulty := models.SkillDifficulty{
|
||||
Name: "TestDifficulty",
|
||||
GameSystem: "midgard",
|
||||
Name: "TestDifficulty",
|
||||
GameSystemId: 1,
|
||||
}
|
||||
database.DB.Create(&difficulty)
|
||||
|
||||
@@ -436,10 +436,10 @@ func TestExportImportAll(t *testing.T) {
|
||||
// Create test data
|
||||
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)
|
||||
|
||||
difficulty := models.SkillDifficulty{Name: "AllDifficulty", GameSystem: "midgard"}
|
||||
difficulty := models.SkillDifficulty{Name: "AllDifficulty", GameSystemId: 1}
|
||||
database.DB.Create(&difficulty)
|
||||
|
||||
skill := models.Skill{
|
||||
@@ -453,10 +453,10 @@ func TestExportImportAll(t *testing.T) {
|
||||
}
|
||||
|
||||
spell := models.Spell{
|
||||
Name: "AllSpell",
|
||||
GameSystem: "midgard",
|
||||
SourceID: source.ID,
|
||||
Stufe: 2,
|
||||
Name: "AllSpell",
|
||||
GameSystemId: 1,
|
||||
SourceID: source.ID,
|
||||
Stufe: 2,
|
||||
}
|
||||
database.DB.Create(&spell)
|
||||
|
||||
@@ -1159,15 +1159,15 @@ func TestExportImportClassCategoryLearningPoints(t *testing.T) {
|
||||
|
||||
// Create test data with unique names
|
||||
class := models.CharacterClass{
|
||||
Code: "TEST_KRI",
|
||||
Name: "Test-Krieger",
|
||||
GameSystem: "midgard",
|
||||
Code: "TEST_KRI",
|
||||
Name: "Test-Krieger",
|
||||
GameSystemId: 1,
|
||||
}
|
||||
database.DB.Create(&class)
|
||||
|
||||
category := models.SkillCategory{
|
||||
Name: "Test-Kampf",
|
||||
GameSystem: "midgard",
|
||||
Name: "Test-Kampf",
|
||||
GameSystemId: 1,
|
||||
}
|
||||
database.DB.Create(&category)
|
||||
|
||||
@@ -1208,9 +1208,9 @@ func TestExportImportClassSpellPoints(t *testing.T) {
|
||||
|
||||
// Create test data with unique name
|
||||
class := models.CharacterClass{
|
||||
Code: "TEST_MAG",
|
||||
Name: "Test-Magier",
|
||||
GameSystem: "midgard",
|
||||
Code: "TEST_MAG",
|
||||
Name: "Test-Magier",
|
||||
GameSystemId: 1,
|
||||
}
|
||||
database.DB.Create(&class)
|
||||
|
||||
@@ -1250,9 +1250,9 @@ func TestExportImportClassTypicalSkills(t *testing.T) {
|
||||
|
||||
// Create test data with unique names
|
||||
class := models.CharacterClass{
|
||||
Code: "TEST_WAL",
|
||||
Name: "Test-Waldläufer",
|
||||
GameSystem: "midgard",
|
||||
Code: "TEST_WAL",
|
||||
Name: "Test-Waldläufer",
|
||||
GameSystemId: 1,
|
||||
}
|
||||
database.DB.Create(&class)
|
||||
|
||||
@@ -1307,16 +1307,16 @@ func TestExportImportClassTypicalSpells(t *testing.T) {
|
||||
|
||||
// Create test data with unique names
|
||||
class := models.CharacterClass{
|
||||
Code: "TEST_DRU",
|
||||
Name: "Test-Druide",
|
||||
GameSystem: "midgard",
|
||||
Code: "TEST_DRU",
|
||||
Name: "Test-Druide",
|
||||
GameSystemId: 1,
|
||||
}
|
||||
database.DB.Create(&class)
|
||||
|
||||
spell := models.Spell{
|
||||
Name: "Test-Heilen",
|
||||
GameSystem: "midgard",
|
||||
Stufe: 1,
|
||||
Name: "Test-Heilen",
|
||||
GameSystemId: 1,
|
||||
Stufe: 1,
|
||||
}
|
||||
database.DB.Create(&spell)
|
||||
|
||||
|
||||
@@ -117,8 +117,8 @@ func TestSkill_First(t *testing.T) {
|
||||
{
|
||||
name: "existing skill",
|
||||
skill: &models.Skill{
|
||||
Name: "Test Skill",
|
||||
GameSystem: "midgard",
|
||||
Name: "Test Skill",
|
||||
GameSystemId: 1,
|
||||
},
|
||||
findName: "Test Skill",
|
||||
wantErr: false,
|
||||
@@ -173,8 +173,8 @@ func TestSkill_FirstId(t *testing.T) {
|
||||
{
|
||||
name: "existing skill",
|
||||
skill: &models.Skill{
|
||||
Name: "Test Skill",
|
||||
GameSystem: "midgard",
|
||||
Name: "Test Skill",
|
||||
GameSystemId: 1,
|
||||
},
|
||||
findId: 1,
|
||||
wantErr: false,
|
||||
@@ -285,8 +285,8 @@ func TestSkill_Delete(t *testing.T) {
|
||||
{
|
||||
name: "delete existing skill",
|
||||
skill: &models.Skill{
|
||||
Name: "Test Skill",
|
||||
GameSystem: "midgard",
|
||||
Name: "Test Skill",
|
||||
GameSystemId: 1,
|
||||
},
|
||||
wantErr: false,
|
||||
},
|
||||
@@ -339,12 +339,12 @@ func TestSkill_GetSkillCategories(t *testing.T) {
|
||||
// Note: GetSkillCategories() reads from gsm_skill_categories table, not from skills
|
||||
testCategories := []*models.SkillCategory{
|
||||
{
|
||||
Name: "Category1",
|
||||
GameSystem: "midgard",
|
||||
Name: "Category1",
|
||||
GameSystemId: 1,
|
||||
},
|
||||
{
|
||||
Name: "Category2",
|
||||
GameSystem: "midgard",
|
||||
Name: "Category2",
|
||||
GameSystemId: 1,
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
@@ -104,8 +104,8 @@ func linkExistingSpellsToSchools() error {
|
||||
if err := spellSchool.FirstByName(spell.Category); err != nil {
|
||||
// Zauberschule existiert nicht, erstelle sie
|
||||
newSchool := models.SpellSchool{
|
||||
Name: spell.Category,
|
||||
GameSystem: "midgard",
|
||||
Name: spell.Category,
|
||||
GameSystemId: 1,
|
||||
}
|
||||
if err := newSchool.Create(); err != nil {
|
||||
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 {
|
||||
// Hole oder erstelle die Kategorie
|
||||
var skillCategory models.SkillCategory
|
||||
gs := GetGameSystem(0, "midgard")
|
||||
if err := skillCategory.FirstByName(categoryName); err != nil {
|
||||
// Kategorie existiert nicht, erstelle sie
|
||||
skillCategory = models.SkillCategory{
|
||||
Name: categoryName,
|
||||
GameSystem: "midgard",
|
||||
Name: categoryName,
|
||||
GameSystemId: gs.ID,
|
||||
}
|
||||
if err := skillCategory.Create(); err != nil {
|
||||
return fmt.Errorf("failed to create skill category %s: %w", categoryName, err)
|
||||
@@ -242,8 +243,8 @@ func createSkillCategoryLink(skillID uint, skillName, categoryName, difficultyNa
|
||||
if err := skillDifficulty.FirstByName(difficultyName); err != nil {
|
||||
// Schwierigkeit existiert nicht, erstelle sie
|
||||
skillDifficulty = models.SkillDifficulty{
|
||||
Name: difficultyName,
|
||||
GameSystem: "midgard",
|
||||
Name: difficultyName,
|
||||
GameSystemId: gs.ID,
|
||||
}
|
||||
if err := skillDifficulty.Create(); err != nil {
|
||||
return fmt.Errorf("failed to create skill difficulty %s: %w", difficultyName, err)
|
||||
|
||||
@@ -157,13 +157,14 @@ func migrateCharacterClasses() error {
|
||||
"PS": "Priester Streiter",
|
||||
"Sc": "Schamane",
|
||||
}
|
||||
gs := GetGameSystem(0, "")
|
||||
|
||||
for code, name := range characterClasses {
|
||||
class := models.CharacterClass{
|
||||
Code: code,
|
||||
Name: name,
|
||||
SourceID: kodSource.ID,
|
||||
GameSystem: "midgard",
|
||||
Code: code,
|
||||
Name: name,
|
||||
SourceID: kodSource.ID,
|
||||
GameSystemId: gs.ID,
|
||||
}
|
||||
|
||||
// Prüfe ob die Klasse bereits existiert
|
||||
@@ -193,6 +194,7 @@ func migrateSkillCategories() error {
|
||||
"Alltag", "Freiland", "Halbwelt", "Kampf", "Körper",
|
||||
"Sozial", "Unterwelt", "Waffen", "Wissen", "Schilde und Parierwaffen",
|
||||
}
|
||||
gs := GetGameSystem(0, "")
|
||||
|
||||
for _, categoryName := range categories {
|
||||
sourceID := kodSource.ID
|
||||
@@ -206,9 +208,9 @@ func migrateSkillCategories() error {
|
||||
}
|
||||
|
||||
category := models.SkillCategory{
|
||||
Name: categoryName,
|
||||
SourceID: sourceID,
|
||||
GameSystem: "midgard",
|
||||
Name: categoryName,
|
||||
SourceID: sourceID,
|
||||
GameSystemId: gs.ID,
|
||||
}
|
||||
|
||||
// Prüfe ob die Kategorie bereits existiert
|
||||
@@ -228,11 +230,12 @@ func migrateSkillCategories() error {
|
||||
// migrateSkillDifficulties erstellt Schwierigkeitsgrade
|
||||
func migrateSkillDifficulties() error {
|
||||
difficulties := []string{"leicht", "normal", "schwer", "sehr schwer"}
|
||||
gs := GetGameSystem(0, "")
|
||||
|
||||
for _, difficultyName := range difficulties {
|
||||
difficulty := models.SkillDifficulty{
|
||||
Name: difficultyName,
|
||||
GameSystem: "midgard",
|
||||
Name: difficultyName,
|
||||
GameSystemId: gs.ID,
|
||||
}
|
||||
|
||||
// Prüfe ob die Schwierigkeit bereits existiert
|
||||
@@ -261,6 +264,7 @@ func migrateSpellSchools() error {
|
||||
if err := arkSource.FirstByCode("ARK"); err != nil {
|
||||
return fmt.Errorf("ARK source not found: %w", err)
|
||||
}
|
||||
gs := GetGameSystem(0, "")
|
||||
|
||||
schools := map[string]uint{
|
||||
// Basis-Zauberschulen (Kodex)
|
||||
@@ -279,9 +283,9 @@ func migrateSpellSchools() error {
|
||||
|
||||
for schoolName, sourceID := range schools {
|
||||
school := models.SpellSchool{
|
||||
Name: schoolName,
|
||||
SourceID: sourceID,
|
||||
GameSystem: "midgard",
|
||||
Name: schoolName,
|
||||
SourceID: sourceID,
|
||||
GameSystemId: gs.ID,
|
||||
}
|
||||
|
||||
// Prüfe ob die Schule bereits existiert
|
||||
@@ -371,11 +375,12 @@ func migrateClassSpellSchoolEPCosts() error {
|
||||
|
||||
// migrateSpellLevelLECosts migriert LE-Kosten pro Zauber-Level
|
||||
func migrateSpellLevelLECosts() error {
|
||||
gs := GetGameSystem(0, "")
|
||||
for level, leCost := range learningCostsData.SpellLEPerLevel {
|
||||
cost := models.SpellLevelLECost{
|
||||
Level: level,
|
||||
LERequired: leCost,
|
||||
GameSystem: "midgard",
|
||||
Level: level,
|
||||
LERequired: leCost,
|
||||
GameSystemId: gs.ID,
|
||||
}
|
||||
|
||||
if err := cost.Create(); err != nil {
|
||||
|
||||
@@ -24,10 +24,10 @@ func getOrCreateSource(code, name string) models.Source {
|
||||
var source models.Source
|
||||
if err := database.DB.Where("code = ?", code).First(&source).Error; err != nil {
|
||||
source = models.Source{
|
||||
Code: code,
|
||||
Name: name,
|
||||
GameSystem: "midgard",
|
||||
IsActive: true,
|
||||
Code: code,
|
||||
Name: name,
|
||||
GameSystemId: 1,
|
||||
IsActive: true,
|
||||
}
|
||||
database.DB.Create(&source)
|
||||
}
|
||||
@@ -39,9 +39,9 @@ func getOrCreateCategory(name string, sourceID uint) models.SkillCategory {
|
||||
var category models.SkillCategory
|
||||
if err := database.DB.Where("name = ? AND game_system = ?", name, "midgard").First(&category).Error; err != nil {
|
||||
category = models.SkillCategory{
|
||||
Name: name,
|
||||
GameSystem: "midgard",
|
||||
SourceID: sourceID,
|
||||
Name: name,
|
||||
GameSystemId: 1,
|
||||
SourceID: sourceID,
|
||||
}
|
||||
database.DB.Create(&category)
|
||||
}
|
||||
@@ -53,8 +53,8 @@ func getOrCreateDifficulty(name string) models.SkillDifficulty {
|
||||
var difficulty models.SkillDifficulty
|
||||
if err := database.DB.Where("name = ? AND game_system = ?", name, "midgard").First(&difficulty).Error; err != nil {
|
||||
difficulty = models.SkillDifficulty{
|
||||
Name: name,
|
||||
GameSystem: "midgard",
|
||||
Name: name,
|
||||
GameSystemId: 1,
|
||||
}
|
||||
database.DB.Create(&difficulty)
|
||||
}
|
||||
|
||||
@@ -25,7 +25,7 @@ func TestExportChar2VTT(t *testing.T) {
|
||||
assert.NoError(t, err, "Expected no error when exporting char")
|
||||
|
||||
// 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.Rasse, exportedChar.Rasse)
|
||||
assert.Equal(t, char.Typ, exportedChar.Typ)
|
||||
|
||||
@@ -36,10 +36,10 @@ func lookupSourceID(sourceCode string) (uint, error) {
|
||||
if err := source.FirstByCode(sourceCode); err != nil {
|
||||
// Source not found, create it automatically
|
||||
newSource := models.Source{
|
||||
Code: sourceCode,
|
||||
Name: sourceCode, // Use code as name initially
|
||||
GameSystem: "midgard", // Default game system
|
||||
IsActive: true, // Set as active by default
|
||||
Code: sourceCode,
|
||||
Name: sourceCode, // Use code as name initially
|
||||
GameSystemId: models.GetGameSystem(0, "").ID, // Default game system
|
||||
IsActive: true, // Set as active by default
|
||||
}
|
||||
|
||||
if createErr := newSource.Create(); createErr != nil {
|
||||
@@ -63,7 +63,8 @@ func ImportChar(char CharacterImport) (*models.Char, error) {
|
||||
func CheckSkill(fertigkeit *Fertigkeit, autocreate bool) (*models.Skill, error) {
|
||||
stammF := models.Skill{}
|
||||
//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 {
|
||||
// Fertigkeit found
|
||||
return &stammF, nil
|
||||
@@ -71,7 +72,7 @@ func CheckSkill(fertigkeit *Fertigkeit, autocreate bool) (*models.Skill, error)
|
||||
if !autocreate {
|
||||
return nil, fmt.Errorf("does not exist in Fertigkeit importer")
|
||||
}
|
||||
stammF.GameSystem = "midgard"
|
||||
stammF.GameSystemId = models.GetGameSystem(0, "midgard").ID
|
||||
stammF.Name = fertigkeit.Name
|
||||
if stammF.Name != "Sprache" {
|
||||
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 = stammF.First(fertigkeit.Name)
|
||||
err = stammF.FirstwGS(fertigkeit.Name, gs.ID)
|
||||
if err != nil {
|
||||
// Fertigkeit found
|
||||
return nil, err
|
||||
@@ -104,7 +105,8 @@ func CheckSpell(zauber *Zauber, autocreate bool) (*models.Spell, error) {
|
||||
stammF := models.Spell{}
|
||||
|
||||
//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 {
|
||||
// zauber found
|
||||
return &stammF, nil
|
||||
@@ -112,7 +114,7 @@ func CheckSpell(zauber *Zauber, autocreate bool) (*models.Spell, error) {
|
||||
if !autocreate {
|
||||
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.Beschreibung = zauber.Beschreibung
|
||||
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 = stammF.First(zauber.Name)
|
||||
err = stammF.FirstwGS(zauber.Name, gs.ID)
|
||||
if err != nil {
|
||||
// spell found
|
||||
return nil, err
|
||||
@@ -177,7 +179,7 @@ func ImportCsv2Spell(filepath string) error {
|
||||
|
||||
// Create spell struct
|
||||
spell := models.Spell{
|
||||
GameSystem: "midgard", // Default value
|
||||
GameSystemId: models.GetGameSystem(0, "midgard").ID, // Default value
|
||||
}
|
||||
|
||||
// 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]) != "" {
|
||||
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) {
|
||||
@@ -262,7 +265,7 @@ func ImportCsv2Spell(filepath string) error {
|
||||
|
||||
// Try to find existing spell by name
|
||||
existingSpell := models.Spell{}
|
||||
err := existingSpell.First(spell.Name)
|
||||
err := existingSpell.FirstwGS(spell.Name, spell.GameSystemId)
|
||||
|
||||
if err == nil {
|
||||
// Spell exists, update it
|
||||
|
||||
@@ -27,9 +27,9 @@ func NoT_estImportCsv2Spell(t *testing.T) {
|
||||
/*
|
||||
// Create test source data
|
||||
testSources := []models.Source{
|
||||
{Code: "ARK", Name: "Arkanum", GameSystem: "midgard"},
|
||||
{Code: "MYS", Name: "Mysterium", GameSystem: "midgard"},
|
||||
{Code: "KOD", Name: "Kodex", GameSystem: "midgard"},
|
||||
{Code: "ARK", Name: "Arkanum", GameSystemId: 1},
|
||||
{Code: "MYS", Name: "Mysterium", GameSystemId: 1},
|
||||
{Code: "KOD", Name: "Kodex", GameSystemId: 1},
|
||||
}
|
||||
for _, source := range testSources {
|
||||
source.Create()
|
||||
@@ -216,7 +216,7 @@ func NoT_estImportSpellCSVHandler(t *testing.T) {
|
||||
models.MigrateStructure()
|
||||
|
||||
// Create test source
|
||||
testSource := models.Source{Code: "ARK", Name: "Arkanum", GameSystem: "midgard"}
|
||||
testSource := models.Source{Code: "ARK", Name: "Arkanum", GameSystemId: 1}
|
||||
testSource.Create()
|
||||
|
||||
// Setup Gin in test mode
|
||||
|
||||
@@ -34,10 +34,10 @@ func TestMigrateSkillCategoriesToRelations(t *testing.T) {
|
||||
|
||||
// Create a test source - use unique code to avoid conflicts
|
||||
source := models.Source{
|
||||
Code: "TSTMIG1",
|
||||
Name: "Test Migration Source",
|
||||
GameSystem: "midgard",
|
||||
IsActive: true,
|
||||
Code: "TSTMIG1",
|
||||
Name: "Test Migration Source",
|
||||
GameSystemId: 1,
|
||||
IsActive: true,
|
||||
}
|
||||
if err := testDB.Create(&source).Error; err != nil {
|
||||
t.Fatalf("Failed to create test source: %v", err)
|
||||
@@ -177,7 +177,7 @@ func TestMigrateSkillCategoryDifficulty_NoCategory(t *testing.T) {
|
||||
source = models.Source{
|
||||
Code: "TSTMIG2",
|
||||
Name: "Test Migration Source 2",
|
||||
GameSystem: "midgard",
|
||||
GameSystemId: 1,
|
||||
IsActive: true,
|
||||
}
|
||||
if err := testDB.Create(&source).Error; err != nil {
|
||||
|
||||
@@ -386,10 +386,10 @@ func TestMigrationWorkflow_StructureIntegrity(t *testing.T) {
|
||||
|
||||
// Test learning category with a source
|
||||
testSource := &Source{
|
||||
Code: "TEST",
|
||||
Name: "Test Source",
|
||||
GameSystem: "midgard",
|
||||
IsActive: true,
|
||||
Code: "TEST",
|
||||
Name: "Test Source",
|
||||
GameSystemId: 1,
|
||||
IsActive: true,
|
||||
}
|
||||
err = database.DB.Create(testSource).Error
|
||||
assert.NoError(t, err, "Should be able to create a source")
|
||||
|
||||
@@ -174,12 +174,11 @@ func (stamm *Skill) Create() error {
|
||||
return err
|
||||
}
|
||||
|
||||
func (stamm *Skill) First(name string) error {
|
||||
func (stamm *Skill) FirstwGS(name string, gameSystemId uint) error {
|
||||
if name == "" {
|
||||
return fmt.Errorf("name cannot be empty")
|
||||
}
|
||||
gs := GetGameSystem(stamm.GameSystemId, stamm.GameSystem)
|
||||
// Order by ID to get the record with the lowest ID when multiple categories exist
|
||||
gs := GetGameSystem(gameSystemId, stamm.GameSystem)
|
||||
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 {
|
||||
// Fertigkeit found
|
||||
@@ -188,6 +187,14 @@ func (stamm *Skill) First(name string) error {
|
||||
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 {
|
||||
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
|
||||
@@ -349,11 +356,11 @@ func (stamm *Spell) Create() error {
|
||||
return err
|
||||
}
|
||||
|
||||
func (stamm *Spell) First(name string) error {
|
||||
func (stamm *Spell) FirstwGS(name string, gameSystemId uint) error {
|
||||
if name == "" {
|
||||
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
|
||||
if err != nil {
|
||||
// zauber found
|
||||
@@ -362,6 +369,14 @@ func (stamm *Spell) First(name string) error {
|
||||
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 {
|
||||
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
|
||||
|
||||
@@ -288,15 +288,15 @@ func TestSkill_GetSkillCategories(t *testing.T) {
|
||||
|
||||
// Create test skill categories in the lookup table
|
||||
cat1 := &SkillCategory{
|
||||
GameSystem: "midgard",
|
||||
Name: "TestCategory1",
|
||||
GameSystemId: 1,
|
||||
Name: "TestCategory1",
|
||||
}
|
||||
err := cat1.Create()
|
||||
require.NoError(t, err)
|
||||
|
||||
cat2 := &SkillCategory{
|
||||
GameSystem: "midgard",
|
||||
Name: "TestCategory2",
|
||||
GameSystemId: 1,
|
||||
Name: "TestCategory2",
|
||||
}
|
||||
err = cat2.Create()
|
||||
require.NoError(t, err)
|
||||
@@ -530,15 +530,15 @@ func TestSpell_GetSpellCategories(t *testing.T) {
|
||||
|
||||
// Create test spell categories in the lookup table (SpellSchool)
|
||||
school1 := &SpellSchool{
|
||||
GameSystem: "midgard",
|
||||
Name: "TestSpellCat1",
|
||||
GameSystemId: 1,
|
||||
Name: "TestSpellCat1",
|
||||
}
|
||||
err := school1.Create()
|
||||
require.NoError(t, err)
|
||||
|
||||
school2 := &SpellSchool{
|
||||
GameSystem: "midgard",
|
||||
Name: "TestSpellCat2",
|
||||
GameSystemId: 1,
|
||||
Name: "TestSpellCat2",
|
||||
}
|
||||
err = school2.Create()
|
||||
require.NoError(t, err)
|
||||
@@ -869,8 +869,8 @@ func TestWeapon_IsRanged(t *testing.T) {
|
||||
// Test ranged weapon (has at least one range > 0)
|
||||
rangedWeapon := &Weapon{
|
||||
Equipment: Equipment{
|
||||
GameSystem: "midgard",
|
||||
Name: "TestArmbrust",
|
||||
GameSystemId: 1,
|
||||
Name: "TestArmbrust",
|
||||
},
|
||||
SkillRequired: "Armbrust",
|
||||
Damage: "2W6",
|
||||
@@ -886,8 +886,8 @@ func TestWeapon_IsRanged(t *testing.T) {
|
||||
// Test melee weapon (all ranges are 0)
|
||||
meleeWeapon := &Weapon{
|
||||
Equipment: Equipment{
|
||||
GameSystem: "midgard",
|
||||
Name: "TestSchwert",
|
||||
GameSystemId: 1,
|
||||
Name: "TestSchwert",
|
||||
},
|
||||
SkillRequired: "Einhandschwerter",
|
||||
Damage: "1W6+2",
|
||||
|
||||
@@ -1084,11 +1084,11 @@ func BenchmarkSimple_SourceStruct(b *testing.B) {
|
||||
b.ReportAllocs()
|
||||
for i := 0; i < b.N; i++ {
|
||||
source := Source{
|
||||
Code: "KOD",
|
||||
Name: "Kodex",
|
||||
IsCore: true,
|
||||
IsActive: true,
|
||||
GameSystem: "midgard",
|
||||
Code: "KOD",
|
||||
Name: "Kodex",
|
||||
IsCore: true,
|
||||
IsActive: true,
|
||||
GameSystemId: 1,
|
||||
}
|
||||
_ = source.Code
|
||||
_ = source.Name
|
||||
|
||||
@@ -199,8 +199,8 @@ func TestMapCharacterToViewModel_Weapons(t *testing.T) {
|
||||
database.DB.Where("name = ?", "Langschwert").Delete(&models.Weapon{})
|
||||
testWeapon := &models.Weapon{
|
||||
Equipment: models.Equipment{
|
||||
GameSystem: "midgard",
|
||||
Name: "Langschwert",
|
||||
GameSystemId: 1,
|
||||
Name: "Langschwert",
|
||||
},
|
||||
SkillRequired: "Schwerter",
|
||||
Damage: "1W6",
|
||||
|
||||
@@ -147,8 +147,8 @@ func TestWeaponsWithEW(t *testing.T) {
|
||||
database.DB.Where("name = ?", "Schwert").Delete(&models.Weapon{})
|
||||
testWeapon := &models.Weapon{
|
||||
Equipment: models.Equipment{
|
||||
GameSystem: "midgard",
|
||||
Name: "Schwert",
|
||||
GameSystemId: 1,
|
||||
Name: "Schwert",
|
||||
},
|
||||
SkillRequired: "Schwerter",
|
||||
Damage: "1W6",
|
||||
|
||||
@@ -15,8 +15,8 @@ func TestMapWeapons_WithEWCalculation(t *testing.T) {
|
||||
// Create weapons in gsmaster with skill requirements
|
||||
testSword := &models.Weapon{
|
||||
Equipment: models.Equipment{
|
||||
GameSystem: "midgard",
|
||||
Name: "Langschwert",
|
||||
GameSystemId: 1,
|
||||
Name: "Langschwert",
|
||||
},
|
||||
SkillRequired: "Schwerter",
|
||||
Damage: "1W6",
|
||||
@@ -25,8 +25,8 @@ func TestMapWeapons_WithEWCalculation(t *testing.T) {
|
||||
|
||||
testBow := &models.Weapon{
|
||||
Equipment: models.Equipment{
|
||||
GameSystem: "midgard",
|
||||
Name: "Langbogen",
|
||||
GameSystemId: 1,
|
||||
Name: "Langbogen",
|
||||
},
|
||||
SkillRequired: "Bogen",
|
||||
Damage: "1W6",
|
||||
@@ -141,8 +141,8 @@ func TestMapWeapons_WithDamageCalculation(t *testing.T) {
|
||||
// Create test weapon in gsmaster if it doesn't exist
|
||||
testWeapon := &models.Weapon{
|
||||
Equipment: models.Equipment{
|
||||
GameSystem: "midgard",
|
||||
Name: "Langschwert",
|
||||
GameSystemId: 1,
|
||||
Name: "Langschwert",
|
||||
},
|
||||
SkillRequired: "Schwerter",
|
||||
Damage: "1W6",
|
||||
@@ -230,8 +230,8 @@ func TestMapWeapons_WithRangedWeaponRanges(t *testing.T) {
|
||||
// Create a ranged weapon in gsmaster with range values
|
||||
testBow := &models.Weapon{
|
||||
Equipment: models.Equipment{
|
||||
GameSystem: "midgard",
|
||||
Name: "Langbogen",
|
||||
GameSystemId: 1,
|
||||
Name: "Langbogen",
|
||||
},
|
||||
SkillRequired: "Bogen",
|
||||
Damage: "1W6",
|
||||
@@ -258,7 +258,7 @@ func TestMapWeapons_WithRangedWeaponRanges(t *testing.T) {
|
||||
// Create a melee weapon without ranges
|
||||
testSword := &models.Weapon{
|
||||
Equipment: models.Equipment{
|
||||
GameSystem: "midgard",
|
||||
GameSystemId: 1,
|
||||
Name: "Kurzschwert",
|
||||
},
|
||||
SkillRequired: "Schwerter",
|
||||
|
||||
@@ -162,16 +162,16 @@ func TestImportCharacterSetsSourceIDDefault(t *testing.T) {
|
||||
},
|
||||
GSMSkills: []models.Skill{
|
||||
{
|
||||
Name: "TestSkill",
|
||||
GameSystem: "midgard",
|
||||
SourceID: 0, // Should be set to 1
|
||||
Name: "TestSkill",
|
||||
GameSystemId: 1,
|
||||
SourceID: 0, // Should be set to 1
|
||||
},
|
||||
},
|
||||
GSMSpells: []models.Spell{
|
||||
{
|
||||
Name: "TestSpell",
|
||||
GameSystem: "midgard",
|
||||
SourceID: 0, // Should be set to 2
|
||||
Name: "TestSpell",
|
||||
GameSystemId: 1,
|
||||
SourceID: 0, // Should be set to 2
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user