<?php
declare(strict_types=1);

use App\Core\Database;

return function (Database $db): void {
    $ts = date('Y-m-d H:i:s');

    $configs = [
        [
            'config_key'   => 'procurement.match_tolerance_pct',
            'config_value' => '2.00',
            'description'  => 'نسبة التسامح في المطابقة الثلاثية (%) - 3-way match tolerance percentage',
        ],
        [
            'config_key'   => 'procurement.auto_create_pr_on_reorder',
            'config_value' => '0',
            'description'  => 'إنشاء طلب شراء تلقائياً عند الوصول لحد إعادة الطلب - Auto-create PR when reorder point reached',
        ],
        [
            'config_key'   => 'procurement.default_payment_terms_days',
            'config_value' => '30',
            'description'  => 'شروط الدفع الافتراضية (بالأيام) - Default payment terms in days',
        ],
        [
            'config_key'   => 'procurement.require_grn_before_invoice',
            'config_value' => '1',
            'description'  => 'إلزام وجود إذن استلام قبل إنشاء فاتورة مورد - Require GRN before vendor invoice',
        ],
        [
            'config_key'   => 'procurement.auto_approve_matched_invoices',
            'config_value' => '0',
            'description'  => 'اعتماد الفواتير المطابقة تلقائياً - Auto-approve invoices that pass 3-way match',
        ],
    ];

    foreach ($configs as $cfg) {
        $existing = $db->selectOne(
            "SELECT id FROM system_config WHERE config_key = ?",
            [$cfg['config_key']]
        );
        if ($existing) {
            continue;
        }
        $db->insert('system_config', [
            'config_key'    => $cfg['config_key'],
            'config_value'  => $cfg['config_value'],
            'config_type'   => is_numeric($cfg['config_value']) ? (str_contains($cfg['config_value'], '.') ? 'float' : 'integer') : 'string',
            'group_name'    => 'procurement',
            'description_ar' => $cfg['description'],
            'is_editable'   => 1,
            'created_at'    => $ts,
            'updated_at'    => $ts,
        ]);
    }
};
