> For the complete documentation index, see [llms.txt](https://docs.tunnelhub.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.tunnelhub.io/produto/data-stores.md).

# Tabelas De/Para

Tabelas De/Para são recursos configuráveis do produto e reutilizáveis por automações, APIs e fluxos operacionais.

Na prática, elas substituem o uso de regras fixas em código quando o time precisa manter mapeamentos, códigos externos, listas de referência ou traduções de valores por ambiente.

O modelo mais comum é um mapeamento simples de valor de origem para valor de destino, usando itens com `fromValue` e `toValue`.

## Como pensar o recurso

* use **Tabela De/Para** como conceito público principal;
* trate o conteúdo como configuração de negócio versionada no produto, não como área improvisada para testes.

## Onde aparece no produto

O recurso existe como área própria no portal e é associado a ambientes e pacotes.

Normalmente, cada Tabela De/Para tem:

* nome amigável;
* `externalCode`, usado como identificador técnico;
* descrição funcional;
* pacote relacionado;
* lista de itens.

## Estrutura dos itens

O modelo mais comum usa duas colunas:

* `fromValue` para o valor de origem;
* `toValue` para o valor de destino.

Esse formato cobre muitos cenários de integração, como:

* status internos para status externos;
* códigos de filial ou centro de custo;
* categorias de produto;
* IDs legados para IDs do sistema alvo.

## Operações disponíveis

No fluxo atual do produto, você pode:

* criar e editar Tabelas De/Para;
* gerenciar itens individualmente;
* remover itens em lote;
* importar carga completa por CSV;
* baixar o conteúdo para revisão externa.

Esse modelo ajuda quando o negócio precisa atualizar um mapa sem esperar deploy de código.

## Uso em automações

No runtime do SDK, o uso mais comum é consultar uma Tabela De/Para por código e aplicar a tradução durante o processamento.

Exemplo conceitual:

```ts
const dataStore = new DataStore(event);
const conversionTable = new ConversionTable(dataStore);
const mappedValue = await conversionTable.getValueFromConversionTable(
  'sales-channel-map',
  order.channel,
  undefined,
  true,
);
```

O ponto importante é que a regra fica no produto, e não espalhada em `if/else` no projeto.

## Tabelas De/Para e usuários limitados

Tabelas De/Para também participam do modelo de visibilidade granular do produto.

Você pode liberar acesso seletivo para usuários limitados quando eles precisam:

* revisar valores de referência;
* operar um conjunto específico de mapeamentos;
* acompanhar apenas uma parte da configuração compartilhada com parceiros.

## Boas práticas

* escolha `externalCode` estável e orientado ao domínio;
* mantenha descrição clara sobre dono funcional e finalidade;
* prefira uma Tabela De/Para por contexto de negócio, em vez de agrupar regras sem relação;
* revise itens obsoletos periodicamente;
* use importação CSV com cuidado, porque carga completa normalmente substitui o conjunto existente.
