# **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.