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

# Ayarlar API

> Tenant'a özel sistem ayarlarını (randevu, bildirim, destek, genel, chat, muhasebe) okumak ve güncellemek için endpoint'ler.

<Note>
  Tüm isteklerde `X-Tenant` header'ı **zorunludur**. Her kategori için ayarlar yalnızca belirtilen tenant'a aittir.
</Note>

## Endpoint özeti

Her ayar kategorisi aynı yapıya sahiptir: `GET` mevcut değerleri getirir, `PUT` günceller (merge ederek), `DELETE /reset` varsayılana sıfırlar.

| Metot    | Endpoint                              | Açıklama                      |
| -------- | ------------------------------------- | ----------------------------- |
| `GET`    | `/api/v1/settings/appointment`        | Randevu ayarlarını getirir    |
| `PUT`    | `/api/v1/settings/appointment`        | Randevu ayarlarını günceller  |
| `DELETE` | `/api/v1/settings/appointment/reset`  | Randevu ayarlarını sıfırlar   |
| `GET`    | `/api/v1/settings/notification`       | Bildirim ayarlarını getirir   |
| `PUT`    | `/api/v1/settings/notification`       | Bildirim ayarlarını günceller |
| `DELETE` | `/api/v1/settings/notification/reset` | Bildirim ayarlarını sıfırlar  |
| `GET`    | `/api/v1/settings/support`            | Destek ayarlarını getirir     |
| `PUT`    | `/api/v1/settings/support`            | Destek ayarlarını günceller   |
| `DELETE` | `/api/v1/settings/support/reset`      | Destek ayarlarını sıfırlar    |
| `GET`    | `/api/v1/settings/general`            | Genel ayarları getirir        |
| `PUT`    | `/api/v1/settings/general`            | Genel ayarları günceller      |
| `DELETE` | `/api/v1/settings/general/reset`      | Genel ayarları sıfırlar       |
| `GET`    | `/api/v1/settings/chat`               | Chat ayarlarını getirir       |
| `PUT`    | `/api/v1/settings/chat`               | Chat ayarlarını günceller     |
| `DELETE` | `/api/v1/settings/chat/reset`         | Chat ayarlarını sıfırlar      |
| `GET`    | `/api/v1/settings/accounting`         | Muhasebe ayarlarını getirir   |
| `PUT`    | `/api/v1/settings/accounting`         | Muhasebe ayarlarını günceller |
| `DELETE` | `/api/v1/settings/accounting/reset`   | Muhasebe ayarlarını sıfırlar  |

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

## Ayar kategorileri

### Randevu ayarları (`/settings/appointment`)

Randevu oluşturma limitleri, slot süresi ve ileriye dönük randevu penceresini yönetir.

| Alan                                  | Açıklama                                  |
| ------------------------------------- | ----------------------------------------- |
| `appointments.creation_limit`         | Toplam randevu oluşturma limiti           |
| `appointments.monthly_creation_limit` | Aylık limit                               |
| `appointments.slot_duration`          | Slot süresi (dakika, min. 5)              |
| `appointments.max_future_days`        | Kaç gün sonrasına randevu oluşturulabilir |

### Bildirim ayarları (`/settings/notification`)

Hatırlatma ve seans onayı zamanlamalarını yönetir.

| Alan                                              | Açıklama                                                           |
| ------------------------------------------------- | ------------------------------------------------------------------ |
| `reminders.appointment_offsets`                   | Randevu hatırlatması için negatif gün offsetleri (örn. `[-3, -1]`) |
| `reminders.session_confirmation_offsets`          | Seans onayı offsetleri (30 günden kısa aralıklar için)             |
| `reminders.session_confirmation_offsets_long_gap` | Seans onayı offsetleri (30+ gün aralıklar için)                    |
| `cancellation_followup_days`                      | İptal sonrası takip mesajı kaç gün sonra gönderilsin               |

### Destek ayarları (`/settings/support`)

| Alan                            | Açıklama                             |
| ------------------------------- | ------------------------------------ |
| `support.response_time_minutes` | Hedef yanıt süresi (dakika, min. 30) |

### Genel ayarlar (`/settings/general`)

| Alan               | Açıklama                                     |
| ------------------ | -------------------------------------------- |
| `default_timezone` | Saat dilimi (örn. `Europe/Istanbul`)         |
| `date_format`      | Tarih formatı: `d/m/Y`, `m/d/Y` veya `Y-m-d` |
| `time_format`      | Saat formatı: `H:i` veya `h:i A`             |
| `currency`         | Aktif para birimi kodu (örn. `TRY`)          |
| `locale`           | Dil kodu (örn. `tr`)                         |

### Chat ayarları (`/settings/chat`)

<Warning>
  **Şifre doğrulaması zorunludur:** `PUT /settings/chat` isteğinde mevcut kullanıcının `password` alanını göndermek **zorunludur**.
</Warning>

| Alan                                 | Açıklama                                                                                                             |
| ------------------------------------ | -------------------------------------------------------------------------------------------------------------------- |
| `ai_reply_windows`                   | AI yanıt programı — gün, başlangıç/bitiş saati ve mod (`auto`, `semi_auto`, `closed`) ile tanımlanan zaman dilimleri |
| `pre_booking_requirements.enabled`   | Ön rezervasyon gereksinimi                                                                                           |
| `customer_forms.default_template_id` | Varsayılan aktif form şablonu ID'si                                                                                  |

<Warning>
  `ai_reply_windows` içinde **çakışan zaman dilimleri** validation'da reddedilir. Her `ai_reply_windows` girişinde `end_time`, `start_time`'dan sonra olmalıdır.
</Warning>

### Muhasebe ayarları (`/settings/accounting`)

| Alan               | Açıklama                     |
| ------------------ | ---------------------------- |
| `default_tax_rate` | Varsayılan KDV oranı (0-100) |

## Yetkilendirme

<Note>
  Settings endpoint'lerinde rol tabanlı izin kontrolü (`ViewAny:Resource` vb.) **uygulanmaz** — erişim kontrolü tamamen token scope seviyesinde yapılır. Tüm settings endpoint'leri `middleware('tenant')` gerektirdiğinden aktif bir tenant bağlamı zorunludur.
</Note>

### Token scope'ları (Passport)

| İşlem                          | Scope            |
| ------------------------------ | ---------------- |
| Okuma (`GET`)                  | `settings:read`  |
| Yazma (`PUT`, `DELETE /reset`) | `settings:write` |
