veza/veza-backend-api/cmd/tools/seed/config.go
senke a1000ce7fb style(backend): gofmt -w on 85 files (whitespace only)
backend-ci.yml's `test -z "$(gofmt -l .)"` strict gate (added in
13c21ac11) failed on a backlog of unformatted files. None of the
85 files in this commit had been edited since the gate was added
because no push touched veza-backend-api/** in between, so the
gate never fired until today's CI fixes triggered it.

The diff is exclusively whitespace alignment in struct literals
and trailing-space comments. `go build ./...` and the full test
suite (with VEZA_SKIP_INTEGRATION=1 -short) pass identically.
2026-04-14 12:22:14 +02:00

174 lines
3 KiB
Go

package main
import "flag"
// Config holds all seed volume parameters.
type Config struct {
// Users
TotalUsers int
NormalUsers int
Artists int
Labels int
Moderators int
Admins int
// Content
Tracks int
Albums int
Playlists int
PlaylistMinTracks int
PlaylistMaxTracks int
// Social
Follows int
TrackLikes int
TrackReposts int
Comments int
CommentLikes int
// Chat
Conversations int
Messages int
// Live
PastLiveStreams int
LiveStreams int
// Marketplace
Products int
Orders int
ProductReviews int
// Analytics
PlayEvents int
ProfileViews int
AnalyticsMonths int
// Notifications
Notifications int
// Files
FileEntries int
// Misc
Groups int
SupportTickets int
APIKeys int
Announcements int
Reports int
DataExports int
GearItems int
Courses int
}
// FullConfig returns the full-scale configuration (~1200 users, ~5000 tracks).
func FullConfig() Config {
return Config{
TotalUsers: 1200,
NormalUsers: 1000,
Artists: 150,
Labels: 30,
Moderators: 15,
Admins: 5,
Tracks: 5000,
Albums: 300,
Playlists: 800,
PlaylistMinTracks: 5,
PlaylistMaxTracks: 50,
Follows: 15000,
TrackLikes: 30000,
TrackReposts: 5000,
Comments: 8000,
CommentLikes: 2000,
Conversations: 500,
Messages: 10000,
PastLiveStreams: 200,
LiveStreams: 5,
Products: 400,
Orders: 600,
ProductReviews: 300,
PlayEvents: 100000,
ProfileViews: 20000,
AnalyticsMonths: 6,
Notifications: 15000,
FileEntries: 6000,
Groups: 40,
SupportTickets: 80,
APIKeys: 30,
Announcements: 10,
Reports: 60,
DataExports: 15,
GearItems: 200,
Courses: 25,
}
}
// MinimalConfig returns a reduced configuration for fast dev iteration.
func MinimalConfig() Config {
return Config{
TotalUsers: 50,
NormalUsers: 30,
Artists: 12,
Labels: 3,
Moderators: 2,
Admins: 3,
Tracks: 200,
Albums: 25,
Playlists: 40,
PlaylistMinTracks: 3,
PlaylistMaxTracks: 15,
Follows: 200,
TrackLikes: 500,
TrackReposts: 100,
Comments: 150,
CommentLikes: 50,
Conversations: 20,
Messages: 200,
PastLiveStreams: 10,
LiveStreams: 2,
Products: 30,
Orders: 40,
ProductReviews: 20,
PlayEvents: 2000,
ProfileViews: 400,
AnalyticsMonths: 2,
Notifications: 300,
FileEntries: 250,
Groups: 5,
SupportTickets: 10,
APIKeys: 5,
Announcements: 3,
Reports: 8,
DataExports: 3,
GearItems: 20,
Courses: 5,
}
}
// ParseFlags parses CLI flags and returns the appropriate config.
func ParseFlags() Config {
minimal := flag.Bool("minimal", false, "Use reduced volumes (50 users, 200 tracks) for fast dev")
flag.Parse()
if *minimal {
return MinimalConfig()
}
return FullConfig()
}