src/objects/post-card.object.ts
Hlavní body
- Hodnota
universalIdentifiermusí být jedinečná a stabilní napříč nasazeními. - Každé pole vyžaduje
name,type,labela svůj vlastní stabilníuniversalIdentifier. - Pole
fieldsje volitelné — objekty můžete definovat i bez vlastních polí. - Pole definovaná zde inline nepotřebují
objectUniversalIdentifier— dědí se z nadřazeného objektu. PomocídefineField()můžete přidávat pole k objektům, které nevlastníte. - Nové objekty můžete vygenerovat pomocí
yarn twenty dev:add object, který vás provede pojmenováním, poli a vztahy. Viz Architektura → Scaffolding entit.
Základní pole jsou přidána automaticky. Když definujete vlastní objekt, Twenty pro vás vytvoří standardní pole jako
id, name, createdAt, updatedAt, createdBy, updatedBy a deletedAt. Nemusíte je uvádět v poli fields — pouze svá vlastní pole. Výchozí pole můžete přepsat tak, že deklarujete pole se stejným názvem, ale jen zřídka je to dobrý nápad.Typy polí
Úplná sada hodnotFieldType, exportovaných z twenty-sdk/define:
Složené typy ukládají více podpolí (např.
FULL_NAME = křestní jméno + příjmení; CURRENCY = amountMicros + currencyCode). SELECT a MULTI_SELECT vyžadují pole options, jak je ukázáno v příkladu výše.
Výchozí hodnoty
Výchozí textové hodnoty musí být uzavřené v jednoduchých uvozovkách uvnitř řetězce —defaultValue: "'Draft'", ne defaultValue: "Draft". Proto pole status výše používá `'${PostCardStatus.DRAFT}'`.
Neuzavřené (necitované) řetězce jsou vyhrazené pro vypočítané výchozí hodnoty, které se vyhodnocují při vytvoření záznamu:
'uuid'— generuje UUID (pro poleUUID)'now'— aktuální časové razítko (pro poleDATE_TIME)
{ source: "'MANUAL'" } u pole ACTOR) a pro hodnoty SELECT/MULTI_SELECT. Doslovná řetězcová výchozí hodnota ponechaná bez uvozovek vyvolá při sestavení aplikace varování.
Možnost hodnoty NULL
isNullable určuje, zda pole přijímá NULL. Výchozí hodnota je true — pro volitelná pole ji můžete vynechat. Nastavte isNullable: false, aby bylo pole vyžadováno na úrovni databáze.
Změny isNullable se použijí při každé synchronizaci, včetně těch, které aktualizují existující pole — takže můžete změnit, zda pole přijímá hodnotu NULL, úpravou manifestu a opětovnou synchronizací.
Změna existujícího pole tak, aby neumožňovalo hodnotu NULL, vyžaduje výchozí hodnotu. Když změníte pole na
isNullable: false, musíte také zadat nenulovou hodnotu defaultValue. Výchozí hodnota doplní všechny existující řádky s hodnotou NULL ještě předtím, než se uplatní omezení NOT NULL; bez ní synchronizace selže s chybou Default value cannot be null for non-nullable fields. Relační pole a pole typu TS_VECTOR vždy umožňují hodnotu NULL, takže na ně isNullable nemá žádný efekt.Co dál
- Propojte tento objekt s ostatními — vzor obousměrných vztahů najdete v části Relations.
- Přidávejte pole k objektům z jiných aplikací — viz Extending Objects pro
defineField(). - Zobrazte tento objekt v uživatelském rozhraní — viz Views a Navigation Menu Items pro umístění do postranního panelu.