Duplicar e definir padrão
Duplica um layout simples com novos ids de bloco e escolhe o layout padrão de cada tipo de página.
Duas ações sobre um layout simples existente. Ambas exigem o privilégio manage_layouts e devolvem o layout resultante.
Duplicar layout
/api/v1/admin/layouts/{id}/cloneAdminDuplica um layout simples
Cria um novo layout com o mesmo tipo de página e os mesmos blocos, cada bloco com um UUID novo. A cópia nasce sem ser padrão. Útil para testar uma variação sem mexer no layout em uso.
Parâmetros de caminho
idintegerobrigatórioId do layout a copiar.
Corpo da requisição
namestringpadrão: nome original + (Copy)Nome da cópia. O corpo inteiro é opcional.
Exemplo de requisição
bash
curl -X POST "$BASE_URL/api/v1/admin/layouts/11/clone" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"name":"Categoria (teste)"}'201Layout duplicado
json
{
"id": 15,
"name": "Categoria (teste)",
"page_type": "category",
"is_default": false,
"blocks": [],
"created_at": "2026-10-11T15:10:00.000Z",
"updated_at": "2026-10-11T15:10:00.000Z"
}A lista blocks real traz os blocos copiados; foi abreviada aqui.
Definir layout padrão
/api/v1/admin/layouts/{id}/set-defaultAdminTorna o layout o padrão do seu tipo de página
Desmarca o padrão atual do mesmo page_type e marca este. Só um layout por tipo de página é padrão.
Parâmetros de caminho
idintegerobrigatórioId do layout.
200Padrão definido
json
{
"id": 15,
"name": "Categoria (teste)",
"page_type": "category",
"is_default": true,
"blocks": [],
"created_at": "2026-10-11T15:10:00.000Z",
"updated_at": "2026-10-11T15:12:00.000Z"
}Erros
| Status | Quando | Corpo |
|---|---|---|
| 400 | id que não é inteiro | {"error":"invalid layout id","detail":"id must be an integer"} |
| 401 | Sem token ou token expirado | {"error":"missing authorization header"} |
| 403 | Sem o privilégio manage_layouts | {"error":"insufficient privileges","required":"manage_layouts"} |
| 500 | Layout inexistente ou falha interna | {"error":"failed to clone layout","detail":"layout not found"} |