package main import ( "context" "log" "os" "github.com/chedius/delivery-tracker/internal/auth" db "github.com/chedius/delivery-tracker/internal/db/sqlc" "github.com/jackc/pgx/v5/pgxpool" "github.com/joho/godotenv" ) func main() { ctx := context.Background() godotenv.Load() dsn := os.Getenv("DATABASE_URL") pool, err := pgxpool.New(ctx, dsn) if err != nil { log.Fatalf("db connect: %v", err) } defer pool.Close() queries := db.New(pool) _, err = queries.GetUserByUsername(ctx, "admin") if err == nil { log.Println("admin user already exists, skipping seed") return } secret := []byte(os.Getenv("JWT_SECRET")) if len(secret) == 0 { log.Fatalf("JWT_SECRET not set") } authService := auth.New(queries, secret, 0) password := os.Getenv("SEED_ADMIN_PASSWORD") if password == "" { password = "admin123" // ⚠️ только для dev! } user, token, err := authService.Register(ctx, "admin", password) if err != nil { log.Fatalf("failed to create admin: %v", err) } log.Printf("created admin user: id=%s, username=%s", user.ID, user.Username) log.Printf("token: %s", token) }