package book

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

// Service is the application service for the book aggregate.
type Service struct {
	Commands *BookCommands
	Queries  *BookQueries
}

// NewService creates a new book Service.
func NewService(repo domain.BookRepository, authzSvc *authz.Service) *Service {
	return &Service{
		Commands: NewBookCommands(repo, authzSvc),
		Queries:  NewBookQueries(repo),
	}
}