wms-be/database/seeders/seeds/product_seed.go

110 lines
2.6 KiB
Go

package seeds
// import (
// "encoding/json"
// "errors"
// "io"
// "os"
// "github.com/Caknoooo/go-gin-clean-starter/database/entities"
// "gorm.io/gorm"
// )
// type ProductSeed struct {
// Name string `json:"name"`
// Price float64 `json:"price"`
// TenantName string `json:"tenant_name"`
// }
// func ListProductSeeder(db *gorm.DB) error {
// jsonFile, err := os.Open("./database/seeders/json/products.json")
// if err != nil {
// return err
// }
// jsonData, err := io.ReadAll(jsonFile)
// if err != nil {
// return err
// }
// var listProduct []ProductSeed
// if err := json.Unmarshal(jsonData, &listProduct); err != nil {
// return err
// }
// hasTable := db.Migrator().HasTable(&entities.Product{})
// if !hasTable {
// if err := db.Migrator().CreateTable(&entities.Product{}); err != nil {
// return err
// }
// }
// for _, data := range listProduct {
// var tenant entities.Tenant
// if err := db.Where("name = ?", data.TenantName).First(&tenant).Error; err != nil {
// return err // tenant tidak ditemukan
// }
// var product entities.Product
// err := db.Where(&entities.Product{Name: data.Name}).First(&product).Error
// if err != nil && !errors.Is(err, gorm.ErrRecordNotFound) {
// return err
// }
// isData := db.Find(&product, "name = ?", data.Name).RowsAffected
// if isData == 0 {
// newProduct := entities.Product{
// Name: data.Name,
// Price: data.Price,
// TenantID: tenant.ID,
// }
// if err := db.Create(&newProduct).Error; err != nil {
// return err
// }
// }
// }
// return nil
// }
// // func ListUserSeeder(db *gorm.DB) error {
// // jsonFile, err := os.Open("./database/seeders/json/users.json")
// // if err != nil {
// // return err
// // }
// // jsonData, err := io.ReadAll(jsonFile)
// // if err != nil {
// // return err
// // }
// // var listUser []entities.User
// // if err := json.Unmarshal(jsonData, &listUser); err != nil {
// // return err
// // }
// // hasTable := db.Migrator().HasTable(&entities.User{})
// // if !hasTable {
// // if err := db.Migrator().CreateTable(&entities.User{}); err != nil {
// // return err
// // }
// // }
// // for _, data := range listUser {
// // var user entities.User
// // err := db.Where(&entities.User{Email: data.Email}).First(&user).Error
// // if err != nil && !errors.Is(err, gorm.ErrRecordNotFound) {
// // return err
// // }
// // isData := db.Find(&user, "email = ?", data.Email).RowsAffected
// // if isData == 0 {
// // if err := db.Create(&data).Error; err != nil {
// // return err
// // }
// // }
// // }
// // return nil
// // }