<?php

namespace Database\Seeders;

use Illuminate\Database\Seeder;
use App\Models\PointSetting;
use App\Models\PointReward;

class PointsSystemSeeder extends Seeder
{
    /**
     * Run the database seeds.
     */
    public function run(): void
    {
        // إعدادات النقاط الافتراضية
        $settings = [
            [
                'key' => 'referral_points',
                'value' => '10',
                'description' => 'عدد النقاط المكتسبة عند دعوة صديق',
            ],
            [
                'key' => 'welcome_points',
                'value' => '5',
                'description' => 'عدد النقاط المكتسبة عند التسجيل بكود دعوة',
            ],
            [
                'key' => 'points_to_money_rate',
                'value' => '100',
                'description' => 'عدد النقاط المطلوبة للحصول على دينار واحد',
            ],
            [
                'key' => 'max_referral_points_per_month',
                'value' => '1000',
                'description' => 'الحد الأقصى للنقاط من الإحالات شهرياً',
            ],
        ];

        foreach ($settings as $setting) {
            PointSetting::updateOrCreate(
                ['key' => $setting['key']],
                $setting
            );
        }

        // مكافآت افتراضية
        $rewards = [
            [
                'name' => '10% Discount on Taxi',
                'name_ar' => 'خصم 10% على التاكسي',
                'description' => 'Get 10% discount on your next taxi ride',
                'description_ar' => 'احصل على خصم 10% على رحلتك التالية بالتاكسي',
                'type' => 'discount',
                'points_required' => 50,
                'value' => 10.00,
                'currency' => 'IQD',
                'is_active' => true,
                'max_redemptions' => 1000,
            ],
            [
                'name' => 'Free Taxi Ride',
                'name_ar' => 'رحلة تاكسي مجانية',
                'description' => 'Get one free taxi ride up to 5000 IQD',
                'description_ar' => 'احصل على رحلة تاكسي مجانية حتى 5000 دينار',
                'type' => 'free_service',
                'points_required' => 200,
                'value' => 5000.00,
                'currency' => 'IQD',
                'is_active' => true,
                'max_redemptions' => 500,
            ],
            [
                'name' => 'Restaurant Voucher',
                'name_ar' => 'قسيمة مطعم',
                'description' => 'Get 20% discount at partner restaurants',
                'description_ar' => 'احصل على خصم 20% في المطاعم الشريكة',
                'type' => 'discount',
                'points_required' => 100,
                'value' => 20.00,
                'currency' => 'IQD',
                'is_active' => true,
                'max_redemptions' => 200,
            ],
            [
                'name' => 'Gas Cylinder Discount',
                'name_ar' => 'خصم على أسطوانة الغاز',
                'description' => 'Get 15% discount on gas cylinder delivery',
                'description_ar' => 'احصل على خصم 15% على توصيل أسطوانة الغاز',
                'type' => 'discount',
                'points_required' => 75,
                'value' => 15.00,
                'currency' => 'IQD',
                'is_active' => true,
                'max_redemptions' => 300,
            ],
            [
                'name' => 'Cash Reward',
                'name_ar' => 'مكافأة نقدية',
                'description' => 'Convert points to cash',
                'description_ar' => 'حول النقاط إلى نقود',
                'type' => 'cash',
                'points_required' => 1000,
                'value' => 10.00,
                'currency' => 'IQD',
                'is_active' => true,
                'max_redemptions' => 100,
            ],
        ];

        foreach ($rewards as $reward) {
            PointReward::updateOrCreate(
                [
                    'name' => $reward['name'],
                    'type' => $reward['type'],
                ],
                $reward
            );
        }

        $this->command->info('تم إنشاء نظام النقاط والدعوات بنجاح');
    }
}
