letzes struct aus gsmaster nach models migriert

This commit is contained in:
2025-07-28 20:55:07 +02:00
parent 585c2a2cb3
commit d65dbae050
19 changed files with 85 additions and 124 deletions
+2 -1
View File
@@ -7,6 +7,7 @@ import (
"bamort/gsmaster"
"bamort/importer"
_ "bamort/maintenance" // Anonymous import to ensure init() is called
"bamort/models"
"bamort/router"
"bamort/skills"
"bamort/user"
@@ -60,7 +61,7 @@ func TestSetupCheck(t *testing.T) {
err = user.MigrateStructure()
assert.NoError(t, err, "No error expected when migrating user tables")
err = gsmaster.MigrateStructure()
err = models.MigrateStructure()
assert.NoError(t, err, "No error expected when migrating gsmaster tables")
err = equipment.MigrateStructure()
+1 -2
View File
@@ -8,7 +8,6 @@ import (
"testing"
"bamort/database"
"bamort/gsmaster"
"bamort/models"
"bamort/skills"
@@ -28,7 +27,7 @@ func TestImproveSkillHandler(t *testing.T) {
// Also migrate skills and equipment to avoid preload errors
err = skills.MigrateStructure()
assert.NoError(t, err)
err = gsmaster.MigrateStructure()
err = models.MigrateStructure()
assert.NoError(t, err)
// Create test character with ID 20
+3 -2
View File
@@ -4,6 +4,7 @@ import (
"bamort/database"
"bamort/equipment"
"bamort/gsmaster"
"bamort/models"
"bamort/skills"
"bytes"
"encoding/json"
@@ -30,7 +31,7 @@ func TestImprovedSkillCostAPI(t *testing.T) {
assert.NoError(t, err)
err = equipment.MigrateStructure()
assert.NoError(t, err)
err = gsmaster.MigrateStructure()
err = models.MigrateStructure()
assert.NoError(t, err)
// Create test skill data
@@ -610,7 +611,7 @@ func TestGetLernCostEndpoint(t *testing.T) {
assert.NoError(t, err)
err = equipment.MigrateStructure()
assert.NoError(t, err)
err = gsmaster.MigrateStructure()
err = models.MigrateStructure()
assert.NoError(t, err)
/*
// Create test skill data
+1 -2
View File
@@ -3,7 +3,6 @@ package character
import (
"bamort/database"
"bamort/equipment"
"bamort/gsmaster"
"bamort/models"
"bamort/skills"
"bytes"
@@ -31,7 +30,7 @@ func TestPracticePointsAPI(t *testing.T) {
assert.NoError(t, err)
err = equipment.MigrateStructure()
assert.NoError(t, err)
err = gsmaster.MigrateStructure()
err = models.MigrateStructure()
assert.NoError(t, err)
// Create test skill data
+1 -2
View File
@@ -8,7 +8,6 @@ import (
"testing"
"bamort/database"
"bamort/gsmaster"
"bamort/models"
"bamort/skills"
@@ -28,7 +27,7 @@ func TestImproveSkillUpdatesLevel(t *testing.T) {
// Also migrate skills and equipment to avoid preload errors
err = skills.MigrateStructure()
assert.NoError(t, err)
err = gsmaster.MigrateStructure()
err = models.MigrateStructure()
assert.NoError(t, err)
// Try to migrate equipment if it exists
+1 -2
View File
@@ -3,7 +3,6 @@ package character
import (
"bamort/database"
"bamort/equipment"
"bamort/gsmaster"
"bamort/models"
"bamort/skills"
"bytes"
@@ -29,7 +28,7 @@ func TestSpellCategoryMapping(t *testing.T) {
assert.NoError(t, err)
err = equipment.MigrateStructure()
assert.NoError(t, err)
err = gsmaster.MigrateStructure()
err = models.MigrateStructure()
assert.NoError(t, err)
// Create test skill data
+4 -4
View File
@@ -4,7 +4,7 @@ import (
"bamort/character"
"bamort/database"
"bamort/equipment"
"bamort/gsmaster"
"bamort/models"
"bamort/skills"
"bamort/user"
"fmt"
@@ -52,9 +52,9 @@ func main() {
return
}
err = gsmaster.MigrateStructure(secondDB)
err = models.MigrateStructure(secondDB)
if err != nil {
fmt.Printf("Fehler bei gsmaster Migration: %v\n", err)
fmt.Printf("Fehler bei models Migration: %v\n", err)
return
}
@@ -88,7 +88,7 @@ func migrateAllToSecondDB(db *gorm.DB) error {
database.MigrateStructure,
user.MigrateStructure,
character.MigrateStructure,
gsmaster.MigrateStructure,
models.MigrateStructure,
equipment.MigrateStructure,
skills.MigrateStructure,
}
-24
View File
@@ -1,25 +1 @@
package gsmaster
import (
"bamort/database"
"gorm.io/gorm"
)
func MigrateStructure(db ...*gorm.DB) error {
// Use provided DB or default to database.DB
var targetDB *gorm.DB
if len(db) > 0 && db[0] != nil {
targetDB = db[0]
} else {
targetDB = database.DB
}
err := targetDB.AutoMigrate(
&Believe{},
)
if err != nil {
return err
}
return nil
}
+2 -1
View File
@@ -2,6 +2,7 @@ package gsmaster
import (
"bamort/database"
"bamort/models"
"fmt"
"testing"
"time"
@@ -46,6 +47,6 @@ func TestImportGSMasterdata(t *testing.T) {
func TestMigrateStructure(t *testing.T) {
database.SetupTestDB(true) // Use in-memory SQLite for testing
err := MigrateStructure()
err := models.MigrateStructure()
assert.NoError(t, err, "expected no Error during MigrateStructure")
}
+2 -2
View File
@@ -19,7 +19,7 @@ type exportData struct {
Weapons []models.Weapon `json:"weapons"`
Containers []models.Container `json:"containers"`
Transportations []models.Container `json:"transportations"`
Believes []Believe `json:"believes"`
Believes []models.Believe `json:"believes"`
}
func Export(filePath string) error {
@@ -30,7 +30,7 @@ func Export(filePath string) error {
var weapons []models.Weapon
var containers []models.Container
var transportations []models.Container
var believes []Believe
var believes []models.Believe
// Fetch all data from the respective tables
if err := database.DB.Find(&skills).Error; err != nil {
+2 -2
View File
@@ -744,7 +744,7 @@ func TestGetSpellInfo(t *testing.T) {
// Initialize test database with migration (but no test data since we don't have the preparedTestDB file)
database.SetupTestDB(true, false) // Use in-memory SQLite, no test data loading
defer database.ResetTestDB()
MigrateStructure()
models.MigrateStructure()
// Create minimal test spell data for our test
testSpells := []models.Spell{
@@ -850,7 +850,7 @@ func TestCalcSpellLernCostWithRewards(t *testing.T) {
// Initialize test database with migration (but no test data since we don't have the preparedTestDB file)
database.SetupTestDB(true, false) // Use in-memory SQLite, no test data loading
defer database.ResetTestDB()
MigrateStructure()
models.MigrateStructure()
// Create minimal test spell data for our test
testSpells := []models.Spell{
+2 -1
View File
@@ -2,6 +2,7 @@ package gsmaster
import (
"bamort/database"
"bamort/models"
"os"
"strings"
"testing"
@@ -47,7 +48,7 @@ func setupTestDB(opts ...bool) {
database.DB = db
}
if !migrationDone {
err := MigrateStructure()
err := models.MigrateStructure()
if err != nil {
panic("failed to MigrateStructure")
}
-61
View File
@@ -1,62 +1 @@
package gsmaster
import (
"bamort/database"
"bamort/models"
"fmt"
"gorm.io/gorm"
)
var dbPrefix = "gsm"
type Believe struct {
models.LookupList
}
func (object *Believe) TableName() string {
return dbPrefix + "_" + "believes"
}
func (stamm *Believe) Create() error {
gameSystem := "midgard"
stamm.GameSystem = gameSystem
err := database.DB.Transaction(func(tx *gorm.DB) error {
// Save the main character record
if err := tx.Create(&stamm).Error; err != nil {
return fmt.Errorf("failed to save Lookup: %w", err)
}
return nil
})
return err
}
func (object *Believe) FirstId(value uint) error {
gameSystem := "midgard"
err := database.DB.First(&object, "game_system=? AND id = ?", gameSystem, value).Error
if err != nil {
// zauber found
return err
}
return nil
}
func (stamm *Believe) First(name string) error {
gameSystem := "midgard"
err := database.DB.First(&stamm, "game_system=? AND name = ?", gameSystem, name).Error
if err != nil {
// zauber found
return err
}
return nil
}
func (object *Believe) Save() error {
err := database.DB.Save(&object).Error
if err != nil {
// zauber found
return err
}
return nil
}
@@ -2,7 +2,6 @@ package importer
import (
"bamort/database"
"bamort/gsmaster"
"bamort/models"
"fmt"
"testing"
@@ -508,12 +507,12 @@ func TestImportBelieve2GSMaster(t *testing.T) {
assert.Equal(t, "", skill.Beschreibung)
assert.Equal(t, "", skill.Quelle)
//}
skill2 := gsmaster.Believe{}
skill2 := models.Believe{}
erro = skill2.First("Torkin")
assert.NoError(t, erro, "Expected no error when finding Record by name")
assert.Equal(t, 1, int(skill.ID))
skill3 := gsmaster.Believe{}
skill3 := models.Believe{}
erro = skill3.FirstId(1)
assert.NoError(t, erro, "Expected no error when finding Record by ID")
assert.Equal(t, "Torkin", skill3.Name)
+2 -3
View File
@@ -1,7 +1,6 @@
package importer
import (
"bamort/gsmaster"
"bamort/models"
"fmt"
"regexp"
@@ -382,8 +381,8 @@ func TransformImportEquipment2GSDMaster(object *Ausruestung) (*models.Equipment,
return &gsmobj, nil
}
func TransformImportBelieve2GSDMaster(object string) (*gsmaster.Believe, error) {
gsmobj := gsmaster.Believe{}
func TransformImportBelieve2GSDMaster(object string) (*models.Believe, error) {
gsmobj := models.Believe{}
err := gsmobj.First(object)
// if found check if we need to adjust masterdata
+2 -3
View File
@@ -4,7 +4,6 @@ import (
"bamort/character"
"bamort/database"
"bamort/equipment"
"bamort/gsmaster"
"bamort/importer"
"bamort/models"
"bamort/skills"
@@ -50,7 +49,7 @@ func migrateAllStructures(db *gorm.DB) error {
if err := character.MigrateStructure(db); err != nil {
return fmt.Errorf("failed to migrate character structures: %w", err)
}
if err := gsmaster.MigrateStructure(db); err != nil {
if err := models.MigrateStructure(db); err != nil {
return fmt.Errorf("failed to migrate gsmaster structures: %w", err)
}
if err := equipment.MigrateStructure(db); err != nil {
@@ -175,7 +174,7 @@ func copyAllDataToTestDB(liveDB, testDB *gorm.DB) (map[string]int, error) {
}
stats["gsmaster_transportation"] = count
count, err = copyTableDataWithCount(liveDB, testDB, &gsmaster.Believe{})
count, err = copyTableDataWithCount(liveDB, testDB, &models.Believe{})
if err != nil {
return stats, err
}
+5 -6
View File
@@ -4,7 +4,6 @@ import (
"bamort/character"
"bamort/database"
"bamort/equipment"
"bamort/gsmaster"
"bamort/models"
"bamort/skills"
"bamort/user"
@@ -96,7 +95,7 @@ func TestMakeTestdataFromLiveRewrite(t *testing.T) {
require.NoError(t, err)
err = character.MigrateStructure(liveDB)
require.NoError(t, err)
err = gsmaster.MigrateStructure(liveDB)
err = models.MigrateStructure(liveDB)
require.NoError(t, err)
err = skills.MigrateStructure(liveDB)
require.NoError(t, err)
@@ -118,7 +117,7 @@ func TestMakeTestdataFromLiveRewrite(t *testing.T) {
require.NoError(t, err)
err = character.MigrateStructure(testDb)
require.NoError(t, err)
err = gsmaster.MigrateStructure(testDb)
err = models.MigrateStructure(testDb)
require.NoError(t, err)
err = skills.MigrateStructure(testDb)
require.NoError(t, err)
@@ -181,7 +180,7 @@ func TestLoadPredefinedTestDataFromFile(t *testing.T) {
require.NoError(t, err)
err = character.MigrateStructure(sourceDB)
require.NoError(t, err)
err = gsmaster.MigrateStructure(sourceDB)
err = models.MigrateStructure(sourceDB)
require.NoError(t, err)
err = skills.MigrateStructure(sourceDB)
require.NoError(t, err)
@@ -216,7 +215,7 @@ func TestLoadPredefinedTestDataFromFile(t *testing.T) {
require.NoError(t, err)
err = character.MigrateStructure(targetDB)
require.NoError(t, err)
err = gsmaster.MigrateStructure(targetDB)
err = models.MigrateStructure(targetDB)
require.NoError(t, err)
err = skills.MigrateStructure(targetDB)
require.NoError(t, err)
@@ -294,7 +293,7 @@ func TestSetupTestDBWithTestData(t *testing.T) {
require.NoError(t, err)
err = character.MigrateStructure(sourceDB)
require.NoError(t, err)
err = gsmaster.MigrateStructure(sourceDB)
err = models.MigrateStructure(sourceDB)
require.NoError(t, err)
err = skills.MigrateStructure(sourceDB)
require.NoError(t, err)
+1 -3
View File
@@ -23,9 +23,7 @@ func MigrateStructure(db ...*gorm.DB) error {
&Weapon{},
&Container{},
&Transportation{},
/*
&Believe{},
*/
&Believe{},
)
if err != nil {
return err
+52
View File
@@ -92,6 +92,10 @@ type Transportation struct {
Container
}
type Believe struct {
LookupList
}
func (object *LookupList) Create() error {
gameSystem := "midgard"
object.GameSystem = gameSystem
@@ -539,3 +543,51 @@ func (object *Transportation) Save() error {
}
return nil
}
func (object *Believe) TableName() string {
dbPrefix := "gsm"
return dbPrefix + "_" + "believes"
}
func (stamm *Believe) Create() error {
gameSystem := "midgard"
stamm.GameSystem = gameSystem
err := database.DB.Transaction(func(tx *gorm.DB) error {
// Save the main character record
if err := tx.Create(&stamm).Error; err != nil {
return fmt.Errorf("failed to save Lookup: %w", err)
}
return nil
})
return err
}
func (object *Believe) FirstId(value uint) error {
gameSystem := "midgard"
err := database.DB.First(&object, "game_system=? AND id = ?", gameSystem, value).Error
if err != nil {
// zauber found
return err
}
return nil
}
func (stamm *Believe) First(name string) error {
gameSystem := "midgard"
err := database.DB.First(&stamm, "game_system=? AND name = ?", gameSystem, name).Error
if err != nil {
// zauber found
return err
}
return nil
}
func (object *Believe) Save() error {
err := database.DB.Save(&object).Error
if err != nil {
// zauber found
return err
}
return nil
}