from django.core.management.base import BaseCommand
from apps.business.schemes.rank import Rank


class Command(BaseCommand):
    help = "Seed 18 global levels with badges and icons"

    def handle(self, *args, **options):
        ranks_data = [
            {
                "level_number": 1,
                "name": "Discipline Level - 1",
                "badge_icon": "✔️",
            },
            {
                "level_number": 2,
                "name": "Patience Level - 2",
                "badge_icon": "⏳",
            },
            {
                "level_number": 3,
                "name": "Sharing Level - 3",
                "badge_icon": "🤝",
            },
            {
                "level_number": 4,
                "name": "Knowledge Level - 4",
                "badge_icon": "🎓",
            },
            {
                "level_number": 5,
                "name": "Humble Level - 5",
                "badge_icon": "🙏",
            },
            {
                "level_number": 6,
                "name": "Team Spirit Level - 6",
                "badge_icon": "👥",
            },
            {
                "level_number": 7,
                "name": "Ethical Level - 7",
                "badge_icon": "⚖️",
            },
            {
                "level_number": 8,
                "name": "Friendship Level - 8",
                "badge_icon": "🤝",
            },
            {
                "level_number": 9,
                "name": "Respect Level - 9",
                "badge_icon": "🏅",
            },
            {
                "level_number": 10,
                "name": "Learning Level - 10",
                "badge_icon": "📖",
            },
            {
                "level_number": 11,
                "name": "Justice Level - 11",
                "badge_icon": "⚖️",
            },
            {
                "level_number": 12,
                "name": "Care Level - 12",
                "badge_icon": "❤️",
            },
            {
                "level_number": 13,
                "name": "Humanity Level - 13",
                "badge_icon": "🌍",
            },
            {
                "level_number": 14,
                "name": "Positive Level - 14",
                "badge_icon": "☀️",
            },
            {
                "level_number": 15,
                "name": "Healthy Level - 15",
                "badge_icon": "🍃",
            },
            {
                "level_number": 16,
                "name": "Balance Level - 16",
                "badge_icon": "⚖️",
            },
            {
                "level_number": 17,
                "name": "Determination Level - 17",
                "badge_icon": "🎯",
            },
            {
                "level_number": 18,
                "name": "👑 Crown Achiever - 18",
                "badge_icon": "👑",
            },
        ]

        created_count = 0
        updated_count = 0

        for data in ranks_data:
            rank, created = Rank.objects.update_or_create(
                level_number=data["level_number"],
                opportunity_bundle__isnull=True,
                defaults={
                    "name": data["name"],
                    "badge_icon": data["badge_icon"],
                },
            )
            if created:
                created_count += 1
                self.stdout.write(
                    self.style.SUCCESS(
                        f"Created: Level {data['level_number']} - {data['name']}"
                    )
                )
            else:
                updated_count += 1
                self.stdout.write(
                    self.style.WARNING(
                        f"Updated: Level {data['level_number']} - {data['name']}"
                    )
                )

        self.stdout.write(
            self.style.SUCCESS(
                f"\nSeed complete! Created: {created_count}, Updated: {updated_count}"
            )
        )
