package main import ( "gerald/internal/adapters/config" "gerald/internal/adapters/logger" "gerald/internal/interfaces/rest" "gerald/internal/interfaces/rest/handlers" "gerald/internal/services" "gerald/repo/pg" "go.uber.org/fx" ) func main() { fx.New( // COMMON fx.Provide(config.GetConfig), fx.Provide(logger.NewLogger), // SERVICES fx.Provide(services.NewFeedbackService), // SERVER fx.Provide(rest.NewServer), fx.Invoke(rest.StartHTTPServer), // HANDLERS fx.Provide(handlers.NewFeedbackHandler), // DB fx.Provide( fx.Annotate( pg.NewClient, fx.OnStop(pg.Close), ), pg.NewDB, ), fx.Invoke(pg.CreateSchema), ).Run() }