go_service/gorm_models/brand.go

50 lines
1.1 KiB
Go

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 `gorm:"default:TESTBRAND"`
Code string
Status bool
Categories []Category `gorm:"many2many:category_brands;"`
}
func FindOrCreateBrand(db *gorm.DB, brand string, categories []Category) (Brand, error) {
var brandObject Brand
if brand != "" {
code := slug.Make(brand)
err := db.FirstOrCreate(&brandObject, Brand{Name: brand, Code: code}).Error
//err := db.Model(Brand{Name: brand, Code: code}).First(&brandObject).Error
//log.Println(Brand{Name: brand, Code: code})
if err != nil {
//err := db.Omit("Categories.*").FirstOrCreate(&brandObject, Brand{Name: brand, Code: code, Categories: categories}).Error
log.Println("ERR0000000000000001" + err.Error())
return brandObject, err
}
db.Model(&brandObject).Association("Categories").Append(categories)
return brandObject, nil
}
// var brandObject Brand
return brandObject, nil
}