This commit is contained in:
juancwu 2026-01-14 21:51:08 +00:00
commit dd7f2ebe3e
15 changed files with 373 additions and 70 deletions

View file

@ -5,6 +5,7 @@ import (
"git.juancwu.dev/juancwu/budgit/internal/config"
"git.juancwu.dev/juancwu/budgit/internal/db"
"git.juancwu.dev/juancwu/budgit/internal/event"
"git.juancwu.dev/juancwu/budgit/internal/repository"
"git.juancwu.dev/juancwu/budgit/internal/service"
"github.com/jmoiron/sqlx"
@ -13,6 +14,7 @@ import (
type App struct {
Cfg *config.Config
DB *sqlx.DB
EventBus *event.Broker
UserService *service.UserService
AuthService *service.AuthService
EmailService *service.EmailService
@ -35,6 +37,8 @@ func New(cfg *config.Config) (*App, error) {
return nil, fmt.Errorf("failed to run migrations: %w", err)
}
eventBus := event.NewBroker()
emailClient := service.NewEmailClient(cfg.MailerSMTPHost, cfg.MailerSMTPPort, cfg.MailerIMAPHost, cfg.MailerIMAPPort, cfg.MailerUsername, cfg.MailerPassword)
// Repositories
@ -71,13 +75,14 @@ func New(cfg *config.Config) (*App, error) {
)
profileService := service.NewProfileService(profileRepository)
tagService := service.NewTagService(tagRepository)
shoppingListService := service.NewShoppingListService(shoppingListRepository, listItemRepository)
expenseService := service.NewExpenseService(expenseRepository)
shoppingListService := service.NewShoppingListService(shoppingListRepository, listItemRepository, eventBus)
expenseService := service.NewExpenseService(expenseRepository, eventBus)
inviteService := service.NewInviteService(invitationRepository, spaceRepository, userRepository, emailService)
return &App{
Cfg: cfg,
DB: database,
EventBus: eventBus,
UserService: userService,
AuthService: authService,
EmailService: emailService,