package main import ( "context" "donat-widget/internal/app/http" "donat-widget/internal/config" DonatRepo "donat-widget/internal/repository/donat" DonatService "donat-widget/internal/service/donat" ) import ( "donat-widget/infrastructure/pg" "donat-widget/infrastructure/weed" PaymentClient "donat-widget/pkg/api/payment" ) import ( WidgetRepo "donat-widget/internal/repository/widget" WidgetService "donat-widget/internal/service/widget" ) func main() { cfg := config.Init() // INFRASTRUCTURE db := pg.NewPgPool(context.Background(), cfg.Db.Username, cfg.Db.Password, cfg.Db.Host, cfg.Db.Port, cfg.Db.DBName) storage := weed.NewWeed(cfg.Storage.Filer, cfg.Storage.Master) // CLIENTS paymentClient := PaymentClient.New(cfg.PaymentService.Host, cfg.PaymentService.Port) // REPOSITORIES widgetRepo := WidgetRepo.New(db, storage) donatRepo := DonatRepo.New(db) // SERVICES widgetService := WidgetService.New(widgetRepo, donatRepo) donatService := DonatService.New(donatRepo, widgetRepo, paymentClient) http.NewApp( db, widgetService, donatService, ) }