<?php

namespace Database\Seeders;

use App\Http\Controllers\Admin\SettingsController;
use Illuminate\Database\Seeder;

class SettingsSeeder extends Seeder
{
    /**
     * Run the database seeds.
     */
    public function run(): void
    {
        // SettingsController'dan settings definition'ı al
        $settingsDefinition = SettingsController::$settingsDefinition;

        foreach ($settingsDefinition as $key => $definition) {
            $value = $definition['default'];

            // Array tipindeki değerleri JSON string'e çevir
            if ($definition['type'] === 'array' && is_array($value)) {
                $value = json_encode($value);
            }

            \App\Models\Setting::updateOrInsert(['key' => $key, 'group' => $definition['group']], [
                'value' => $value,

            ]);
        }

        $this->seedCaptchaKeys();
    }

    /**
     * PRC-632 — reCAPTCHA anahtarları (localhost test, Google console'da
     * localhost domaine kayıtlı). Tek-kaynak Settings; .env DEĞİL.
     *
     * captcha_type=recaptcha_v3: seedlenen anahtarlar v3 olduğu için tip de
     * v3 olmalı (uyumsuzlukta "Geçersiz anahtar türü" hatası). Aç-kapa
     * (captcha_form_protection) ve hangi form'lar (captcha_for_select_forms)
     * admin Security ayarından gelmeye devam eder — burada zorlanmaz.
     *
     * Secret, Setting modeli mutator'ıyla at-rest şifreli saklanır
     * (_secret_key suffix); bu yüzden generic döngünün updateOrInsert'ü değil
     * Eloquent updateOrCreate kullanılır (Query Builder mutator'ı atlar).
     */
    protected function seedCaptchaKeys(): void
    {
        \App\Models\Setting::updateOrCreate(
            ['key' => 'captcha_type', 'group' => 'security'],
            ['value' => 'recaptcha_v3'],
        );

        \App\Models\Setting::updateOrCreate(
            ['key' => 'captcha_site_key', 'group' => 'security'],
            ['value' => '6LfyeiAtAAAAAJAElizgn8fISsfTmvj4EUiloRri'],
        );

        \App\Models\Setting::updateOrCreate(
            ['key' => 'captcha_secret_key', 'group' => 'security'],
            ['value' => '6LfyeiAtAAAAAElcPHweczONr-u5m7DxLFKWXRCs'],
        );
    }
}
