---
name: CRUDListResult
lang: go
domain: infra
version: "1.0.0"
algebraic: product
definition: |
  type CRUDListResult struct {
      Items      []map[string]any `json:"items"`
      Total      int              `json:"total"`
      Page       int              `json:"page"`
      PerPage    int              `json:"per_page"`
      TotalPages int              `json:"total_pages"`
  }
description: "Resultado paginado de un endpoint list CRUD. Incluye los items de la pagina y metadatos de paginacion para el cliente."
tags: [crud, list, pagination, result, infra]
uses_types: []
file_path: "functions/infra/crud_resource.go"
---

## Ejemplo

```go
result := CRUDListResult{
    Items:      []map[string]any{{"id": "a", "name": "X"}},
    Total:      42,
    Page:       1,
    PerPage:    20,
    TotalPages: 3,
}
```

## Notas

Tipo producto. Items es la lista de registros de la pagina actual serializados como map[string]any (schema dinamico). Total es el conteo global sin paginacion. TotalPages = ceil(Total / PerPage). Se serializa directamente como JSON con HTTPJSONResponse.
