Ana içeriğe atla
Uygulamamızın iki özel nesneye ihtiyacı var: belge şablonları (ne yazılacağını belirten) ve belgeler (oluşturulan sonuç). Bunları tanımlayalım. CLI ile her varlık dosyasını iskelet olarak oluşturun — sizin için geçerli bir UUID ve doğru klasörü oluşturur:
Aşağıda tamamlanmış dosyaları gösteriyoruz.
Her *_UNIVERSAL_IDENTIFIER sabiti src/constants/universal-identifiers.ts içinde bulunur ve kullanıldığı yerde içe aktarılır. Aşağıdaki kod parçacıkları kısalık için bu içe aktarmaları atlar — kendi dosyalarınızda bunları eklemeyi unutmayın.

Şablon nesnesi

Bir şablonun bir name alanı, {{placeholders}} içeren bir body alanı ve bunun bir Person mı yoksa bir Company için mi yazıldığını belirten bir target alanı vardır. body bir RICH_TEXT alanıdır, bu nedenle Twenty ona tam özellikli bir zengin metin düzenleyicisi verir.
SELECT seçenek değerleri UPPER_CASE (PERSON, person değil) olmalıdır ve defaultValue fazladan tırnak içine alınır: `'PERSON'`. label, kullanıcıların gördüğü şeydir.

Belge nesnesi

Oluşturulan belge, işlenmiş content ve bir status saklar. Bunu yine aynı şekilde tanımlayın; status için DRAFT / GENERATED seçenekli bir select alanı kullanın. Tam dosya: document.object.ts.

Bir ilişkiyle bunları birbirine bağlama

Her belge, geldiği şablonu işaret etmelidir. İlişkiler çift yönlüdür — her iki tarafı da tanımlarsınız ve her birini kendi alan dosyasında belirtirsiniz.
Diğer taraf (template-documents-relation.field.ts), ters yönde işaret eden ve adı documents olan bir RelationType.ONE_TO_MANY alanıdır. Tam desen için Relations bölümüne bakın.

Bunu Twenty’de görün

yarn twenty dev çalışırken Settings → Data model bölümünü açın. Her iki nesne de uygulamanızla etiketlenmiş olarak görünür.
Veri modeli ayarları, Documents ve Document templates nesnelerini gösteriyor

Her iki özel nesne, Document Generator uygulamasına aittir.

Test etmek için bir şablon oluşturun — adını Sales proposal koyun, Target alanını Person olarak ayarlayın ve birkaç yer tutucu içeren bir gövde yapıştırın:
Yer tutucu gövdesine sahip bir Sales proposal şablon kaydı

Bir şablon kaydı. Gövde, bir belge oluşturulana kadar yer tutucularını korur.

Bu adımdan sonra: bir ilişkiyle birbirine bağlı documentTemplate ve document nesnelerine ve bunlardan belge oluşturmak için bir şablona sahipsiniz. Sırada, onu dolduran mantık var.

Sıradaki: belgeleri oluşturma →

Şablonu dolduran mantık fonksiyonunu yazın.