package user

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

// Service is the application service for the user aggregate.
type Service struct {
	Commands *UserCommands
	Queries  *UserQueries
}

// NewService creates a new user Service.
func NewService(repo domain.UserRepository, authzSvc *authz.Service, profileRepo domain.UserProfileRepository) *Service {
	return &Service{
		Commands: NewUserCommands(repo, authzSvc),
		Queries:  NewUserQueries(repo, profileRepo),
	}
}
