# Spec 035-C — Admin Ligbox (Sistema) — Console agregado staff

**Criado:** 2026-06-21  
**Solicitado por:** Roger  
**Status:** ✅ URL fixada — integrado em [ligbox-console-shell.md](./ligbox-console-shell.md)  
**URL:** `https://console.ligbox.com.br/comercial` (staff) · `/ops` (chamados Spec 019)  
**Relacionado:** Spec **035** · **024** · **027** (RBAC) · **019** (Ops Console)

---

## 1. Decisão Roger (2026-06-21)

> A página de **aprovação de preços** pertence ao **Admin Ligbox** — não ao FOSS nem a portais dispersos.  
> Da mesma forma que precisamos de **uma página agregada para utilizadores** (todos os setups de user de todas as ferramentas), precisamos do **mesmo para o Admin do sistema**.

**Princípio único (3 portais):**

| Portal | Quem | O quê agrega |
|--------|------|--------------|
| **Admin Ligbox** (esta spec) | Roger + staff RBAC | **Todos** os setups **admin/plataforma** — preços, produtos, gateway, provisionamento, clientes |
| **Gerente de Domínio** | `admin@{dom}` | **Todos** os setups **do domínio** — contas, quotas, DMARC, pagamento resumo |
| **Utilizador** (Fase B) | `{user}@{dom}` | **Todos** os setups **pessoais** — OOO, assinatura, redirects, senha, Files prefs |

**Regra de ouro:** nenhum portal manda o utilizador «configurar» noutra ferramenta nativa (FOSS admin, OpenPanel UI, Nextcloud admin, Carbonio admin). APIs nativas ficam **por trás**; a UI Ligbox **agrega**.

---

## 2. Três níveis — visão completa

```
┌─────────────────────────────────────────────────────────────────┐
│  NÍVEL 0 — ADMIN LIGBOX (Sistema)          ← ESTA SPEC (035-C)  │
│  Roger · staff @ligbox.com.br (RBAC Spec 027)                   │
│  • Aprovação de preços & catálogo bundles                       │
│  • Gateway pagamento (boleto/PIX) — config & status             │
│  • Provisioning global (OpenPanel, wizard, VM116)               │
│  • Clientes / domínios / impersonate gerente                    │
│  • Ops: chamados, health, audit (integra Spec 019)              │
└─────────────────────────────────────────────────────────────────┘
                              │
                              │ vende & provisiona
                              ▼
┌─────────────────────────────────────────────────────────────────┐
│  NÍVEL 1 — GERENTE DE DOMÍNIO              ← Spec 035-UI (Fase A)│
│  admin@empresa.com.br · onboard.ligbox.com.br/admin             │
│  • Plano, limites, boleto/PIX resumo                            │
│  • CRUD contas email + quotas Nextcloud                         │
│  • DMARC, DNS, upgrade plano                                    │
└─────────────────────────────────────────────────────────────────┘
                              │
                              │ cria contas
                              ▼
┌─────────────────────────────────────────────────────────────────┐
│  NÍVEL 2 — UTILIZADOR DE EMAIL             ← Spec 035-B (Fase B)│
│  vendas@empresa.com.br · onboard.ligbox.com.br/me               │
│  • Redirects, OOO, assinatura, senha                            │
│  • Prefs Files pessoais, quota uso                              │
│  • (sem admin domínio · sem preços · sem DMARC global)          │
└─────────────────────────────────────────────────────────────────┘
```

---

## 3. Admin Ligbox — secções agregadas

### 3.1 Comercial & preços (Roger — obrigatório)

| Funcionalidade | Hoje (disperso) | UI Admin Ligbox |
|----------------|-----------------|-----------------|
| **Aprovar preços** | FOSS admin / planilha | Fila «Preços pendentes» → Roger aprova/rejeita |
| Catálogo bundles | FOSS produtos | Starter / Business / Enterprise / Custom |
| Margem & benchmark | spec.md §1.1 | Editor inline + histórico versões |
| Publicar no FOSS | manual | Botão «Publicar» → API FOSS |
| Promoções / cupons | FOSS | Lista + criar (proxy API) |

**Fluxo aprovação preços:**

```
Staff propõe alteração preço (ou import Spec)
  → Estado: rascunho
  → Fila Admin Ligbox «Aguarda Roger»
  → Roger aprova
  → Desk API → FOSSBilling actualiza produto
  → Log audit (quem, quando, valor anterior/novo)
```

Roger **nunca** precisa entrar no backoffice FOSS para aprovar preço.

### 3.2 Billing & gateway

| Funcionalidade | Backend | UI Admin Ligbox |
|----------------|---------|-----------------|
| Config gateway ASAAS/Iugu | VM123 | Credenciais, ambiente sandbox/prod |
| Webhooks pagamento | FOSS + Desk | Log últimos eventos |
| Faturas globais | FOSS | Pesquisa por cliente/domínio |
| Inadimplência | FOSS | Lista + acções (suspender bundle) |

### 3.3 Provisioning & plataforma

| Funcionalidade | Backend | UI Admin Ligbox |
|----------------|---------|-----------------|
| Jobs provisionamento | OpenPanel + Wizard | Fila, retry, erro |
| Domínios activos | Wizard + Desk | Lista + health |
| Nextcloud VM116 | OCS / admin API | Quota cluster, tenants |
| EasyDMARC contas | API ext. | Domínios registados |
| Bridge FOSS↔OP | VM123 :18087 | Status bridge |

### 3.4 Clientes & suporte

| Funcionalidade | UI Admin Ligbox |
|----------------|-----------------|
| Lista clientes FOSS | pesquisa, plano, estado pagamento |
| Impersonate gerente | abre `/admin` como domínio (auditado Spec 027) |
| Chamados | integração Spec 019 / Desk tickets |
| Leads abandonados | Spec 012 widget |

### 3.5 Ops & segurança — **mesmo shell** (Spec 019)

Chamados `CH-*`, Discover e Wazuh vivem em **`console.ligbox.com.br/ops`** — **não** app separada.

| Item | Rota |
|------|------|
| Overview alertas | `/ops` |
| Chamado hub | `/ops/ch/:id` |
| Discover | `/ops/discover` |
| Ver no Wazuh | deep-link VM104 (staff only) |

Mesmo header, logo e design system que `/admin` gerente e `/comercial`.

---

## 4. Wireframe resumo (Admin Ligbox)

```
╔══════════════════════════════════════════════════════════════════╗
║  LIGBOX ADMIN                                    Roger ▼  Sair  ║
╠══════════════════════════════════════════════════════════════════╣
║  ┌─ Sidebar ─────────┐  ┌─ Conteúdo ──────────────────────────┐ ║
║  │ 📊 Dashboard       │  │  Preços pendentes (2)               │ ║
║  │ 💰 Preços & catálogo│  │  ┌─────────────────────────────┐   │ ║
║  │ 💳 Gateway & faturas│  │  │ Business R$549 → R$599     │   │ ║
║  │ ⚙️  Provisioning    │  │  │ [Aprovar] [Rejeitar] [Diff] │   │ ║
║  │ 👥 Clientes        │  │  └─────────────────────────────┘   │ ║
║  │ 🌐 Domínios        │  │                                     │ ║
║  │ 🎫 Chamados        │  │  Catálogo publicado               │ ║
║  │ 🔐 RBAC staff      │  │  Starter · Business · Enterprise   │ ║
║  │ 📈 Ops Console →   │  │  [+ Novo bundle] [Editar preços]  │ ║
║  └────────────────────┘  └─────────────────────────────────────┘ ║
╚══════════════════════════════════════════════════════════════════╝
```

---

## 5. Integrações invisíveis (backend)

```
Admin Ligbox SPA (console.ligbox.com.br/comercial + /ops)
        │
        ├── Desk API /api/v1/ligbox-admin/*     → RBAC, audit, orquestração
        ├── FOSS API (proxy)                    → produtos, preços, faturas
        ├── Gateway API (proxy)                 → boleto/PIX config
        ├── OpenPanel API (proxy)               → provision jobs
        ├── Wizard API (proxy)                  → domínios, health VM112
        ├── Nextcloud admin API (proxy VM116)   → plataforma Files
        └── Spec 019 Console API                → chamados, ops
```

**FOSSBilling / OpenPanel / Nextcloud admin nativos:** zero exposição ao Roger para tarefas do dia-a-dia. Só APIs.

---

## 6. RBAC (Spec 027)

| Role | Preços | Gateway | Provisioning | Impersonate | Ops |
|------|--------|---------|--------------|-------------|-----|
| `ligbox_owner` (Roger) | aprovar | sim | sim | sim | sim |
| `ligbox_commercial` | propor | read | read | não | não |
| `ligbox_ops` | read | read | sim | sim (audit) | sim |
| `ligbox_support` | read | read | read | limitado | tickets |

---

## 7. Relação com outros documentos

| Documento | Nível |
|-----------|-------|
| **Este ficheiro** | Nível 0 — Admin Ligbox sistema |
| [domain-manager-console-ui.md](./domain-manager-console-ui.md) | Nível 1 — Gerente domínio |
| [user-self-service-ui.md](./user-self-service-ui.md) | Nível 2 — Utilizador email |
| [spec.md](./spec.md) §4 | Arquitectura backend |
| Spec **019** | Ops Console (secção dentro ou link Admin Ligbox) |

---

## 8. Fases de implementação

| Fase | Entrega |
|------|---------|
| **C0** | Wireframe + RBAC roles «preços» |
| **C1** | Fila aprovação preços → publicar FOSS |
| **C2** | Dashboard clientes + domínios + gateway status |
| **C3** | Provisioning monitor + impersonate gerente |
| **C4** | Unificar navegação com Ops Console Spec 019 |

**Depende de:** Fase 0 Spec 035 (produtos FOSS rascunho) para alimentar fila de preços.

---

## 9. Próximo passo

1. ~~Roger confirma URL~~ → **`console.ligbox.com.br`** ✅
2. Implementar **UX-A** gerente `/admin` primeiro (ligbox-console-shell §7)
3. Depois **UX-B** `/comercial` + **UX-C** `/ops`
