Files

1344 lines
50 KiB
PHP
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?php
namespace Database\Seeders;
use App\Models\Setting;
use Illuminate\Database\Seeder;
class SettingSeeder extends Seeder
{
/**
* Run the database seeds.
*/
public function run(): void
{
$settings = [
// ==========================================
// GENEL AYARLAR (general)
// ==========================================
[
'key' => 'site_name',
'value' => 'Citrus Platform',
'type' => 'string',
'group' => 'general',
'label' => 'Site Adı',
'description' => 'Web sitesinin başlığı',
'is_public' => true,
'is_active' => true,
],
[
'key' => 'site_description',
'value' => 'Modern ve güvenilir web platformu',
'type' => 'text',
'group' => 'general',
'label' => 'Site Açıklaması',
'description' => 'Web sitesinin kısa açıklaması',
'is_public' => true,
'is_active' => true,
],
[
'key' => 'site_keywords',
'value' => json_encode(['citrus', 'platform', 'web', 'modern']),
'type' => 'tags_input',
'group' => 'general',
'label' => 'Site Anahtar Kelimeleri',
'description' => 'SEO için anahtar kelimeler (virgülle ayrılmış)',
'is_public' => true,
'is_active' => true,
],
[
'key' => 'site_logo',
'value' => '',
'type' => 'file',
'group' => 'general',
'label' => 'Site Logosu',
'description' => 'Üst kısımda görünecek logo dosyası',
'is_public' => true,
'is_active' => true,
],
[
'key' => 'site_favicon',
'value' => '',
'type' => 'file',
'group' => 'general',
'label' => 'Site Favicon',
'description' => 'Tarayıcı sekmesinde görünecek favicon',
'is_public' => true,
'is_active' => true,
],
[
'key' => 'site_version',
'value' => '1.0.0',
'type' => 'string',
'group' => 'general',
'label' => 'Site Versiyonu',
'description' => 'Uygulama versiyon numarası',
'is_public' => true,
'is_active' => true,
],
[
'key' => 'site_url',
'value' => 'https://citrus.truncgil.com',
'type' => 'string',
'group' => 'general',
'label' => 'Site URL',
'description' => 'Web sitesinin tam adresi',
'is_public' => true,
'is_active' => true,
],
[
'key' => 'default_language',
'value' => 'tr',
'type' => 'toggle_buttons',
'group' => 'general',
'label' => 'Varsayılan Dil',
'description' => 'Site varsayılan dili',
'is_public' => true,
'is_active' => true,
],
[
'key' => 'available_languages',
'value' => json_encode(['tr', 'en']),
'type' => 'checkbox_list',
'group' => 'general',
'label' => 'Aktif Diller',
'description' => 'Sitede kullanılacak diller',
'is_public' => true,
'is_active' => true,
],
[
'key' => 'maintenance_mode',
'value' => '0',
'type' => 'boolean',
'group' => 'general',
'label' => 'Bakım Modu',
'description' => 'Site bakım modunda mı?',
'is_public' => false,
'is_active' => true,
],
[
'key' => 'maintenance_message',
'value' => '<h1>Site Bakımda</h1><p>Yakında döneceğiz...</p>',
'type' => 'rich_editor',
'group' => 'general',
'label' => 'Bakım Modu Mesajı',
'description' => 'Bakım modundayken gösterilecek mesaj',
'is_public' => false,
'is_active' => true,
],
[
'key' => 'copyright_text',
'value' => '© 2024 Citrus Platform. Tüm hakları saklıdır.',
'type' => 'text',
'group' => 'general',
'label' => 'Telif Hakkı Metni',
'description' => 'Alt kısımda görünecek telif hakkı metni',
'is_public' => true,
'is_active' => true,
],
[
'key' => 'contact_phone',
'value' => '+90 555 555 55 55',
'type' => 'string',
'group' => 'general',
'label' => 'İletişim Telefonu',
'description' => 'İletişim telefon numarası',
'is_public' => true,
'is_active' => true,
],
[
'key' => 'contact_email',
'value' => 'info@citrus.truncgil.com',
'type' => 'string',
'group' => 'general',
'label' => 'İletişim E-posta',
'description' => 'İletişim e-posta adresi',
'is_public' => true,
'is_active' => true,
],
[
'key' => 'contact_address',
'value' => 'İstanbul, Türkiye',
'type' => 'text',
'group' => 'general',
'label' => 'İletişim Adresi',
'description' => 'İletişim fiziksel adresi',
'is_public' => true,
'is_active' => true,
],
// ==========================================
// TEMA VE RENK AYARLARI (theme)
// ==========================================
[
'key' => 'theme_primary_color',
'value' => '#3b82f6',
'type' => 'color_picker',
'group' => 'theme',
'label' => 'Primary Color',
'description' => 'Ana tema rengi (Tailwind/Bootstrap primary)',
'is_public' => true,
'is_active' => true,
],
[
'key' => 'theme_secondary_color',
'value' => '#6b7280',
'type' => 'color_picker',
'group' => 'theme',
'label' => 'Secondary Color',
'description' => 'İkincil tema rengi',
'is_public' => true,
'is_active' => true,
],
[
'key' => 'theme_success_color',
'value' => '#10b981',
'type' => 'color_picker',
'group' => 'theme',
'label' => 'Success Color',
'description' => 'Başarı mesajları için renk',
'is_public' => true,
'is_active' => true,
],
[
'key' => 'theme_danger_color',
'value' => '#ef4444',
'type' => 'color_picker',
'group' => 'theme',
'label' => 'Danger Color',
'description' => 'Hata ve uyarı mesajları için renk',
'is_public' => true,
'is_active' => true,
],
[
'key' => 'theme_warning_color',
'value' => '#f59e0b',
'type' => 'color_picker',
'group' => 'theme',
'label' => 'Warning Color',
'description' => 'Uyarı mesajları için renk',
'is_public' => true,
'is_active' => true,
],
[
'key' => 'theme_info_color',
'value' => '#06b6d4',
'type' => 'color_picker',
'group' => 'theme',
'label' => 'Info Color',
'description' => 'Bilgi mesajları için renk',
'is_public' => true,
'is_active' => true,
],
[
'key' => 'theme_light_color',
'value' => '#f9fafb',
'type' => 'color_picker',
'group' => 'theme',
'label' => 'Light Color',
'description' => 'Açık renk',
'is_public' => true,
'is_active' => true,
],
[
'key' => 'theme_dark_color',
'value' => '#1f2937',
'type' => 'color_picker',
'group' => 'theme',
'label' => 'Dark Color',
'description' => 'Koyu renk',
'is_public' => true,
'is_active' => true,
],
[
'key' => 'theme_body_background',
'value' => '#ffffff',
'type' => 'color_picker',
'group' => 'theme',
'label' => 'Body Background Color',
'description' => 'Sayfa arka plan rengi',
'is_public' => true,
'is_active' => true,
],
[
'key' => 'theme_text_color',
'value' => '#111827',
'type' => 'color_picker',
'group' => 'theme',
'label' => 'Text Color',
'description' => 'Varsayılan metin rengi',
'is_public' => true,
'is_active' => true,
],
[
'key' => 'theme_mode',
'value' => 'light',
'type' => 'toggle_buttons',
'group' => 'theme',
'label' => 'Tema Modu',
'description' => 'Açık, koyu veya otomatik tema',
'is_public' => true,
'is_active' => true,
],
[
'key' => 'theme_border_radius',
'value' => '8',
'type' => 'slider',
'group' => 'theme',
'label' => 'Border Radius (px)',
'description' => 'Öğelerin köşe yuvarlaklığı (0-20 arası)',
'is_public' => true,
'is_active' => true,
],
[
'key' => 'custom_css',
'value' => '/* Özel CSS kodlarınızı buraya ekleyin */',
'type' => 'code_editor',
'group' => 'theme',
'label' => 'Özel CSS',
'description' => 'Site genelinde uygulanacak özel CSS kodları',
'is_public' => false,
'is_active' => true,
],
[
'key' => 'custom_js',
'value' => '// Özel JavaScript kodlarınızı buraya ekleyin',
'type' => 'code_editor',
'group' => 'theme',
'label' => 'Özel JavaScript',
'description' => 'Site genelinde uygulanacak özel JavaScript kodları',
'is_public' => false,
'is_active' => true,
],
// ==========================================
// LOKALİZASYON AYARLARI (localization)
// ==========================================
[
'key' => 'timezone',
'value' => 'Europe/Istanbul',
'type' => 'string',
'group' => 'localization',
'label' => 'Zaman Dilimi',
'description' => 'Sunucu zaman dilimi (Europe/Istanbul, UTC, vb.)',
'is_public' => false,
'is_active' => true,
],
[
'key' => 'date_format',
'value' => 'd/m/Y',
'type' => 'radio',
'group' => 'localization',
'label' => 'Tarih Formatı',
'description' => 'Tarih gösterim formatı',
'is_public' => true,
'is_active' => true,
],
[
'key' => 'time_format',
'value' => '24',
'type' => 'toggle_buttons',
'group' => 'localization',
'label' => 'Saat Formatı',
'description' => '12 veya 24 saatlik format',
'is_public' => true,
'is_active' => true,
],
[
'key' => 'currency',
'value' => 'TRY',
'type' => 'string',
'group' => 'localization',
'label' => 'Para Birimi',
'description' => 'Varsayılan para birimi kodu (TRY, USD, EUR)',
'is_public' => true,
'is_active' => true,
],
[
'key' => 'currency_symbol',
'value' => '₺',
'type' => 'string',
'group' => 'localization',
'label' => 'Para Birimi Sembolü',
'description' => 'Para birimi sembolü',
'is_public' => true,
'is_active' => true,
],
[
'key' => 'currency_position',
'value' => 'after',
'type' => 'radio',
'group' => 'localization',
'label' => 'Para Birimi Konumu',
'description' => 'Sembolün fiyatın önünde mi arkasında mı olacağı',
'is_public' => true,
'is_active' => true,
],
[
'key' => 'thousands_separator',
'value' => '.',
'type' => 'string',
'group' => 'localization',
'label' => 'Binlik Ayırıcı',
'description' => 'Sayılarda binlik ayırıcı karakter',
'is_public' => true,
'is_active' => true,
],
[
'key' => 'decimal_separator',
'value' => ',',
'type' => 'string',
'group' => 'localization',
'label' => 'Ondalık Ayırıcı',
'description' => 'Sayılarda ondalık ayırıcı karakter',
'is_public' => true,
'is_active' => true,
],
[
'key' => 'decimal_places',
'value' => '2',
'type' => 'integer',
'group' => 'localization',
'label' => 'Ondalık Basamak Sayısı',
'description' => 'Para birimi için ondalık basamak sayısı',
'is_public' => true,
'is_active' => true,
],
[
'key' => 'week_start_day',
'value' => 'Monday',
'type' => 'radio',
'group' => 'localization',
'label' => 'Haftanın İlk Günü',
'description' => 'Haftanın başlangıç günü',
'is_public' => true,
'is_active' => true,
],
[
'key' => 'calendar_type',
'value' => 'Gregorian',
'type' => 'toggle_buttons',
'group' => 'localization',
'label' => 'Takvim Tipi',
'description' => 'Gregorian veya Miladi takvim',
'is_public' => true,
'is_active' => true,
],
// ==========================================
// E-POSTA AYARLARI (email)
// ==========================================
[
'key' => 'mail_driver',
'value' => 'smtp',
'type' => 'radio',
'group' => 'email',
'label' => 'Mail Driver',
'description' => 'E-posta gönderim yöntemi',
'is_public' => false,
'is_active' => true,
],
[
'key' => 'mail_host',
'value' => 'smtp.gmail.com',
'type' => 'string',
'group' => 'email',
'label' => 'SMTP Host',
'description' => 'SMTP sunucu adresi',
'is_public' => false,
'is_active' => true,
],
[
'key' => 'mail_port',
'value' => '587',
'type' => 'integer',
'group' => 'email',
'label' => 'SMTP Port',
'description' => 'SMTP port numarası',
'is_public' => false,
'is_active' => true,
],
[
'key' => 'mail_username',
'value' => '',
'type' => 'string',
'group' => 'email',
'label' => 'SMTP Kullanıcı Adı',
'description' => 'SMTP kullanıcı adı',
'is_public' => false,
'is_active' => true,
],
[
'key' => 'mail_password',
'value' => '',
'type' => 'string',
'group' => 'email',
'label' => 'SMTP Şifre',
'description' => 'SMTP şifresi',
'is_public' => false,
'is_active' => true,
],
[
'key' => 'mail_encryption',
'value' => 'tls',
'type' => 'toggle_buttons',
'group' => 'email',
'label' => 'SMTP Şifreleme',
'description' => 'TLS veya SSL şifreleme',
'is_public' => false,
'is_active' => true,
],
[
'key' => 'mail_from_address',
'value' => 'noreply@citrus.truncgil.com',
'type' => 'string',
'group' => 'email',
'label' => 'Gönderen E-posta Adresi',
'description' => 'Sistem e-postalarının gönderileceği adres',
'is_public' => false,
'is_active' => true,
],
[
'key' => 'mail_from_name',
'value' => 'Citrus Platform',
'type' => 'string',
'group' => 'email',
'label' => 'Gönderen İsim',
'description' => 'Sistem e-postalarının gönderen adı',
'is_public' => false,
'is_active' => true,
],
[
'key' => 'mail_notifications_enabled',
'value' => '1',
'type' => 'boolean',
'group' => 'email',
'label' => 'E-posta Bildirimleri Aktif',
'description' => 'E-posta bildirimleri gönderilsin mi?',
'is_public' => false,
'is_active' => true,
],
// ==========================================
// SOSYAL MEDYA AYARLARI (social)
// ==========================================
[
'key' => 'social_links',
'value' => json_encode([
'facebook' => 'https://facebook.com/',
'twitter' => 'https://twitter.com/',
'instagram' => 'https://instagram.com/',
'linkedin' => 'https://linkedin.com/',
'youtube' => '',
'tiktok' => '',
'github' => '',
'discord' => '',
]),
'type' => 'key_value',
'group' => 'social',
'label' => 'Sosyal Medya Linkleri',
'description' => 'Sosyal medya platformlarının URL\'leri',
'is_public' => true,
'is_active' => true,
],
// ==========================================
// FRONTEND theme AYARLARI (theme)
// ==========================================
[
'key' => 'default_meta_title',
'value' => 'Truncgil Citrus - Modern Web Çözümleri',
'type' => 'string',
'group' => 'theme',
'label' => 'Varsayılan Meta Başlık',
'description' => 'Sayfalarda özel meta başlık yoksa kullanılacak',
'is_public' => true,
'is_active' => true,
],
[
'key' => 'default_meta_description',
'value' => 'Yenilikçi teknoloji çözümleri ile geleceği şekillendiriyoruz',
'type' => 'text',
'group' => 'theme',
'label' => 'Varsayılan Meta Açıklama',
'description' => 'Sayfalarda özel meta açıklama yoksa kullanılacak',
'is_public' => true,
'is_active' => true,
],
[
'key' => 'default_meta_image',
'value' => 'assets/img/demos/f1.png',
'type' => 'string',
'group' => 'theme',
'label' => 'Varsayılan Meta Görsel',
'description' => 'Open Graph için varsayılan görsel',
'is_public' => true,
'is_active' => true,
],
[
'key' => 'logo_path',
'value' => 'assets/img/truncgil-yatay.svg',
'type' => 'string',
'group' => 'theme',
'label' => 'Logo Yolu',
'description' => 'Header\'da görünecek logo',
'is_public' => true,
'is_active' => true,
],
[
'key' => 'logo_light',
'value' => '',
'type' => 'file',
'group' => 'theme',
'label' => 'Light Logo',
'description' => 'Koyu zeminler için açık renkli logo',
'is_public' => true,
'is_active' => true,
],
[
'key' => 'logo_dark',
'value' => '',
'type' => 'file',
'group' => 'theme',
'label' => 'Dark Logo',
'description' => 'Açık zeminler için koyu renkli logo',
'is_public' => true,
'is_active' => true,
],
[
'key' => 'favicon_path',
'value' => 'assets/img/favicon.ico',
'type' => 'string',
'group' => 'theme',
'label' => 'Favicon Yolu',
'description' => 'Tarayıcı favicon',
'is_public' => true,
'is_active' => true,
],
// ==========================================
// SEO AYARLARI (seo)
// ==========================================
[
'key' => 'seo_meta_title',
'value' => 'Citrus Platform - Modern Web Platformu',
'type' => 'string',
'group' => 'seo',
'label' => 'SEO Meta Başlık',
'description' => 'Varsayılan SEO meta başlığı',
'is_public' => true,
'is_active' => true,
],
[
'key' => 'seo_meta_description',
'value' => 'Modern ve güvenilir web platformu',
'type' => 'text',
'group' => 'seo',
'label' => 'SEO Meta Açıklama',
'description' => 'Varsayılan SEO meta açıklaması',
'is_public' => true,
'is_active' => true,
],
[
'key' => 'seo_meta_keywords',
'value' => json_encode(['citrus', 'platform', 'web', 'modern', 'laravel']),
'type' => 'tags_input',
'group' => 'seo',
'label' => 'SEO Meta Anahtar Kelimeler',
'description' => 'Varsayılan SEO meta anahtar kelimeler',
'is_public' => true,
'is_active' => true,
],
[
'key' => 'seo_google_analytics_id',
'value' => '',
'type' => 'string',
'group' => 'seo',
'label' => 'Google Analytics ID',
'description' => 'Google Analytics takip kodu',
'is_public' => false,
'is_active' => true,
],
[
'key' => 'seo_google_tag_manager_id',
'value' => '',
'type' => 'string',
'group' => 'seo',
'label' => 'Google Tag Manager ID',
'description' => 'Google Tag Manager takip kodu',
'is_public' => false,
'is_active' => true,
],
[
'key' => 'seo_bing_webmaster',
'value' => '',
'type' => 'string',
'group' => 'seo',
'label' => 'Bing Webmaster Tools',
'description' => 'Bing Webmaster doğrulama kodu',
'is_public' => false,
'is_active' => true,
],
[
'key' => 'seo_robots_txt',
'value' => "User-agent: *\nAllow: /",
'type' => 'code_editor',
'group' => 'seo',
'label' => 'Robots.txt İçeriği',
'description' => 'Robots.txt dosyası içeriği',
'is_public' => false,
'is_active' => true,
],
[
'key' => 'seo_sitemap_url',
'value' => '/sitemap.xml',
'type' => 'string',
'group' => 'seo',
'label' => 'Sitemap URL',
'description' => 'XML sitemap dosyasının adresi',
'is_public' => true,
'is_active' => true,
],
[
'key' => 'seo_canonical_url',
'value' => 'https://citrus.truncgil.com',
'type' => 'string',
'group' => 'seo',
'label' => 'Canonical URL',
'description' => 'Varsayılan canonical URL',
'is_public' => true,
'is_active' => true,
],
[
'key' => 'seo_opengraph_enabled',
'value' => '1',
'type' => 'boolean',
'group' => 'seo',
'label' => 'Open Graph Etiketleri',
'description' => 'Open Graph meta etiketleri aktif mi?',
'is_public' => false,
'is_active' => true,
],
// ==========================================
// GÜVENLİK AYARLARI (security)
// ==========================================
[
'key' => 'security_max_login_attempts',
'value' => '5',
'type' => 'slider',
'group' => 'security',
'label' => 'Maksimum Giriş Denemesi',
'description' => 'Kullanıcı hesabının kilitlenmesi için maksimum giriş denemesi (3-10 arası)',
'is_public' => false,
'is_active' => true,
],
[
'key' => 'security_session_timeout',
'value' => '120',
'type' => 'integer',
'group' => 'security',
'label' => 'Oturum Zaman Aşımı (dakika)',
'description' => 'Kullanıcı oturumunun zaman aşımına uğrayacağı süre',
'is_public' => false,
'is_active' => true,
],
[
'key' => 'security_2fa_enabled',
'value' => '0',
'type' => 'boolean',
'group' => 'security',
'label' => 'İki Faktörlü Doğrulama',
'description' => 'İki faktörlü doğrulama aktif mi?',
'is_public' => false,
'is_active' => true,
],
[
'key' => 'security_password_min_length',
'value' => '8',
'type' => 'slider',
'group' => 'security',
'label' => 'Şifre Minimum Uzunluk',
'description' => 'Şifre için minimum karakter sayısı (6-20 arası)',
'is_public' => false,
'is_active' => true,
],
[
'key' => 'security_password_require_uppercase',
'value' => '1',
'type' => 'boolean',
'group' => 'security',
'label' => 'Şifrede Büyük Harf Zorunlu',
'description' => 'Şifrede en az bir büyük harf olmalı mı?',
'is_public' => false,
'is_active' => true,
],
[
'key' => 'security_password_require_lowercase',
'value' => '1',
'type' => 'boolean',
'group' => 'security',
'label' => 'Şifrede Küçük Harf Zorunlu',
'description' => 'Şifrede en az bir küçük harf olmalı mı?',
'is_public' => false,
'is_active' => true,
],
[
'key' => 'security_password_require_numbers',
'value' => '1',
'type' => 'boolean',
'group' => 'security',
'label' => 'Şifrede Rakam Zorunlu',
'description' => 'Şifrede en az bir rakam olmalı mı?',
'is_public' => false,
'is_active' => true,
],
[
'key' => 'security_password_require_symbols',
'value' => '0',
'type' => 'boolean',
'group' => 'security',
'label' => 'Şifrede Özel Karakter Zorunlu',
'description' => 'Şifrede en az bir özel karakter olmalı mı?',
'is_public' => false,
'is_active' => true,
],
[
'key' => 'security_api_rate_limit',
'value' => '60',
'type' => 'integer',
'group' => 'security',
'label' => 'API Rate Limit',
'description' => 'Dakikada maksimum API isteği sayısı',
'is_public' => false,
'is_active' => true,
],
[
'key' => 'security_ip_whitelist',
'value' => json_encode([]),
'type' => 'tags_input',
'group' => 'security',
'label' => 'IP Whitelist',
'description' => 'Yönetim paneline erişebilecek IP adresleri (boş = tüm IP\'ler)',
'is_public' => false,
'is_active' => true,
],
[
'key' => 'security_csrf_protection',
'value' => '1',
'type' => 'boolean',
'group' => 'security',
'label' => 'CSRF Koruması',
'description' => 'CSRF koruması aktif mi?',
'is_public' => false,
'is_active' => true,
],
// ==========================================
// DOSYA YÜKLEME AYARLARI (upload)
// ==========================================
[
'key' => 'upload_max_size',
'value' => '10',
'type' => 'slider',
'group' => 'upload',
'label' => 'Maksimum Yükleme Boyutu (MB)',
'description' => 'Dosya yükleme için maksimum boyut (1-100 MB arası)',
'is_public' => false,
'is_active' => true,
],
[
'key' => 'upload_allowed_image_types',
'value' => json_encode(['jpg', 'jpeg', 'png', 'gif', 'webp', 'svg']),
'type' => 'tags_input',
'group' => 'upload',
'label' => 'İzin Verilen Resim Formatları',
'description' => 'Yüklenebilecek resim dosya türleri',
'is_public' => false,
'is_active' => true,
],
[
'key' => 'upload_allowed_document_types',
'value' => json_encode(['pdf', 'doc', 'docx', 'xls', 'xlsx', 'ppt', 'pptx', 'txt']),
'type' => 'tags_input',
'group' => 'upload',
'label' => 'İzin Verilen Belge Formatları',
'description' => 'Yüklenebilecek belge dosya türleri',
'is_public' => false,
'is_active' => true,
],
[
'key' => 'upload_allowed_video_types',
'value' => json_encode(['mp4', 'avi', 'mov', 'wmv', 'flv', 'webm']),
'type' => 'tags_input',
'group' => 'upload',
'label' => 'İzin Verilen Video Formatları',
'description' => 'Yüklenebilecek video dosya türleri',
'is_public' => false,
'is_active' => true,
],
[
'key' => 'upload_image_quality',
'value' => '85',
'type' => 'slider',
'group' => 'upload',
'label' => 'Resim Kalitesi (%)',
'description' => 'Yüklenen resimlerin sıkıştırma kalitesi (1-100 arası)',
'is_public' => false,
'is_active' => true,
],
[
'key' => 'upload_storage_driver',
'value' => 'local',
'type' => 'radio',
'group' => 'upload',
'label' => 'Storage Driver',
'description' => 'Dosya saklama yöntemi',
'is_public' => false,
'is_active' => true,
],
[
'key' => 'upload_cdn_url',
'value' => '',
'type' => 'string',
'group' => 'upload',
'label' => 'CDN URL',
'description' => 'CDN sunucusu adresi (boş bırakılabilir)',
'is_public' => false,
'is_active' => true,
],
[
'key' => 'upload_folder_structure',
'value' => 'date',
'type' => 'radio',
'group' => 'upload',
'label' => 'Klasör Yapısı',
'description' => 'Dosyaların saklanma klasör yapısı',
'is_public' => false,
'is_active' => true,
],
// ==========================================
// BİLDİRİM AYARLARI (notification)
// ==========================================
[
'key' => 'notification_email_enabled',
'value' => '1',
'type' => 'boolean',
'group' => 'notification',
'label' => 'E-posta Bildirimleri',
'description' => 'E-posta bildirimleri aktif mi?',
'is_public' => false,
'is_active' => true,
],
[
'key' => 'notification_sms_enabled',
'value' => '0',
'type' => 'boolean',
'group' => 'notification',
'label' => 'SMS Bildirimleri',
'description' => 'SMS bildirimleri aktif mi?',
'is_public' => false,
'is_active' => true,
],
[
'key' => 'notification_push_enabled',
'value' => '0',
'type' => 'boolean',
'group' => 'notification',
'label' => 'Push Bildirimleri',
'description' => 'Push bildirimleri aktif mi?',
'is_public' => false,
'is_active' => true,
],
[
'key' => 'notification_in_app_enabled',
'value' => '1',
'type' => 'boolean',
'group' => 'notification',
'label' => 'İn-App Bildirimleri',
'description' => 'Uygulama içi bildirimler aktif mi?',
'is_public' => false,
'is_active' => true,
],
[
'key' => 'notification_channels',
'value' => json_encode(['email', 'in_app']),
'type' => 'checkbox_list',
'group' => 'notification',
'label' => 'Aktif Bildirim Kanalları',
'description' => 'Aktif olacak bildirim kanalları',
'is_public' => false,
'is_active' => true,
],
// ==========================================
// CACHE AYARLARI (cache)
// ==========================================
[
'key' => 'cache_driver',
'value' => 'file',
'type' => 'radio',
'group' => 'cache',
'label' => 'Cache Driver',
'description' => 'Cache saklama yöntemi',
'is_public' => false,
'is_active' => true,
],
[
'key' => 'cache_duration',
'value' => '60',
'type' => 'integer',
'group' => 'cache',
'label' => 'Cache Süresi (dakika)',
'description' => 'Cache\'in geçerlilik süresi',
'is_public' => false,
'is_active' => true,
],
[
'key' => 'cache_enabled',
'value' => '1',
'type' => 'boolean',
'group' => 'cache',
'label' => 'Cache Aktif',
'description' => 'Cache sistemi aktif mi?',
'is_public' => false,
'is_active' => true,
],
[
'key' => 'cache_prefix',
'value' => 'citrus_',
'type' => 'string',
'group' => 'cache',
'label' => 'Cache Prefix',
'description' => 'Cache anahtarları için önek',
'is_public' => false,
'is_active' => true,
],
// ==========================================
// ÖDEME AYARLARI (payment)
// ==========================================
[
'key' => 'payment_default_gateway',
'value' => 'stripe',
'type' => 'radio',
'group' => 'payment',
'label' => 'Varsayılan Ödeme Gateway\'i',
'description' => 'Varsayılan ödeme servisi',
'is_public' => false,
'is_active' => true,
],
[
'key' => 'payment_test_mode',
'value' => '1',
'type' => 'boolean',
'group' => 'payment',
'label' => 'Test Modu',
'description' => 'Ödeme test modunda mı?',
'is_public' => false,
'is_active' => true,
],
[
'key' => 'payment_currency',
'value' => 'TRY',
'type' => 'string',
'group' => 'payment',
'label' => 'Ödeme Para Birimi',
'description' => 'Ödemeler için para birimi',
'is_public' => false,
'is_active' => true,
],
[
'key' => 'payment_tax_rate',
'value' => '20',
'type' => 'float',
'group' => 'payment',
'label' => 'Vergi Oranı (%)',
'description' => 'Varsayılan vergi oranı',
'is_public' => false,
'is_active' => true,
],
[
'key' => 'payment_methods',
'value' => json_encode(['credit_card', 'bank_transfer']),
'type' => 'checkbox_list',
'group' => 'payment',
'label' => 'Ödeme Yöntemleri',
'description' => 'Aktif ödeme yöntemleri',
'is_public' => false,
'is_active' => true,
],
// ==========================================
// API AYARLARI (api)
// ==========================================
[
'key' => 'api_rate_limit',
'value' => '60',
'type' => 'integer',
'group' => 'api',
'label' => 'API Rate Limit',
'description' => 'Dakikada maksimum API isteği sayısı',
'is_public' => false,
'is_active' => true,
],
[
'key' => 'api_auth_method',
'value' => 'jwt',
'type' => 'radio',
'group' => 'api',
'label' => 'API Kimlik Doğrulama Yöntemi',
'description' => 'API için kimlik doğrulama yöntemi',
'is_public' => false,
'is_active' => true,
],
[
'key' => 'api_key_expiration',
'value' => '30',
'type' => 'integer',
'group' => 'api',
'label' => 'API Key Geçerlilik Süresi (gün)',
'description' => 'API anahtarının geçerlilik süresi',
'is_public' => false,
'is_active' => true,
],
[
'key' => 'api_versioning_enabled',
'value' => '1',
'type' => 'boolean',
'group' => 'api',
'label' => 'API Versiyonlama',
'description' => 'API versiyonlama aktif mi?',
'is_public' => false,
'is_active' => true,
],
// ==========================================
// LOGGING AYARLARI (logging)
// ==========================================
[
'key' => 'log_level',
'value' => 'info',
'type' => 'radio',
'group' => 'logging',
'label' => 'Log Seviyesi',
'description' => 'Kaydedilecek log seviyesi',
'is_public' => false,
'is_active' => true,
],
[
'key' => 'log_driver',
'value' => 'daily',
'type' => 'radio',
'group' => 'logging',
'label' => 'Log Driver',
'description' => 'Log saklama yöntemi',
'is_public' => false,
'is_active' => true,
],
[
'key' => 'log_retention_days',
'value' => '30',
'type' => 'integer',
'group' => 'logging',
'label' => 'Log Saklama Süresi (gün)',
'description' => 'Log dosyalarının saklanma süresi',
'is_public' => false,
'is_active' => true,
],
[
'key' => 'log_error_reporting',
'value' => '1',
'type' => 'boolean',
'group' => 'logging',
'label' => 'Hata Raporlama',
'description' => 'Hata raporlama aktif mi?',
'is_public' => false,
'is_active' => true,
],
// ==========================================
// PERFORMANS AYARLARI (performance)
// ==========================================
[
'key' => 'performance_query_cache_enabled',
'value' => '1',
'type' => 'boolean',
'group' => 'performance',
'label' => 'Query Cache Aktif',
'description' => 'Veritabanı sorgu cache\'i aktif mi?',
'is_public' => false,
'is_active' => true,
],
[
'key' => 'performance_asset_minification',
'value' => '1',
'type' => 'boolean',
'group' => 'performance',
'label' => 'Asset Minification',
'description' => 'CSS/JS dosyalarının küçültülmesi aktif mi?',
'is_public' => false,
'is_active' => true,
],
[
'key' => 'performance_cdn_enabled',
'value' => '0',
'type' => 'boolean',
'group' => 'performance',
'label' => 'CDN Aktif',
'description' => 'CDN kullanımı aktif mi?',
'is_public' => false,
'is_active' => true,
],
[
'key' => 'performance_lazy_loading_enabled',
'value' => '1',
'type' => 'boolean',
'group' => 'performance',
'label' => 'Lazy Loading Aktif',
'description' => 'Resimler için lazy loading aktif mi?',
'is_public' => false,
'is_active' => true,
],
[
'key' => 'performance_image_optimization',
'value' => '1',
'type' => 'boolean',
'group' => 'performance',
'label' => 'Resim Optimizasyonu',
'description' => 'Otomatik resim optimizasyonu aktif mi?',
'is_public' => false,
'is_active' => true,
],
// ==========================================
// ENTEGRASYON AYARLARI (integration)
// ==========================================
[
'key' => 'integration_recaptcha_site_key',
'value' => '',
'type' => 'string',
'group' => 'integration',
'label' => 'reCAPTCHA Site Key',
'description' => 'Google reCAPTCHA site anahtarı',
'is_public' => false,
'is_active' => true,
],
[
'key' => 'integration_recaptcha_secret_key',
'value' => '',
'type' => 'string',
'group' => 'integration',
'label' => 'reCAPTCHA Secret Key',
'description' => 'Google reCAPTCHA gizli anahtarı',
'is_public' => false,
'is_active' => true,
],
[
'key' => 'integration_google_maps_api_key',
'value' => '',
'type' => 'string',
'group' => 'integration',
'label' => 'Google Maps API Key',
'description' => 'Google Maps API anahtarı',
'is_public' => false,
'is_active' => true,
],
[
'key' => 'integration_stripe_public_key',
'value' => '',
'type' => 'string',
'group' => 'integration',
'label' => 'Stripe Public Key',
'description' => 'Stripe public anahtarı',
'is_public' => false,
'is_active' => true,
],
[
'key' => 'integration_stripe_secret_key',
'value' => '',
'type' => 'string',
'group' => 'integration',
'label' => 'Stripe Secret Key',
'description' => 'Stripe gizli anahtarı',
'is_public' => false,
'is_active' => true,
],
[
'key' => 'integration_paypal_client_id',
'value' => '',
'type' => 'string',
'group' => 'integration',
'label' => 'PayPal Client ID',
'description' => 'PayPal client ID',
'is_public' => false,
'is_active' => true,
],
[
'key' => 'integration_paypal_secret',
'value' => '',
'type' => 'string',
'group' => 'integration',
'label' => 'PayPal Secret',
'description' => 'PayPal secret anahtarı',
'is_public' => false,
'is_active' => true,
],
[
'key' => 'integration_aws_access_key',
'value' => '',
'type' => 'string',
'group' => 'integration',
'label' => 'AWS Access Key',
'description' => 'Amazon Web Services erişim anahtarı',
'is_public' => false,
'is_active' => true,
],
[
'key' => 'integration_aws_secret_key',
'value' => '',
'type' => 'string',
'group' => 'integration',
'label' => 'AWS Secret Key',
'description' => 'Amazon Web Services gizli anahtarı',
'is_public' => false,
'is_active' => true,
],
[
'key' => 'integration_aws_region',
'value' => 'us-east-1',
'type' => 'string',
'group' => 'integration',
'label' => 'AWS Region',
'description' => 'Amazon Web Services bölgesi',
'is_public' => false,
'is_active' => true,
],
];
foreach ($settings as $setting) {
$existing = Setting::where('key', $setting['key'])->first();
if ($existing) {
$updated = false;
// Sadece değişmişse güncelle
foreach ($setting as $field => $value) {
if ($existing->$field != $value) {
$updated = true;
break;
}
}
if ($updated) {
$existing->update($setting);
$this->command->info("Setting updated: " . $setting['key']);
} else {
$this->command->info("Setting unchanged: " . $setting['key']);
}
} else {
Setting::create($setting);
$this->command->info("Setting created: " . $setting['key']);
}
}
}
}