package comment

import (
	"tercul/internal/app/analytics"
	"tercul/internal/app/authz"
	"tercul/internal/domain"
)

// Service is the application service for the comment aggregate.
type Service struct {
	Commands *CommentCommands
	Queries  *CommentQueries
}

// NewService creates a new comment Service.
func NewService(repo domain.CommentRepository, authzSvc *authz.Service, analyticsSvc analytics.Service) *Service {
	return &Service{
		Commands: NewCommentCommands(repo, authzSvc, analyticsSvc),
		Queries:  NewCommentQueries(repo),
	}
}
