diff --git a/backend/gsmaster/export_import.go b/backend/gsmaster/export_import.go index 7611d0a..66ad90d 100644 --- a/backend/gsmaster/export_import.go +++ b/backend/gsmaster/export_import.go @@ -1254,7 +1254,7 @@ func ImportSpellLevelLECosts(inputDir string) error { // ExportSkillImprovementCosts exports all skill improvement costs to a JSON file func ExportSkillImprovementCosts(outputDir string) error { - var costs []models.SkillImprovementCost2 + var costs []models.SkillImprovementCost if err := database.DB.Find(&costs).Error; err != nil { return fmt.Errorf("failed to fetch skill improvement costs: %w", err) } @@ -1332,13 +1332,13 @@ func ImportSkillImprovementCosts(inputDir string) error { exp.SkillName, exp.CategoryName, exp.DifficultyName, err) } - // Find or create SkillImprovementCost2 using category/difficulty IDs - var cost models.SkillImprovementCost2 + // Find or create SkillImprovementCost using category/difficulty IDs + var cost models.SkillImprovementCost result := database.DB.Where("skill_category_id = ? AND skill_difficulty_id = ? AND current_level = ?", categoryID, difficultyID, exp.CurrentLevel).First(&cost) if result.Error == gorm.ErrRecordNotFound { - cost = models.SkillImprovementCost2{ + cost = models.SkillImprovementCost{ CategoryID: categoryID, DifficultyID: difficultyID, CurrentLevel: exp.CurrentLevel, diff --git a/backend/gsmaster/export_import_additional.go b/backend/gsmaster/export_import_additional.go index 4eb87ec..4a2e4c3 100644 --- a/backend/gsmaster/export_import_additional.go +++ b/backend/gsmaster/export_import_additional.go @@ -13,7 +13,7 @@ import ( // ExportSkillImprovementCosts exports all skill improvement costs to a JSON file func ExportSkillImprovementCosts(outputDir string) error { - var costs []models.SkillImprovementCost2 + var costs []models.SkillImprovementCost if err := database.DB.Find(&costs).Error; err != nil { return fmt.Errorf("failed to fetch skill improvement costs: %w", err) } @@ -93,13 +93,13 @@ func ImportSkillImprovementCosts(inputDir string) error { exp.SkillName, exp.CategoryName, exp.DifficultyName, err) } - // Find or create SkillImprovementCost2 using category/difficulty IDs - var cost models.SkillImprovementCost2 + // Find or create SkillImprovementCost using category/difficulty IDs + var cost models.SkillImprovementCost result := database.DB.Where("skill_category_id = ? AND skill_difficulty_id = ? AND current_level = ?", categoryID, difficultyID, exp.CurrentLevel).First(&cost) if result.Error == gorm.ErrRecordNotFound { - cost = models.SkillImprovementCost2{ + cost = models.SkillImprovementCost{ CategoryID: categoryID, DifficultyID: difficultyID, CurrentLevel: exp.CurrentLevel, diff --git a/backend/gsmaster/export_import_test.go b/backend/gsmaster/export_import_test.go index ef99771..f57a0b5 100644 --- a/backend/gsmaster/export_import_test.go +++ b/backend/gsmaster/export_import_test.go @@ -893,8 +893,8 @@ func TestExportImportSkillImprovementCosts(t *testing.T) { t.Fatalf("Failed to query SkillCategoryDifficulty: %v", err) } - // Create SkillImprovementCost2 (new model) - improvementCost := models.SkillImprovementCost2{ + // Create SkillImprovementCost (new model) + improvementCost := models.SkillImprovementCost{ CategoryID: category.ID, DifficultyID: difficulty.ID, CurrentLevel: 15, // Use unique level to avoid conflicts @@ -924,10 +924,10 @@ func TestExportImportSkillImprovementCosts(t *testing.T) { t.Fatalf("ImportSkillImprovementCosts failed: %v", err) } - var imported models.SkillImprovementCost2 + var imported models.SkillImprovementCost result := database.DB.Where("skill_category_id = ? AND skill_difficulty_id = ? AND current_level = ?", category.ID, difficulty.ID, 15).First(&imported) if result.Error != nil { - t.Fatalf("SkillImprovementCost2 not found after import: %v", result.Error) + t.Fatalf("SkillImprovementCost not found after import: %v", result.Error) } // Should be restored to original value from export diff --git a/backend/gsmaster/learning_costs_enhancement.go b/backend/gsmaster/learning_costs_enhancement.go index f4076ba..dc5afba 100644 --- a/backend/gsmaster/learning_costs_enhancement.go +++ b/backend/gsmaster/learning_costs_enhancement.go @@ -291,7 +291,7 @@ func CreateLearningCostsTables() error { &models.ClassSpellSchoolEPCost{}, &models.SpellLevelLECost{}, &models.SkillCategoryDifficulty{}, - &models.SkillImprovementCost2{}, + &models.SkillImprovementCost{}, } // Erstelle oder migriere alle Tabellen diff --git a/backend/gsmaster/learning_costs_migration.go b/backend/gsmaster/learning_costs_migration.go index f2bdc23..99746c8 100644 --- a/backend/gsmaster/learning_costs_migration.go +++ b/backend/gsmaster/learning_costs_migration.go @@ -475,14 +475,14 @@ func migrateSkillImprovementCosts() error { // Für jeden Level in TrainCosts for level, teCost := range data.TrainCosts { - var improvementCost models.SkillImprovementCost2 + var improvementCost models.SkillImprovementCost err := database.DB.Where( "skill_category_id = ? AND skill_difficulty_id = ? AND current_level = ?", skillCategory.ID, skillDifficulty.ID, level, ).First(&improvementCost).Error if err == gorm.ErrRecordNotFound { - improvementCost = models.SkillImprovementCost2{ + improvementCost = models.SkillImprovementCost{ CategoryID: skillCategory.ID, DifficultyID: skillDifficulty.ID, CurrentLevel: level, diff --git a/backend/maintenance/handlers.go b/backend/maintenance/handlers.go index 66f7130..c43974c 100644 --- a/backend/maintenance/handlers.go +++ b/backend/maintenance/handlers.go @@ -248,7 +248,7 @@ func copyMariaDBToSQLite(mariaDB, sqliteDB *gorm.DB) error { &models.SpellLevelLECost{}, &models.SkillCategoryDifficulty{}, &models.WeaponSkillCategoryDifficulty{}, - &models.SkillImprovementCost2{}, + &models.SkillImprovementCost{}, &models.ClassCategoryLearningPoints{}, &models.ClassSpellPoints{}, &models.ClassTypicalSkill{}, @@ -771,7 +771,7 @@ func copySQLiteToMariaDB(sqliteDB, mariaDB *gorm.DB) error { &models.SpellLevelLECost{}, &models.SkillCategoryDifficulty{}, // Jetzt nach Skills &models.WeaponSkillCategoryDifficulty{}, - &models.SkillImprovementCost2{}, + &models.SkillImprovementCost{}, &models.ClassCategoryLearningPoints{}, &models.ClassSpellPoints{}, &models.ClassTypicalSkill{}, @@ -924,8 +924,8 @@ func copyTableDataReverse(sourceDB, targetDB *gorm.DB, model interface{}) error return fmt.Errorf("failed to read batch from source: %w", err) } records = batch - case *models.SkillImprovementCost2: - var batch []models.SkillImprovementCost2 + case *models.SkillImprovementCost: + var batch []models.SkillImprovementCost if err := sourceDB.Limit(batchSize).Offset(offset).Find(&batch).Error; err != nil { return fmt.Errorf("failed to read batch from source: %w", err) } @@ -1163,7 +1163,7 @@ func clearMariaDBData(db *gorm.DB) error { &models.Char{}, // Learning Costs System - Abhängige Tabellen (vor Skills/Spells löschen) - &models.SkillImprovementCost2{}, + &models.SkillImprovementCost{}, &models.WeaponSkillCategoryDifficulty{}, &models.SkillCategoryDifficulty{}, &models.SpellLevelLECost{}, diff --git a/backend/maintenance/handlers_test.go b/backend/maintenance/handlers_test.go index e3d70a5..fc42906 100644 --- a/backend/maintenance/handlers_test.go +++ b/backend/maintenance/handlers_test.go @@ -32,7 +32,7 @@ func TestTableListCompleteness(t *testing.T) { "*models.SpellLevelLECost": true, "*models.SkillCategoryDifficulty": true, "*models.WeaponSkillCategoryDifficulty": true, - "*models.SkillImprovementCost2": true, + "*models.SkillImprovementCost": true, // GSMaster Base Data "*models.Skill": true, @@ -88,7 +88,7 @@ func TestTableListCompleteness(t *testing.T) { &models.SpellLevelLECost{}, &models.SkillCategoryDifficulty{}, &models.WeaponSkillCategoryDifficulty{}, - &models.SkillImprovementCost2{}, + &models.SkillImprovementCost{}, &models.Skill{}, &models.WeaponSkill{}, &models.Spell{}, @@ -301,8 +301,8 @@ func getModelTypeName(model interface{}) string { return "*models.SkillCategoryDifficulty" case *models.WeaponSkillCategoryDifficulty: return "*models.WeaponSkillCategoryDifficulty" - case *models.SkillImprovementCost2: - return "*models.SkillImprovementCost2" + case *models.SkillImprovementCost: + return "*models.SkillImprovementCost" case *models.Skill: return "*models.Skill" case *models.WeaponSkill: diff --git a/backend/models/database.go b/backend/models/database.go index 3412606..2f81806 100644 --- a/backend/models/database.go +++ b/backend/models/database.go @@ -185,7 +185,7 @@ func learningMigrateStructure(db ...*gorm.DB) error { &ClassTypicalSkill{}, &ClassTypicalSpell{}, &AuditLogEntry{}, - &SkillImprovementCost2{}, + &SkillImprovementCost{}, ) if err != nil { return err diff --git a/backend/models/database_test.go b/backend/models/database_test.go index 349d42f..f1828c9 100644 --- a/backend/models/database_test.go +++ b/backend/models/database_test.go @@ -306,7 +306,7 @@ func TestLearningMigrateStructure_VerifyStructures(t *testing.T) { &ClassSpellSchoolEPCost{}, &SpellLevelLECost{}, &SkillCategoryDifficulty{}, - &SkillImprovementCost2{}, + &SkillImprovementCost{}, &AuditLogEntry{}, } diff --git a/backend/models/model_learning_costs.go b/backend/models/model_learning_costs.go index d5cfb62..4cf1a03 100644 --- a/backend/models/model_learning_costs.go +++ b/backend/models/model_learning_costs.go @@ -132,20 +132,8 @@ type WeaponSkillCategoryDifficulty struct { SCategory string `gorm:"column:skill_category;size:25;not null;index;default:Waffen" json:"skillCategory"` } -/* // SkillImprovementCost definiert TE-Kosten für Verbesserungen basierend auf Kategorie, Schwierigkeit und aktuellem Wert type SkillImprovementCost struct { - ID uint `gorm:"primaryKey" json:"id"` - SkillCategoryDifficultyID uint `gorm:"not null;index" json:"skill_category_difficulty_id"` - CurrentLevel int `gorm:"not null;index" json:"current_level"` // Aktueller Fertigkeitswert - TERequired int `gorm:"not null" json:"te_required"` // Benötigte Trainingseinheiten - SkillCategoryDifficulty SkillCategoryDifficulty `gorm:"foreignKey:SkillCategoryDifficultyID;constraint:OnUpdate:CASCADE,OnDelete:CASCADE" json:"skill_category_difficulty"` - CategoryID uint `gorm:"column:skill_category_id;not null;index;default:1" json:"skillCategoryId"` // SkillCategoryID - DifficultyID uint `gorm:"column:skill_difficulty_id;not null;index;default:1" json:"skillDifficultyId"` // SkillDifficultyID -} -*/ -// SkillImprovementCost definiert TE-Kosten für Verbesserungen basierend auf Kategorie, Schwierigkeit und aktuellem Wert -type SkillImprovementCost2 struct { ID uint `gorm:"primaryKey" json:"id"` CurrentLevel int `gorm:"not null;index" json:"current_level"` // Aktueller Fertigkeitswert TERequired int `gorm:"not null" json:"te_required"` // Benötigte Trainingseinheiten @@ -251,7 +239,7 @@ func (SkillImprovementCost) TableName() string { } */ -func (SkillImprovementCost2) TableName() string { +func (SkillImprovementCost) TableName() string { return "skill_improvement_cost2" } @@ -500,7 +488,7 @@ func (sic *SkillImprovementCost) Create() error { } */ -func (sic *SkillImprovementCost2) Create() error { +func (sic *SkillImprovementCost) Create() error { return database.DB.Create(sic).Error } @@ -654,7 +642,7 @@ func GetSpellLearningInfoNewSystem(spellName string, classCode string) (*SpellLe // GetImprovementCost holt die Verbesserungskosten für eine Fertigkeit func GetImprovementCost(skillName string, categoryName string, difficultyName string, currentLevel int) (int, error) { - var result SkillImprovementCost2 + var result SkillImprovementCost err := database.DB.Raw(` SELECT sic.te_required diff --git a/backend/transfer/database.go b/backend/transfer/database.go index 40a4c22..d6a9baa 100644 --- a/backend/transfer/database.go +++ b/backend/transfer/database.go @@ -64,7 +64,7 @@ type DatabaseExport struct { ClassSpellSchoolEPCosts []models.ClassSpellSchoolEPCost `json:"learning_class_spell_school_ep_costs"` SpellLevelLECosts []models.SpellLevelLECost `json:"learning_spell_level_le_costs"` SkillCategoryDifficulties []models.SkillCategoryDifficulty `json:"learning_skill_category_difficulties"` - SkillImprovementCosts []models.SkillImprovementCost2 `json:"learning_skill_improvement_costs"` + SkillImprovementCosts []models.SkillImprovementCost `json:"learning_skill_improvement_costs"` AuditLogEntries []models.AuditLogEntry `json:"audit_log_entries"` } diff --git a/backend/transfer/exporter.go b/backend/transfer/exporter.go index bfe8e92..f75a68c 100644 --- a/backend/transfer/exporter.go +++ b/backend/transfer/exporter.go @@ -31,7 +31,7 @@ type LearningDataExport struct { ClassSpellSchoolEPCosts []models.ClassSpellSchoolEPCost `json:"class_spell_school_ep_costs"` SpellLevelLECosts []models.SpellLevelLECost `json:"spell_level_le_costs"` SkillCategoryDifficulties []models.SkillCategoryDifficulty `json:"skill_category_difficulties"` - SkillImprovementCosts []models.SkillImprovementCost2 `json:"skill_improvement_costs"` + SkillImprovementCosts []models.SkillImprovementCost `json:"skill_improvement_costs"` } // ExportCharacter exports a complete character with all related data @@ -177,7 +177,7 @@ func ExportCharacter(characterID uint) (*CharacterExport, error) { ClassSpellSchoolEPCosts: make([]models.ClassSpellSchoolEPCost, 0), SpellLevelLECosts: make([]models.SpellLevelLECost, 0), SkillCategoryDifficulties: make([]models.SkillCategoryDifficulty, 0), - SkillImprovementCosts: make([]models.SkillImprovementCost2, 0), + SkillImprovementCosts: make([]models.SkillImprovementCost, 0), } database.DB.Find(&export.LearningData.Sources)