package app import ( "tercul/internal/app/analytics" "tercul/internal/app/auth" "tercul/internal/app/copyright" "tercul/internal/app/localization" "tercul/internal/app/monetization" "tercul/internal/app/author" "tercul/internal/app/collection" "tercul/internal/app/bookmark" "tercul/internal/app/comment" "tercul/internal/app/like" "tercul/internal/app/search" "tercul/internal/app/category" "tercul/internal/app/tag" "tercul/internal/app/translation" "tercul/internal/app/user" "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 { AnalyticsService analytics.Service AuthCommands *auth.AuthCommands AuthQueries *auth.AuthQueries AuthorCommands *author.AuthorCommands AuthorQueries *author.AuthorQueries BookmarkCommands *bookmark.BookmarkCommands BookmarkQueries *bookmark.BookmarkQueries CategoryQueries *category.CategoryQueries CollectionCommands *collection.CollectionCommands CollectionQueries *collection.CollectionQueries CommentCommands *comment.CommentCommands CommentQueries *comment.CommentQueries CopyrightCommands *copyright.CopyrightCommands CopyrightQueries *copyright.CopyrightQueries LikeCommands *like.LikeCommands LikeQueries *like.LikeQueries Localization localization.Service Search search.IndexService TagQueries *tag.TagQueries UserQueries *user.UserQueries WorkCommands *work.WorkCommands WorkQueries *work.WorkQueries TranslationCommands *translation.TranslationCommands TranslationQueries *translation.TranslationQueries // Repositories - to be refactored into app services BookRepo domain.BookRepository PublisherRepo domain.PublisherRepository SourceRepo domain.SourceRepository MonetizationQueries *monetization.MonetizationQueries MonetizationCommands *monetization.MonetizationCommands CopyrightRepo domain.CopyrightRepository MonetizationRepo domain.MonetizationRepository }