import random
from django.core.management.base import BaseCommand
from django.utils import timezone
from anggota.models import Kontak


class Command(BaseCommand):
    help = "Generate dummy contact messages for testing purposes."

    def add_arguments(self, parser):
        parser.add_argument(
            '--total',
            type=int,
            default=100,
            help='Jumlah data kontak dummy yang ingin dibuat (default: 100).'
        )
        parser.add_argument(
            '--clear',
            action='store_true',
            help='Hapus seluruh data Kontak sebelum membuat data dummy.'
        )

    def handle(self, *args, **options):
        total = options['total']
        clear_existing = options['clear']

        if clear_existing:
            deleted, _ = Kontak.objects.all().delete()
            self.stdout.write(self.style.WARNING(f"Menghapus {deleted} data kontak lama."))

        first_names = [
            "Ahmad", "Budi", "Citra", "Dewi", "Eko", "Fajar", "Gita", "Hari", "Indra", "Jaka",
            "Kiki", "Lia", "Maya", "Niko", "Oka", "Putri", "Rian", "Sari", "Tono", "Umar"
        ]
        last_names = [
            "Saputra", "Siregar", "Harahap", "Wijaya", "Pratama", "Hutagalung", "Simanjuntak",
            "Panjaitan", "Lubis", "Nasution", "Sembiring", "Ginting", "Gultom", "Manurung"
        ]
        subject_templates = [
            "Pertanyaan mengenai keanggotaan",
            "Kerja sama kegiatan sosial",
            "Permintaan informasi acara",
            "Testimoni dan saran",
            "Konfirmasi donasi",
            "Undangan seminar kampus",
            "Permohonan narasumber",
            "Feedback website organisasi",
            "Permintaan brosur kegiatan",
            "Informasi pendaftaran anggota baru",
        ]
        message_samples = [
            "Halo HMI UINSU, saya tertarik bergabung dan ingin mengetahui alur pendaftarannya.",
            "Selamat siang, kami ingin mengundang HMI sebagai mitra dalam acara bakti sosial kampus kami.",
            "Mohon informasi jadwal kegiatan terdekat yang bisa diikuti oleh mahasiswa umum.",
            "Saya memiliki masukan mengenai tampilan website, semoga bisa menjadi pertimbangan.",
            "Apakah ada kontak bendahara yang bisa dihubungi untuk konfirmasi donasi?",
            "Kapan jadwal open recruitment berikutnya? Saya ingin menyiapkan berkas-berkasnya.",
            "Apakah HMI menyediakan program mentoring untuk mahasiswa baru?",
            "Kami ingin mengundang perwakilan HMI menjadi narasumber pada seminar kepemimpinan.",
            "Mohon kirimkan informasi mengenai biaya keanggotaan dan fasilitas yang diperoleh.",
            "Apakah ada grup WhatsApp resmi untuk mendapatkan informasi kegiatan terbaru?",
        ]
        domains = ["example.com", "mail.com", "student.uinsu.ac.id", "kampusku.id", "community.org"]

        created = 0
        for _ in range(total):
            nama = f"{random.choice(first_names)} {random.choice(last_names)}"
            email_user = f"{nama.lower().replace(' ', '.')}{random.randint(10, 99)}"
            email = f"{email_user}@{random.choice(domains)}"
            subjek = random.choice(subject_templates)
            pesan = random.choice(message_samples)

            Kontak.objects.create(
                nama=nama,
                email=email,
                subjek=subjek,
                pesan=pesan,
                created_at=timezone.now() - timezone.timedelta(days=random.randint(0, 30)),
                is_read=random.choice([True, False, False]),  # lebih banyak yang belum dibaca
            )
            created += 1

        self.stdout.write(self.style.SUCCESS(f"Berhasil membuat {created} data kontak dummy."))

