from django.core.management.base import BaseCommand
from django.utils import timezone
from layanan.models import ServiceCategory, Service, ServiceRequirement, ServiceBenefit
from datetime import datetime, timedelta
import random

class Command(BaseCommand):
    help = 'Create dummy data for layanan app'

    def handle(self, *args, **options):
        self.stdout.write('Creating dummy data for layanan app...')
        
        # Create Service Categories
        categories_data = [
            {
                'name': 'Kaderisasi',
                'description': 'Program kaderisasi untuk membentuk kader-kader Islam yang berkualitas',
                'icon': 'fas fa-user-graduate',
                'color': '#3b82f6',
                'order': 1
            },
            {
                'name': 'Kajian Keislaman',
                'description': 'Kajian dan diskusi tentang keislaman',
                'icon': 'fas fa-book-open',
                'color': '#10b981',
                'order': 2
            },
            {
                'name': 'Pengabdian Masyarakat',
                'description': 'Program pengabdian dan bakti sosial',
                'icon': 'fas fa-hands-helping',
                'color': '#f59e0b',
                'order': 3
            },
            {
                'name': 'Pelatihan & Workshop',
                'description': 'Pelatihan dan workshop untuk pengembangan diri',
                'icon': 'fas fa-chalkboard-teacher',
                'color': '#8b5cf6',
                'order': 4
            },
            {
                'name': 'Konsultasi',
                'description': 'Layanan konsultasi dan bimbingan',
                'icon': 'fas fa-comments',
                'color': '#ef4444',
                'order': 5
            },
            {
                'name': 'Event & Acara',
                'description': 'Penyelenggaraan event dan acara',
                'icon': 'fas fa-calendar-alt',
                'color': '#06b6d4',
                'order': 6
            }
        ]
        
        categories = []
        for cat_data in categories_data:
            category, created = ServiceCategory.objects.get_or_create(
                name=cat_data['name'],
                defaults=cat_data
            )
            categories.append(category)
            if created:
                self.stdout.write(f'Created category: {category.name}')
        
        # Create Services
        services_data = [
            {
                'title': 'Program Kaderisasi Dasar HMI',
                'description': 'Program kaderisasi dasar untuk anggota baru HMI dengan kurikulum komprehensif',
                'content': 'Program kaderisasi dasar ini dirancang khusus untuk anggota baru HMI yang ingin memahami lebih dalam tentang organisasi, nilai-nilai Islam, dan keterampilan kepemimpinan. Program ini berlangsung selama 3 bulan dengan berbagai materi yang mencakup sejarah HMI, nilai dasar perjuangan, manajemen organisasi, dan pengembangan karakter.',
                'category': categories[0],
                'status': 'active',
                'priority': 'high',
                'duration': '3 bulan',
                'capacity': 50,
                'is_free': True,
                'contact_person': 'Ahmad Fauzi Rahman',
                'contact_email': 'kaderisasi@hmi.com',
                'contact_phone': '+62 812-3456-7890',
                'is_featured': True,
                'is_popular': True,
                'is_new': False,
                'order': 1
            },
            {
                'title': 'Kajian Rutin Bulanan',
                'description': 'Kajian keislaman rutin setiap bulan dengan tema yang berbeda',
                'content': 'Kajian rutin bulanan ini membahas berbagai tema keislaman yang relevan dengan kehidupan mahasiswa. Setiap bulan akan ada pembicara yang berbeda dengan keahlian di bidangnya masing-masing.',
                'category': categories[1],
                'status': 'active',
                'priority': 'medium',
                'duration': '2 jam',
                'capacity': 100,
                'is_free': True,
                'contact_person': 'Fatimah Az-Zahra',
                'contact_email': 'kajian@hmi.com',
                'contact_phone': '+62 812-3456-7891',
                'is_featured': True,
                'is_popular': True,
                'is_new': False,
                'order': 2
            },
            {
                'title': 'Pengabdian Masyarakat Desa',
                'description': 'Program pengabdian masyarakat di desa terpencil',
                'content': 'Program pengabdian masyarakat ini mengajak mahasiswa untuk terjun langsung ke desa-desa terpencil untuk memberikan bantuan dan edukasi kepada masyarakat. Program ini berlangsung selama 1 minggu dengan berbagai aktivitas seperti mengajar, memberikan pelatihan, dan membantu pembangunan infrastruktur.',
                'category': categories[2],
                'status': 'active',
                'priority': 'high',
                'duration': '1 minggu',
                'capacity': 30,
                'is_free': True,
                'contact_person': 'Abdul Rahman Al-Baghdadi',
                'contact_email': 'pengabdian@hmi.com',
                'contact_phone': '+62 812-3456-7892',
                'is_featured': True,
                'is_popular': False,
                'is_new': True,
                'order': 3
            },
            {
                'title': 'Workshop Public Speaking',
                'description': 'Pelatihan public speaking untuk meningkatkan kemampuan komunikasi',
                'content': 'Workshop ini dirancang untuk meningkatkan kemampuan public speaking dan komunikasi mahasiswa. Peserta akan belajar teknik-teknik presentasi, cara mengatasi nervous, dan tips untuk menjadi pembicara yang efektif.',
                'category': categories[3],
                'status': 'active',
                'priority': 'medium',
                'duration': '2 hari',
                'capacity': 25,
                'price': 150000,
                'is_free': False,
                'contact_person': 'Siti Nurhaliza',
                'contact_email': 'workshop@hmi.com',
                'contact_phone': '+62 812-3456-7893',
                'is_featured': False,
                'is_popular': True,
                'is_new': False,
                'order': 4
            },
            {
                'title': 'Konsultasi Karir & Pengembangan Diri',
                'description': 'Layanan konsultasi untuk perencanaan karir dan pengembangan diri',
                'content': 'Layanan konsultasi ini membantu mahasiswa dalam merencanakan karir dan mengembangkan potensi diri. Konsultan akan memberikan bimbingan tentang pilihan karir, persiapan CV, interview, dan pengembangan soft skills.',
                'category': categories[4],
                'status': 'active',
                'priority': 'medium',
                'duration': '1 jam per sesi',
                'capacity': 1,
                'is_free': True,
                'contact_person': 'Muhammad Al-Farisi',
                'contact_email': 'konsultasi@hmi.com',
                'contact_phone': '+62 812-3456-7894',
                'is_featured': False,
                'is_popular': False,
                'is_new': True,
                'order': 5
            },
            {
                'title': 'Seminar Nasional HMI',
                'description': 'Seminar nasional dengan tema terkini dan pembicara nasional',
                'content': 'Seminar nasional ini menghadirkan pembicara-pembicara nasional untuk membahas tema-tema terkini yang relevan dengan mahasiswa dan masyarakat. Seminar ini diadakan setiap tahun dengan tema yang berbeda.',
                'category': categories[5],
                'status': 'coming_soon',
                'priority': 'high',
                'duration': '1 hari',
                'capacity': 500,
                'price': 50000,
                'is_free': False,
                'contact_person': 'Aisyah Binti Abu Bakar',
                'contact_email': 'seminar@hmi.com',
                'contact_phone': '+62 812-3456-7895',
                'is_featured': True,
                'is_popular': False,
                'is_new': True,
                'order': 6
            },
            {
                'title': 'Pelatihan Leadership',
                'description': 'Pelatihan kepemimpinan untuk calon pemimpin organisasi',
                'content': 'Pelatihan ini dirancang khusus untuk calon pemimpin organisasi. Peserta akan belajar tentang konsep kepemimpinan, manajemen tim, pengambilan keputusan, dan komunikasi efektif.',
                'category': categories[0],
                'status': 'active',
                'priority': 'high',
                'duration': '3 hari',
                'capacity': 20,
                'is_free': True,
                'contact_person': 'Umar Bin Khattab',
                'contact_email': 'leadership@hmi.com',
                'contact_phone': '+62 812-3456-7896',
                'is_featured': False,
                'is_popular': True,
                'is_new': False,
                'order': 7
            },
            {
                'title': 'Kajian Tafsir Al-Quran',
                'description': 'Kajian mendalam tentang tafsir Al-Quran',
                'content': 'Kajian ini membahas tafsir Al-Quran secara mendalam dengan pendekatan yang mudah dipahami. Peserta akan belajar tentang makna ayat-ayat Al-Quran dan implementasinya dalam kehidupan sehari-hari.',
                'category': categories[1],
                'status': 'active',
                'priority': 'medium',
                'duration': '1.5 jam per sesi',
                'capacity': 40,
                'is_free': True,
                'contact_person': 'Khadijah Binti Khuwailid',
                'contact_email': 'tafsir@hmi.com',
                'contact_phone': '+62 812-3456-7897',
                'is_featured': False,
                'is_popular': False,
                'is_new': False,
                'order': 8
            },
            {
                'title': 'Bakti Sosial Ramadhan',
                'description': 'Program bakti sosial selama bulan Ramadhan',
                'content': 'Program bakti sosial ini diadakan setiap bulan Ramadhan untuk membantu masyarakat yang membutuhkan. Kegiatan meliputi pembagian sembako, buka puasa bersama, dan berbagai aktivitas sosial lainnya.',
                'category': categories[2],
                'status': 'active',
                'priority': 'high',
                'duration': '1 bulan',
                'capacity': 100,
                'is_free': True,
                'contact_person': 'Ali Bin Abi Thalib',
                'contact_email': 'baksos@hmi.com',
                'contact_phone': '+62 812-3456-7898',
                'is_featured': True,
                'is_popular': True,
                'is_new': False,
                'order': 9
            },
            {
                'title': 'Workshop Digital Marketing',
                'description': 'Pelatihan digital marketing untuk mahasiswa',
                'content': 'Workshop ini mengajarkan dasar-dasar digital marketing yang sangat dibutuhkan di era digital. Peserta akan belajar tentang SEO, social media marketing, content marketing, dan analitik.',
                'category': categories[3],
                'status': 'active',
                'priority': 'medium',
                'duration': '1 hari',
                'capacity': 30,
                'price': 200000,
                'is_free': False,
                'contact_person': 'Zainab Binti Jahsy',
                'contact_email': 'digital@hmi.com',
                'contact_phone': '+62 812-3456-7899',
                'is_featured': False,
                'is_popular': True,
                'is_new': True,
                'order': 10
            },
            {
                'title': 'Konsultasi Hukum & Keadilan',
                'description': 'Layanan konsultasi hukum untuk mahasiswa',
                'content': 'Layanan konsultasi hukum ini membantu mahasiswa yang menghadapi masalah hukum atau ingin memahami hak dan kewajiban mereka. Konsultan hukum akan memberikan bimbingan dan solusi yang tepat.',
                'category': categories[4],
                'status': 'active',
                'priority': 'low',
                'duration': '1 jam per sesi',
                'capacity': 1,
                'is_free': True,
                'contact_person': 'Hafshah Binti Umar',
                'contact_email': 'hukum@hmi.com',
                'contact_phone': '+62 812-3456-7900',
                'is_featured': False,
                'is_popular': False,
                'is_new': False,
                'order': 11
            },
            {
                'title': 'Festival Seni & Budaya Islam',
                'description': 'Festival seni dan budaya Islam tahunan',
                'content': 'Festival ini menampilkan berbagai karya seni dan budaya Islam dari mahasiswa. Acara meliputi pameran seni, pertunjukan musik, drama, dan berbagai kompetisi kreatif.',
                'category': categories[5],
                'status': 'coming_soon',
                'priority': 'medium',
                'duration': '3 hari',
                'capacity': 1000,
                'is_free': True,
                'contact_person': 'Ummu Salamah',
                'contact_email': 'festival@hmi.com',
                'contact_phone': '+62 812-3456-7901',
                'is_featured': True,
                'is_popular': False,
                'is_new': True,
                'order': 12
            }
        ]
        
        services = []
        for service_data in services_data:
            service, created = Service.objects.get_or_create(
                title=service_data['title'],
                defaults=service_data
            )
            services.append(service)
            if created:
                self.stdout.write(f'Created service: {service.title}')
        
        # Create Service Requirements
        requirements_data = [
            # Kaderisasi Dasar
            {
                'service': services[0],
                'title': 'Anggota HMI aktif',
                'description': 'Harus menjadi anggota HMI yang aktif',
                'is_mandatory': True,
                'order': 1
            },
            {
                'service': services[0],
                'title': 'Mengisi formulir pendaftaran',
                'description': 'Mengisi formulir pendaftaran dengan lengkap',
                'is_mandatory': True,
                'order': 2
            },
            {
                'service': services[0],
                'title': 'Surat rekomendasi',
                'description': 'Surat rekomendasi dari pengurus HMI',
                'is_mandatory': True,
                'order': 3
            },
            # Workshop Public Speaking
            {
                'service': services[3],
                'title': 'Membayar biaya pendaftaran',
                'description': 'Biaya pendaftaran sebesar Rp 150.000',
                'is_mandatory': True,
                'order': 1
            },
            {
                'service': services[3],
                'title': 'Membawa laptop',
                'description': 'Membawa laptop untuk praktik',
                'is_mandatory': False,
                'order': 2
            },
            # Seminar Nasional
            {
                'service': services[5],
                'title': 'Membayar tiket seminar',
                'description': 'Tiket seminar sebesar Rp 50.000',
                'is_mandatory': True,
                'order': 1
            },
            {
                'service': services[5],
                'title': 'Membawa KTM',
                'description': 'Membawa Kartu Tanda Mahasiswa',
                'is_mandatory': True,
                'order': 2
            }
        ]
        
        for req_data in requirements_data:
            requirement, created = ServiceRequirement.objects.get_or_create(
                service=req_data['service'],
                title=req_data['title'],
                defaults=req_data
            )
            if created:
                self.stdout.write(f'Created requirement: {requirement.title}')
        
        # Create Service Benefits
        benefits_data = [
            # Kaderisasi Dasar
            {
                'service': services[0],
                'title': 'Pemahaman mendalam tentang HMI',
                'description': 'Memahami sejarah, visi, dan misi HMI',
                'icon': 'fas fa-graduation-cap',
                'order': 1
            },
            {
                'service': services[0],
                'title': 'Pengembangan karakter',
                'description': 'Mengembangkan karakter kepemimpinan dan keislaman',
                'icon': 'fas fa-user-check',
                'order': 2
            },
            {
                'service': services[0],
                'title': 'Sertifikat kaderisasi',
                'description': 'Mendapatkan sertifikat kaderisasi resmi',
                'icon': 'fas fa-certificate',
                'order': 3
            },
            # Workshop Public Speaking
            {
                'service': services[3],
                'title': 'Meningkatkan kepercayaan diri',
                'description': 'Meningkatkan kepercayaan diri saat berbicara di depan umum',
                'icon': 'fas fa-microphone',
                'order': 1
            },
            {
                'service': services[3],
                'title': 'Teknik presentasi efektif',
                'description': 'Mempelajari teknik presentasi yang efektif dan menarik',
                'icon': 'fas fa-presentation',
                'order': 2
            },
            {
                'service': services[3],
                'title': 'Sertifikat workshop',
                'description': 'Mendapatkan sertifikat workshop public speaking',
                'icon': 'fas fa-award',
                'order': 3
            },
            # Pengabdian Masyarakat
            {
                'service': services[2],
                'title': 'Pengalaman sosial',
                'description': 'Mendapatkan pengalaman langsung di masyarakat',
                'icon': 'fas fa-heart',
                'order': 1
            },
            {
                'service': services[2],
                'title': 'Mengasah empati',
                'description': 'Mengasah rasa empati dan kepedulian sosial',
                'icon': 'fas fa-hands-helping',
                'order': 2
            },
            {
                'service': services[2],
                'title': 'Sertifikat pengabdian',
                'description': 'Mendapatkan sertifikat pengabdian masyarakat',
                'icon': 'fas fa-medal',
                'order': 3
            }
        ]
        
        for benefit_data in benefits_data:
            benefit, created = ServiceBenefit.objects.get_or_create(
                service=benefit_data['service'],
                title=benefit_data['title'],
                defaults=benefit_data
            )
            if created:
                self.stdout.write(f'Created benefit: {benefit.title}')
        
        self.stdout.write(
            self.style.SUCCESS(
                f'Successfully created dummy data:\n'
                f'- {len(categories)} categories\n'
                f'- {len(services)} services\n'
                f'- {len(requirements_data)} requirements\n'
                f'- {len(benefits_data)} benefits'
            )
        )
