Files
bamort/backend/models/stammdaten.go
T

64 lines
1.7 KiB
Go

package models
import (
"bamort/database"
"fmt"
"strings"
"gorm.io/gorm"
)
func CheckFertigkeit(fertigkeit *ImFertigkeit, autocreate bool) (*ImStammFertigkeit, error) {
stammF := ImStammFertigkeit{}
if strings.HasPrefix(fertigkeit.ID, "moam") {
err := database.DB.First(&stammF, "system=? AND name = ?", "midgard", fertigkeit.Name).Error
if err == nil {
// Fertigkeit found
return &stammF, nil
}
if !autocreate {
return nil, fmt.Errorf("does not exist in Fertigkeit Stammdaten")
}
stammF.System = "midgard"
stammF.Name = fertigkeit.Name
stammF.Beschreibung = fertigkeit.Beschreibung
if fertigkeit.Fertigkeitswert < 12 {
stammF.Initialkeitswert = 5
} else {
stammF.Initialkeitswert = 12
}
stammF.Bonuseigenschaft = "keine"
stammF.Quelle = fertigkeit.Quelle
//fmt.Println(stammF)
err = database.DB.Transaction(func(tx *gorm.DB) error {
// Save the main character record
if err := tx.Create(&stammF).Error; err != nil {
return fmt.Errorf("failed to save Fertigkeit Stammdaten: %w", err)
}
return nil
})
if err != nil {
// Fertigkeit found
return nil, err
}
}
err := database.DB.First(&stammF, "system=? AND name = ?", "midgard", fertigkeit.Name).Error
if err != nil {
// Fertigkeit found
return nil, err
}
return &stammF, nil
}
type ImStammFertigkeit struct {
ID uint `gorm:"primaryKey" json:"id"`
System string `gorm:"index" json:"system"`
Name string `json:"name"`
Beschreibung string `json:"beschreibung"`
Initialkeitswert int `json:"initialwert"`
Bonuseigenschaft string `json:"bonuseigenschaft,omitempty"`
Quelle string `json:"quelle"`
}