diff --git a/src/views/pages/saas/SaasAddonsPage.vue b/src/views/pages/saas/SaasAddonsPage.vue
index 4edace8..7e0a817 100644
--- a/src/views/pages/saas/SaasAddonsPage.vue
+++ b/src/views/pages/saas/SaasAddonsPage.vue
@@ -581,15 +581,15 @@ async function doWaAdjust() {
function submitWaTopup() {
const t = waTopup.value;
- if (!t.tenantId) { toast.add({ severity: 'warn', summary: 'Selecione o tenant', life: 2500 }); return; }
+ if (!t.tenantId) { toast.add({ severity: 'error', summary: 'Selecione o tenant', life: 2500 }); return; }
const amt = Math.round(Number(t.amount) || 0);
- if (amt < 1) { toast.add({ severity: 'warn', summary: 'Valor deve ser >= 1', life: 2500 }); return; }
- if (amt > WA_ADJUST_MAX) { toast.add({ severity: 'warn', summary: `Máximo ${WA_ADJUST_MAX} por operação`, life: 3000 }); return; }
+ if (amt < 1) { toast.add({ severity: 'error', summary: 'Valor deve ser >= 1', life: 2500 }); return; }
+ if (amt > WA_ADJUST_MAX) { toast.add({ severity: 'error', summary: `Máximo ${WA_ADJUST_MAX} por operação`, life: 3000 }); return; }
if (t.mode === 'remove') {
const max = waMaxAmountForMode();
- if (max <= 0) { toast.add({ severity: 'warn', summary: 'Nada removível', detail: 'Este tenant não tem créditos de cortesia disponíveis pra remoção.', life: 4000 }); return; }
- if (amt > max) { toast.add({ severity: 'warn', summary: `Máximo removível: ${max}`, life: 3000 }); return; }
+ if (max <= 0) { toast.add({ severity: 'error', summary: 'Nada removível', detail: 'Este tenant não tem créditos de cortesia disponíveis pra remoção.', life: 4000 }); return; }
+ if (amt > max) { toast.add({ severity: 'error', summary: `Máximo removível: ${max}`, life: 3000 }); return; }
const msgItems = [
`Vai subtrair ${amt} créditos de ${escapeHtml(tenantName(t.tenantId))} (pool cortesia).`,
@@ -1045,7 +1045,7 @@ onMounted(() => {
-
+
Máx. {{ WA_ADJUST_MAX }} por operação · removível agora: {{ Math.min(WA_ADJUST_MAX, waRemovable.removable) }}.