45 lines
1.0 KiB
Go
45 lines
1.0 KiB
Go
package models
|
|
|
|
var TaxonomyModels = []interface{}{
|
|
&Unit{},
|
|
&Visibility{},
|
|
&SeedingTechnique{},
|
|
&SeedingCondition{},
|
|
&Worker{},
|
|
&Crop{},
|
|
&Seller{},
|
|
&Customer{},
|
|
&SeedType{},
|
|
&Ingredient{},
|
|
&FertilizerType{},
|
|
&PesticideType{},
|
|
&ProductType{},
|
|
}
|
|
|
|
type _Taxonomy struct {
|
|
ID uint `gorm:"primaryKey" json:"id"`
|
|
Name string `gorm:"not null;index" json:"name"` // e.g., "kg", "lb"
|
|
}
|
|
|
|
type Unit struct{ _Taxonomy }
|
|
type Visibility struct{ _Taxonomy }
|
|
type SeedingTechnique struct{ _Taxonomy }
|
|
type SeedingCondition struct{ _Taxonomy }
|
|
type Worker struct{ _Taxonomy }
|
|
type Crop struct{ _Taxonomy }
|
|
type Seller struct{ _Taxonomy }
|
|
type Customer struct{ _Taxonomy }
|
|
type SeedType struct {
|
|
_Taxonomy
|
|
CropID uint `gorm:"not null"`
|
|
Crop Crop `gorm:"not null; constraint:OnUpdate:CASCADE,OnDelete:CASCADE;"`
|
|
}
|
|
type Ingredient struct {
|
|
_Taxonomy
|
|
UnitID uint `gorm:"not null"`
|
|
Unit Unit `gorm:"not null"`
|
|
}
|
|
type FertilizerType struct{ _Taxonomy }
|
|
type PesticideType struct{ _Taxonomy }
|
|
type ProductType struct{ _Taxonomy }
|