package author import ( "context" "tercul/internal/domain" ) // AuthorQueries contains the query handlers for the author aggregate. type AuthorQueries struct { repo domain.AuthorRepository } // NewAuthorQueries creates a new AuthorQueries handler. func NewAuthorQueries(repo domain.AuthorRepository) *AuthorQueries { return &AuthorQueries{repo: repo} } // Author returns an author by ID. func (q *AuthorQueries) Author(ctx context.Context, id uint) (*domain.Author, error) { return q.repo.GetByID(ctx, id) } // Authors returns all authors. func (q *AuthorQueries) Authors(ctx context.Context) ([]*domain.Author, error) { authors, err := q.repo.ListAll(ctx) if err != nil { return nil, err } authorPtrs := make([]*domain.Author, len(authors)) for i := range authors { authorPtrs[i] = &authors[i] } return authorPtrs, nil }