<?php

namespace App\Database\Seeds;

use CodeIgniter\Database\Seeder;

/**
 * تشغيل: php spark db:seed DemoDataSeeder
 * كلمة المرور لكل الحسابات: password
 */
class DemoDataSeeder extends Seeder
{
    public function run()
    {
        $hash = password_hash('password', PASSWORD_BCRYPT);

        $this->db->table('companies')->insert([
            'name' => 'شركة الاستضافة النموذجية',
            'slug' => 'example-hosting',
            'is_site_enabled' => 1,
            'site_tagline' => 'شريكك الموثوق في عالم الاستضافة والنطاقات',
            'site_about_text' => 'شركة الاستضافة النموذجية بدأت رحلتها بهدف تقديم خدمات استضافة مواقع ونطاقات موثوقة وبأسعار منافسة لعملائنا في المنطقة العربية.',
            'site_vision' => 'أن نكون الخيار الأول لأصحاب الأعمال الرقمية في المنطقة.',
            'site_mission' => 'تقديم خدمات استضافة مستقرة وسريعة مع دعم فني متاح دائماً.',
            'site_services_text' => 'نقدم باقات استضافة متنوعة، تسجيل وتجديد النطاقات، وشهادات الأمان SSL بأفضل الأسعار.',
            'base_currency' => 'USD',
            'email' => 'info@example-hosting.test',
            'phone' => '+20 100 000 0000',
            'notify_before_days_default' => 7,
            'is_active' => 1,
            'created_at' => date('Y-m-d H:i:s'),
            'updated_at' => date('Y-m-d H:i:s'),
        ]);
        $companyId = $this->db->insertID();

        $this->db->table('users')->insert([
            'company_id' => null,
            'is_super_admin' => 1,
            'name' => 'Super Admin',
            'email' => 'super@admin.test',
            'password' => $hash,
            'created_at' => date('Y-m-d H:i:s'),
            'updated_at' => date('Y-m-d H:i:s'),
        ]);

        $this->db->table('users')->insert([
            'company_id' => $companyId,
            'is_super_admin' => 0,
            'name' => 'مدير الشركة',
            'email' => 'admin@example-hosting.test',
            'password' => $hash,
            'created_at' => date('Y-m-d H:i:s'),
            'updated_at' => date('Y-m-d H:i:s'),
        ]);

        $this->db->table('marketers')->insert([
            'company_id' => $companyId,
            'name' => 'أحمد المسوّق',
            'email' => 'marketer@example-hosting.test',
            'commission_type' => 'percentage',
            'commission_value' => 10,
            'is_active' => 1,
            'created_at' => date('Y-m-d H:i:s'),
            'updated_at' => date('Y-m-d H:i:s'),
        ]);
        $marketerId = $this->db->insertID();

        $this->db->table('clients')->insert([
            'company_id' => $companyId,
            'marketer_id' => $marketerId,
            'name' => 'محمد عبدالله',
            'email' => 'client1@example.test',
            'phone' => '+20 111 111 1111',
            'password' => $hash,
            'preferred_locale' => 'ar',
            'is_active' => 1,
            'created_at' => date('Y-m-d H:i:s'),
            'updated_at' => date('Y-m-d H:i:s'),
        ]);
        $client1 = $this->db->insertID();

        $this->db->table('clients')->insert([
            'company_id' => $companyId,
            'name' => 'Sara Ahmed',
            'email' => 'client2@example.test',
            'phone' => '+20 122 222 2222',
            'password' => $hash,
            'preferred_locale' => 'en',
            'is_active' => 1,
            'created_at' => date('Y-m-d H:i:s'),
            'updated_at' => date('Y-m-d H:i:s'),
        ]);
        $client2 = $this->db->insertID();

        $this->db->table('services')->insert([
            'company_id' => $companyId, 'client_id' => $client1, 'type' => 'hosting',
            'name' => 'باقة استضافة 10GB', 'price' => 60, 'currency' => 'USD',
            'billing_cycle' => 'annual', 'start_date' => date('Y-m-d', strtotime('-11 months')),
            'renewal_date' => date('Y-m-d', strtotime('+5 days')), 'status' => 'active',
            'created_at' => date('Y-m-d H:i:s'), 'updated_at' => date('Y-m-d H:i:s'),
        ]);

        $this->db->table('services')->insert([
            'company_id' => $companyId, 'client_id' => $client2, 'type' => 'domain',
            'name' => 'example.com', 'price' => 15, 'currency' => 'USD',
            'billing_cycle' => 'annual', 'start_date' => date('Y-m-d', strtotime('-10 months')),
            'renewal_date' => date('Y-m-d', strtotime('+20 days')), 'status' => 'active',
            'created_at' => date('Y-m-d H:i:s'), 'updated_at' => date('Y-m-d H:i:s'),
        ]);

        $this->db->table('invoices')->insert([
            'company_id' => $companyId, 'client_id' => $client1,
            'invoice_number' => "INV-{$companyId}-" . date('Y') . '-0001',
            'amount' => 60, 'currency' => 'USD', 'exchange_rate_at_creation' => 1,
            'issue_date' => date('Y-m-d'), 'due_date' => date('Y-m-d', strtotime('+7 days')),
            'status' => 'sent', 'sent_at' => date('Y-m-d H:i:s'),
            'created_at' => date('Y-m-d H:i:s'), 'updated_at' => date('Y-m-d H:i:s'),
        ]);
        $invoiceId = $this->db->insertID();

        $this->db->table('invoice_items')->insert([
            'invoice_id' => $invoiceId, 'description' => 'تجديد باقة استضافة 10GB لمدة سنة', 'amount' => 60,
            'created_at' => date('Y-m-d H:i:s'), 'updated_at' => date('Y-m-d H:i:s'),
        ]);

        $this->db->table('expenses')->insert([
            'company_id' => $companyId, 'category' => 'سيرفرات', 'description' => 'اشتراك سيرفر VPS شهري',
            'amount' => 20, 'currency' => 'USD', 'date' => date('Y-m-d'),
            'created_at' => date('Y-m-d H:i:s'), 'updated_at' => date('Y-m-d H:i:s'),
        ]);

        $this->db->table('exchange_rates')->insert([
            'currency_from' => 'USD', 'currency_to' => 'EGP', 'rate' => 48.5, 'date' => date('Y-m-d'),
            'created_at' => date('Y-m-d H:i:s'), 'updated_at' => date('Y-m-d H:i:s'),
        ]);

        $this->db->table('notification_settings')->insert([
            'company_id' => $companyId, 'renewal_days_before' => '15,7,3,1', 'invoice_due_days_before' => '15,7,3,1',
            'admin_notification_email' => 'info@example-hosting.test',
            'created_at' => date('Y-m-d H:i:s'), 'updated_at' => date('Y-m-d H:i:s'),
        ]);

        $this->db->table('currencies')->insertBatch([
            ['company_id' => $companyId, 'code' => 'USD', 'name' => 'دولار أمريكي', 'symbol' => '$', 'is_default' => 1, 'is_active' => 1, 'created_at' => date('Y-m-d H:i:s'), 'updated_at' => date('Y-m-d H:i:s')],
            ['company_id' => $companyId, 'code' => 'EGP', 'name' => 'جنيه مصري', 'symbol' => 'ج.م', 'is_default' => 0, 'is_active' => 1, 'created_at' => date('Y-m-d H:i:s'), 'updated_at' => date('Y-m-d H:i:s')],
            ['company_id' => $companyId, 'code' => 'SAR', 'name' => 'ريال سعودي', 'symbol' => 'ر.س', 'is_default' => 0, 'is_active' => 1, 'created_at' => date('Y-m-d H:i:s'), 'updated_at' => date('Y-m-d H:i:s')],
            ['company_id' => $companyId, 'code' => 'EUR', 'name' => 'يورو', 'symbol' => '€', 'is_default' => 0, 'is_active' => 1, 'created_at' => date('Y-m-d H:i:s'), 'updated_at' => date('Y-m-d H:i:s')],
        ]);

        echo "تم إدخال البيانات التجريبية. سوبر أدمن: super@admin.test / password\n";
    }
}
