# Valia × RD Station — MVP Sandbox Ambiente **isolado** para validar identity resolution (CPF + FSS) sem impactar a integração em produção (webhook RD → Intranet). ## Regras de isolamento 1. Todo contato criado pelo MVP recebe a tag `smoke-test` 2. O MVP **não** altera contatos sem essa tag 3. Emails de teste usam o domínio `@smoke.valia-m2br.test` 4. **Não** modifica arquivos em `_projetos/intranet-m2br/` ## Pré-requisitos ```bash pip3 install requests ``` Credenciais: lidas em modo somente leitura de `_projetos/intranet-m2br/.env` (`RDSTATION_VALIA_*`). O runner renova o token OAuth automaticamente quando possível. ## Uso ```bash cd clientes/valia # Simular todos os cenários (sem API) python3 -m mvp.runner --dry-run # Executar contra API real python3 -m mvp.runner --run # Listar contatos smoke-test python3 -m mvp.cleanup --dry-run # Remover contatos smoke-test (usa manifest_latest.json do ultimo --run) python3 -m mvp.cleanup --confirm ``` O cleanup preferencialmente usa `mvp/reports/manifest_latest.json` gerado pelo runner, evitando varrer toda a base de leads (a listagem paginada pode retornar erro 500 em contas grandes). Relatórios em `mvp/reports/run_YYYYMMDD_HHMMSS.json`. ## Cenários (fixtures) | ID | Arquivo | O que valida | |----|---------|--------------| | A | `fixtures/cenario_a.json` | Mesmo CPF, emails diferentes → email canônico mais recente + `cf_email_alternativo` | | B | `fixtures/cenario_b.json` | Plano do filho com email do pai → alias `{cpf}@smoke.valia-m2br.test` | | C | `fixtures/cenario_c.json` | Mesmo email, dois FSS → um contato, dois eventos `admissao_plano` | | E | `fixtures/cenario_e.json` | Admissão dia 3 → `cf_dia_ciclo_mensal` / tag ciclo 1–5 (**ST-07**) | | F | `fixtures/cenario_f.json` | SOLTEIRO→CASADO + dependente alias (**ST-08**) | Cenário A também dispara `mudanca_estado_civil` após os planos. ### Smoke tests E/F (pós `--run`) | ID | Valida | |----|--------| | ST-07 | `cf_data_de_admissao` + derivado dia ciclo (campo ou bio) + tag `ciclo-admissao:01-05` | | ST-08 | `mudanca_estado_civil` + perfil CASADO + contato dependente com alias (cenário B) | ## Campos RD usados (conta Valia) - `cf_cpf`, `cf_fss`, `cf_plano`, `cf_data_de_admissao`, `cf_estado_civil` - Estado civil: valores em MAIÚSCULAS (`CASADO`, `SOLTEIRO`, etc.) ## Validação manual (painel RD) Após `--run`: 1. Contatos → filtrar tag `smoke-test` 2. Segmentação: `cf_fss = FSS-SMOKE-A-002` 3. Automação teste: gatilho conversão `admissao_plano` → email interno M2BR ## MVP visual (workshop) **Produção:** https://mockupvalia.m2br.com/ ```bash ./scripts/deploy-mockupvalia.sh # raiz do repo M2BR open visual/index.html # local ``` - Hub: `visual/index.html` · Cenários A–F · `fluxos-automacao.html` · `matriz-colisoes.html` · `roadmap.html` - Plano: [visual/PLANO-MVP-VISUAL-DUPLICADOS.md](visual/PLANO-MVP-VISUAL-DUPLICADOS.md) ## Documentação relacionada - [valia-rd-station-consolidado-2026-06-01.md](../valia-rd-station-consolidado-2026-06-01.md) — visão única (treinamento + técnico) - [analise-rdstation-identidade-contatos-2026-06-01.md](../analise-rdstation-identidade-contatos-2026-06-01.md)