Skip to main content

Atributo (Attribute)

O Attribute representa a menor unidade configurável de informação do sistema.
Ele define o que pode ser preenchido, como deve ser validado, onde se aplica e como se comporta dentro de formulários, regras de negócio e integrações.

Todo atributo pertence a um Grupo de Atributos e pode ser reutilizado em múltiplos contextos de forma controlada.


Identidade do Modelo

Configurações estruturais que definem o comportamento do objeto.

RecursoIdentificadorFinalidade
MóduloAtributoLocalização funcional no sistema
GrupoAttributeAgrupamento técnico do schema
Íconemdi-alpha-r-circleIdentidade visual
PrincipalSimDisponível como ponto de entrada no menu

Contrato do Modelo

Este schema opera sob as seguintes garantias:

  • Todo Attribute pertence a uma empresa
  • O campo code é imutável e único
  • A description é o identificador humano
  • Atributos podem ser obrigatórios ou opcionais
  • O comportamento de edição é controlado por configuração

Essas regras são aplicadas automaticamente pelo sistema.


Interface & Comportamento (UI)

Como o sistema expõe este objeto ao usuário final.

Inteligência de Busca

Campos estratégicos são indexados para navegação rápida:

  • Campos indexados: description, code
  • Descriptor: description

Em qualquer listagem, vínculo ou referência, o valor exibido será sempre a Descrição.


Fluxos de Navegação

AçãoRota
Listagem/attribute
Cadastro/attribute/cadastrar
Visualização/attribute/{id}
Edição/attribute/{id}

Regras do Formulário

Fluxo de Preenchimento

A ordem, validações e valores padrão são aplicados automaticamente pelo motor de formulários.

1. Código (code)

  • Auto-gerado
  • Único
  • Não editável
  • Obrigatório

2. Descrição (description)

  • Texto (máx. 100 caracteres)
  • Obrigatório

3. Empresa (companySiteId)

  • Relacionamento com CompanySite
  • Somente leitura
  • Definido pelo contexto

4. Unidade de Medida (unit_measure)

  • Relacionamento com DwUnitMeasure
  • Obrigatório

5. Template (template_attribute)

  • Relacionamento com TemplateAttribute
  • Obrigatório

5. Grupo de Atributo (attribute_group)

  • Relacionamento com AttributeGroup
  • Opcional

6. Editável (editable)

  • Controla se o valor pode ser alterado
  • Valor padrão: true

7. Obrigatório (required)

  • Define se o atributo deve ser preenchido
  • Valor padrão: false

8. Ativo (active)

  • Controla disponibilidade do atributo
  • Valor padrão: true

9. Classe (classe)

  • Relacionamento com Classe
  • Obrigatório

10. Propriedades Adicionais (properties)

  • Lista vinculada ao schema Properties
  • Obrigatório

Conectividade e Regras Especiais

CampoRelation SchemaValor DefaultValor Fixo
companySiteIdCompanySiteContexto atual-
attribute_groupAttributeGroup--
unit_measureDwUnitMeasure--
template_attributeTemplateAttribute--
classeClasse--
propertiesProperties--
sync--false

Relacionamentos garantem integridade referencial e consistência entre módulos.


Segurança e Integridade

Multitenancy (Múltiplas Empresas)

Com multi_company: true, o sistema aplica:

  • Isolamento total por empresa
  • Filtro automático em todas as consultas
  • Bloqueio de acesso cruzado, inclusive via API

Proteção de Integridade

  • Exclusão bloqueada por relacionamento
  • Regra: preventDeleteDueToRelations

Um AttributeGroup não pode ser removido caso esteja vinculado a qualquer entidade do sistema.

Sincronização de Dados

  • dataSync: marca temporal da última sincronização
  • sync: flag de controle interno
  • Valor fixo inicial: false

Exemplo de Registro

{
"code": "ATR-001",
"description": "Peso Máximo",
"active": true,
"editable": true,
"required": false,
"unit_measure": "64fa9c2e8b1c2a001f3e9a77",
"template_attribute": "64fa9c2e8b1c2a001f3e9a77",
"attribute_group": "64fa9c2e8b1c2a001f3e9a77",
"classe": "64fa9c2e8b1c2a001f3e9a77",
"companySiteId": "64fa9c2e8b1c2a001f3e9a77"
}