entferne Lookuplist aus den Datenstrukturen

This commit is contained in:
2025-07-30 05:40:13 +02:00
parent 61de8e4a6a
commit ae387eea0e
6 changed files with 112 additions and 132 deletions
+15 -19
View File
@@ -41,16 +41,14 @@ func createTestSkillData() error {
// GSM Test-Skill erstellen
gsmSkill := models.Skill{
LookupList: models.LookupList{
GameSystem: "midgard",
Name: "Menschenkenntnis",
Beschreibung: "Test Skill",
Quelle: "Test",
},
Category: "Sozial",
Initialwert: 5,
Improvable: true,
Difficulty: "normal",
GameSystem: "midgard",
Name: "Menschenkenntnis",
Beschreibung: "Test Skill",
Quelle: "Test",
Category: "Sozial",
Initialwert: 5,
Improvable: true,
Difficulty: "normal",
}
if err := database.DB.Create(&gsmSkill).Error; err != nil {
return err
@@ -58,15 +56,13 @@ func createTestSkillData() error {
// GSM Test-Spell erstellen
gsmSpell := models.Spell{
LookupList: models.LookupList{
GameSystem: "midgard",
Name: "Macht über das Selbst",
Beschreibung: "Test Spell",
Quelle: "Test",
},
Stufe: 1,
AP: "1",
Category: "Beherrschen",
GameSystem: "midgard",
Name: "Macht über das Selbst",
Beschreibung: "Test Spell",
Quelle: "Test",
Stufe: 1,
AP: "1",
Category: "Beherrschen",
}
if err := database.DB.Create(&gsmSpell).Error; err != nil {
return err
+28 -50
View File
@@ -18,11 +18,9 @@ func TestSkill_Create(t *testing.T) {
{
name: "valid skill",
skill: &models.Skill{
LookupList: models.LookupList{
Name: "Test Skill",
Beschreibung: "Test Description",
Quelle: "Test Source",
},
Name: "Test Skill",
Beschreibung: "Test Description",
Quelle: "Test Source",
Initialwert: 5,
Bonuseigenschaft: "st",
Improvable: true,
@@ -64,11 +62,9 @@ func TestWeaponSkill_Create(t *testing.T) {
name: "valid weapon skill",
weaponSkill: &models.WeaponSkill{
Skill: models.Skill{
LookupList: models.LookupList{
Name: "Test Weapon Skill",
Beschreibung: "Test Description",
Quelle: "Test Source",
},
Name: "Test Weapon Skill",
Beschreibung: "Test Description",
Quelle: "Test Source",
Initialwert: 5,
Bonuseigenschaft: "st",
Improvable: true,
@@ -119,10 +115,8 @@ func TestSkill_First(t *testing.T) {
{
name: "existing skill",
skill: &models.Skill{
LookupList: models.LookupList{
Name: "Test Skill",
GameSystem: "midgard",
},
Name: "Test Skill",
GameSystem: "midgard",
},
findName: "Test Skill",
wantErr: false,
@@ -176,10 +170,8 @@ func TestSkill_FirstId(t *testing.T) {
{
name: "existing skill",
skill: &models.Skill{
LookupList: models.LookupList{
Name: "Test Skill",
GameSystem: "midgard",
},
Name: "Test Skill",
GameSystem: "midgard",
},
findId: 1,
wantErr: false,
@@ -234,11 +226,9 @@ func TestSkill_Save(t *testing.T) {
{
name: "update existing skill",
skill: &models.Skill{
LookupList: models.LookupList{
Name: "Test Skill",
Beschreibung: "Original Description",
GameSystem: "midgard",
},
Name: "Test Skill",
Beschreibung: "Original Description",
GameSystem: "midgard",
},
wantErr: false,
},
@@ -290,19 +280,15 @@ func TestSkill_Delete(t *testing.T) {
{
name: "delete existing skill",
skill: &models.Skill{
LookupList: models.LookupList{
Name: "Test Skill",
GameSystem: "midgard",
},
Name: "Test Skill",
GameSystem: "midgard",
},
wantErr: false,
},
{
name: "delete non-existing skill",
skill: &models.Skill{
LookupList: models.LookupList{
ID: 9999,
},
ID: 9999,
},
wantErr: true,
},
@@ -347,32 +333,24 @@ func TestSkill_GetSkillCategories(t *testing.T) {
// Create test skills with different categories
testSkills := []*models.Skill{
{
LookupList: models.LookupList{
Name: "Skill1",
GameSystem: "midgard",
},
Category: "Category1",
Name: "Skill1",
GameSystem: "midgard",
Category: "Category1",
},
{
LookupList: models.LookupList{
Name: "Skill2",
GameSystem: "midgard",
},
Category: "Category2",
Name: "Skill2",
GameSystem: "midgard",
Category: "Category2",
},
{
LookupList: models.LookupList{
Name: "Skill3",
GameSystem: "midgard",
},
Category: "Category1", // Duplicate category
Name: "Skill3",
GameSystem: "midgard",
Category: "Category1", // Duplicate category
},
{
LookupList: models.LookupList{
Name: "Skill4",
GameSystem: "midgard",
},
Category: "", // Empty category
Name: "Skill4",
GameSystem: "midgard",
Category: "", // Empty category
},
}
+36 -48
View File
@@ -749,34 +749,28 @@ func TestGetSpellInfo(t *testing.T) {
// Create minimal test spell data for our test
testSpells := []models.Spell{
{
LookupList: models.LookupList{
GameSystem: "midgard",
Name: "Schlummer",
Beschreibung: "Test spell for GetSpellInfo",
Quelle: "Test",
},
Stufe: 1,
Category: "Beherrschen",
GameSystem: "midgard",
Name: "Schlummer",
Beschreibung: "Test spell for GetSpellInfo",
Quelle: "Test",
Stufe: 1,
Category: "Beherrschen",
},
{
LookupList: models.LookupList{
GameSystem: "midgard",
Name: "Erkennen von Krankheit",
Beschreibung: "Test spell for GetSpellInfo",
Quelle: "Test",
},
Stufe: 2,
Category: "Dweomerzauber",
GameSystem: "midgard",
Name: "Erkennen von Krankheit",
Beschreibung: "Test spell for GetSpellInfo",
Quelle: "Test",
Stufe: 2,
Category: "Dweomerzauber",
},
{
LookupList: models.LookupList{
GameSystem: "midgard",
Name: "Das Loblied",
Beschreibung: "Test spell for GetSpellInfo",
Quelle: "Test",
},
Stufe: 3,
Category: "Zauberlied",
GameSystem: "midgard",
Name: "Das Loblied",
Beschreibung: "Test spell for GetSpellInfo",
Quelle: "Test",
Stufe: 3,
Category: "Zauberlied",
},
}
@@ -855,34 +849,28 @@ func TestCalcSpellLernCostWithRewards(t *testing.T) {
// Create minimal test spell data for our test
testSpells := []models.Spell{
{
LookupList: models.LookupList{
GameSystem: "midgard",
Name: "Schlummer",
Beschreibung: "Test spell for GetSpellInfo",
Quelle: "Test",
},
Stufe: 1,
Category: "Beherrschen",
GameSystem: "midgard",
Name: "Schlummer",
Beschreibung: "Test spell for GetSpellInfo",
Quelle: "Test",
Stufe: 1,
Category: "Beherrschen",
},
{
LookupList: models.LookupList{
GameSystem: "midgard",
Name: "Erkennen von Krankheit",
Beschreibung: "Test spell for GetSpellInfo",
Quelle: "Test",
},
Stufe: 2,
Category: "Dweomer",
GameSystem: "midgard",
Name: "Erkennen von Krankheit",
Beschreibung: "Test spell for GetSpellInfo",
Quelle: "Test",
Stufe: 2,
Category: "Dweomer",
},
{
LookupList: models.LookupList{
GameSystem: "midgard",
Name: "Das Loblied",
Beschreibung: "Test spell for GetSpellInfo",
Quelle: "Test",
},
Stufe: 3,
Category: "Zauberlied",
GameSystem: "midgard",
Name: "Das Loblied",
Beschreibung: "Test spell for GetSpellInfo",
Quelle: "Test",
Stufe: 3,
Category: "Zauberlied",
},
}
// Insert test data directly
+1 -1
View File
@@ -135,7 +135,7 @@ func copyMariaDBToSQLite(mariaDB, sqliteDB *gorm.DB) error {
&models.SkillImprovementCost{},
// GSMaster Basis-Daten
&models.LookupList{}, // Basis für Skills, Spells, Equipment
//&models.LookupList{}, // Basis für Skills, Spells, Equipment
&models.Skill{},
&models.WeaponSkill{},
&models.Spell{},
+32 -6
View File
@@ -43,7 +43,13 @@ type LearnCost struct {
}
type Skill struct {
LookupList
ID uint `gorm:"primaryKey" json:"id"`
GameSystem string `gorm:"column:game_system;index;default:midgard" json:"game_system"`
Name string `gorm:"type:varchar(255);index" json:"name"`
Beschreibung string `json:"beschreibung"`
Quelle string `json:"quelle"` // Deprecated: Für Rückwärtskompatibilität
SourceID uint `gorm:"index" json:"source_id,omitempty"` // Verweis auf strukturierte Quelle
PageNumber int `json:"page_number,omitempty"` // Seitenzahl im Quellenbuch
Initialwert int `gorm:"default:5" json:"initialwert"`
Bonuseigenschaft string `json:"bonuseigenschaft,omitempty"`
Improvable bool `gorm:"default:true" json:"improvable"`
@@ -57,7 +63,13 @@ type WeaponSkill struct {
}
type Spell struct {
LookupList
ID uint `gorm:"primaryKey" json:"id"`
GameSystem string `gorm:"column:game_system;index;default:midgard" json:"game_system"`
Name string `gorm:"type:varchar(255);index" json:"name"`
Beschreibung string `json:"beschreibung"`
Quelle string `json:"quelle"` // Deprecated: Für Rückwärtskompatibilität
SourceID uint `gorm:"index" json:"source_id,omitempty"` // Verweis auf strukturierte Quelle
PageNumber int `json:"page_number,omitempty"` // Seitenzahl im Quellenbuch
Bonus int `json:"bonus"`
Stufe int `json:"level"`
AP string `gorm:"default:1" json:"ap"`
@@ -72,9 +84,15 @@ type Spell struct {
}
type Equipment struct {
LookupList
Gewicht float64 `json:"gewicht"` // in kg
Wert float64 `json:"wert"` // in Gold
ID uint `gorm:"primaryKey" json:"id"`
GameSystem string `gorm:"column:game_system;index;default:midgard" json:"game_system"`
Name string `gorm:"type:varchar(255);index" json:"name"`
Beschreibung string `json:"beschreibung"`
Quelle string `json:"quelle"` // Deprecated: Für Rückwärtskompatibilität
SourceID uint `gorm:"index" json:"source_id,omitempty"` // Verweis auf strukturierte Quelle
PageNumber int `json:"page_number,omitempty"` // Seitenzahl im Quellenbuch
Gewicht float64 `json:"gewicht"` // in kg
Wert float64 `json:"wert"` // in Gold
PersonalItem bool `gorm:"default:false" json:"personal_item"`
}
@@ -95,9 +113,16 @@ type Transportation struct {
}
type Believe struct {
LookupList
ID uint `gorm:"primaryKey" json:"id"`
GameSystem string `gorm:"column:game_system;index;default:midgard" json:"game_system"`
Name string `gorm:"type:varchar(255);index" json:"name"`
Beschreibung string `json:"beschreibung"`
Quelle string `json:"quelle"` // Deprecated: Für Rückwärtskompatibilität
SourceID uint `gorm:"index" json:"source_id,omitempty"` // Verweis auf strukturierte Quelle
PageNumber int `json:"page_number,omitempty"` // Seitenzahl im Quellenbuch
}
/*
func (object *LookupList) Create() error {
gameSystem := "midgard"
object.GameSystem = gameSystem
@@ -140,6 +165,7 @@ func (object *LookupList) Save() error {
}
return nil
}
*/
func (object *Skill) TableName() string {
dbPrefix := "gsm"
-8
View File
@@ -3068,7 +3068,6 @@ ALTER TABLE `equi_weapons`
ALTER TABLE `gsm_believes`
ADD PRIMARY KEY (`id`),
ADD KEY `idx_gsm_believes_game_system` (`game_system`),
ADD KEY `idx_lookup_list_name` (`name`),
ADD KEY `idx_gsm_believes_name` (`name`),
ADD KEY `idx_gsm_believes_source_id` (`source_id`);
@@ -3078,7 +3077,6 @@ ALTER TABLE `gsm_believes`
ALTER TABLE `gsm_containers`
ADD PRIMARY KEY (`id`),
ADD KEY `idx_gsm_containers_game_system` (`game_system`),
ADD KEY `idx_lookup_list_name` (`name`),
ADD KEY `idx_gsm_containers_source_id` (`source_id`),
ADD KEY `idx_gsm_containers_name` (`name`);
@@ -3088,7 +3086,6 @@ ALTER TABLE `gsm_containers`
ALTER TABLE `gsm_equipments`
ADD PRIMARY KEY (`id`),
ADD KEY `idx_gsm_equipments_game_system` (`game_system`),
ADD KEY `idx_lookup_list_name` (`name`),
ADD KEY `idx_gsm_equipments_name` (`name`),
ADD KEY `idx_gsm_equipments_source_id` (`source_id`);
@@ -3098,7 +3095,6 @@ ALTER TABLE `gsm_equipments`
ALTER TABLE `gsm_skills`
ADD PRIMARY KEY (`id`),
ADD KEY `idx_gsm_skills_game_system` (`game_system`),
ADD KEY `idx_lookup_list_name` (`name`),
ADD KEY `idx_gsm_skills_source_id` (`source_id`),
ADD KEY `idx_gsm_skills_name` (`name`);
@@ -3108,7 +3104,6 @@ ALTER TABLE `gsm_skills`
ALTER TABLE `gsm_spells`
ADD PRIMARY KEY (`id`),
ADD KEY `idx_gsm_spells_game_system` (`game_system`),
ADD KEY `idx_lookup_list_name` (`name`),
ADD KEY `idx_gsm_spells_name` (`name`),
ADD KEY `idx_gsm_spells_source_id` (`source_id`);
@@ -3118,7 +3113,6 @@ ALTER TABLE `gsm_spells`
ALTER TABLE `gsm_transportations`
ADD PRIMARY KEY (`id`),
ADD KEY `idx_gsm_transportations_game_system` (`game_system`),
ADD KEY `idx_lookup_list_name` (`name`),
ADD KEY `idx_gsm_transportations_name` (`name`),
ADD KEY `idx_gsm_transportations_source_id` (`source_id`);
@@ -3128,7 +3122,6 @@ ALTER TABLE `gsm_transportations`
ALTER TABLE `gsm_weapons`
ADD PRIMARY KEY (`id`),
ADD KEY `idx_gsm_weapons_game_system` (`game_system`),
ADD KEY `idx_lookup_list_name` (`name`),
ADD KEY `idx_gsm_weapons_name` (`name`),
ADD KEY `idx_gsm_weapons_source_id` (`source_id`);
@@ -3138,7 +3131,6 @@ ALTER TABLE `gsm_weapons`
ALTER TABLE `gsm_weaponskills`
ADD PRIMARY KEY (`id`),
ADD KEY `idx_gsm_weaponskills_game_system` (`game_system`),
ADD KEY `idx_lookup_list_name` (`name`),
ADD KEY `idx_gsm_weaponskills_name` (`name`),
ADD KEY `idx_gsm_weaponskills_source_id` (`source_id`);