src/objects/post-card.object.ts
Pontos-chave
- O
universalIdentifierdeve ser exclusivo e estável entre implantações. - Cada campo requer
name,type,labele seu própriouniversalIdentifierestável. - O array
fieldsé opcional — você pode definir objetos sem campos personalizados. - Campos inline definidos aqui não precisam de
objectUniversalIdentifier— ele é herdado do objeto pai. UsedefineField()para adicionar campos a objetos que não pertencem a você. - Você pode criar novos objetos com
yarn twenty dev:add object, que orienta você na definição de nomes, campos e relacionamentos. Veja Arquitetura → Scaffolding de entidades.
Os campos base são adicionados automaticamente. Quando você define um objeto personalizado, o Twenty cria campos padrão como
id, name, createdAt, updatedAt, createdBy, updatedBy e deletedAt para você. Você não precisa declará‑los no seu array fields — apenas seus campos personalizados. Você pode substituir um campo padrão declarando um com o mesmo nome, mas isso raramente é uma boa ideia.Tipos de campo
O conjunto completo de valores deFieldType, exportados de twenty-sdk/define:
Tipos compostos armazenam vários subcampos (por exemplo,
FULL_NAME = primeiro + último nome; CURRENCY = amountMicros + currencyCode). SELECT e MULTI_SELECT exigem um array options, como no exemplo acima.
Valores padrão
Valores padrão de strings literais devem ser colocados entre aspas simples dentro da string —defaultValue: "'Draft'", não defaultValue: "Draft". É por isso que o campo status acima usa `'${PostCardStatus.DRAFT}'`.
Strings sem aspas são reservadas para valores padrão computados, avaliados quando um registro é criado:
'uuid'— gera um UUID (para camposUUID)'now'— o carimbo de data/hora atual (para camposDATE_TIME)
{ source: "'MANUAL'" } em um campo ACTOR) e a valores de SELECT/MULTI_SELECT. Uma string literal padrão deixada sem aspas gera um aviso quando seu app é compilado.
Nulabilidade
isNullable controla se um campo aceita NULL. O valor padrão é true — omita-o para campos opcionais. Defina isNullable: false para tornar um campo obrigatório no nível do banco de dados.
Alterações em isNullable são aplicadas em todas as sincronizações, incluindo sincronizações que atualizam um campo existente — assim, você pode alternar a nulabilidade de um campo editando o manifesto e sincronizando novamente.
Tornar um campo existente obrigatório requer um valor padrão. Quando você altera um campo para
isNullable: false, também deve fornecer um defaultValue não nulo. O valor padrão preenche retroativamente quaisquer linhas NULL existentes antes de a restrição NOT NULL ser aplicada; sem ele a sincronização falha com Default value cannot be null for non-nullable fields. Campos de relação e campos TS_VECTOR sempre aceitam nulos, portanto isNullable não tem efeito sobre eles.O que vem depois
- Conecte este objeto a outros — veja Relações para o padrão de relação bidirecional.
- Adicione campos a objetos de outros apps — veja Extensão de objetos para
defineField(). - Exiba este objeto na interface — veja Views e Itens do menu de navegação para colocá‑lo na barra lateral.