{
  "id": "helper-braziliandocumenthelper",
  "title": "Helper — BrazilianDocumentHelper",
  "description": "Formatação de CPF e CNPJ brasileiros a partir de valores normalizados.",
  "type": "technical-reference",
  "status": "implemented",
  "visibility": "public",
  "tags": [
    "sge/helpers",
    "sge/documentos",
    "sge/formatacao"
  ],
  "related": [
    "cast-cpfcast",
    "helper-digitshelper",
    "helper-funcoes-globais"
  ],
  "sourceRefs": [
    "https://github.com/sge-suite/sge/blob/master/app/Helpers/BrazilianDocumentHelper.php",
    "https://github.com/sge-suite/sge/blob/master/tests/Unit/Helpers/FormattingHelpersTest.php"
  ],
  "authors": [],
  "updated": null,
  "diagram": null,
  "body": "## Responsabilidade\n\nFormata CPF, CNPJ e valores cuja natureza depende da quantidade de dígitos. Não valida dígitos verificadores: validação de CPF na fronteira de persistência continua em [`CpfCast`](doc:cast-cpfcast) ou no validator apropriado.\n\n| Método | Comportamento |\n| --- | --- |\n| `formatCpf()` | Formata 11 dígitos como `000.000.000-00`; entrada inválida é preservada. |\n| `formatCnpj()` | Formata 14 dígitos como `00.000.000/0000-00`; entrada inválida é preservada. |\n| `formatCpfCnpj()` | Escolhe CPF/CNPJ pelo tamanho; entrada vazia vira `-`. |\n\n## Checklist\n\n- [x] Implementar CPF, CNPJ e escolha automática por tamanho.\n- [x] Reutilizar [DigitsHelper](doc:helper-digitshelper).\n- [x] Expor fachadas globais equivalentes.\n- [ ] Cobrir valores mascarados e tamanhos inválidos em testes unitários diretos.\n\n## Relacionamentos\n\n- [Helper — DigitsHelper](doc:helper-digitshelper)\n- [Funções globais](doc:helper-funcoes-globais)\n- [CpfCast](doc:cast-cpfcast)",
  "sections": [
    {
      "id": "responsabilidade",
      "level": 2,
      "title": "Responsabilidade",
      "text": "Formata CPF, CNPJ e valores cuja natureza depende da quantidade de dígitos. Não valida dígitos verificadores: validação de CPF na fronteira de persistência continua em [`CpfCast`](doc:cast-cpfcast) ou no validator apropriado.  | Método | Comportamento | | --- | --- | | `formatCpf()` | Formata 11 dígitos como `000.000.000-00`; entrada inválida é preservada. | | `formatCnpj()` | Formata 14 dígitos como `00.000.000/0000-00`; entrada inválida é preservada. | | `formatCpfCnpj()` | Escolhe CPF/CNPJ pelo tamanho; entrada vazia vira `-`. |",
      "line": 1
    },
    {
      "id": "checklist",
      "level": 2,
      "title": "Checklist",
      "text": "- [x] Implementar CPF, CNPJ e escolha automática por tamanho. - [x] Reutilizar [DigitsHelper](doc:helper-digitshelper). - [x] Expor fachadas globais equivalentes. - [ ] Cobrir valores mascarados e tamanhos inválidos em testes unitários diretos.",
      "line": 11
    },
    {
      "id": "relacionamentos",
      "level": 2,
      "title": "Relacionamentos",
      "text": "- [Helper — DigitsHelper](doc:helper-digitshelper) - [Funções globais](doc:helper-funcoes-globais) - [CpfCast](doc:cast-cpfcast)",
      "line": 18
    }
  ],
  "sourcePath": "content/helper-braziliandocumenthelper.md",
  "visuals": [],
  "apiVersion": 1
}
