Como as relações funcionam
Toda relação requer dois campos que façam referência um ao outro:- O lado MANY_TO_ONE — fica no objeto que contém a chave estrangeira.
- O lado ONE_TO_MANY — fica no objeto que possui a coleção.
FieldType.RELATION e fazem referência cruzada um ao outro via relationTargetFieldMetadataUniversalIdentifier.
Exemplo: Um cartão postal tem muitos destinatários
UmPostCard pode ser enviado para muitos registros PostCardRecipient. Cada destinatário pertence a exatamente um cartão postal.
Etapa 1: Defina o lado ONE_TO_MANY em PostCard (o lado “um”):
src/fields/post-card-recipients-on-post-card.field.ts
src/fields/post-card-on-post-card-recipient.field.ts
Importações circulares: ambos os campos de relação fazem referência ao
universalIdentifier um do outro. Para evitar problemas de importação circular, exporte os IDs dos seus campos como constantes nomeadas de cada arquivo e importe-os no outro. O sistema de build resolve isso em tempo de compilação.Relacionando a objetos padrão
Para criar uma relação com um objeto integrado do Twenty (Person, Company, etc.), useSTANDARD_OBJECT_UNIVERSAL_IDENTIFIERS:
src/fields/person-on-self-hosting-user.field.ts
Propriedades de campos de relação
Campos de relação inline
Você também pode declarar uma relação diretamente dentro dedefineObject. Quando estiver inline, omita objectUniversalIdentifier — ele é herdado do objeto pai: