package main import ( "fmt" "log" "log/slog" "os" "github.com/SamuelTariku/FortuneBet-Backend/internal/config" customlogger "github.com/SamuelTariku/FortuneBet-Backend/internal/logger" "github.com/SamuelTariku/FortuneBet-Backend/internal/repository" notificationservice "github.com/SamuelTariku/FortuneBet-Backend/internal/services/notfication" httpserver "github.com/SamuelTariku/FortuneBet-Backend/internal/web_server" "github.com/joho/godotenv" ) func main() { err := godotenv.Load() if err != nil { slog.Error(err.Error()) os.Exit(1) } cfg, err := config.NewConfig() if err != nil { slog.Error(err.Error()) os.Exit(1) } db, _, err := repository.OpenDB(cfg.DbUrl) if err != nil { fmt.Print(err) os.Exit(1) } logger := customlogger.NewLogger("development", slog.LevelDebug, "1.0") store := repository.NewStore(db) notificationRepo := repository.NewNotificationRepository(store) notificationSvc := notificationservice.New(notificationRepo, logger) app := httpserver.NewApp(cfg.Port, logger, notificationSvc) if err := app.Run(); err != nil { log.Fatal("Failed to start server with error: ", err) } }