Atribuições de tabela de preço
Define a quem uma tabela de preço se aplica: uma empresa, um grupo de usuários ou um estado.
Uma tabela ativa só afeta quem estiver atribuído a ela. Uma atribuição liga a tabela a um alvo, e o comprador entra na tabela quando qualquer um dos alvos o alcança. Há três tipos:
target_type | target_id | Alcança quem |
|---|---|---|
corporate_account | Id da conta corporativa (UUID) | Pertence à empresa, como usuário vinculado ou como titular. |
usergroup | Id do grupo de usuários (UUID) | Está no grupo com vínculo ativo. |
state | UF com 2 letras (SP) | Tem SP no endereço padrão cadastrado. |
Todas as rotas exigem o módulo b2b-pricing e o privilégio manage_b2b ou manage_promotions.
Listar atribuições
/api/v1/admin/b2b/price-lists/{id}/assignmentsAdminLista as atribuições de uma tabela
Parâmetros de caminho
iduuidobrigatórioId da tabela.
Exemplo de requisição
bash
curl "$BASE_URL/api/v1/admin/b2b/price-lists/3f0c1a52-8d7e-4c1b-9a64-2b5e7d9c1a10/assignments" \
-H "Authorization: Bearer $TOKEN"Resposta
200Atribuições devolvidas
json
{
"assignments": [
{
"id": "7ce8cb19-a248-4364-ae6d-3ae0c13eae92",
"price_list_id": "3f0c1a52-8d7e-4c1b-9a64-2b5e7d9c1a10",
"target_type": "corporate_account",
"target_id": "5131a81e-6b1e-4d4e-9d47-78741bb3eb6c"
},
{
"id": "2887fae0-3eda-4e49-b609-4c8423d2fe0e",
"price_list_id": "3f0c1a52-8d7e-4c1b-9a64-2b5e7d9c1a10",
"target_type": "state",
"target_id": "SP"
}
]
}Campos da resposta
iduuidId da atribuição. É o que a rota de remoção recebe.
price_list_iduuidTabela.
target_typestringcorporate_accountusergroupstateTipo de alvo.
target_idstringId do alvo, ou UF quando
state.Erros
| Status | Quando | Corpo |
|---|---|---|
| 500 | Id que não é UUID | {"error":"failed to list assignments","detail":"..."} |
Um UUID válido que não existe devolve {"assignments":[]}.
Atribuir a um alvo
Liga a tabela a um alvo. A rota é idempotente: repetir a mesma combinação devolve a atribuição que já existe, sem duplicar.
/api/v1/admin/b2b/price-lists/{id}/assignmentsAdminAtribui uma tabela a um alvo
Parâmetros de caminho
iduuidobrigatórioId da tabela.
Corpo da requisição
target_typestringobrigatóriocorporate_accountusergroupstateTipo de alvo.
target_idstringobrigatórioId do alvo. Para
state, a UF (sp vira SP). Para corporate_account, o id da conta corporativa ou o id de um usuário que pertença a ela (a plataforma troca pelo id da conta).Exemplo de requisição
bash
curl -X POST "$BASE_URL/api/v1/admin/b2b/price-lists/3f0c1a52-8d7e-4c1b-9a64-2b5e7d9c1a10/assignments" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{ "target_type": "state", "target_id": "SP" }'Resposta
201Atribuição criada
json
{
"id": "2887fae0-3eda-4e49-b609-4c8423d2fe0e",
"price_list_id": "3f0c1a52-8d7e-4c1b-9a64-2b5e7d9c1a10",
"target_type": "state",
"target_id": "SP"
}Erros
| Status | Quando | Corpo |
|---|---|---|
| 400 | JSON inválido | {"error":"invalid request body","detail":"..."} |
| 400 | target_type fora da lista | {"error":"failed to add assignment","detail":"invalid target_type \"x\""} |
| 400 | target_id vazio | {"error":"failed to add assignment","detail":"target_id is required"} |
| 400 | Tabela inexistente ou id inválido | {"error":"failed to add assignment","detail":"add assignment: ..."} |
Remover uma atribuição
/api/v1/admin/b2b/price-lists/{id}/assignments/{assignmentId}AdminRemove uma atribuição
Parâmetros de caminho
iduuidobrigatórioId da tabela.
assignmentIduuidobrigatórioId da atribuição, como devolvido na listagem.
Exemplo de requisição
bash
curl -X DELETE "$BASE_URL/api/v1/admin/b2b/price-lists/3f0c1a52-8d7e-4c1b-9a64-2b5e7d9c1a10/assignments/2887fae0-3eda-4e49-b609-4c8423d2fe0e" \
-H "Authorization: Bearer $TOKEN"Resposta
200Atribuição removida
json
{ "removed": true }Erros
| Status | Quando | Corpo |
|---|---|---|
| 404 | Atribuição não existe nesta tabela (ou id mal formado) | {"error":"failed to remove assignment","detail":"assignment not found"} |