Files
bogazici-api/database/seeders/SettingSeeder.php
2026-03-27 10:41:54 +03:00

275 lines
23 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
{
/**
* Seed site settings across all groups.
*/
public function run(): void
{
$settings = [
...$this->general(),
...$this->contact(),
...$this->maps(),
...$this->social(),
...$this->seo(),
...$this->analytics(),
...$this->header(),
...$this->footer(),
...$this->integrations(),
...$this->infoSections(),
];
foreach ($settings as $setting) {
$value = $setting['value'];
unset($setting['value']);
Setting::query()->updateOrCreate(
['group' => $setting['group'], 'key' => $setting['key']],
array_merge($setting, [
'value' => Setting::query()
->where('group', $setting['group'])
->where('key', $setting['key'])
->value('value') ?? $value,
]),
);
}
}
/**
* @return list<array<string, mixed>>
*/
private function general(): array
{
$g = 'general';
return [
['group' => $g, 'key' => 'site_name', 'value' => 'Boğaziçi Denizcilik Eğitim Kurumu', 'type' => 'text', 'label' => 'Site Adı', 'order_index' => 0, 'is_public' => true],
['group' => $g, 'key' => 'site_tagline', 'value' => null, 'type' => 'text', 'label' => 'Slogan', 'order_index' => 1, 'is_public' => true],
['group' => $g, 'key' => 'site_description', 'value' => null, 'type' => 'textarea', 'label' => 'Kısa Site Açıklaması', 'order_index' => 2, 'is_public' => true],
['group' => $g, 'key' => 'logo_light', 'value' => null, 'type' => 'image', 'label' => 'Logo — Açık Tema (beyaz navbar)', 'order_index' => 3, 'is_public' => true],
['group' => $g, 'key' => 'logo_dark', 'value' => null, 'type' => 'image', 'label' => 'Logo — Koyu Tema (dark bg)', 'order_index' => 4, 'is_public' => true],
['group' => $g, 'key' => 'favicon', 'value' => null, 'type' => 'image', 'label' => 'Favicon (32x32 PNG)', 'order_index' => 5, 'is_public' => true],
['group' => $g, 'key' => 'apple_touch_icon', 'value' => null, 'type' => 'image', 'label' => 'Apple Touch Icon (180x180)', 'order_index' => 6, 'is_public' => true],
['group' => $g, 'key' => 'announcement_bar_active', 'value' => 'false', 'type' => 'boolean', 'label' => 'Üst Bar Aktif mi', 'order_index' => 7, 'is_public' => true],
['group' => $g, 'key' => 'announcement_bar_text', 'value' => null, 'type' => 'text', 'label' => 'Üst Bar Metni', 'order_index' => 8, 'is_public' => true],
['group' => $g, 'key' => 'announcement_bar_url', 'value' => null, 'type' => 'url', 'label' => 'Üst Bar Linki', 'order_index' => 9, 'is_public' => true],
['group' => $g, 'key' => 'announcement_bar_bg_color', 'value' => '#1a3e74', 'type' => 'color', 'label' => 'Üst Bar Arka Plan Rengi', 'order_index' => 10, 'is_public' => true],
['group' => $g, 'key' => 'maintenance_mode', 'value' => 'false', 'type' => 'boolean', 'label' => 'Bakım Modu', 'order_index' => 11, 'is_public' => true],
['group' => $g, 'key' => 'maintenance_message', 'value' => null, 'type' => 'textarea', 'label' => 'Bakım Modu Mesajı', 'order_index' => 12, 'is_public' => true],
];
}
/**
* @return list<array<string, mixed>>
*/
private function contact(): array
{
$g = 'contact';
return [
['group' => $g, 'key' => 'phone_primary', 'value' => null, 'type' => 'text', 'label' => 'Ana Telefon', 'order_index' => 0, 'is_public' => true],
['group' => $g, 'key' => 'phone_secondary', 'value' => null, 'type' => 'text', 'label' => 'İkinci Telefon', 'order_index' => 1, 'is_public' => true],
['group' => $g, 'key' => 'email_info', 'value' => null, 'type' => 'text', 'label' => 'Bilgi E-postası', 'order_index' => 2, 'is_public' => true],
['group' => $g, 'key' => 'email_support', 'value' => null, 'type' => 'text', 'label' => 'Destek E-postası', 'order_index' => 3, 'is_public' => true],
['group' => $g, 'key' => 'email_kayit', 'value' => null, 'type' => 'text', 'label' => 'Kayıt E-postası', 'order_index' => 4, 'is_public' => true],
['group' => $g, 'key' => 'address_full', 'value' => null, 'type' => 'textarea', 'label' => 'Tam Adres', 'order_index' => 5, 'is_public' => true],
['group' => $g, 'key' => 'address_short', 'value' => null, 'type' => 'text', 'label' => 'Kısa Adres (navbar için)', 'order_index' => 6, 'is_public' => true],
['group' => $g, 'key' => 'district', 'value' => null, 'type' => 'text', 'label' => 'İlçe', 'order_index' => 7, 'is_public' => true],
['group' => $g, 'key' => 'city', 'value' => null, 'type' => 'text', 'label' => 'Şehir', 'order_index' => 8, 'is_public' => true],
['group' => $g, 'key' => 'postal_code', 'value' => null, 'type' => 'text', 'label' => 'Posta Kodu', 'order_index' => 9, 'is_public' => true],
['group' => $g, 'key' => 'working_hours_weekday', 'value' => null, 'type' => 'text', 'label' => 'Hafta İçi Saatleri', 'order_index' => 10, 'is_public' => true],
['group' => $g, 'key' => 'working_hours_saturday', 'value' => null, 'type' => 'text', 'label' => 'Cumartesi Saatleri', 'order_index' => 11, 'is_public' => true],
['group' => $g, 'key' => 'working_hours_sunday', 'value' => null, 'type' => 'text', 'label' => 'Pazar Saatleri', 'order_index' => 12, 'is_public' => true],
['group' => $g, 'key' => 'whatsapp_number', 'value' => null, 'type' => 'text', 'label' => 'WhatsApp (+90 ile başlayan)', 'order_index' => 13, 'is_public' => true],
['group' => $g, 'key' => 'whatsapp_message', 'value' => null, 'type' => 'text', 'label' => 'WhatsApp Varsayılan Mesaj', 'order_index' => 14, 'is_public' => true],
];
}
/**
* @return list<array<string, mixed>>
*/
private function maps(): array
{
$g = 'maps';
return [
['group' => $g, 'key' => 'google_maps_embed_url', 'value' => null, 'type' => 'textarea', 'label' => 'Google Maps Embed URL (iframe src)', 'order_index' => 0, 'is_public' => true],
['group' => $g, 'key' => 'google_maps_place_url', 'value' => null, 'type' => 'url', 'label' => 'Google Maps Profil Linki', 'order_index' => 1, 'is_public' => true],
['group' => $g, 'key' => 'google_maps_api_key', 'value' => null, 'type' => 'text', 'label' => 'Google Maps API Key', 'order_index' => 2, 'is_public' => false],
['group' => $g, 'key' => 'latitude', 'value' => null, 'type' => 'text', 'label' => 'Enlem', 'order_index' => 3, 'is_public' => true],
['group' => $g, 'key' => 'longitude', 'value' => null, 'type' => 'text', 'label' => 'Boylam', 'order_index' => 4, 'is_public' => true],
['group' => $g, 'key' => 'map_zoom_level', 'value' => '15', 'type' => 'text', 'label' => 'Harita Zoom (1-20)', 'order_index' => 5, 'is_public' => true],
];
}
/**
* @return list<array<string, mixed>>
*/
private function social(): array
{
$g = 'social';
return [
['group' => $g, 'key' => 'instagram_url', 'value' => null, 'type' => 'url', 'label' => 'Instagram Profil URL', 'order_index' => 0, 'is_public' => true],
['group' => $g, 'key' => 'instagram_handle', 'value' => null, 'type' => 'text', 'label' => 'Instagram Kullanıcı Adı (@siz)', 'order_index' => 1, 'is_public' => true],
['group' => $g, 'key' => 'facebook_url', 'value' => null, 'type' => 'url', 'label' => 'Facebook Sayfası URL', 'order_index' => 2, 'is_public' => true],
['group' => $g, 'key' => 'facebook_page_id', 'value' => null, 'type' => 'text', 'label' => 'Facebook Page ID', 'order_index' => 3, 'is_public' => false],
['group' => $g, 'key' => 'twitter_url', 'value' => null, 'type' => 'url', 'label' => 'X (Twitter) Profil URL', 'order_index' => 4, 'is_public' => true],
['group' => $g, 'key' => 'twitter_handle', 'value' => null, 'type' => 'text', 'label' => 'X Kullanıcı Adı (@siz)', 'order_index' => 5, 'is_public' => true],
['group' => $g, 'key' => 'youtube_url', 'value' => null, 'type' => 'url', 'label' => 'YouTube Kanal URL', 'order_index' => 6, 'is_public' => true],
['group' => $g, 'key' => 'youtube_channel_id', 'value' => null, 'type' => 'text', 'label' => 'YouTube Channel ID', 'order_index' => 7, 'is_public' => false],
['group' => $g, 'key' => 'linkedin_url', 'value' => null, 'type' => 'url', 'label' => 'LinkedIn Sayfa URL', 'order_index' => 8, 'is_public' => true],
['group' => $g, 'key' => 'tiktok_url', 'value' => null, 'type' => 'url', 'label' => 'TikTok Profil URL', 'order_index' => 9, 'is_public' => true],
['group' => $g, 'key' => 'pinterest_url', 'value' => null, 'type' => 'url', 'label' => 'Pinterest URL', 'order_index' => 10, 'is_public' => true],
];
}
/**
* @return list<array<string, mixed>>
*/
private function seo(): array
{
$g = 'seo';
return [
// Temel SEO
['group' => $g, 'key' => 'meta_title_suffix', 'value' => 'Boğaziçi Denizcilik', 'type' => 'text', 'label' => 'Title Eki', 'order_index' => 0, 'is_public' => true],
['group' => $g, 'key' => 'meta_title_separator', 'value' => '|', 'type' => 'text', 'label' => 'Ayraç Karakteri', 'order_index' => 1, 'is_public' => true],
['group' => $g, 'key' => 'default_meta_description', 'value' => null, 'type' => 'textarea', 'label' => 'Varsayılan Meta Açıklama', 'order_index' => 2, 'is_public' => true],
['group' => $g, 'key' => 'default_meta_keywords', 'value' => null, 'type' => 'textarea', 'label' => 'Varsayılan Keywords (virgülle)', 'order_index' => 3, 'is_public' => true],
['group' => $g, 'key' => 'robots', 'value' => 'index, follow', 'type' => 'text', 'label' => 'Robots', 'order_index' => 4, 'is_public' => true],
['group' => $g, 'key' => 'canonical_domain', 'value' => null, 'type' => 'url', 'label' => 'Canonical Domain', 'order_index' => 5, 'is_public' => true],
// Open Graph
['group' => $g, 'key' => 'og_title', 'value' => null, 'type' => 'text', 'label' => 'OG Default Title', 'order_index' => 6, 'is_public' => true],
['group' => $g, 'key' => 'og_description', 'value' => null, 'type' => 'textarea', 'label' => 'OG Default Description', 'order_index' => 7, 'is_public' => true],
['group' => $g, 'key' => 'og_image', 'value' => null, 'type' => 'image', 'label' => 'OG Default Görsel (1200x630 px)', 'order_index' => 8, 'is_public' => true],
['group' => $g, 'key' => 'og_type', 'value' => 'website', 'type' => 'text', 'label' => 'OG Type', 'order_index' => 9, 'is_public' => true],
['group' => $g, 'key' => 'og_locale', 'value' => 'tr_TR', 'type' => 'text', 'label' => 'OG Locale', 'order_index' => 10, 'is_public' => true],
['group' => $g, 'key' => 'og_site_name', 'value' => null, 'type' => 'text', 'label' => 'OG Site Name', 'order_index' => 11, 'is_public' => true],
['group' => $g, 'key' => 'facebook_app_id', 'value' => null, 'type' => 'text', 'label' => 'Facebook App ID', 'order_index' => 12, 'is_public' => false],
// Twitter / X Card
['group' => $g, 'key' => 'twitter_card_type', 'value' => 'summary_large_image', 'type' => 'text', 'label' => 'Card Tipi', 'order_index' => 13, 'is_public' => true],
['group' => $g, 'key' => 'twitter_site', 'value' => null, 'type' => 'text', 'label' => 'Site @handle', 'order_index' => 14, 'is_public' => true],
['group' => $g, 'key' => 'twitter_creator', 'value' => null, 'type' => 'text', 'label' => 'İçerik Sahibi @handle', 'order_index' => 15, 'is_public' => true],
['group' => $g, 'key' => 'twitter_title', 'value' => null, 'type' => 'text', 'label' => 'Twitter Default Title', 'order_index' => 16, 'is_public' => true],
['group' => $g, 'key' => 'twitter_description', 'value' => null, 'type' => 'textarea', 'label' => 'Twitter Default Description', 'order_index' => 17, 'is_public' => true],
['group' => $g, 'key' => 'twitter_image', 'value' => null, 'type' => 'image', 'label' => 'Twitter Card Görseli (1200x600 px)', 'order_index' => 18, 'is_public' => true],
// Doğrulama Kodları
['group' => $g, 'key' => 'google_site_verification', 'value' => null, 'type' => 'text', 'label' => 'Google Search Console Kodu', 'order_index' => 19, 'is_public' => true],
['group' => $g, 'key' => 'bing_site_verification', 'value' => null, 'type' => 'text', 'label' => 'Bing Webmaster Kodu', 'order_index' => 20, 'is_public' => true],
['group' => $g, 'key' => 'yandex_verification', 'value' => null, 'type' => 'text', 'label' => 'Yandex Webmaster Kodu', 'order_index' => 21, 'is_public' => true],
['group' => $g, 'key' => 'pinterest_verification', 'value' => null, 'type' => 'text', 'label' => 'Pinterest Doğrulama Kodu', 'order_index' => 22, 'is_public' => true],
];
}
/**
* @return list<array<string, mixed>>
*/
private function analytics(): array
{
$g = 'analytics';
return [
['group' => $g, 'key' => 'google_analytics_id', 'value' => null, 'type' => 'text', 'label' => 'Google Analytics 4 ID (G-XXXXXXXX)', 'order_index' => 0, 'is_public' => false],
['group' => $g, 'key' => 'google_tag_manager_id', 'value' => null, 'type' => 'text', 'label' => 'Google Tag Manager ID (GTM-XXXXXXX)', 'order_index' => 1, 'is_public' => false],
['group' => $g, 'key' => 'google_ads_id', 'value' => null, 'type' => 'text', 'label' => 'Google Ads Conversion ID', 'order_index' => 2, 'is_public' => false],
['group' => $g, 'key' => 'facebook_pixel_id', 'value' => null, 'type' => 'text', 'label' => 'Meta (Facebook) Pixel ID', 'order_index' => 3, 'is_public' => false],
['group' => $g, 'key' => 'hotjar_id', 'value' => null, 'type' => 'text', 'label' => 'Hotjar Site ID', 'order_index' => 4, 'is_public' => false],
['group' => $g, 'key' => 'clarity_id', 'value' => null, 'type' => 'text', 'label' => 'Microsoft Clarity ID', 'order_index' => 5, 'is_public' => false],
['group' => $g, 'key' => 'tiktok_pixel_id', 'value' => null, 'type' => 'text', 'label' => 'TikTok Pixel ID', 'order_index' => 6, 'is_public' => false],
['group' => $g, 'key' => 'crisp_website_id', 'value' => null, 'type' => 'text', 'label' => 'Crisp Chat Website ID', 'order_index' => 7, 'is_public' => false],
['group' => $g, 'key' => 'custom_head_scripts', 'value' => null, 'type' => 'textarea', 'label' => '<head> içine özel script', 'order_index' => 8, 'is_public' => false],
['group' => $g, 'key' => 'custom_body_scripts', 'value' => null, 'type' => 'textarea', 'label' => '<body> sonuna özel script', 'order_index' => 9, 'is_public' => false],
];
}
/**
* @return list<array<string, mixed>>
*/
private function header(): array
{
$g = 'header';
return [
['group' => $g, 'key' => 'navbar_style_default', 'value' => 'transparent', 'type' => 'text', 'label' => 'Varsayılan Navbar Stili (transparent/white)', 'order_index' => 0, 'is_public' => true],
['group' => $g, 'key' => 'cta_button_text', 'value' => 'Başvuru Yap', 'type' => 'text', 'label' => 'Sağ Üst Buton Metni', 'order_index' => 1, 'is_public' => true],
['group' => $g, 'key' => 'cta_button_url', 'value' => '/kayit', 'type' => 'url', 'label' => 'Sağ Üst Buton Linki', 'order_index' => 2, 'is_public' => true],
['group' => $g, 'key' => 'cta_button_color', 'value' => '#1a3e74', 'type' => 'color', 'label' => 'Sağ Üst Buton Rengi', 'order_index' => 3, 'is_public' => true],
['group' => $g, 'key' => 'show_phone_topbar', 'value' => 'true', 'type' => 'boolean', 'label' => "Üst Bar'da Telefon Göster", 'order_index' => 4, 'is_public' => true],
['group' => $g, 'key' => 'show_email_topbar', 'value' => 'true', 'type' => 'boolean', 'label' => "Üst Bar'da E-posta Göster", 'order_index' => 5, 'is_public' => true],
['group' => $g, 'key' => 'show_address_topbar', 'value' => 'true', 'type' => 'boolean', 'label' => "Üst Bar'da Adres Göster", 'order_index' => 6, 'is_public' => true],
['group' => $g, 'key' => 'show_hours_topbar', 'value' => 'true', 'type' => 'boolean', 'label' => "Üst Bar'da Saat Göster", 'order_index' => 7, 'is_public' => true],
['group' => $g, 'key' => 'show_social_navbar', 'value' => 'true', 'type' => 'boolean', 'label' => "Navbar'da Sosyal Medya İkonları Göster", 'order_index' => 8, 'is_public' => true],
];
}
/**
* @return list<array<string, mixed>>
*/
private function footer(): array
{
$g = 'footer';
return [
['group' => $g, 'key' => 'footer_description', 'value' => null, 'type' => 'textarea', 'label' => 'Footer Açıklaması', 'order_index' => 0, 'is_public' => true],
['group' => $g, 'key' => 'footer_logo', 'value' => null, 'type' => 'image', 'label' => 'Footer Logo (varsa ayrı)', 'order_index' => 1, 'is_public' => true],
['group' => $g, 'key' => 'copyright_text', 'value' => '© 2026 Boğaziçi Denizcilik', 'type' => 'text', 'label' => 'Copyright Metni', 'order_index' => 2, 'is_public' => true],
['group' => $g, 'key' => 'footer_address', 'value' => null, 'type' => 'textarea', 'label' => 'Footer Adres', 'order_index' => 3, 'is_public' => true],
['group' => $g, 'key' => 'footer_phone', 'value' => null, 'type' => 'text', 'label' => 'Footer Telefon', 'order_index' => 4, 'is_public' => true],
['group' => $g, 'key' => 'footer_email', 'value' => null, 'type' => 'text', 'label' => 'Footer E-posta', 'order_index' => 5, 'is_public' => true],
['group' => $g, 'key' => 'footer_bg_color', 'value' => '#0f2847', 'type' => 'color', 'label' => 'Footer Arka Plan Rengi', 'order_index' => 6, 'is_public' => true],
['group' => $g, 'key' => 'show_social_footer', 'value' => 'true', 'type' => 'boolean', 'label' => "Footer'da Sosyal Medya Göster", 'order_index' => 7, 'is_public' => true],
];
}
/**
* @return list<array<string, mixed>>
*/
private function integrations(): array
{
$g = 'integrations';
return [
['group' => $g, 'key' => 'recaptcha_site_key', 'value' => null, 'type' => 'text', 'label' => 'reCAPTCHA v3 Site Key', 'order_index' => 0, 'is_public' => false],
['group' => $g, 'key' => 'recaptcha_secret_key', 'value' => null, 'type' => 'text', 'label' => 'reCAPTCHA v3 Secret Key', 'order_index' => 1, 'is_public' => false],
['group' => $g, 'key' => 'smtp_host', 'value' => null, 'type' => 'text', 'label' => 'SMTP Host', 'order_index' => 2, 'is_public' => false],
['group' => $g, 'key' => 'smtp_port', 'value' => '587', 'type' => 'text', 'label' => 'SMTP Port', 'order_index' => 3, 'is_public' => false],
['group' => $g, 'key' => 'smtp_username', 'value' => null, 'type' => 'text', 'label' => 'SMTP Kullanıcı Adı', 'order_index' => 4, 'is_public' => false],
['group' => $g, 'key' => 'smtp_password', 'value' => null, 'type' => 'text', 'label' => 'SMTP Şifre', 'order_index' => 5, 'is_public' => false],
['group' => $g, 'key' => 'smtp_encryption', 'value' => 'tls', 'type' => 'text', 'label' => 'SMTP Şifreleme (tls/ssl)', 'order_index' => 6, 'is_public' => false],
['group' => $g, 'key' => 'smtp_from_name', 'value' => 'Boğaziçi Denizcilik', 'type' => 'text', 'label' => 'Mail Gönderen Adı', 'order_index' => 7, 'is_public' => false],
['group' => $g, 'key' => 'smtp_from_email', 'value' => null, 'type' => 'text', 'label' => 'Mail Gönderen Adresi', 'order_index' => 8, 'is_public' => false],
['group' => $g, 'key' => 'notification_emails', 'value' => null, 'type' => 'textarea', 'label' => 'Bildirim E-postaları (virgülle)', 'order_index' => 9, 'is_public' => false],
];
}
/**
* @return list<array<string, mixed>>
*/
private function infoSections(): array
{
$g = 'info_sections';
return [
// Info Section 1
['group' => $g, 'key' => 'info_section_1_badge', 'value' => 'Neden Boğaziçi Denizcilik?', 'type' => 'text', 'label' => 'Bölüm 1 — Etiket', 'order_index' => 0, 'is_public' => true],
['group' => $g, 'key' => 'info_section_1_title', 'value' => 'Uluslararası Standartlarda Denizcilik Eğitimi', 'type' => 'text', 'label' => 'Bölüm 1 — Başlık', 'order_index' => 1, 'is_public' => true],
['group' => $g, 'key' => 'info_section_1_body', 'value' => 'Boğaziçi Denizcilik Eğitim Kurumu, Ulaştırma ve Altyapı Bakanlığı onaylı eğitim programlarıyla denizcilik sektörüne nitelikli personel yetiştirmektedir. STCW Sözleşmesi gerekliliklerini karşılayan müfredatımız; köprüüstü simülatörleri, GMDSS telsiz laboratuvarı ve yangın tatbikat alanında uygulamalı olarak verilmektedir.', 'type' => 'textarea', 'label' => 'Bölüm 1 — İçerik', 'order_index' => 2, 'is_public' => true],
['group' => $g, 'key' => 'info_section_1_quote', 'value' => "Boğaziçi Denizcilik'ten aldığım STCW eğitimleri ve simülatör deneyimi sayesinde uluslararası bir denizcilik şirketinde güverte zabiti olarak göreve başladım.", 'type' => 'text', 'label' => 'Bölüm 1 — Alıntı', 'order_index' => 3, 'is_public' => true],
['group' => $g, 'key' => 'info_section_1_quote_author', 'value' => 'Kpt. Murat Aydın — Vardiya Zabiti, MSC Denizcilik', 'type' => 'text', 'label' => 'Bölüm 1 — Alıntı Yazarı', 'order_index' => 4, 'is_public' => true],
['group' => $g, 'key' => 'info_section_1_image', 'value' => null, 'type' => 'image', 'label' => 'Bölüm 1 — Görsel', 'order_index' => 5, 'is_public' => true],
// Info Section 2
['group' => $g, 'key' => 'info_section_2_badge', 'value' => 'Simülatör Destekli Eğitim', 'type' => 'text', 'label' => 'Bölüm 2 — Etiket', 'order_index' => 6, 'is_public' => true],
['group' => $g, 'key' => 'info_section_2_title', 'value' => 'Teoriden Pratiğe, Sınıftan Köprüüstüne', 'type' => 'text', 'label' => 'Bölüm 2 — Başlık', 'order_index' => 7, 'is_public' => true],
['group' => $g, 'key' => 'info_section_2_body', 'value' => 'Eğitim merkezimizde bulunan tam donanımlı köprüüstü simülatörü, ARPA/radar eğitim istasyonları ve ECDIS terminalleri ile kursiyerlerimiz gerçek seyir senaryolarında deneyim kazanmaktadır. GMDSS laboratuvarımızda DSC, NAVTEX, Inmarsat-C ve VHF/MF/HF cihazları üzerinde birebir uygulama yapılmaktadır.', 'type' => 'textarea', 'label' => 'Bölüm 2 — İçerik', 'order_index' => 8, 'is_public' => true],
['group' => $g, 'key' => 'info_section_2_image', 'value' => null, 'type' => 'image', 'label' => 'Bölüm 2 — Görsel', 'order_index' => 9, 'is_public' => true],
];
}
}