<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Support\Facades\DB;

return new class extends Migration
{
    public function up(): void
    {
        $settings = [
            ['group' => 'mobile_app', 'key' => 'auth_otp_mode', 'value' => 'demo', 'type' => 'string', 'label_ar' => 'وضع رمز التحقق', 'description_ar' => 'demo = الرمز دائماً 123456، sms = إرسال رسالة فعلية', 'is_public' => false],
            ['group' => 'mobile_app', 'key' => 'app_primary_color', 'value' => '#1e40af', 'type' => 'string', 'label_ar' => 'اللون الأساسي للتطبيق', 'description_ar' => 'اللون الأساسي في واجهة التطبيق', 'is_public' => true],
            ['group' => 'mobile_app', 'key' => 'app_accent_color', 'value' => '#f59e0b', 'type' => 'string', 'label_ar' => 'اللون الثانوي للتطبيق', 'description_ar' => 'اللون الثانوي في واجهة التطبيق', 'is_public' => true],
            ['group' => 'mobile_app', 'key' => 'app_features_shop', 'value' => '1', 'type' => 'boolean', 'label_ar' => 'تفعيل المتجر', 'description_ar' => 'إظهار قسم المنتجات في التطبيق', 'is_public' => true],
            ['group' => 'mobile_app', 'key' => 'app_features_events', 'value' => '1', 'type' => 'boolean', 'label_ar' => 'تفعيل الفعاليات', 'description_ar' => 'إظهار قسم الفعاليات في التطبيق', 'is_public' => true],
            ['group' => 'mobile_app', 'key' => 'app_features_chat', 'value' => '0', 'type' => 'boolean', 'label_ar' => 'تفعيل المحادثات', 'description_ar' => 'إظهار قسم المحادثات في التطبيق', 'is_public' => true],
            ['group' => 'mobile_app', 'key' => 'app_features_online_payment', 'value' => '0', 'type' => 'boolean', 'label_ar' => 'تفعيل الدفع الإلكتروني', 'description_ar' => 'السماح بالدفع عبر بطاقات الائتمان', 'is_public' => true],
            ['group' => 'mobile_app', 'key' => 'app_min_version', 'value' => '1.0.0', 'type' => 'string', 'label_ar' => 'الحد الأدنى لإصدار التطبيق', 'description_ar' => 'يجب على المستخدم تحديث التطبيق إذا كان أقل من هذا الإصدار', 'is_public' => true],
            ['group' => 'mobile_app', 'key' => 'app_maintenance_mode', 'value' => '0', 'type' => 'boolean', 'label_ar' => 'وضع الصيانة', 'description_ar' => 'إيقاف التطبيق مؤقتاً مع رسالة للمستخدمين', 'is_public' => true],
            ['group' => 'mobile_app', 'key' => 'app_maintenance_message', 'value' => 'التطبيق تحت الصيانة، يرجى المحاولة لاحقاً', 'type' => 'string', 'label_ar' => 'رسالة الصيانة', 'description_ar' => 'الرسالة المعروضة عند تفعيل وضع الصيانة', 'is_public' => true],
            ['group' => 'mobile_app', 'key' => 'firebase_service_account_json', 'value' => '', 'type' => 'json', 'label_ar' => 'ملف Firebase Service Account', 'description_ar' => 'محتوى ملف JSON لحساب خدمة Firebase', 'is_public' => false],
            ['group' => 'payment_gateway', 'key' => 'paymob_api_key', 'value' => '', 'type' => 'string', 'label_ar' => 'مفتاح API لـ Paymob', 'description_ar' => 'مفتاح API من لوحة تحكم Paymob', 'is_public' => false],
            ['group' => 'payment_gateway', 'key' => 'paymob_integration_id', 'value' => '', 'type' => 'string', 'label_ar' => 'رقم التكامل Paymob', 'description_ar' => 'Integration ID من إعدادات البطاقات في Paymob', 'is_public' => false],
            ['group' => 'payment_gateway', 'key' => 'paymob_iframe_id', 'value' => '', 'type' => 'string', 'label_ar' => 'رقم iFrame Paymob', 'description_ar' => 'iFrame ID لصفحة الدفع', 'is_public' => false],
            ['group' => 'payment_gateway', 'key' => 'paymob_hmac_secret', 'value' => '', 'type' => 'string', 'label_ar' => 'مفتاح HMAC Paymob', 'description_ar' => 'مفتاح التحقق من Callbacks', 'is_public' => false],
        ];

        // Get all academy IDs
        $academyIds = DB::table('academies')->pluck('id');

        foreach ($academyIds as $academyId) {
            foreach ($settings as $setting) {
                DB::table('system_settings')->insertOrIgnore(array_merge($setting, [
                    'academy_id' => $academyId,
                    'created_at' => now(),
                    'updated_at' => now(),
                ]));
            }
        }
    }

    public function down(): void
    {
        DB::table('system_settings')
            ->where('group', 'mobile_app')
            ->orWhere('group', 'payment_gateway')
            ->delete();
    }
};
