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