from django.core.management.base import BaseCommand
from voting.models import Student, Candidate


class Command(BaseCommand):
    help = 'Seed database with sample data'

    def handle(self, *args, **options):
        # Create sample students
        students_data = [
            {'nisn': '1234567890', 'nama': 'Ahmad Fauzi', 'kelas': 'X IPA 1', 'jurusan': 'IPA'},
            {'nisn': '1234567891', 'nama': 'Siti Aminah', 'kelas': 'X IPA 1', 'jurusan': 'IPA'},
            {'nisn': '1234567892', 'nama': 'Budi Santoso', 'kelas': 'X IPA 2', 'jurusan': 'IPA'},
            {'nisn': '1234567893', 'nama': 'Dewi Lestari', 'kelas': 'X IPS 1', 'jurusan': 'IPS'},
            {'nisn': '1234567894', 'nama': 'Rizki Pratama', 'kelas': 'X IPS 1', 'jurusan': 'IPS'},
            {'nisn': '1234567895', 'nama': 'Putri Ayu', 'kelas': 'XI IPA 1', 'jurusan': 'IPA'},
            {'nisn': '1234567896', 'nama': 'Dimas Saputra', 'kelas': 'XI IPA 1', 'jurusan': 'IPA'},
            {'nisn': '1234567897', 'nama': 'Nanda Rahman', 'kelas': 'XI IPS 1', 'jurusan': 'IPS'},
            {'nisn': '1234567898', 'nama': 'Salsabila Zahra', 'kelas': 'XII IPA 1', 'jurusan': 'IPA'},
            {'nisn': '1234567899', 'nama': 'Farhan Akbar', 'kelas': 'XII IPS 1', 'jurusan': 'IPS'},
        ]

        students_created = 0
        for data in students_data:
            student, created = Student.objects.get_or_create(nisn=data['nisn'], defaults=data)
            if created:
                students_created += 1

        self.stdout.write(self.style.SUCCESS(f'Successfully created {students_created} students'))

        # Create sample candidates
        candidates_data = [
            {
                'nama': 'Rizki Ramadhan',
                'visi': 'Mewujudkan OSIM yang transparan, akuntabel, dan贴近 kebutuhan siswa. Terus meningkatkan kualitas organisasi siswa melalui inovasi dan kreativitas.',
                'misi': '1. Meningkatkan komunikasi antara OSIM dan seluruh siswa\n2. Mengadakan evaluasi berkala terhadap program kerja\n3. Menciptakan lingkungan sekolah yang nyaman dan kondusif\n4. Mendukung kegiatan ekstrakurikuler dan kompetisi',
            },
            {
                'nama': 'Anisa Putri',
                'visi': 'Membangun OSIM yang responsif terhadap aspirasi siswa dan berperan aktif dalam pengembangan sekolah yang lebih baik.',
                'misi': '1. Membuka ruang dialog bagi siswa untuk menyampaikan aspirasi\n2. Mengoptimalkan program kerja OSIM\n3. Berkolaborasi dengan organisasi lain\n4. Meningkatkan kesejahteraan siswa',
            },
            {
                'nama': 'Fajar Nugroho',
                'visi': 'OSIM yang solid, profesional, dan berintegritas untuk kemajuan bersama.',
                'misi': '1. Meningkatkan profesionalisme anggota OSIM\n2. Membangun transparansi dalam setiap kegiatan\n3. Mengembangkan potensi siswa melalui berbagai program\n4. Mempererat hubungan dengan seluruh warga sekolah',
            },
        ]

        candidates_created = 0
        for data in candidates_data:
            candidate, created = Candidate.objects.get_or_create(
                nama=data['nama'],
                defaults=data
            )
            if created:
                candidates_created += 1

        self.stdout.write(self.style.SUCCESS(f'Successfully created {candidates_created} candidates'))
        self.stdout.write(self.style.SUCCESS('Database seeding completed!'))