Excluir característica
Remove uma característica, uma a uma ou em lote, desde que nenhum produto ainda tenha valor nela.
Use esta operação para apagar uma característica que não faz mais sentido no catálogo. A exclusão é permanente e leva junto as opções (variantes) da característica. Por segurança, a plataforma recusa a exclusão enquanto algum produto tiver valor gravado nela: o cliente perderia dados sem aviso. Primeiro tire o valor dos produtos (por exemplo com PUT /api/v1/admin/products/{id}/features, que troca todos os valores do produto), depois exclua.
Se você só quer esconder a característica da vitrine, não exclua: mude o status para H com Alterar característica.
/api/v1/admin/features/{id}AdminExcluir característica
Exige o privilégio manage_features. Responde 200 com uma mensagem.
Parâmetros de caminho
iduuidobrigatório/api/v1/admin/characteristics/{id}AdminApelido em português: excluir característica
Apelido de /api/v1/admin/features/{id}: mesmas regras e mesma resposta.
/api/v1/admin/features/bulk-deleteAdminExcluir várias características
Exclui várias de uma vez, uma por uma: cada id é tratado separadamente, e um que falha não impede os outros. A resposta é sempre 200 e lista o que foi excluído e o que falhou.
Corpo da requisição
idsarrayobrigatórioO corpo também aceita os campos filter, simulate e confirm_token, do mecanismo de lote por critério da plataforma (simulação e confirmação antes de excluir). Quando algum deles vem no corpo, a resposta muda de formato e não é a descrita abaixo; esse modo não faz parte do contrato desta seção.
/api/v1/admin/characteristics/bulk-deleteAdminApelido em português: excluir várias características
Apelido de /api/v1/admin/features/bulk-delete: mesmo corpo, mesma resposta.
Exemplo de requisição
# Uma característica
curl -X DELETE "$BASE_URL/api/v1/admin/features/6d750dc5-6207-4809-9342-f9834c93a877" \
-H "Authorization: Bearer $TOKEN"
# Várias
curl -X POST "$BASE_URL/api/v1/admin/features/bulk-delete" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{ "ids": ["36d53e33-2e76-49fa-ac05-ccceab9ea691", "6d750dc5-6207-4809-9342-f9834c93a877"] }'Resposta
{ "message": "feature deleted" }{
"deleted": ["36d53e33-2e76-49fa-ac05-ccceab9ea691"],
"failures": {
"6d750dc5-6207-4809-9342-f9834c93a877": "está em uso por um ou mais produtos"
},
"total": 1
}Campos da resposta (lote)
deletedarrayfailuresobjectestá em uso por um ou mais produtos quando ainda há produto com valor; feature not found quando o id não existe; outro texto técnico em caso de falha interna.totalintegerdeleted).Erros
| Status | Quando | Corpo |
|---|---|---|
| 400 | Lote: corpo que não é JSON, ou ids vazio | {"error":"invalid request body","detail":"..."} ou {"error":"ids is required"} |
| 401 | Sem credenciais ou token expirado | {"error":"missing authorization header"} |
| 403 | Sem manage_features | {"error":"insufficient privileges","required":"manage_features"} |
| 409 | Característica em uso por produtos (exclusão individual) | {"error":"Não é possível excluir: esta característica está em uso por um ou mais produtos. Remova o valor dos produtos antes de excluir."} (mensagem em português, como o servidor devolve) |
| 500 | id que não é UUID, ou id inexistente | {"error":"failed to delete feature","detail":"feature not found"} |