package main import ( "context" "os/signal" "syscall" "gitlab.mareshq.com/hq/yggdrasil/internal/faker" "gitlab.mareshq.com/hq/yggdrasil/internal/server" "gitlab.mareshq.com/hq/yggdrasil/pkg/training" "go.uber.org/zap" ) //go:generate go run github.com/deepmap/oapi-codegen/v2/cmd/oapi-codegen --config=../../oapi-codegen.yaml ../../api/v1/openapi.yaml var port = 3000 func main() { shutdownCtx, stop := signal.NotifyContext(context.Background(), syscall.SIGINT, syscall.SIGTERM) defer stop() logger := zap.Must(zap.NewDevelopment()) defer logger.Sync() trainingRepository := training.NewInMemoryTrainingRepository() trainingDateRepository := training.NewInMemoryTrainingDateRepository() trainingDateAttendeeRepository := training.NewInMemoryTrainingDateAttendeeRepository() f := faker.NewFaker(trainingRepository, trainingDateRepository) if err := f.GenerateFakeData(); err != nil { logger.Fatal("Error generating fake data", zap.Error(err)) } apiHandlers := server.NewAPIHandlers(trainingRepository, trainingDateRepository, trainingDateAttendeeRepository) srv := server.NewServer(apiHandlers, port, logger) srv.Run(shutdownCtx) }