# 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.

## Como pensar o recurso

* use **Tabela De/Para** como conceito público principal;
* use **tabela de conversão** quando o caso for um mapeamento simples de `fromValue` para `toValue`;
* 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.

## Relação com tabelas de conversão

Nem toda Tabela De/Para precisa ser um simples de/para, mas toda tabela de conversão do produto pode ser entendida como um caso de uso de Tabela De/Para.

Se o seu cenário é apenas traduzir valores entre origem e destino, consulte também [Tabelas de conversão](https://docs.tunnelhub.io/produto/conversion-tables).
