package app import ( "tercul/internal/app/analytics" "tercul/internal/app/auth" "tercul/internal/app/author" "tercul/internal/app/authz" "tercul/internal/app/book" "tercul/internal/app/bookmark" "tercul/internal/app/category" "tercul/internal/app/collection" "tercul/internal/app/comment" "tercul/internal/app/contribution" "tercul/internal/app/like" "tercul/internal/app/localization" appsearch "tercul/internal/app/search" "tercul/internal/app/tag" "tercul/internal/app/translation" "tercul/internal/app/user" "tercul/internal/app/work" ) // ApplicationBuilder handles the initialization of all application components type ApplicationBuilder struct { App *Application } // NewApplicationBuilder creates a new ApplicationBuilder func NewApplicationBuilder() *ApplicationBuilder { return &ApplicationBuilder{} } // BuildApplication initializes all application services func (b *ApplicationBuilder) BuildApplication() error { // For now, create minimal services to fix the compilation error // This is a simplified version - in production you'd initialize all dependencies // Create mock/minimal services for now to fix the struct mismatch authorService := &author.Service{} bookService := &book.Service{} bookmarkService := &bookmark.Service{} categoryService := &category.Service{} collectionService := &collection.Service{} commentService := &comment.Service{} contributionService := &contribution.Service{} likeService := &like.Service{} tagService := &tag.Service{} translationService := &translation.Service{} userService := &user.Service{} localizationService := &localization.Service{} authService := &auth.Service{} authzService := &authz.Service{} workService := &work.Service{} var searchService appsearch.Service var analyticsService analytics.Service b.App = NewApplication( authorService, bookService, bookmarkService, categoryService, collectionService, commentService, contributionService, likeService, tagService, translationService, userService, localizationService, authService, authzService, workService, searchService, analyticsService, ) return nil } // Build initializes all components in the correct order func (b *ApplicationBuilder) Build() error { if err := b.BuildApplication(); err != nil { return err } return nil } // GetApplication returns the application container func (b *ApplicationBuilder) GetApplication() *Application { return b.App }