join behältnisse and transportation to one entity type container
This commit is contained in:
+25
-25
@@ -71,31 +71,31 @@ type Bennies struct {
|
||||
|
||||
type Char struct {
|
||||
models.BamortBase
|
||||
Rasse string `json:"rasse"`
|
||||
Typ string `json:"typ"`
|
||||
Alter int `json:"alter"`
|
||||
Anrede string `json:"anrede"`
|
||||
Grad int `json:"grad"`
|
||||
Groesse int `json:"groesse"`
|
||||
Gewicht int `json:"gewicht"`
|
||||
Glaube string `json:"glaube"`
|
||||
Hand string `json:"hand"`
|
||||
Lp Lp `gorm:"foreignKey:CharacterID;constraint:OnUpdate:CASCADE,OnDelete:CASCADE" json:"lp"`
|
||||
Ap Ap `gorm:"foreignKey:CharacterID;constraint:OnUpdate:CASCADE,OnDelete:CASCADE" json:"ap"`
|
||||
B B `gorm:"foreignKey:CharacterID;constraint:OnUpdate:CASCADE,OnDelete:CASCADE" json:"b"`
|
||||
Merkmale Merkmale `gorm:"foreignKey:CharacterID;constraint:OnUpdate:CASCADE,OnDelete:CASCADE" json:"merkmale"`
|
||||
Eigenschaften []Eigenschaft `gorm:"foreignKey:CharacterID;constraint:OnUpdate:CASCADE,OnDelete:CASCADE" json:"eigenschaften"`
|
||||
Fertigkeiten []skills.Fertigkeit `gorm:"foreignKey:CharacterID;constraint:OnUpdate:CASCADE,OnDelete:CASCADE" json:"fertigkeiten"`
|
||||
Waffenfertigkeiten []skills.Waffenfertigkeit `gorm:"foreignKey:CharacterID;constraint:OnUpdate:CASCADE,OnDelete:CASCADE" json:"waffenfertigkeiten"`
|
||||
Zauber []skills.Zauber `gorm:"foreignKey:CharacterID;constraint:OnUpdate:CASCADE,OnDelete:CASCADE" json:"zauber"`
|
||||
Spezialisierung database.StringArray `gorm:"type:TEXT" json:"spezialisierung"`
|
||||
Bennies Bennies `gorm:"foreignKey:CharacterID;constraint:OnUpdate:CASCADE,OnDelete:CASCADE" json:"bennies"`
|
||||
Erfahrungsschatz Erfahrungsschatz `gorm:"foreignKey:CharacterID;constraint:OnUpdate:CASCADE,OnDelete:CASCADE" json:"erfahrungsschatz"`
|
||||
Waffen []equipment.Waffe `gorm:"foreignKey:CharacterID;constraint:OnUpdate:CASCADE,OnDelete:CASCADE" json:"waffen"`
|
||||
Behaeltnisse []equipment.Behaeltniss `gorm:"foreignKey:CharacterID;constraint:OnUpdate:CASCADE,OnDelete:CASCADE" json:"behaeltnisse"`
|
||||
Transportmittel []equipment.Transportation `gorm:"foreignKey:CharacterID;constraint:OnUpdate:CASCADE,OnDelete:CASCADE" json:"transportmittel"`
|
||||
Ausruestung []equipment.Ausruestung `gorm:"foreignKey:CharacterID;constraint:OnUpdate:CASCADE,OnDelete:CASCADE" json:"ausruestung"`
|
||||
Image string `json:"image,omitempty"`
|
||||
Rasse string `json:"rasse"`
|
||||
Typ string `json:"typ"`
|
||||
Alter int `json:"alter"`
|
||||
Anrede string `json:"anrede"`
|
||||
Grad int `json:"grad"`
|
||||
Groesse int `json:"groesse"`
|
||||
Gewicht int `json:"gewicht"`
|
||||
Glaube string `json:"glaube"`
|
||||
Hand string `json:"hand"`
|
||||
Lp Lp `gorm:"foreignKey:CharacterID;constraint:OnUpdate:CASCADE,OnDelete:CASCADE" json:"lp"`
|
||||
Ap Ap `gorm:"foreignKey:CharacterID;constraint:OnUpdate:CASCADE,OnDelete:CASCADE" json:"ap"`
|
||||
B B `gorm:"foreignKey:CharacterID;constraint:OnUpdate:CASCADE,OnDelete:CASCADE" json:"b"`
|
||||
Merkmale Merkmale `gorm:"foreignKey:CharacterID;constraint:OnUpdate:CASCADE,OnDelete:CASCADE" json:"merkmale"`
|
||||
Eigenschaften []Eigenschaft `gorm:"foreignKey:CharacterID;constraint:OnUpdate:CASCADE,OnDelete:CASCADE" json:"eigenschaften"`
|
||||
Fertigkeiten []skills.Fertigkeit `gorm:"foreignKey:CharacterID;constraint:OnUpdate:CASCADE,OnDelete:CASCADE" json:"fertigkeiten"`
|
||||
Waffenfertigkeiten []skills.Waffenfertigkeit `gorm:"foreignKey:CharacterID;constraint:OnUpdate:CASCADE,OnDelete:CASCADE" json:"waffenfertigkeiten"`
|
||||
Zauber []skills.Zauber `gorm:"foreignKey:CharacterID;constraint:OnUpdate:CASCADE,OnDelete:CASCADE" json:"zauber"`
|
||||
Spezialisierung database.StringArray `gorm:"type:TEXT" json:"spezialisierung"`
|
||||
Bennies Bennies `gorm:"foreignKey:CharacterID;constraint:OnUpdate:CASCADE,OnDelete:CASCADE" json:"bennies"`
|
||||
Erfahrungsschatz Erfahrungsschatz `gorm:"foreignKey:CharacterID;constraint:OnUpdate:CASCADE,OnDelete:CASCADE" json:"erfahrungsschatz"`
|
||||
Waffen []equipment.Waffe `gorm:"foreignKey:CharacterID;constraint:OnUpdate:CASCADE,OnDelete:CASCADE" json:"waffen"`
|
||||
Behaeltnisse []equipment.Container `gorm:"foreignKey:CharacterID;constraint:OnUpdate:CASCADE,OnDelete:CASCADE" json:"behaeltnisse"`
|
||||
Transportmittel []equipment.Container `gorm:"foreignKey:CharacterID;constraint:OnUpdate:CASCADE,OnDelete:CASCADE" json:"transportmittel"`
|
||||
Ausruestung []equipment.Ausruestung `gorm:"foreignKey:CharacterID;constraint:OnUpdate:CASCADE,OnDelete:CASCADE" json:"ausruestung"`
|
||||
Image string `json:"image,omitempty"`
|
||||
}
|
||||
type CharList struct {
|
||||
models.BamortBase
|
||||
|
||||
@@ -6,8 +6,8 @@ func MigrateStructure() error {
|
||||
err := database.DB.AutoMigrate(
|
||||
&Ausruestung{},
|
||||
&Waffe{},
|
||||
&Behaeltniss{},
|
||||
&Transportation{},
|
||||
&Container{},
|
||||
//&Transportation{},
|
||||
)
|
||||
if err != nil {
|
||||
return err
|
||||
|
||||
+32
-112
@@ -36,32 +36,18 @@ type Waffe struct {
|
||||
Wert float64 `json:"wert"`
|
||||
}
|
||||
|
||||
type Behaeltniss struct {
|
||||
type Container struct {
|
||||
models.BamortCharTrait
|
||||
models.Magisch
|
||||
Beschreibung string `json:"beschreibung"`
|
||||
BeinhaltetIn string `json:"beinhaltet_in"`
|
||||
ContainedIn uint `json:"contained_in"`
|
||||
ContainerType string `json:"container_type"`
|
||||
Gewicht float64 `json:"gewicht"`
|
||||
Wert float64 `json:"wert"`
|
||||
Tragkraft float64 `json:"tragkraft"`
|
||||
Volumen float64 `json:"volumen"`
|
||||
ExtID string `json:"ext_id"`
|
||||
}
|
||||
|
||||
type Transportation struct {
|
||||
models.BamortCharTrait
|
||||
models.Magisch
|
||||
Beschreibung string `json:"beschreibung"`
|
||||
BeinhaltetIn string `json:"beinhaltet_in"`
|
||||
ContainedIn uint `json:"contained_in"`
|
||||
ContainerType string `json:"container_type"`
|
||||
Gewicht float64 `json:"gewicht"`
|
||||
Wert float64 `json:"wert"`
|
||||
Tragkraft float64 `json:"tragkraft"`
|
||||
Volumen float64 `json:"volumen"`
|
||||
ExtID string `json:"ext_id"`
|
||||
Beschreibung string `json:"beschreibung"`
|
||||
BeinhaltetIn string `json:"beinhaltet_in"`
|
||||
ContainedIn uint `json:"contained_in"`
|
||||
IsTransportation bool `json:"is_transportation"`
|
||||
Gewicht float64 `json:"gewicht"`
|
||||
Wert float64 `json:"wert"`
|
||||
Tragkraft float64 `json:"tragkraft"`
|
||||
Volumen float64 `json:"volumen"`
|
||||
ExtID string `json:"ext_id"`
|
||||
}
|
||||
|
||||
func (object *Ausruestung) TableName() string {
|
||||
@@ -70,47 +56,28 @@ func (object *Ausruestung) TableName() string {
|
||||
func (object *Waffe) TableName() string {
|
||||
return dbPrefix + "_" + "weapons"
|
||||
}
|
||||
func (object *Behaeltniss) TableName() string {
|
||||
func (object *Container) TableName() string {
|
||||
return dbPrefix + "_" + "containers"
|
||||
}
|
||||
func (object *Transportation) TableName() string {
|
||||
return dbPrefix + "_" + "transportationss"
|
||||
|
||||
func (object *Container) FirstExtId(id string) error {
|
||||
err := database.DB.
|
||||
First(&object, "ext_id = ?", id).Error
|
||||
if err != nil {
|
||||
// Container not found
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
func (object *Container) Save() error {
|
||||
err := database.DB.Save(&object).Error
|
||||
if err != nil {
|
||||
// Container saved
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (object *Behaeltniss) FirstExtId(id string) error {
|
||||
err := database.DB.
|
||||
First(&object, "ext_id = ?", id).Error
|
||||
if err != nil {
|
||||
// Behaeltniss not found
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
func (object *Behaeltniss) Save() error {
|
||||
err := database.DB.Save(&object).Error
|
||||
if err != nil {
|
||||
// Behaeltniss saved
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
func (object *Transportation) FirstExtId(id string) error {
|
||||
err := database.DB.
|
||||
First(&object, "ext_id = ?", id).Error
|
||||
if err != nil {
|
||||
// Transportation not found
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
func (object *Transportation) Save() error {
|
||||
err := database.DB.Save(&object).Error
|
||||
if err != nil {
|
||||
// Transportation saved
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
func (object *Ausruestung) Save() error {
|
||||
err := database.DB.Save(&object).Error
|
||||
if err != nil {
|
||||
@@ -131,17 +98,11 @@ func (object *Waffe) Save() error {
|
||||
func (object *Ausruestung) LinkContainer() error {
|
||||
//var err error
|
||||
if object.BeinhaltetIn != "" {
|
||||
co := Behaeltniss{}
|
||||
co := Container{}
|
||||
co.FirstExtId(object.BeinhaltetIn)
|
||||
if co.ID > 0 {
|
||||
object.ContainedIn = co.ID
|
||||
//err= object.Save()
|
||||
} else {
|
||||
obj := Transportation{}
|
||||
if co.ID > 0 {
|
||||
object.ContainedIn = obj.ID
|
||||
//err= object.Save()
|
||||
}
|
||||
}
|
||||
if object.ContainedIn > 0 {
|
||||
err := object.Save()
|
||||
@@ -157,20 +118,11 @@ func (object *Ausruestung) LinkContainer() error {
|
||||
func (object *Waffe) LinkContainer() error {
|
||||
//var err error
|
||||
if object.BeinhaltetIn != "" {
|
||||
co := Behaeltniss{}
|
||||
co := Container{}
|
||||
co.FirstExtId(object.BeinhaltetIn)
|
||||
if co.ID > 0 {
|
||||
object.ContainedIn = co.ID
|
||||
object.ContainerType = "Behaeltniss"
|
||||
//err= object.Save()
|
||||
} else {
|
||||
obj := Transportation{}
|
||||
obj.FirstExtId(object.BeinhaltetIn)
|
||||
if obj.ID > 0 {
|
||||
object.ContainedIn = obj.ID
|
||||
object.ContainerType = "Transportation"
|
||||
//err= object.Save()
|
||||
}
|
||||
}
|
||||
if object.ContainedIn > 0 {
|
||||
err := object.Save()
|
||||
@@ -183,46 +135,14 @@ func (object *Waffe) LinkContainer() error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (object *Behaeltniss) LinkContainer() error {
|
||||
func (object *Container) LinkContainer() error {
|
||||
//var err error
|
||||
if object.BeinhaltetIn != "" {
|
||||
co := Behaeltniss{}
|
||||
co := Container{}
|
||||
co.FirstExtId(object.BeinhaltetIn)
|
||||
if co.ID > 0 {
|
||||
object.ContainedIn = co.ID
|
||||
//err= object.Save()
|
||||
} else {
|
||||
obj := Transportation{}
|
||||
if co.ID > 0 {
|
||||
object.ContainedIn = obj.ID
|
||||
//err= object.Save()
|
||||
}
|
||||
}
|
||||
if object.ContainedIn > 0 {
|
||||
err := object.Save()
|
||||
if err != nil {
|
||||
// ContainedIn saved
|
||||
return err
|
||||
}
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (object *Transportation) LinkContainer() error {
|
||||
//var err error
|
||||
if object.BeinhaltetIn != "" {
|
||||
co := Behaeltniss{}
|
||||
co.FirstExtId(object.BeinhaltetIn)
|
||||
if co.ID > 0 {
|
||||
object.ContainedIn = co.ID
|
||||
//err= object.Save()
|
||||
} else {
|
||||
obj := Transportation{}
|
||||
if co.ID > 0 {
|
||||
object.ContainedIn = obj.ID
|
||||
//err= object.Save()
|
||||
}
|
||||
}
|
||||
if object.ContainedIn > 0 {
|
||||
err := object.Save()
|
||||
|
||||
@@ -149,15 +149,16 @@ func ImportVTTJSON(fileName string) (*character.Char, error) {
|
||||
char.B.Value = imp.B.Value
|
||||
char.Erfahrungsschatz.Value = imp.Erfahrungsschatz.Value
|
||||
for i := range imp.Transportmittel {
|
||||
char.Transportmittel = append(char.Transportmittel, equipment.Transportation{
|
||||
char.Transportmittel = append(char.Transportmittel, equipment.Container{
|
||||
BamortCharTrait: models.BamortCharTrait{
|
||||
BamortBase: models.BamortBase{Name: imp.Transportmittel[i].Name},
|
||||
},
|
||||
Beschreibung: imp.Transportmittel[i].Beschreibung,
|
||||
BeinhaltetIn: imp.Transportmittel[i].BeinhaltetIn,
|
||||
Gewicht: float64(imp.Transportmittel[i].Gewicht),
|
||||
Tragkraft: imp.Transportmittel[i].Tragkraft,
|
||||
Wert: imp.Transportmittel[i].Wert,
|
||||
IsTransportation: true,
|
||||
Beschreibung: imp.Transportmittel[i].Beschreibung,
|
||||
BeinhaltetIn: imp.Transportmittel[i].BeinhaltetIn,
|
||||
Gewicht: float64(imp.Transportmittel[i].Gewicht),
|
||||
Tragkraft: imp.Transportmittel[i].Tragkraft,
|
||||
Wert: imp.Transportmittel[i].Wert,
|
||||
Magisch: models.Magisch{
|
||||
IstMagisch: imp.Transportmittel[i].Magisch.IstMagisch,
|
||||
Abw: imp.Transportmittel[i].Magisch.Abw,
|
||||
@@ -186,17 +187,18 @@ func ImportVTTJSON(fileName string) (*character.Char, error) {
|
||||
})
|
||||
}
|
||||
for i := range imp.Behaeltnisse {
|
||||
char.Behaeltnisse = append(char.Behaeltnisse, equipment.Behaeltniss{
|
||||
char.Behaeltnisse = append(char.Behaeltnisse, equipment.Container{
|
||||
BamortCharTrait: models.BamortCharTrait{
|
||||
BamortBase: models.BamortBase{
|
||||
Name: imp.Behaeltnisse[i].Name},
|
||||
},
|
||||
Beschreibung: imp.Behaeltnisse[i].Beschreibung,
|
||||
BeinhaltetIn: imp.Behaeltnisse[i].BeinhaltetIn,
|
||||
Tragkraft: imp.Behaeltnisse[i].Tragkraft,
|
||||
Volumen: imp.Behaeltnisse[i].Volumen,
|
||||
Gewicht: float64(imp.Behaeltnisse[i].Gewicht),
|
||||
Wert: imp.Behaeltnisse[i].Wert,
|
||||
IsTransportation: false,
|
||||
Beschreibung: imp.Behaeltnisse[i].Beschreibung,
|
||||
BeinhaltetIn: imp.Behaeltnisse[i].BeinhaltetIn,
|
||||
Tragkraft: imp.Behaeltnisse[i].Tragkraft,
|
||||
Volumen: imp.Behaeltnisse[i].Volumen,
|
||||
Gewicht: float64(imp.Behaeltnisse[i].Gewicht),
|
||||
Wert: imp.Behaeltnisse[i].Wert,
|
||||
Magisch: models.Magisch{
|
||||
IstMagisch: imp.Behaeltnisse[i].Magisch.IstMagisch,
|
||||
Abw: imp.Behaeltnisse[i].Magisch.Abw,
|
||||
|
||||
@@ -222,18 +222,19 @@ func createChar() *character.Char {
|
||||
BeinhaltetIn: "moam-container-47363",
|
||||
},
|
||||
}
|
||||
char.Behaeltnisse = []equipment.Behaeltniss{
|
||||
char.Behaeltnisse = []equipment.Container{
|
||||
{
|
||||
BamortCharTrait: models.BamortCharTrait{
|
||||
BamortBase: models.BamortBase{
|
||||
Name: "Lederrucksack",
|
||||
},
|
||||
},
|
||||
Beschreibung: "f\u00fcr 25 kg",
|
||||
Wert: 4,
|
||||
Tragkraft: 25,
|
||||
Volumen: 25,
|
||||
Gewicht: 0.5,
|
||||
IsTransportation: false,
|
||||
Beschreibung: "f\u00fcr 25 kg",
|
||||
Wert: 4,
|
||||
Tragkraft: 25,
|
||||
Volumen: 25,
|
||||
Gewicht: 0.5,
|
||||
Magisch: models.Magisch{
|
||||
IstMagisch: false,
|
||||
Abw: 0,
|
||||
@@ -242,7 +243,7 @@ func createChar() *character.Char {
|
||||
BeinhaltetIn: "moam-container-47363",
|
||||
},
|
||||
}
|
||||
char.Transportmittel = []equipment.Transportation{
|
||||
char.Transportmittel = []equipment.Container{
|
||||
{
|
||||
|
||||
BamortCharTrait: models.BamortCharTrait{
|
||||
@@ -250,11 +251,12 @@ func createChar() *character.Char {
|
||||
Name: "Karren",
|
||||
},
|
||||
},
|
||||
Beschreibung: "für 500 kg",
|
||||
Wert: 40,
|
||||
Tragkraft: 500,
|
||||
Volumen: 250,
|
||||
Gewicht: 55.5,
|
||||
IsTransportation: true,
|
||||
Beschreibung: "für 500 kg",
|
||||
Wert: 40,
|
||||
Tragkraft: 500,
|
||||
Volumen: 250,
|
||||
Gewicht: 55.5,
|
||||
Magisch: models.Magisch{
|
||||
IstMagisch: true,
|
||||
Abw: 30,
|
||||
@@ -438,8 +440,8 @@ func createWaffen(sel int) *equipment.Waffe {
|
||||
}
|
||||
return &liste[sel]
|
||||
}
|
||||
func createBehaeltniss(sel int) *equipment.Behaeltniss {
|
||||
liste := []equipment.Behaeltniss{
|
||||
func createBehaeltniss(sel int) *equipment.Container {
|
||||
liste := []equipment.Container{
|
||||
{
|
||||
BamortCharTrait: models.BamortCharTrait{
|
||||
BamortBase: models.BamortBase{
|
||||
@@ -465,8 +467,8 @@ func createBehaeltniss(sel int) *equipment.Behaeltniss {
|
||||
}
|
||||
return &liste[sel]
|
||||
}
|
||||
func createTransportmittel(sel int) *equipment.Transportation {
|
||||
liste := []equipment.Transportation{
|
||||
func createTransportmittel(sel int) *equipment.Container {
|
||||
liste := []equipment.Container{
|
||||
{
|
||||
|
||||
BamortCharTrait: models.BamortCharTrait{
|
||||
@@ -474,11 +476,12 @@ func createTransportmittel(sel int) *equipment.Transportation {
|
||||
Name: "Karren",
|
||||
},
|
||||
},
|
||||
Beschreibung: "für 500 kg",
|
||||
Wert: 40,
|
||||
Tragkraft: 500,
|
||||
Volumen: 250,
|
||||
Gewicht: 55.5,
|
||||
IsTransportation: true,
|
||||
Beschreibung: "für 500 kg",
|
||||
Wert: 40,
|
||||
Tragkraft: 500,
|
||||
Volumen: 250,
|
||||
Gewicht: 55.5,
|
||||
Magisch: models.Magisch{
|
||||
IstMagisch: true,
|
||||
Abw: 30,
|
||||
@@ -691,6 +694,8 @@ func charTests(t *testing.T, char *character.Char) {
|
||||
assert.Equal(t, false, char.Behaeltnisse[i].IstMagisch)
|
||||
assert.Equal(t, 0, char.Behaeltnisse[i].Abw)
|
||||
assert.Equal(t, false, char.Behaeltnisse[i].Ausgebrannt)
|
||||
assert.Equal(t, false, char.Behaeltnisse[i].IsTransportation)
|
||||
|
||||
}
|
||||
}
|
||||
assert.LessOrEqual(t, 1, len(char.Transportmittel))
|
||||
@@ -709,6 +714,7 @@ func charTests(t *testing.T, char *character.Char) {
|
||||
assert.Equal(t, true, char.Transportmittel[i].IstMagisch)
|
||||
assert.Equal(t, 30, char.Transportmittel[i].Abw)
|
||||
assert.Equal(t, false, char.Transportmittel[i].Ausgebrannt)
|
||||
assert.Equal(t, true, char.Transportmittel[i].IsTransportation)
|
||||
}
|
||||
}
|
||||
assert.LessOrEqual(t, 1, len(char.Ausruestung))
|
||||
|
||||
Reference in New Issue
Block a user