src/objects/post-card.object.ts
Önemli noktalar
universalIdentifierdağıtımlar arasında benzersiz ve kararlı olmalıdır.- Her alan bir
name,type,labelve kendi kararlıuniversalIdentifierdeğerini gerektirir. fieldsdizisi isteğe bağlıdır — özel alanlar olmadan da nesneler tanımlayabilirsiniz.openRecordIn, bu nesnenin kayıtlarının tıklandığında nerede açılacağını ayarlar:ObjectOpenRecordIn.USER_CHOICE(varsayılan; her çalışma alanı üyesinin Ayarlar → Deneyim bölümündeki kendi tercihine uyar),ObjectOpenRecordIn.SIDE_PANELveyaObjectOpenRecordIn.RECORD_PAGE. Kayıtların kullanılabilir olması için tam sayfa gerektirdiği durumlarda, iş akışları ve panolarda olduğu gibiRECORD_PAGEüzerinde sabitleyin; yalnızca hızlı bir panel olarak anlam ifade eden kayıtlar için ise, takvim etkinliklerinde olduğu gibiSIDE_PANELüzerinde sabitleyin.- Burada tanımlanan satır içi alanların bir
objectUniversalIdentifier’a ihtiyacı yoktur — üst nesneden devralınır. Sahibi olmadığınız nesnelere alan eklemek içindefineField()kullanın. yarn twenty dev:add objectkullanarak, adlandırma, alanlar ve ilişkiler konusunda sizi yönlendirerek yeni nesneler oluşturabilirsiniz. Mimari → Varlık iskeleti oluşturma bölümüne bakın.
Temel alanlar otomatik olarak eklenir. Özel bir nesne tanımladığınızda Twenty, sizin için
id, name, createdAt, updatedAt, createdBy, updatedBy ve deletedAt gibi standart alanlar oluşturur. Bunları fields dizinizde bildirmenize gerek yok — yalnızca özel alanlarınızı ekleyin. Aynı ada sahip bir alan bildirerek varsayılan bir alanı geçersiz kılabilirsiniz, ancak bu nadiren iyi bir fikirdir.Alan tipleri
twenty-sdk/define içinden dışa aktarılan, FieldType değerlerinin tam kümesi:
Bileşik tipler birden çok alt alan depolar (ör.
FULL_NAME = ad + soyad; CURRENCY = amountMicros + currencyCode). SELECT ve MULTI_SELECT, yukarıdaki örnekte olduğu gibi bir options dizisi gerektirir.
Varsayılan değerler
Sabit (literal) dize varsayılanları, dize içinde tek tırnak içine alınmış olmalıdır —defaultValue: "'Draft'", defaultValue: "Draft" değil. Bu nedenle yukarıdaki status alanı `'${PostCardStatus.DRAFT}'` kullanır.
Tırnak içine alınmamış dizeler, bir kayıt oluşturulduğunda değerlendirilen, hesaplanmış varsayılanlar için ayrılmıştır:
'uuid'— bir UUID üretir (UUIDalanları için)'now'— geçerli zaman damgası (DATE_TIMEalanları için)
ACTOR alanında { source: "'MANUAL'" }) ve SELECT/MULTI_SELECT değerleri için de geçerlidir. Tırnak içine alınmamış bir sabit string varsayılan, uygulamanız oluşturulurken bir uyarıya neden olur.
Boş değer atanabilirliği
isNullable, bir alanın NULL kabul edip etmediğini kontrol eder. Varsayılan değeri true’dur — isteğe bağlı alanlar için bunu belirtmeyin. Bir alanı veritabanı düzeyinde zorunlu yapmak için isNullable: false olarak ayarlayın.
isNullable değişiklikleri, mevcut bir alanı güncelleyenler de dahil olmak üzere her senkronizasyonda uygulanır — bu nedenle manifesti düzenleyip yeniden senkronize ederek bir alanın boş değer atanabilirliğini değiştirebilirsiniz.
Var olan bir alanı boş değer kabul etmeyecek (non-nullable) hale getirmek için bir varsayılan değer gereklidir. Bir alanı
isNullable: false olarak değiştirdiğinizde, ayrıca boş olmayan (non-null) bir defaultValue sağlamanız gerekir. Varsayılan değer, NOT NULL kısıtlaması uygulanmadan önce mevcut NULL satırlarını doldurur; bu olmadan senkronizasyon, Default value cannot be null for non-nullable fields hatasıyla başarısız olur. İlişki alanları (relation fields) ve TS_VECTOR alanları her zaman boş değere izin verir (nullable), bu yüzden isNullable bunlar üzerinde hiçbir etkiye sahip değildir.Sırada ne var
- Bu nesneyi diğerlerine bağlayın — çift yönlü ilişki modeli için İlişkiler bölümüne bakın.
- Diğer uygulamalardaki nesnelere alanlar ekleyin —
defineField()için Nesneleri Genişletme bölümüne bakın. - Bu nesneyi arayüzde görüntüle — kenar çubuğuna bir menü öğesi eklemek için Gezinme Menüsü Öğeleri bölümüne bakın; özel liste yapılandırmaları eklemek için Görünümler bölümüne bakın.