# Firmaları listele

`GET /api/v1/customers`

Aktif firmaları süzer, sıralar ve sayfalar. `counts` süzülmüş listedeki müşteri / aday sayılarını ve ziyareti geciken firmaları verir.

## Sorgu parametreleri

| Alan | Tür | Açıklama |
|---|---|---|
| `scope` | string | `mine` = sorumlusu olduğum kayıtlar (satışçının varsayılanı), `all` = görebildiğim tüm kayıtlar (yöneticinin varsayılanı) ya da bir kullanıcı kimliği. |
| `status` | string | `AC` = aktif müşteri, `Prospect` = aday. Değerler: `AC`, `Prospect` |
| `q` | string | Ad, şehir ya da sektör içerir. |
| `city` | string | Şehir (tam eşleşme). |
| `visit` | string | Ziyaret takvimi durumu. Değerler: `overdue`, `soon`, `ok`, `none` |
| `risk` | string | `1` = yalnız risk altındaki müşteriler. |
| `active` | string | `0` = pasif (arşivlenmiş) firmalar. |
| `sort` | string | Sıralama. Değerler: `name`, `visit`, `priority` |
| `page` | integer | Sayfa numarası (1'den başlar). |
| `per` | integer | Sayfa başına satır (10–100). |

## Yanıt

```json 200
{
  "counts": {
    "ac": 9,
    "overdue": 1,
    "prospect": 21,
    "soon": 0
  },
  "ok": true,
  "page": 1,
  "pages": 3,
  "rows": [
    {
      "active": true,
      "at_risk": false,
      "city": "Adana",
      "currency": "EUR",
      "currency_default": "",
      "id": 9,
      "initials": "KP",
      "last_visit": "2026-07-02",
      "main_contact": {
        "email": "ayse.aydin@kumsalplastik.example",
        "name": "Ayşe Aydın",
        "phone": "0 (322) 000 80 24",
        "wa": "903220008024"
      },
      "name": "Kumsal Plastik Ambalaj San. ve Tic. A.Ş.",
      "next_visit_due": "2026-09-30",
      "open_opps": 0,
      "owner": {
        "full_name": "Deniz Aksoy",
        "id": 1,
        "role": "admin",
        "role_label": "Yönetici",
        "username": "admin"
      },
      "pending_state": null,
      "period": 90,
      "phone": "0 (322) 000 53 49",
      "potential_kg": 12000.0,
      "rid": "001t29x5kWbHOxg",
      "sector": "Esnek ambalaj",
      "status": "AC",
      "status_label": "Aktif Müşteri",
      "unit": "kg",
      "visit_overdue_days": 2,
      "visit_state": "overdue"
    },
    {
      "active": true,
      "at_risk": false,
      "city": "Konya",
      "currency": "EUR",
      "currency_default": "",
      "id": 8,
      "initials": "IF",
      "last_visit": "2026-08-25",
      "main_contact": {
        "email": "gizem.arslan@isiltifilm.example",
        "name": "Gizem Arslan",
        "phone": "0 (332) 000 94 28",
        "wa": "903320009428"
      },
      "name": "Işıltı Film A.Ş.",
      "next_visit_due": "2026-11-23",
      "open_opps": 0,
      "owner": {
        "full_name": "Deniz Aksoy",
        "id": 1,
        "role": "admin",
        "role_label": "Yönetici",
        "username": "admin"
      },
      "pending_state": null,
      "period": 90,
      "phone": "0 (332) 000 99 70",
      "potential_kg": 40000.0,
      "rid": "001frrIzBuo8ERp",
      "sector": "Film üretimi",
      "status": "AC",
      "status_label": "Aktif Müşteri",
      "unit": "kg",
      "visit_overdue_days": -52,
      "visit_state": "ok"
    }
  ],
  "total": 30
}
```
