package entities import ( "time" "github.com/google/uuid" ) type IngredientUnitConverter struct { ID uuid.UUID `gorm:"type:uuid;primary_key;default:gen_random_uuid()" json:"id"` OrganizationID uuid.UUID `gorm:"type:uuid;not null" json:"organization_id"` IngredientID uuid.UUID `gorm:"type:uuid;not null" json:"ingredient_id"` FromUnitID uuid.UUID `gorm:"type:uuid;not null" json:"from_unit_id"` ToUnitID uuid.UUID `gorm:"type:uuid;not null" json:"to_unit_id"` ConversionFactor float64 `gorm:"type:decimal(15,6);not null" json:"conversion_factor"` IsActive bool `gorm:"default:true" json:"is_active"` CreatedAt time.Time `gorm:"autoCreateTime" json:"created_at"` UpdatedAt time.Time `gorm:"autoUpdateTime" json:"updated_at"` CreatedBy uuid.UUID `gorm:"type:uuid;not null" json:"created_by"` UpdatedBy uuid.UUID `gorm:"type:uuid;not null" json:"updated_by"` // Relationships Organization *Organization `gorm:"foreignKey:OrganizationID" json:"organization,omitempty"` Ingredient *Ingredient `gorm:"foreignKey:IngredientID" json:"ingredient,omitempty"` FromUnit *Unit `gorm:"foreignKey:FromUnitID" json:"from_unit,omitempty"` ToUnit *Unit `gorm:"foreignKey:ToUnitID" json:"to_unit,omitempty"` CreatedByUser *User `gorm:"foreignKey:CreatedBy" json:"created_by_user,omitempty"` UpdatedByUser *User `gorm:"foreignKey:UpdatedBy" json:"updated_by_user,omitempty"` } func (IngredientUnitConverter) TableName() string { return "ingredient_unit_converters" } // BeforeCreate hook to set default values func (iuc *IngredientUnitConverter) BeforeCreate() error { if iuc.ID == uuid.Nil { iuc.ID = uuid.New() } return nil }