go_service/gorm_models/brand.go

44 lines
786 B
Go
Raw Normal View History

2022-08-12 08:59:03 +00:00
package gorm_models
import (
"log"
"time"
"github.com/gosimple/slug"
"gorm.io/gorm"
)
type Brand struct {
ID uint `gorm:"primary_key"`
CreatedAt time.Time
UpdatedAt time.Time
Name string
Code string
Status bool
Categories []Category `gorm:"many2many:category_brands;"`
}
func FindOrCreateBrand(db *gorm.DB, brand string, categories []Category) Brand {
var brandObject Brand
if brand != "" {
code := slug.Make(brand)
err := db.FirstOrCreate(&brandObject, Brand{Name: brand, Code: code}).Error
// err := db.Model(&Brand{}).Find(&brandObject).Error
if err != nil {
log.Println(err.Error())
} else {
db.Model(&brandObject).Association("Categories").Append(categories)
}
}
// var brandObject Brand
return brandObject
}