package fertilizer import ( "wagfarm-api/assets/base" "wagfarm-api/database" "wagfarm-api/taxonomy/fertilizertype" "wagfarm-api/taxonomy/ingredient" ) type Fertilizer struct { base.BoughtResource FertilizerTypeID uint `gorm:"not null"` FertilizerType fertilizertype.FertilizerType `gorm:"not null; constraint:OnUpdate:CASCADE,OnDelete:CASCADE;"` // Association to the ingredients. This represents the composition. Ingredients []ingredient.Ingredient `gorm:"not null; many2many:fertilizer_ingredient"` } type FertilizerIngredient struct { FertilizerID uint `gorm:"primaryKey"` // foreign key to the fertilizer assets IngredientID uint `gorm:"primaryKey"` // foreign key to the ingredient Amount float64 `gorm:"not null"` // amount of the ingredient } func RegisterModels() { database.RegisterModel(&Fertilizer{}) database.RegisterJoinTable(&Fertilizer{}, "Ingredients", &FertilizerIngredient{}) }