# -*- coding: utf-8 -*-
from django.core.management.base import BaseCommand
from bilal.models import Service, Statistique


class Command(BaseCommand):
    help = 'Met à jour les icônes pour les services et statistiques existants'

    def handle(self, *args, **options):
        self.stdout.write('🎨 Mise à jour des icônes...\n')

        # ============ SERVICES ============
        self.stdout.write('📦 Mise à jour des icônes des services...')

        services_icones = {
            'Carburants': 'fuel',
            'Lubrifiants': 'oil',
            'Lubrifiant': 'oil',
            'Entretien': 'wrench',
            'Boutique': 'shopping',
            'Gaz': 'fire',
            'Butane': 'fire',
            'Lavage': 'car-wash',
        }

        services_mis_a_jour = 0
        for mot_cle, icone in services_icones.items():
            services = Service.objects.filter(nom__icontains=mot_cle)
            for service in services:
                if not service.icone or service.icone != icone:
                    service.icone = icone
                    service.save()
                    self.stdout.write(f"  ✅ {service.nom} → icône: {icone}")
                    services_mis_a_jour += 1
                else:
                    self.stdout.write(f"  ⏭️  {service.nom} a déjà l'icône {icone}")

        # ============ STATISTIQUES ============
        self.stdout.write('\n📊 Mise à jour des icônes des statistiques...')

        stats_icones = {
            'Station': 'station',
            'Région': 'station',
            'Années': 'calendar',
            'expérience': 'calendar',
            'Clients': 'users',
            'satisfaits': 'users',
            'Employés': 'team',
            'personnel': 'team',
        }

        stats_mis_a_jour = 0
        for mot_cle, icone in stats_icones.items():
            stats = Statistique.objects.filter(libelle__icontains=mot_cle)
            for stat in stats:
                if not stat.icone or stat.icone != icone:
                    stat.icone = icone
                    stat.save()
                    self.stdout.write(f"  ✅ {stat.libelle} → icône: {icone}")
                    stats_mis_a_jour += 1
                else:
                    self.stdout.write(f"  ⏭️  {stat.libelle} a déjà l'icône {icone}")

        # ============ RÉSUMÉ ============
        self.stdout.write('\n' + '=' * 60)
        if services_mis_a_jour > 0 or stats_mis_a_jour > 0:
            self.stdout.write(self.style.SUCCESS('✨ Mise à jour terminée !'))
            self.stdout.write(f'\n📊 Résumé:')
            self.stdout.write(f'  • Services mis à jour: {services_mis_a_jour}')
            self.stdout.write(f'  • Statistiques mises à jour: {stats_mis_a_jour}')
        else:
            self.stdout.write(self.style.WARNING('ℹ️  Toutes les icônes sont déjà à jour !'))

        self.stdout.write('=' * 60)
        self.stdout.write(f'\n💡 Vérifiez le résultat sur: http://127.0.0.1:8000/\n')