// cmd/run-server/seed/seed_projects.go package seed import ( "fmt" "log" "math/rand" "clapclap/internal/models" "gorm.io/datatypes" "gorm.io/gorm" ) func seedProjects(db *gorm.DB, totalRootProjects int) error { log.Printf("↳ Constructing %d randomized workspace structures...", totalRootProjects) var users []models.User if err := db.Where("username NOT LIKE ?", "user_%").Find(&users).Error; err != nil || len(users) == 0 { return fmt.Errorf("no dynamic users available for random project seed") } visibilities := []models.ProjectVisibility{models.VisibilityPublic, models.VisibilityPrivate, models.VisibilityFriends} for range totalRootProjects { owner := users[rand.Intn(len(users))] rootProject := models.Project{ Name: fmt.Sprintf("Session Studio Live - %d", rand.Intn(9000)+1000), Description: "Randomly seeded audio workspace.", Visibility: visibilities[rand.Intn(len(visibilities))], OwnerID: owner.ID, JSONProject: datatypes.JSON([]byte(`{"bpm": 120, "master_volume": 0.8, "tracks": []}`)), } if err := db.Create(&rootProject).Error; err != nil { return err } } return nil }