Files
bamort/backend/gsmaster/model.go
T
Frank 30a990b0cf Character display
added FeChar (FrontEndCharacter)
added marker for innate skills (angeborene Fertigkeiten) and category
added selector for innate skills at import
added marker for improvable skills
TestGetCharacters against real database
changed favicon
server frontend on '192.168.0.48', 'localhost','terrra.local'
added view DeleteCharView
fixed errors on rendering datasheetview
serve backend on 192.168.0.48
2025-01-18 20:59:35 +01:00

470 lines
10 KiB
Go

package gsmaster
import (
"bamort/database"
"fmt"
"gorm.io/gorm"
)
var dbPrefix = "gsm"
type LookupList struct {
ID uint `gorm:"primaryKey" json:"id"`
System string `gorm:"index" json:"system"`
Name string `json:"name"`
Beschreibung string `json:"beschreibung"`
Quelle string `json:"quelle"`
}
type Skill struct {
LookupList
Initialkeitswert int `json:"initialwert"`
Bonuseigenschaft string `json:"bonuseigenschaft,omitempty"`
Improvable bool `json:"improvable"`
InnateSkill bool `json:"innateskill"`
Category string `json:"category"`
}
type WeaponSkill struct {
Skill
}
type Spell struct {
LookupList
Bonus int `json:"bonus"`
Stufe int
AP int
Reichweite int
Wirkungsziel string
}
type Equipment struct {
LookupList
Gewicht float64 `json:"gewicht"`
Wert float64 `json:"wert"`
}
type Weapon struct {
Equipment
SkillRequired string `json:"skill_required"`
Damage string `json:"damage"`
}
type Container struct {
Equipment
Tragkraft float64 `json:"tragkraft"`
Volumen float64 `json:"volumen"`
}
type Transportation struct {
Container
}
type Believe struct {
LookupList
}
func (object *LookupList) Create() error {
gameSystem := "midgard"
object.System = gameSystem
err := database.DB.Transaction(func(tx *gorm.DB) error {
// Save the main character record
if err := tx.Create(&object).Error; err != nil {
return fmt.Errorf("failed to save Lookup: %w", err)
}
return nil
})
return err
}
func (object *LookupList) First(value string) error {
gameSystem := "midgard"
err := database.DB.First(&object, "system=? AND name = ?", gameSystem, value).Error
if err != nil {
// zauber found
return err
}
return nil
}
func (object *LookupList) FirstId(value uint) error {
gameSystem := "midgard"
err := database.DB.First(&object, "system=? AND id = ?", gameSystem, value).Error
if err != nil {
// zauber found
return err
}
return nil
}
func (object *LookupList) Save() error {
err := database.DB.Save(&object).Error
if err != nil {
// zauber found
return err
}
return nil
}
func (object *Skill) TableName() string {
return dbPrefix + "_" + "skills"
}
func (stamm *Skill) Create() error {
gameSystem := "midgard"
stamm.System = 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 LookupSkill: %w", err)
}
return nil
})
return err
}
func (stamm *Skill) First(name string) error {
gameSystem := "midgard"
err := database.DB.First(&stamm, "system=? AND name = ?", gameSystem, name).Error
if err != nil {
// Fertigkeit found
return err
}
return nil
}
func (object *Skill) FirstId(value uint) error {
gameSystem := "midgard"
err := database.DB.First(&object, "system=? AND id = ?", gameSystem, value).Error
if err != nil {
// zauber found
return err
}
return nil
}
func (object *Skill) Save() error {
err := database.DB.Save(&object).Error
if err != nil {
// zauber found
return err
}
return nil
}
func (object *WeaponSkill) TableName() string {
return dbPrefix + "_" + "weaponskills"
}
func (stamm *WeaponSkill) Create() error {
gameSystem := "midgard"
stamm.System = 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 LookupWeaponSkill: %w", err)
}
return nil
})
return err
}
func (stamm *WeaponSkill) First(name string) error {
gameSystem := "midgard"
err := database.DB.First(&stamm, "system=? AND name = ?", gameSystem, name).Error
if err != nil {
// Fertigkeit found
return err
}
return nil
}
func (object *WeaponSkill) FirstId(value uint) error {
gameSystem := "midgard"
err := database.DB.First(&object, "system=? AND id = ?", gameSystem, value).Error
if err != nil {
// zauber found
return err
}
return nil
}
func (object *WeaponSkill) Save() error {
err := database.DB.Save(&object).Error
if err != nil {
// zauber found
return err
}
return nil
}
func (object *Spell) TableName() string {
return dbPrefix + "_" + "spells"
}
func (stamm *Spell) Create() error {
gameSystem := "midgard"
stamm.System = 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 LookupSpell: %w", err)
}
return nil
})
return err
}
func (stamm *Spell) First(name string) error {
gameSystem := "midgard"
err := database.DB.First(&stamm, "system=? AND name = ?", gameSystem, name).Error
if err != nil {
// zauber found
return err
}
return nil
}
func (object *Spell) FirstId(value uint) error {
gameSystem := "midgard"
err := database.DB.First(&object, "system=? AND id = ?", gameSystem, value).Error
if err != nil {
// zauber found
return err
}
return nil
}
func (object *Spell) Save() error {
err := database.DB.Save(&object).Error
if err != nil {
// zauber found
return err
}
return nil
}
func (object *Equipment) TableName() string {
return dbPrefix + "_" + "equipments"
}
func (stamm *Equipment) Create() error {
gameSystem := "midgard"
stamm.System = 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 LookupEquipment: %w", err)
}
return nil
})
return err
}
func (stamm *Equipment) First(name string) error {
gameSystem := "midgard"
err := database.DB.First(&stamm, "system=? AND name = ?", gameSystem, name).Error
if err != nil {
// zauber found
return err
}
return nil
}
func (object *Equipment) FirstId(value uint) error {
gameSystem := "midgard"
err := database.DB.First(&object, "system=? AND id = ?", gameSystem, value).Error
if err != nil {
// zauber found
return err
}
return nil
}
func (object *Equipment) Save() error {
err := database.DB.Save(&object).Error
if err != nil {
// zauber found
return err
}
return nil
}
func (object *Weapon) TableName() string {
return dbPrefix + "_" + "weapons"
}
func (stamm *Weapon) Create() error {
gameSystem := "midgard"
stamm.System = 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 LookupEquipment: %w", err)
}
return nil
})
return err
}
func (stamm *Weapon) First(name string) error {
gameSystem := "midgard"
err := database.DB.First(&stamm, "system=? AND name = ?", gameSystem, name).Error
if err != nil {
// zauber found
return err
}
return nil
}
func (object *Weapon) FirstId(value uint) error {
gameSystem := "midgard"
err := database.DB.First(&object, "system=? AND id = ?", gameSystem, value).Error
if err != nil {
// zauber found
return err
}
return nil
}
func (object *Weapon) Save() error {
err := database.DB.Save(&object).Error
if err != nil {
// zauber found
return err
}
return nil
}
func (object *Container) TableName() string {
return dbPrefix + "_" + "containers"
}
func (stamm *Container) Create() error {
gameSystem := "midgard"
stamm.System = 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 LookupContainer: %w", err)
}
return nil
})
return err
}
func (stamm *Container) First(name string) error {
gameSystem := "midgard"
err := database.DB.First(&stamm, "system=? AND name = ?", gameSystem, name).Error
if err != nil {
// zauber found
return err
}
return nil
}
func (object *Container) FirstId(value uint) error {
gameSystem := "midgard"
err := database.DB.First(&object, "system=? AND id = ?", gameSystem, value).Error
if err != nil {
// zauber found
return err
}
return nil
}
func (object *Container) Save() error {
err := database.DB.Save(&object).Error
if err != nil {
// zauber found
return err
}
return nil
}
func (object *Transportation) TableName() string {
return dbPrefix + "_" + "transportations"
}
func (stamm *Transportation) Create() error {
gameSystem := "midgard"
stamm.System = 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 *Transportation) FirstId(value uint) error {
gameSystem := "midgard"
err := database.DB.First(&object, "system=? AND id = ?", gameSystem, value).Error
if err != nil {
// zauber found
return err
}
return nil
}
func (stamm *Transportation) First(name string) error {
gameSystem := "midgard"
err := database.DB.First(&stamm, "system=? AND name = ?", gameSystem, name).Error
if err != nil {
// zauber found
return err
}
return nil
}
func (object *Transportation) Save() error {
err := database.DB.Save(&object).Error
if err != nil {
// zauber found
return err
}
return nil
}
func (object *Believe) TableName() string {
return dbPrefix + "_" + "believes"
}
func (stamm *Believe) Create() error {
gameSystem := "midgard"
stamm.System = 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, "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, "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
}