get products all

This commit is contained in:
Efril
2026-05-14 00:15:28 +07:00
parent 5f379faf17
commit 21fa21d089
4 changed files with 159 additions and 0 deletions
+20
View File
@@ -18,6 +18,7 @@ type ProductProcessor interface {
DeleteProduct(ctx context.Context, id uuid.UUID) error
GetProductByID(ctx context.Context, id uuid.UUID) (*models.ProductResponse, error)
ListProducts(ctx context.Context, filters map[string]interface{}, page, limit int) ([]models.ProductResponse, int, error)
ListProductsAll(ctx context.Context, filters map[string]interface{}, page, limit int) ([]models.ProductResponse, int, error)
}
type ProductRepository interface {
@@ -270,6 +271,25 @@ func (p *ProductProcessorImpl) ListProducts(ctx context.Context, filters map[str
return responses, int(total), nil
}
func (p *ProductProcessorImpl) ListProductsAll(ctx context.Context, filters map[string]interface{}, page, limit int) ([]models.ProductResponse, int, error) {
offset := (page - 1) * limit
productEntities, total, err := p.productRepo.List(ctx, filters, limit, offset)
if err != nil {
return nil, 0, fmt.Errorf("failed to list products: %w", err)
}
responses := make([]models.ProductResponse, len(productEntities))
for i, entity := range productEntities {
response := mappers.ProductEntityToResponse(entity)
if response != nil {
responses[i] = *response
}
}
return responses, int(total), nil
}
// Helper methods for inventory management
// createInventoryForAllOutlets creates inventory records for all outlets of an organization