ligbox-ops-platform/specs/043-desk-client-activation-sync/spec.md
Ligbox Spec Hub 2d2b74fad8 docs(spec-043): mapa activação cliente e ligações cruzadas
Documenta Wizard→Desk→FOSS→OpenPanel→Odoo com contratos, rollback e
registo SPEC-REGISTRY antes da implementação das fases de activação.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-01 15:06:19 +00:00

104 lines
5.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Spec 043 — Sincronização Cliente: Wizard → Desk → FOSS → OpenPanel → Odoo
**Criado:** 2026-07-01
**Solicitado por:** Roger
**Status:** 🚧 **Fase 1 em curso** — preview UI + API; Fases 26 pendentes
**Prioridade:** P0 (orquestração comercial Ligbox)
**Sistemas:** VM112 Wizard · VM122 Desk · VM123 FOSS/Odoo/OpenPanel
---
## Resumo
Esta spec **unifica e documenta** o mapeamento de dados desde o card **«Dados da empresa e cobrança»** no wizard (VM112) até aos três painéis financeiros/hosting na VM123:
1. **FOSSBilling** — cliente + pedido + activação hosting (primeiro destino API)
2. **OpenPanel** — tipo de contrato / plano / domínio hub (via bridge ou módulo FOSS)
3. **Odoo 16** — empresa (`res.partner`) e fluxo financeiro
O Desk (VM122) é o **orquestrador**: recebe `company.validated`, persiste `billing_accounts`, e expõe acção staff **«Activar conta»** que dispara a sequência documentada.
**Documento mestre de campos:** [contracts/activation-field-mapping.md](./contracts/activation-field-mapping.md)
---
## Specs relacionadas (leitura obrigatória)
| Spec | Relação |
|------|---------|
| [023](../023-billing-recurrence-desk-visibility/spec.md) | Card empresa, `company.validated`, `billing_accounts`, estados |
| [024](../024-openpanel-fossbilling/spec.md) | Stack VM123, FOSS+Odoo+OpenPanel |
| [024 PROVISIONING_CLIENT_CARD](../024-openpanel-fossbilling/PROVISIONING_CLIENT_CARD.md) | Campos card → FOSS → OP (site CMS) |
| [028](../028-openpanel-ce-ligbox-reengineering/spec.md) | Bridge `:18087`, re-engenharia CE |
| [028 foss-bridge-api](../028-openpanel-ce-ligbox-reengineering/contracts/foss-bridge-api.md) | Contrato API bridge |
| [035](../035-ligbox-mail-bundles-foss-openpanel/spec.md) | Bundles mail, `manager_name`, webhook `order-activated` |
| [001](../001-webhook-vm112-integration/spec.md) | Webhooks VM112 → Desk |
| [004](../004-onboard-funnel-events/spec.md) | Funil onboarding |
| [027](../027-desk-rbac-function-matrix/spec.md) | Quem pode activar conta |
| [039](../039-ligbox-ops-authorization-catalog/spec.md) | `vm123_foss.*`, `vm123_openpanel.*`, Odoo |
| [040](../040-desk-design-system-v013/spec.md) | UI staff Access Control Hub |
---
## Arquitectura
```
┌─────────────────────────────────────────────────────────────────────────┐
│ VM112 — Wizard / Domain Admin (onboard.ligbox.com.br) │
│ Card «Dados da empresa e cobrança» + conta admin@{domínio} │
└───────────────────────────────┬─────────────────────────────────────────┘
│ webhook company.validated (+ account.created)
┌─────────────────────────────────────────────────────────────────────────┐
│ VM122 — Ligbox Ops Desk │
│ billing_accounts · ticket [billing-validation] · UI «Activar conta» │
└───────────────────────────────┬─────────────────────────────────────────┘
│ sequência staff (Spec 043)
┌─────────────────────┼─────────────────────┐
▼ ▼ ▼
FOSSBilling :8092 Bridge :18087 Odoo :8069
(cliente+order) (OpenPanel user) (res.partner)
│ │ │
└─────────────────────┴─────────────────────┘
Wizard provision mail-bundle (VM112 Carbonio)
```
---
## Entregáveis desta spec
| Artefacto | Path |
|-----------|------|
| **Mapa de campos** | [contracts/activation-field-mapping.md](./contracts/activation-field-mapping.md) |
| **API Desk (planeada)** | [contracts/desk-activate-account-api.md](./contracts/desk-activate-account-api.md) |
| **Tasks implementação** | [tasks.md](./tasks.md) |
---
## Código de referência (VM122)
| Módulo | Path |
|--------|------|
| Billing store | `projects/ops-desk/api/app/billing_store.py` ou `legacy-app/billing_store.py` |
| Webhook ingress | `projects/ops-desk/api/app/main.py` (`company.validated`) |
| FOSS client | `projects/ops-desk/api/app/vm123/foss_client.py` |
| Odoo client | `projects/ops-desk/api/app/vm123/odoo_client.py` |
| OpenPanel client | `projects/ops-desk/api/app/vm123/openpanel_client.py` |
| UI ficha cliente | `projects/ops-desk/frontend/assets/billing-ui.js` |
---
## Regras de negócio (Roger)
1. Wizard **não cobra** no card empresa — só recolhe e valida ([023](../023-billing-recurrence-desk-visibility/spec.md)).
2. **FOSS recebe primeiro** os dados do cliente (create client + order).
3. **OpenPanel** reflecte o **tipo de serviço** (`plan_name` + metadata mail).
4. **Odoo** recebe a **empresa** para gestão financeira (`res.partner`).
5. Um **gerente** por domínio: `admin@{domínio}` + `manager_name` / `manager_email`.
6. Staff activa após revisão OPS — não automático sem RBAC ([027](../027-desk-rbac-function-matrix/spec.md)).
---
*Roger · Spec 043 · documentação viva — actualizar quando campos wizard ou APIs VM123 mudarem*