# **Get Contract Documents API**
Bu API, belirtilen **ContractCode** parametresi ile ilişkili belgeleri listelemek için kullanılır.
## **Endpoint**
GET /api/contracts/documents
## **Request Parameters**
| Parametre | Tipi | Açıklama |
|----------------|-------|----------|
| `ContractCode` | `string` | Kontratın kodunu temsil eden parametre (örn: `con-on-plus-program`). |
## **Örnek Request**
GET /api/contracts/documents?ContractCode=con-on-plus-program
## **Response Format**
Yanıt, verilen `ContractCode` değerine karşılık gelen kontrata ait belgeleri ve ilgili bilgileri içerir.
### **Başarı Yanıtı (`200 OK`)**
```json
{
"success": true,
"data": {
"code": "con-on-plus-program",
"title": "ON PLUS PROGRAM",
"status": "InProgress",
"documentList": [
{
"name": "ON Plus Program Talep Formu",
"status": "Active",
"code": "doc-tr-on-plus-program-talep-formu",
"useExisting": "AnyValid",
"minVersion": "1.0.0",
"isRequired": true,
"lastVersion": "1.0.0",
"documentDetail": {
"onlineSign": {
"templateCode": "cont-tr-on-plus-program-talep-formu",
"version": "1.0.0",
"tagExecute": null,
"isFreeText": false
},
"upload": null
}
},
{
"name": "Ödeme Planı",
"status": "Passive",
"code": "doc-odeme-plani",
"useExisting": "Never",
"minVersion": "1.0.0",
"isRequired": true,
"lastVersion": "1.0.0",
"documentDetail": {
"onlineSign": null,
"upload": {
"status": true
}
}
},
{
"name": "ON PLUS PROGRAMI KAPSAMINDA KİŞİSEL VERİLERİN İŞLENMESİ HAKKINDA AYDINLATMA METNİ",
"status": "Active",
"code": "doc-tr-on-plus-kvkk",
"useExisting": "AnyValid",
"minVersion": "1.0.0",
"isRequired": true,
"lastVersion": "1.0.0",
"documentDetail": {
"onlineSign": {
"templateCode": "cont-tr-on-plus-kvkk",
"version": "1.0.0",
"tagExecute": null,
"isFreeText": false
},
"upload": null
}
}
],
"documentGroupList": []
},
"errorMessage": null
}
```
### **Yanıt Açıklaması**
| **Alan** | **Tipi** | **Açıklama** |
|------------------------------------------|--------------------|-------------------------------------------------------------------------------|
| `success` | `boolean` | API çağrısının başarılı olup olmadığını gösterir. (`true` -> Başarılı, `false` -> Başarısız) |
| `data.code` | `string` | Kontratın benzersiz kodunu belirtir. |
| `data.title` | `string` | Kontratın adını içerir. |
| `data.status` | `string` | Kontratın güncel durumunu gösterir. (Örn: `InProgress`) |
| `data.documentList` | `array` | Kontrata bağlı belgelerin listesi. |
| `data.documentList[].name` | `string` | Belgenin adı. |
| `data.documentList[].status` | `string` | Belgenin durumu. (Örn: `InProgress`) |
| `data.documentList[].code` | `string` | Belge kodu (unique). |
| `data.documentList[].useExisting` | `string` | Belgenin onay seçeneği (`AnyValid`,`Never`) |
| `data.documentList[].minVersion` | `string` | Minimum geçerli belge versiyonu. |
| `data.documentList[].isRequired` | `boolean` | Belgenin zorunlu olup olmadığını gösterir. |
| `data.documentList[].lastVersion` | `string` | Mevcut en güncel belge versiyonu. |
| `data.documentList[].documentDetail.onlineSign.templateCode` | `string` | Belgenin template kodu.(`templateEngine`) |
| `data.documentList[].documentDetail.onlineSign.version` | `string` | Belgenin template versiyonu. |
| `data.documentList[].documentDetail.upload` | `null` veya `object` | Belgenin yüklenebilir olup olmadığı. (Şu an `null`) |
| `data.documentGroupList` | `array` | Belge grupları. (Şu an boş `[]`) |
| `errorMessage` | `null` veya `string` | Hata mesajı. (Başarılı çağrıda `null`) |
### **Hata Yanıtı (400 Bad Request veya 404 Not Found)**
Yanlış veya eksik `ContractCode` parametresi girildiğinde API hata döner.
Örnek Hata Yanıtı (400 Bad Request - Geçersiz parametre)
```
{
"success": false,
"errorMessage": "Invalid ContractCode parameter."
}
```
Örnek Hata Yanıtı (404 Not Found - Kontrat bulunamadı)
```
{
"success": false,
"errorMessage": "Contract not found for the given code."
}
```
## **Kullanım Senaryoları**
1. **Bir kontrata ait belgeleri listeleme**
- `ContractCode` parametresi girilerek ilgili kontrata bağlı belgelerin detayları alınabilir.
2. **Online imza gerektiren belgeleri bulma**
- Yanıttaki `documentDetail.onlineSign` alanı dolu olan belgeler, online imza gerektiren belgeler olarak değerlendirilebilir.
3. **Belirli bir versiyon şartı olan belgeleri bulma**
- `minVersion` ve `lastVersion` bilgileri, sistemde hangi belge versiyonlarının minimum olarak kullanılması gerektiğini gösterir.
4. **Zorunlu belgeleri belirleme**
- `isRequired: true` olan belgeler, tamamlanması zorunlu olan dokümanlardır.