<?php
declare(strict_types=1);

use App\Core\Database;

return function (Database $db): void {
    // Seed the standard 10-criteria performance evaluation template
    // from the club's official evaluation form (تعديل تقييم الاداء)

    $criteriaJson = json_encode([
        'criteria' => [
            ['id' => 1, 'name_ar' => 'الإلمام بالمهام الوظيفية وسرعة ودقة إنجاز الأعمال', 'max_score' => 10],
            ['id' => 2, 'name_ar' => 'المشاركة والعمل ضمن فريق واحترام أوامر الرؤساء', 'max_score' => 10],
            ['id' => 3, 'name_ar' => 'القدرة على تحديد خطوط العمل والبرنامج الزمني', 'max_score' => 10],
            ['id' => 4, 'name_ar' => 'الحفاظ على المظهر العام والالتزام بمكان العمل', 'max_score' => 10],
            ['id' => 5, 'name_ar' => 'تحمل ضغط العمل في الأوقات الرسمية والإضافية', 'max_score' => 10],
            ['id' => 6, 'name_ar' => 'القدرة على نقل الخبرة في مجال التخصص', 'max_score' => 10],
            ['id' => 7, 'name_ar' => 'الرغبة في التعلم والتطوير وطرح أفكار جديدة', 'max_score' => 10],
            ['id' => 8, 'name_ar' => 'مدى الالتزام بتطبيق اللوائح والقوانين والأوامر الإدارية', 'max_score' => 10],
            ['id' => 9, 'name_ar' => 'القدرة على التواصل مع الآخرين (الموظفين – الأعضاء)', 'max_score' => 10],
            ['id' => 10, 'name_ar' => 'القدرة على العمل بدون إشراف وتحمل مسؤولية أعلى', 'max_score' => 10],
        ],
        'total_max_score' => 100,
        'rating_labels' => [
            ['min' => 0,  'max' => 49,  'label_ar' => 'ضعيف',    'label_en' => 'Weak'],
            ['min' => 50, 'max' => 64,  'label_ar' => 'مقبول',    'label_en' => 'Acceptable'],
            ['min' => 65, 'max' => 79,  'label_ar' => 'جيد',      'label_en' => 'Good'],
            ['min' => 80, 'max' => 89,  'label_ar' => 'جيد جداً', 'label_en' => 'Very Good'],
            ['min' => 90, 'max' => 100, 'label_ar' => 'ممتاز',    'label_en' => 'Excellent'],
        ],
        'evaluators' => [
            ['role' => 'direct_manager', 'label_ar' => 'المدير المباشر'],
            ['role' => 'general_supervisor', 'label_ar' => 'المشرف العام'],
        ],
        'signatories' => [
            ['role' => 'employee', 'label_ar' => 'توقيع الموظف'],
            ['role' => 'hr_manager', 'label_ar' => 'مدير الموارد البشرية'],
            ['role' => 'general_supervisor', 'label_ar' => 'المشرف العام'],
            ['role' => 'board_chairman', 'label_ar' => 'رئيس مجلس الإدارة'],
            ['role' => 'executive_director', 'label_ar' => 'المدير التنفيذي'],
        ],
    ], JSON_UNESCAPED_UNICODE);

    $exists = $db->selectOne(
        "SELECT 1 FROM system_config WHERE config_key = 'hr.performance.criteria_template' LIMIT 1",
        []
    );

    if (!$exists) {
        $db->insert('system_config', [
            'config_key'     => 'hr.performance.criteria_template',
            'config_value'   => $criteriaJson,
            'config_type'    => 'json',
            'group_name'     => 'hr',
            'description_ar' => 'قالب معايير تقييم الأداء (10 معايير × 10 درجات)',
            'description_en' => 'Performance evaluation criteria template',
            'is_editable'    => 1,
            'created_at'     => date('Y-m-d H:i:s'),
            'updated_at'     => date('Y-m-d H:i:s'),
        ]);
    } else {
        $db->query(
            "UPDATE system_config SET config_value = ?, updated_at = NOW() WHERE config_key = 'hr.performance.criteria_template'",
            [$criteriaJson]
        );
    }
};
