> ## Documentation Index
> Fetch the complete documentation index at: https://docs.flextell.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Kullanıcı API

> Kliniğin paneline giriş yapabilen ve sistem üzerinde işlem yapma yetkisi olan kullanıcıları yönetmek için endpoint'ler.

<Note>
  Tüm isteklerde `X-Tenant` header'ı **zorunludur**. İşlemler ve listelemeler sadece belirtilen tenant'a bağlı kullanıcılar ile sınırlandırılmıştır.
</Note>

## Endpoint özeti

| Metot    | Endpoint                   | Açıklama                               |
| -------- | -------------------------- | -------------------------------------- |
| `GET`    | `/api/v1/users`            | Kullanıcıları filtreli olarak listeler |
| `GET`    | `/api/v1/users/{id}`       | Tek bir kullanıcıyı detaylı getirir    |
| `POST`   | `/api/v1/users`            | Yeni kullanıcı oluşturur               |
| `PUT`    | `/api/v1/users/{id}`       | Kullanıcıyı kısmi günceller            |
| `DELETE` | `/api/v1/users/{id}`       | Kullanıcıyı soft delete eder           |
| `DELETE` | `/api/v1/users/{id}/force` | Kullanıcıyı kalıcı olarak siler        |

<Tip>
  Tüm parametreler, alanlar ve örnek istek/yanıtlar için **[API Referansı](/api-reference)** sekmesine bakın.
</Tip>

## Kullanıcı kavramı

User API'de "kullanıcı", **kliniğin paneline giriş yapabilen ve sistem üzerinde işlem yapma yetkisi olan** gerçek kişiyi temsil eder.

User API, kullanıcı bilgileri ve rol atamalarının **merkezi erişim noktasıdır**.

## İş kuralları

<Warning>
  **Rol ataması (`role_ids`):** Her rol **ya tüm tenant'lara ortak** olmalı (`tenant_id = null`) **ya da** ilgili tenant'a ait olmalı.

  Aksi halde: `One or more selected roles do not exist or do not belong to this tenant.`
</Warning>

<Note>
  Kullanıcı aktif yapılırken (`is_active=true`) tenant'ın **maksimum kullanıcı limiti** kontrol edilir.
</Note>

<Warning>
  **Aktivasyon güncellemesi:** Kullanıcı pasif → aktif yapılırken `max_users` aşılırsa istek reddedilir.

  Hata mesajı: `Maximum user limit ({max_users}) has been reached for this tenant. Cannot activate user.`
</Warning>

<Note>
  Tekil kullanıcı görüntüleme (`GET /api/v1/users/{id}`) sorgusunda soft delete edilmiş kullanıcılar **dönebilir** (diğer modüllerden farklı olarak detay sorgusu trashed kayıtları varsayılan olarak içerir).
</Note>

## Yetkilendirme

### Uygulama izinleri (permissions)

| İşlem        | Permission         |
| ------------ | ------------------ |
| Listeleme    | `ViewAny:User`     |
| Detay        | `View:User`        |
| Oluşturma    | `Create:User`      |
| Güncelleme   | `Update:User`      |
| Silme        | `Delete:User`      |
| Kalıcı silme | `ForceDelete:User` |

### Token scope'ları (Passport)

| İşlem                          | Scope         |
| ------------------------------ | ------------- |
| Listeleme / Görüntüleme        | `users:read`  |
| Oluşturma / Güncelleme / Silme | `users:write` |
