31 lines
887 B
Go
31 lines
887 B
Go
package base
|
|
|
|
type Asset struct {
|
|
ID uint `gorm:"primaryKey`
|
|
Name string `gorm:"not null"`
|
|
Notes string
|
|
}
|
|
|
|
func (a Asset) GetID() uint { return a.ID }
|
|
|
|
type Resource struct {
|
|
Asset
|
|
UnitID uint `gorm:"not null"`
|
|
Unit unit.Unit `gorm:"not null; constraint:OnUpdate:CASCADE,OnDelete:CASCADE;"`
|
|
Cost decimal.Decimal `gorm:"not null; type:decimal(10,2);"` // in euro/unit
|
|
}
|
|
|
|
type BoughtResource struct {
|
|
Resource
|
|
BuyDate Datetime.Time `gorm:"type:date;default:CURRENT_DATE"`
|
|
BoughtFromID uint `gorm:"not null"`
|
|
BoughtFrom Seller `gorm:"not null; constraint:OnUpdate:CASCADE,OnDelete:CASCADE;"`
|
|
}
|
|
|
|
type SoldResource struct {
|
|
Resource
|
|
SaleDate Datetime.Time `gorm:"type:date;default:CURRENT_DATE"`
|
|
SoldToID uint `gorm:"not null"`
|
|
SoldTo Customer `gorm:"not null; constraint:OnUpdate:CASCADE,OnDelete:CASCADE;"`
|
|
}
|