package app import ( "tercul/internal/app/auth" "tercul/internal/app/copyright" "tercul/internal/app/localization" "tercul/internal/app/monetization" "tercul/internal/app/search" "tercul/internal/app/work" "tercul/internal/domain" ) // Application is a container for all the application-layer services. // It's used for dependency injection into the presentation layer (e.g., GraphQL resolvers). type Application struct { AuthCommands *auth.AuthCommands AuthQueries *auth.AuthQueries CopyrightCommands *copyright.CopyrightCommands CopyrightQueries *copyright.CopyrightQueries Localization localization.Service Search search.IndexService WorkCommands *work.WorkCommands WorkQueries *work.WorkQueries // Repositories - to be refactored into app services AuthorRepo domain.AuthorRepository UserRepo domain.UserRepository TagRepo domain.TagRepository CategoryRepo domain.CategoryRepository BookRepo domain.BookRepository PublisherRepo domain.PublisherRepository SourceRepo domain.SourceRepository MonetizationQueries *monetization.MonetizationQueries }