datamodel done without validators

This commit is contained in:
2025-04-17 12:33:53 +02:00
parent 284a40fac2
commit 5337da219e
58 changed files with 575 additions and 227 deletions

View File

@@ -0,0 +1,48 @@
package base
import (
"time"
"wagfarm-api/assets/machine"
"wagfarm-api/database"
"wagfarm-api/taxonomy/visibility"
"github.com/shopspring/decimal"
"gorm.io/gorm"
)
type BaseLog struct {
ID uint `gorm:"primaryKey"`
Name string `gorm:"not null"`
Notes string `gorm:"not null"`
LogType string `gorm:"not null"`
Date time.Time `gorm:"not null"`
Duration float64 `gorm:"not null"` // in hours
VisibiltyID uint `gorm:"not null"`
Visibility visibility.Visibility `gorm:"constraint:OnUpdate:CASCADE,OnDelete:CASCADE;not null"`
Cost decimal.Decimal `gorm:"not null;type:decimal(10,2);"` // in euro
}
func (l BaseLog) GetID() uint { return l.ID }
type ExtendedLog struct {
ID uint `gorm:"primaryKey"`
BaseLogID uint `gorm:"not null"`
BaseLog BaseLog `gorm:"constraint:OnUpdate:CASCADE,OnDelete:CASCADE;not null"`
}
func (l ExtendedLog) GetID() uint { return l.ID }
func (l *ExtendedLog) UpdateCost(db *gorm.DB, newCost decimal.Decimal) (err error) {
err = db.Model(&BaseLog{}).
Where("id = ?", l.BaseLogID).
Update("cost", newCost).Error
return
}
type FieldWorkLog struct {
ExtendedLog
WorkedAreaPercentage float64 `gorm:"not null"`
MachineID uint `gorm:"not null"`
Machine machine.Machine `gorm:"constraint:OnUpdate:CASCADE,OnDelete:CASCADE;not null"`
}
func RegisterModels() { database.RegisterModel(&BaseLog{}) }