ExportResource representa uma entrada do catálogo de exportação. Ele define qual recurso pode ser exportado, quais colunas podem sair, quais filtros podem ser aplicados, quais formatos são aceitos e qual permission autoriza a operação.
Campos
| Campo | Tipo | Descrição |
|---|---|---|
exportResourceId | UUID | Identificador único |
resource | String | Chave estável do recurso exportável, como order, ticket, vehicle ou trip |
label | String | Nome exibido para o usuário no fluxo de exportação |
description | String? | Descrição curta do recurso exportável |
permission | String | Permission necessária para exportar o recurso |
formats | DataTransferFileFormat[] | Formatos disponíveis para geração |
defaultFormat | DataTransferFileFormat | Formato pré-selecionado |
defaultColumns | String[] | Colunas selecionadas por padrão |
columns | ExportColumn[] | Colunas permitidas para exportação |
filters | ExportFilter[] | Filtros permitidos para consulta |
maxRows | Int? | Limite máximo de linhas por exportação |
status | DataTransferResourceStatus | Status do catálogo |
createdAt | DateTime | Data de criação |
updatedAt | DateTime | Data da última atualização |
deletedAt | DateTime? | Data de remoção lógica |
ExportColumn
| Campo | Tipo | Descrição |
|---|---|---|
field | String | Chave da coluna no arquivo |
label | String | Nome exibido para a coluna |
type | ExportValueType | Tipo do valor usado para formatação |
values | String[]? | Valores possíveis quando type for ENUM |
sensitive | Boolean? | Indica coluna sensível que pode exigir permission adicional |
ExportFilter
| Campo | Tipo | Descrição |
|---|---|---|
field | String | Campo filtrável |
label | String | Nome exibido para o filtro |
type | ExportValueType | Tipo do valor esperado no filtro |
operators | ExportFilterOperator[] | Operadores permitidos |
values | String[]? | Valores possíveis quando type for ENUM |
required | Boolean? | Indica se o filtro precisa ser informado |
Relacionamentos
- É referenciado por ExportScheduled via
resource. - É referenciado por ExportJob via
resource. - Não precisa de FK direta com os recursos exportados. O backend resolve o repositório de leitura pelo mesmo
resource.
Regras de Negócio
- Deve existir apenas um catálogo ativo por
resource. defaultColumnsdeve ser subconjunto decolumns.defaultFormatdeve existir dentro deformats.- Toda coluna solicitada em ExportJob deve existir em
columns. - Todo filtro solicitado em ExportJob deve existir em
filterse respeitar os operadores permitidos. - Colunas sensíveis devem ser protegidas por permission específica ou regra explícita no backend.
- Remover um recurso do catálogo deve ser remoção lógica por
deletedAt.
Enums
DataTransferFileFormat
| Valor | Descrição |
|---|---|
CSV | Arquivo CSV |
XLSX | Planilha Excel |
ExportValueType
| Valor | Descrição |
|---|---|
STRING | Texto |
NUMBER | Número decimal ou inteiro |
DATE | Data |
BOOLEAN | Valor booleano |
ENUM | Valor dentro de uma lista fechada |
ExportFilterOperator
| Valor | Descrição |
|---|---|
EQ | Igual a um valor |
IN | Dentro de uma lista de valores |
GTE | Maior ou igual |
LTE | Menor ou igual |
BETWEEN | Dentro de intervalo inclusivo |
CONTAINS | Contém texto |
DataTransferResourceStatus
| Valor | Descrição |
|---|---|
ACTIVE | Recurso disponível para novos jobs |
INACTIVE | Recurso indisponível para novos jobs, preservando histórico |