package book

import (
	"context"
	"tercul/internal/domain"
)

// BookQueries contains the query handlers for the book aggregate.
type BookQueries struct {
	repo domain.BookRepository
}

// NewBookQueries creates a new BookQueries handler.
func NewBookQueries(repo domain.BookRepository) *BookQueries {
	return &BookQueries{repo: repo}
}

// Book retrieves a book by its ID.
func (q *BookQueries) Book(ctx context.Context, id uint) (*domain.Book, error) {
	return q.repo.GetByID(ctx, id)
}

// Books retrieves a list of all books.
func (q *BookQueries) Books(ctx context.Context) ([]domain.Book, error) {
	return q.repo.ListAll(ctx)
}