# Documents
Kurum içerisinde kullanılan tüm belge ve evrak tanımlarını yönetir.
## Hedefler
* Kurum içinde kullanılan tüm kıymetli evrak ve müşteriden alınan belge tanımları için tek bir altyapı oluşturmak.
* Belge tanımlarında şema desteği sunmak.
* Hem anlık talep (*SMS veya Push*) hem de uygulamalara girişte (*on-logon*) alınacak şekilde iş emri oluşturabilmesi.
## Belge Tanımları
Kulanıcılar tarafından onaylanacak tüm belge tiplerinin sistem üzerinde tanımlıdır.
* **name** Belge tipidir. Version ile birlikte tekildir.
* **title** belgenin kullanıcı arabirimlerinde gösterilecek adıdır.
* **version** belgenin versiyonu [semantic versioning](https://semver.org) olarak kayıt edilir. Sorgulamalarda tilde ve range desteği sağlar.
* **min-version** belgenin minimum versiyonunu belirler. Kişi özelinde müşterinin var olan sözleşmeleri incelenerek var olan sözleşmeler için yeniden sözleşme almamak için uygulanan kontrol verisidir.
* **template** belge dönüşümü yapılacak içeriği taşır. Template engine tarafından tanımlı belge adı kullanılır.
* **allow-to-sign** Belgenin fiziksel olarak imzalanıp imzalanamacağı bilgisidir.
```json
{
"id": "2c66921c-02f4-42fc-9b19-378ee0f4decd",
"status": "A",
"name": "retail-digital-bhs",
"title": "Bireysel Hizmet Sözleşmesi",
"version": "8.0.0",
"min-version": ">=6.x.x",
"template": "retail-digital-bhs-8-0-0",
"allow-to-sign": false
}
```
### GET : /documents/document-type
Servisi ile sorgulanan tüm belge kayıtlarına erişilir.
#### Query Parameter
```json
"page-index": 1
"page-size": 10
"name": "retail-digital%"
"version": "latest"
"id":"15802b18-cc2f-4b79-808f-e35b6023782c"
"reference.name":"loan-account"
"reference.id":"TR330006100519786457841326"
"status":"A"
"active-process.id":""
"active-process.name":""
```
**name** parametresinde SQL Like benzeri parçalı arama yapılabilir.
**version** parametresi ile range, comparison (*>5.0.0 gibi*) verilerek arama yapilabilir.
### POST : /contract-approval/document-type
> **Zeebe Init Message** : document_type_new
Servisi ile yeni bir belge tipi kaydı oluşturulur.
#### Body
```json
{
"name": "retail-digital-bhs",
"title": "Bireysel Hizmet Sözleşmesi 8.0",
"version": "8.1.0",
"min-version":">=6.x.x",
"template": "retail-digital-bhs-8-1-0"
}
```
### PATCH : /contract-approval/document-type/{id}
> **Zeebe Init Message** : document_type_update
Servisi ile var olan belge tipi güncelenir.
#### Body
```json
{
"min-version":">=6.x.x",
"template": "retail-digital-bhs-8-1-0"
}
```
### DELETE : /contract-approval/document-type/{id}
> Message** : document_type_update
Servisi ile var olan belge tipi güncelenir.