package category import ( "context" "errors" "tercul/internal/domain" ) // CategoryQueries contains the query handlers for the category aggregate. type CategoryQueries struct { repo domain.CategoryRepository } // NewCategoryQueries creates a new CategoryQueries handler. func NewCategoryQueries(repo domain.CategoryRepository) *CategoryQueries { return &CategoryQueries{ repo: repo, } } // GetCategoryByID retrieves a category by ID. func (q *CategoryQueries) GetCategoryByID(ctx context.Context, id uint) (*domain.Category, error) { if id == 0 { return nil, errors.New("invalid category ID") } return q.repo.GetByID(ctx, id) } // ListCategories returns a paginated list of categories. func (q *CategoryQueries) ListCategories(ctx context.Context, page, pageSize int) (*domain.PaginatedResult[domain.Category], error) { return q.repo.List(ctx, page, pageSize) }