110 lines
2.6 KiB
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
|
|
// // }
|