# Admin Panel — Site Ayarları Modülü
## Genel Bakış
Backend'de `settings` tablosu güncellendi. Artık her ayarın **label** (Türkçe etiket) ve **order_index** (sıralama) alanları var. Ayarlar **9 gruba** ayrılmış durumda. Admin panelde her grup kendi sekmesi/sayfası olacak.
---
## API Endpoints
Tüm admin endpoint'leri `auth:sanctum` ile korunuyor. Base URL: `{API_URL}/api/admin`
| Method | Endpoint | Açıklama |
|--------|----------|----------|
| `GET` | `/admin/settings` | Tüm ayarları flat liste olarak getir |
| `GET` | `/admin/settings/group/{group}` | Tek grup ayarlarını getir |
| `PUT` | `/admin/settings` | Toplu güncelleme (dot notation) |
| `POST` | `/admin/settings/clear-cache` | Ayar cache'ini temizle |
---
## GET /admin/settings — Tüm Ayarlar
Her ayar şu formatta döner:
```json
{
"data": [
{
"id": 1,
"key": "site_name",
"value": "Boğaziçi Denizcilik Eğitim Kurumu",
"group": "general",
"type": "text",
"label": "Site Adı",
"order_index": 0
},
{
"id": 8,
"key": "announcement_bar_active",
"value": "true",
"group": "general",
"type": "boolean",
"label": "Üst Bar Aktif mi",
"order_index": 7
}
]
}
```
**Frontend'de `group` bazında filtrele** → Her sekme/tab kendi grubunu gösterir.
---
## GET /admin/settings/group/{group} — Tek Grup
Sadece o grubun ayarlarını döner. `order_index` sıralı gelir.
Geçerli group değerleri:
- `general` — Genel site ayarları
- `contact` — İletişim bilgileri
- `maps` — Harita ayarları
- `social` — Sosyal medya linkleri
- `seo` — SEO, Open Graph, Twitter Card, doğrulama kodları
- `analytics` — Google Analytics, Tag Manager, Pixel ID'leri
- `header` — Navbar ve üst bar ayarları
- `footer` — Footer içerik ve stili
- `integrations` — SMTP, reCAPTCHA, bildirim ayarları
---
## PUT /admin/settings — Toplu Güncelleme
**Dot notation** formatında gönder: `{group}.{key}: value`
### Request Body:
```json
{
"settings": {
"general.site_name": "Yeni Site Adı",
"general.announcement_bar_active": "true",
"contact.phone_primary": "+90 555 123 45 67",
"social.instagram_url": "https://instagram.com/bogazicidenizcilik",
"header.cta_button_text": "Kayıt Ol",
"footer.copyright_text": "© 2026 Boğaziçi Denizcilik"
}
}
```
### Response:
```json
{ "message": "Ayarlar güncellendi." }
```
### Önemli:
- Sadece değişen ayarları gönderin, hepsini göndermenize gerek yok
- PUT sonrası backend otomatik olarak tüm cache'leri temizler
- Validation: `settings` required array, her value nullable string
---
## POST /admin/settings/clear-cache
Body gerekmez. Manuel cache temizleme butonu için.
```json
{ "message": "Ayar cache temizlendi." }
```
---
## Type'lara Göre Form Bileşenleri
Her ayarın `type` alanı, admin panelde hangi input bileşeninin kullanılacağını belirler:
| type | Bileşen | Açıklama |
|------|---------|----------|
| `text` | `` | Tek satır metin |
| `textarea` | `