43 lines
839 B
Go
43 lines
839 B
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.Omit("Categories").FirstOrCreate(&brandObject, Brand{Name: brand, Code: code, Categories: categories}).Error
|
|
// err := db.Model(&Brand{}).Find(&brandObject).Error
|
|
|
|
if err != nil {
|
|
log.Println("ERR0000000000000001" + err.Error())
|
|
return brandObject, err
|
|
}
|
|
|
|
}
|
|
|
|
// var brandObject Brand
|
|
|
|
return brandObject, nil
|
|
}
|