# Operon Print Yerel Agent API

Agent varsayılan olarak şube bilgisayarındaki tüm IPv4 arayüzlerinde `8181`
portunu dinler. Port, **Ayarlar > Veritabanı Ayarları** ekranından değiştirilebilir.

API yerel ağ içinde doğrudan kullanılır. Eşleştirme kodu, access token ve
`Authorization` başlığı kullanılmaz.

## Mobil bağlantı QR'ı

Operon Print'te **Ayarlar > Mobil Bağlantı** ekranındaki QR şu biçimde metin taşır:

```text
operonprint://connect?host=10.0.10.34&port=8181
```

Mobil uygulama QR metninden `host` ve `port` değerlerini alarak API adresini
oluşturur:

```text
http://10.0.10.34:8181
```

## Sağlık kontrolü

```bash
curl http://10.0.10.34:8181/api/health
```

## Tasarımları listeleme

Mobil uygulama yazdırmadan önce kullanılabilir tasarımları agent üzerinden
alabilir:

```bash
curl http://10.0.10.34:8181/api/designs
```

Belge tipine göre filtrelemek için:

```bash
curl http://10.0.10.34:8181/api/designs/ETIKET
```

Her tasarım için `belgeTipi`, `designName`, `isDefault`,
`printerConfigured` ve `updatedOn` döner. `printerConfigured: true`,
tasarımın masaüstü uygulamasında bir fiziksel yazıcıyla eşleştirildiğini
gösterir.

## Yazdırma işi oluşturma

```bash
curl -X POST "http://10.0.10.34:8181/api/print/jobs" \
  -H "Content-Type: application/json" \
  -d '{
    "requestId": "sube1-telefon1-000001",
    "designName": "A4Baski",
    "id": "8690000000001",
    "code": "",
    "param1": "",
    "param2": "",
    "param3": "",
    "param4": "",
    "param5": "",
    "depoNo": "1",
    "printCount": 1
  }'
```

Mobil uygulamanın `printerTarget` veya fiziksel yazıcı adı göndermesi
gerekmez. Yazıcı, masaüstü Operon Print uygulamasındaki tasarım-yazıcı
eşleştirmesinden otomatik seçilir.

`designName` tüm yerel tasarımlar içinde tekilse `belgeTipi` gönderilmesi
gerekmez. Aynı tasarım adı birden fazla belge tipinde varsa isteğe
`belgeTipi` de eklenmelidir. Alternatif olarak yalnızca `belgeTipi`
gönderilirse o belge tipinin varsayılan tasarımı kullanılır.

Aynı `requestId` yeniden gönderilirse yeni çıktı oluşturulmaz; mevcut iş
döndürülür.

## İş durumu

```bash
curl "http://10.0.10.34:8181/api/print/jobs/JOB_ID"
```

Durumlar: `Pending`, `Processing`, `Completed`, `Failed`.

## Yerel dosyalar

- Tasarımlar: `Designs/PrintDesigns.json`
- Yazdırma işleri: `PrintJobs/{jobId}.json`
- Ayarlar: `OperonPrintConfig.json`

Merkez ERP erişilemezse SQL kaynaklı işler `Pending` durumunda kalır ve artan
aralıklarla tekrar denenir.

> Güvenlik notu: Aynı ağa ve porta erişebilen her cihaz API'ye yazdırma işi
> gönderebilir. Portu internete açmayın.
