<?php

namespace Database\Seeders;

use Illuminate\Database\Seeder;
use App\Models\Translation;
use Illuminate\Support\Facades\DB;

class TranslationsSeeder extends Seeder
{
    public function run(): void
    {
        // Clear existing translations
        Translation::truncate();

        $translations = [
            // General translations
            'general' => [
                'welcome' => [
                    'ro' => 'Bun venit',
                    'en' => 'Welcome'
                ],
                'dashboard' => [
                    'ro' => 'Dashboard',
                    'en' => 'Dashboard'
                ],
                'settings' => [
                    'ro' => 'Setări',
                    'en' => 'Settings'
                ],
                'admin' => [
                    'ro' => 'Admin',
                    'en' => 'Admin'
                ],
                'save' => [
                    'ro' => 'Salvează',
                    'en' => 'Save'
                ],
                'cancel' => [
                    'ro' => 'Anulează',
                    'en' => 'Cancel'
                ],
                'edit' => [
                    'ro' => 'Editează',
                    'en' => 'Edit'
                ],
                'delete' => [
                    'ro' => 'Șterge',
                    'en' => 'Delete'
                ],
                'actions' => [
                    'ro' => 'Acțiuni',
                    'en' => 'Actions'
                ],
                'status' => [
                    'ro' => 'Status',
                    'en' => 'Status'
                ],
                'active' => [
                    'ro' => 'Activă',
                    'en' => 'Active'
                ],
                'inactive' => [
                    'ro' => 'Inactivă',
                    'en' => 'Inactive'
                ],
                'yes' => [
                    'ro' => 'Da',
                    'en' => 'Yes'
                ],
                'no' => [
                    'ro' => 'Nu',
                    'en' => 'No'
                ],
            ],

            // Languages module
            'languages' => [
                'title' => [
                    'ro' => 'Limbi',
                    'en' => 'Languages'
                ],
                'management' => [
                    'ro' => 'Managementul Limbilor',
                    'en' => 'Language Management'
                ],
                'add_new' => [
                    'ro' => 'Adaugă Limbă Nouă',
                    'en' => 'Add New Language'
                ],
                'edit_language' => [
                    'ro' => 'Editează Limba',
                    'en' => 'Edit Language'
                ],
                'language' => [
                    'ro' => 'Limbă',
                    'en' => 'Language'
                ],
                'code' => [
                    'ro' => 'Cod',
                    'en' => 'Code'
                ],
                'progress' => [
                    'ro' => 'Progres',
                    'en' => 'Progress'
                ],
                'translations' => [
                    'ro' => 'Traduceri',
                    'en' => 'Translations'
                ],
                'name' => [
                    'ro' => 'Nume Limbă',
                    'en' => 'Language Name'
                ],
                'language_code' => [
                    'ro' => 'Cod Limbă',
                    'en' => 'Language Code'
                ],
                'flag_emoji' => [
                    'ro' => 'Emoji Steag',
                    'en' => 'Flag Emoji'
                ],
                'sort_order' => [
                    'ro' => 'Ordine Sortare',
                    'en' => 'Sort Order'
                ],
                'activate_immediately' => [
                    'ro' => 'Activează limba imediat',
                    'en' => 'Activate language immediately'
                ],
                'is_active' => [
                    'ro' => 'Limba este activă',
                    'en' => 'Language is active'
                ],
                'default_language' => [
                    'ro' => 'Implicită',
                    'en' => 'Default'
                ],
                'set_as_default' => [
                    'ro' => 'Setează ca Implicită',
                    'en' => 'Set as Default'
                ],
                'activate' => [
                    'ro' => 'Activează',
                    'en' => 'Activate'
                ],
                'deactivate' => [
                    'ro' => 'Dezactivează',
                    'en' => 'Deactivate'
                ],
                'export_json' => [
                    'ro' => 'Exportă JSON',
                    'en' => 'Export JSON'
                ],
                'import_json' => [
                    'ro' => 'Importă JSON',
                    'en' => 'Import JSON'
                ],
                'edit_translations' => [
                    'ro' => 'Editează Traduceri',
                    'en' => 'Edit Translations'
                ],
                'save_translations' => [
                    'ro' => 'Salvează Traducerile',
                    'en' => 'Save Translations'
                ],
                'no_translations' => [
                    'ro' => 'Nu există traduceri',
                    'en' => 'No translations available'
                ],
                'select_language' => [
                    'ro' => 'Selectează Limba',
                    'en' => 'Select Language'
                ],
                'manage_languages' => [
                    'ro' => 'Administrează Limbile',
                    'en' => 'Manage Languages'
                ],
                'no_languages' => [
                    'ro' => 'Nu există limbi configurate. Adaugă prima limbă!',
                    'en' => 'No languages configured. Add the first language!'
                ],
                'success_created' => [
                    'ro' => 'Limba a fost adăugată cu succes!',
                    'en' => 'Language created successfully!'
                ],
                'success_updated' => [
                    'ro' => 'Limba a fost actualizată cu succes!',
                    'en' => 'Language updated successfully!'
                ],
                'success_deleted' => [
                    'ro' => 'Limba a fost ștearsă cu succes!',
                    'en' => 'Language deleted successfully!'
                ],
                'error_delete_default' => [
                    'ro' => 'Nu poți șterge limba implicită!',
                    'en' => 'Cannot delete the default language!'
                ],
                'confirm_delete' => [
                    'ro' => 'Sigur vrei să ștergi această limbă?',
                    'en' => 'Are you sure you want to delete this language?'
                ],
            ],

            // Settings module
            'settings' => [
                'title' => [
                    'ro' => 'Setări',
                    'en' => 'Settings'
                ],
                'general_settings' => [
                    'ro' => 'Setări Generale',
                    'en' => 'General Settings'
                ],
                'smtp_settings' => [
                    'ro' => 'Setări SMTP',
                    'en' => 'SMTP Settings'
                ],
                'smtp' => [
                    'ro' => 'SMTP',
                    'en' => 'SMTP'
                ],
                'seo' => [
                    'ro' => 'SEO',
                    'en' => 'SEO'
                ],
                'email_templates' => [
                    'ro' => 'Șabloane Email',
                    'en' => 'Email Templates'
                ],
                'cron_jobs' => [
                    'ro' => 'Cron Jobs',
                    'en' => 'Cron Jobs'
                ],
                'advanced_settings' => [
                    'ro' => 'Setări Avansate',
                    'en' => 'Advanced Settings'
                ],
                'appearance' => [
                    'ro' => 'Aspect',
                    'en' => 'Appearance'
                ],
                'admins' => [
                    'ro' => 'Administratori',
                    'en' => 'Admins'
                ],
                'administrators' => [
                    'ro' => 'Administratori',
                    'en' => 'Administrators'
                ],
                'blog_settings' => [
                    'ro' => 'Setări Blog',
                    'en' => 'Blog Settings'
                ],
                'ads' => [
                    'ro' => 'Reclame',
                    'en' => 'Ads'
                ],
                'captcha_settings' => [
                    'ro' => 'Setări Captcha',
                    'en' => 'Captcha Settings'
                ],
                'captcha' => [
                    'ro' => 'Captcha',
                    'en' => 'Captcha'
                ],
                'api' => [
                    'ro' => 'API',
                    'en' => 'API'
                ],
                'cache' => [
                    'ro' => 'Cache',
                    'en' => 'Cache'
                ],
            ],

            // Sidebar navigation
            'sidebar' => [
                'zone_dns' => [
                    'ro' => 'Zone DNS',
                    'en' => 'DNS Zones'
                ],
                'notifications' => [
                    'ro' => 'Notificări',
                    'en' => 'Notifications'
                ],
                'dashboard_admin' => [
                    'ro' => 'Dashboard Admin',
                    'en' => 'Admin Dashboard'
                ],
                'users' => [
                    'ro' => 'Utilizatori',
                    'en' => 'Users'
                ],
                'plans' => [
                    'ro' => 'Planuri',
                    'en' => 'Plans'
                ],
                'subscriptions' => [
                    'ro' => 'Abonamente',
                    'en' => 'Subscriptions'
                ],
            ],

            // Messages
            'messages' => [
                'success' => [
                    'ro' => 'Succes!',
                    'en' => 'Success!'
                ],
                'error' => [
                    'ro' => 'Eroare!',
                    'en' => 'Error!'
                ],
                'info' => [
                    'ro' => 'Informație',
                    'en' => 'Information'
                ],
                'warning' => [
                    'ro' => 'Avertisment',
                    'en' => 'Warning'
                ],
            ],

            // Dashboard
            'dashboard' => [
                'dns_zones' => [
                    'ro' => 'Zone DNS',
                    'en' => 'DNS Zones'
                ],
                'dns_records' => [
                    'ro' => 'Înregistrări DNS',
                    'en' => 'DNS Records'
                ],
                'nameservers' => [
                    'ro' => 'Nameservere',
                    'en' => 'Nameservers'
                ],
                'ns_allocated' => [
                    'ro' => 'NSuri Alocate',
                    'en' => 'Allocated NSs'
                ],
                'no_nameservers' => [
                    'ro' => 'Nu există nameservere alocate',
                    'en' => 'No nameservers allocated'
                ],
                'unlimited' => [
                    'ro' => 'Nelimitat',
                    'en' => 'Unlimited'
                ],
                'free_plan' => [
                    'ro' => 'Plan Gratuit',
                    'en' => 'Free Plan'
                ],
                'quick_actions' => [
                    'ro' => 'Acțiuni Rapide',
                    'en' => 'Quick Actions'
                ],
                'add_dns_zone' => [
                    'ro' => 'Adaugă Zonă DNS',
                    'en' => 'Add DNS Zone'
                ],
                'create' => [
                    'ro' => 'Creează',
                    'en' => 'Create'
                ],
                'create_new_zone' => [
                    'ro' => 'Creează zonă DNS nouă',
                    'en' => 'Create new DNS zone'
                ],
                'limit_reached' => [
                    'ro' => 'Limită Atinsă',
                    'en' => 'Limit Reached'
                ],
                'query_limit_reached' => [
                    'ro' => 'Limită Query-uri DNS Atinsă!',
                    'en' => 'DNS Query Limit Reached!'
                ],
                'query_limit_message' => [
                    'ro' => 'Ai atins limita de query-uri DNS pentru luna aceasta. Toate operațiunile DNS sunt temporar dezactivate.',
                    'en' => 'You have reached your DNS query limit for this month. All DNS operations are temporarily disabled.'
                ],
                'upgrade_plan' => [
                    'ro' => 'Upgrade Plan',
                    'en' => 'Upgrade Plan'
                ],
                'reset_date' => [
                    'ro' => 'Resetare',
                    'en' => 'Reset'
                ],
                'warning_near_limit' => [
                    'ro' => 'Atenție: Aproape de Limită',
                    'en' => 'Warning: Near Limit'
                ],
                'near_limit_message' => [
                    'ro' => 'Ai consumat din limita ta de query-uri DNS. Consideră un upgrade pentru a evita întreruperi.',
                    'en' => 'You have consumed from your DNS query limit. Consider an upgrade to avoid interruptions.'
                ],
                'view_plans' => [
                    'ro' => 'Vezi Planuri',
                    'en' => 'View Plans'
                ],
                'current_plan' => [
                    'ro' => 'Plan Curent',
                    'en' => 'Current Plan'
                ],
                'administrator' => [
                    'ro' => 'Administrator',
                    'en' => 'Administrator'
                ],
                'reseller' => [
                    'ro' => 'Reseller',
                    'en' => 'Reseller'
                ],
                'free' => [
                    'ro' => 'Gratuit',
                    'en' => 'Free'
                ],
                'expires' => [
                    'ro' => 'Expiră',
                    'en' => 'Expires'
                ],
                'no_expiry' => [
                    'ro' => 'Fără dată expirare',
                    'en' => 'No expiry date'
                ],
                'per_month' => [
                    'ro' => '/ lună',
                    'en' => '/ month'
                ],
                'reseller_package' => [
                    'ro' => 'Pachet Reseller',
                    'en' => 'Reseller Package'
                ],
            ],

            // DNS Zones
            'dns_zones' => [
                'my_dns_zones' => [
                    'ro' => 'Zonele Mele DNS',
                    'en' => 'My DNS Zones'
                ],
                'zone_dns' => [
                    'ro' => 'Zone DNS',
                    'en' => 'DNS Zones'
                ],
                'add_dns_zone' => [
                    'ro' => 'Adaugă Zonă DNS',
                    'en' => 'Add DNS Zone'
                ],
                'limit_reached' => [
                    'ro' => 'Limită Atinsă',
                    'en' => 'Limit Reached'
                ],
                'back_to_dashboard' => [
                    'ro' => 'Înapoi la Dashboard',
                    'en' => 'Back to Dashboard'
                ],
                'domain' => [
                    'ro' => 'Domeniu',
                    'en' => 'Domain'
                ],
                'status' => [
                    'ro' => 'Status',
                    'en' => 'Status'
                ],
                'records' => [
                    'ro' => 'Înregistrări',
                    'en' => 'Records'
                ],
                'nameservers' => [
                    'ro' => 'Nameservere',
                    'en' => 'Nameservers'
                ],
                'created' => [
                    'ro' => 'Creat',
                    'en' => 'Created'
                ],
                'actions' => [
                    'ro' => 'Acțiuni',
                    'en' => 'Actions'
                ],
                'view_zone' => [
                    'ro' => 'Vezi Zona',
                    'en' => 'View Zone'
                ],
                'edit_zone' => [
                    'ro' => 'Editează Zona',
                    'en' => 'Edit Zone'
                ],
                'delete_zone' => [
                    'ro' => 'Șterge Zona',
                    'en' => 'Delete Zone'
                ],
                'active' => [
                    'ro' => 'Activ',
                    'en' => 'Active'
                ],
                'inactive' => [
                    'ro' => 'Inactiv',
                    'en' => 'Inactive'
                ],
                'pending' => [
                    'ro' => 'În Așteptare',
                    'en' => 'Pending'
                ],
                'search_zones' => [
                    'ro' => 'Caută zone...',
                    'en' => 'Search zones...'
                ],
                'no_zones_found' => [
                    'ro' => 'Nu s-au găsit zone DNS.',
                    'en' => 'No DNS zones found.'
                ],
                'create_first_zone' => [
                    'ro' => 'Creează prima ta zonă DNS pentru a începe.',
                    'en' => 'Create your first DNS zone to get started.'
                ],
            ],

            // Profile
            'profile' => [
                'my_profile' => [
                    'ro' => 'Profilul meu',
                    'en' => 'My Profile'
                ],
                'manage_account' => [
                    'ro' => 'Gestionează informațiile contului, adresa și setările de securitate',
                    'en' => 'Manage account information, address, and security settings'
                ],
                'back' => [
                    'ro' => 'Înapoi',
                    'en' => 'Back'
                ],
                'profile_information' => [
                    'ro' => 'Informații profil',
                    'en' => 'Profile Information'
                ],
                'address' => [
                    'ro' => 'Adresă',
                    'en' => 'Address'
                ],
                'security' => [
                    'ro' => 'Securitate',
                    'en' => 'Security'
                ],
                'danger_zone' => [
                    'ro' => 'Zona de pericol',
                    'en' => 'Danger Zone'
                ],
                'update_password' => [
                    'ro' => 'Actualizează Parola',
                    'en' => 'Update Password'
                ],
                'delete_account' => [
                    'ro' => 'Șterge Contul',
                    'en' => 'Delete Account'
                ],
            ],

            // Auth
            'auth' => [
                'email' => [
                    'ro' => 'Email',
                    'en' => 'Email'
                ],
                'password' => [
                    'ro' => 'Parolă',
                    'en' => 'Password'
                ],
                'remember_me' => [
                    'ro' => 'Ține-mă minte',
                    'en' => 'Remember me'
                ],
                'forgot_password' => [
                    'ro' => 'Ai uitat parola?',
                    'en' => 'Forgot your password?'
                ],
                'log_in' => [
                    'ro' => 'Autentificare',
                    'en' => 'Log in'
                ],
                'register' => [
                    'ro' => 'Înregistrare',
                    'en' => 'Register'
                ],
                'logout' => [
                    'ro' => 'Deconectare',
                    'en' => 'Logout'
                ],
                'name' => [
                    'ro' => 'Nume',
                    'en' => 'Name'
                ],
                'confirm_password' => [
                    'ro' => 'Confirmă Parola',
                    'en' => 'Confirm Password'
                ],
                'already_registered' => [
                    'ro' => 'Deja înregistrat?',
                    'en' => 'Already registered?'
                ],
            ],

            // Common UI elements
            'ui' => [
                'search' => [
                    'ro' => 'Caută',
                    'en' => 'Search'
                ],
                'filter' => [
                    'ro' => 'Filtrează',
                    'en' => 'Filter'
                ],
                'export' => [
                    'ro' => 'Exportă',
                    'en' => 'Export'
                ],
                'import' => [
                    'ro' => 'Importă',
                    'en' => 'Import'
                ],
                'view' => [
                    'ro' => 'Vezi',
                    'en' => 'View'
                ],
                'create' => [
                    'ro' => 'Creează',
                    'en' => 'Create'
                ],
                'update' => [
                    'ro' => 'Actualizează',
                    'en' => 'Update'
                ],
                'close' => [
                    'ro' => 'Închide',
                    'en' => 'Close'
                ],
                'confirm' => [
                    'ro' => 'Confirmă',
                    'en' => 'Confirm'
                ],
                'loading' => [
                    'ro' => 'Se încarcă...',
                    'en' => 'Loading...'
                ],
                'no_data' => [
                    'ro' => 'Nu există date',
                    'en' => 'No data available'
                ],
                'show_more' => [
                    'ro' => 'Arată mai mult',
                    'en' => 'Show more'
                ],
                'show_less' => [
                    'ro' => 'Arată mai puțin',
                    'en' => 'Show less'
                ],
                'previous' => [
                    'ro' => 'Anterior',
                    'en' => 'Previous'
                ],
                'next' => [
                    'ro' => 'Următor',
                    'en' => 'Next'
                ],
            ],
        ];

        foreach ($translations as $group => $keys) {
            foreach ($keys as $key => $languages) {
                foreach ($languages as $langCode => $value) {
                    Translation::create([
                        'language_code' => $langCode,
                        'group' => $group,
                        'key' => $key,
                        'value' => $value
                    ]);
                }
            }
        }

        $this->command->info('Translations seeded successfully!');
        $this->command->info('Total translations: ' . Translation::count());
    }
}
