from django.core.management.base import BaseCommand
from django.utils import timezone
from core.models import HeroImage
import os
from django.conf import settings


class Command(BaseCommand):
    help = 'Membuat data dummy untuk hero images'

    def add_arguments(self, parser):
        parser.add_argument(
            '--clear',
            action='store_true',
            help='Hapus semua data hero image yang ada sebelum membuat data dummy',
        )

    def handle(self, *args, **options):
        if options['clear']:
            HeroImage.objects.all().delete()
            self.stdout.write(
                self.style.WARNING('Semua data hero image telah dihapus.')
            )

        # Data dummy untuk hero images
        hero_data = [
            # Homepage
            {
                'name': 'Pemandangan Desa Pulosarok',
                'page': 'home',
                'description': 'Gambar utama homepage dengan pemandangan desa yang indah'
            },
            {
                'name': 'Selamat Datang di Desa Pulosarok',
                'page': 'home',
                'description': 'Hero image untuk halaman utama'
            },
            {
                'name': 'Keindahan Alam Desa',
                'page': 'home',
                'description': 'Menampilkan keindahan alam desa Pulosarok'
            },
            
            # Events/Kegiatan
            {
                'name': 'Kegiatan Gotong Royong',
                'page': 'events',
                'description': 'Gambar kegiatan gotong royong masyarakat'
            },
            {
                'name': 'Festival Desa',
                'page': 'events',
                'description': 'Gambar festival atau acara desa'
            },
            {
                'name': 'Kegiatan Sosial',
                'page': 'events',
                'description': 'Gambar kegiatan sosial masyarakat'
            },
            
            # News/Berita
            {
                'name': 'Berita Terkini',
                'page': 'news',
                'description': 'Gambar untuk halaman berita'
            },
            {
                'name': 'Pengumuman Desa',
                'page': 'news',
                'description': 'Gambar untuk pengumuman resmi desa'
            },
            
            # Tourism/Wisata
            {
                'name': 'Destinasi Wisata Unggulan',
                'page': 'tourism',
                'description': 'Gambar destinasi wisata utama desa'
            },
            {
                'name': 'Pemandangan Alam',
                'page': 'tourism',
                'description': 'Gambar pemandangan alam yang menawan'
            },
            {
                'name': 'Spot Foto Instagramable',
                'page': 'tourism',
                'description': 'Gambar spot foto yang menarik'
            },
            
            # UMKM
            {
                'name': 'Produk UMKM Unggulan',
                'page': 'umkm',
                'description': 'Gambar produk UMKM terbaik desa'
            },
            {
                'name': 'Kerajinan Tangan',
                'page': 'umkm',
                'description': 'Gambar kerajinan tangan masyarakat'
            },
            
            # Organization/Organisasi
            {
                'name': 'Struktur Organisasi Desa',
                'page': 'organization',
                'description': 'Gambar struktur organisasi desa'
            },
            {
                'name': 'Kepemimpinan Desa',
                'page': 'organization',
                'description': 'Gambar kepemimpinan dan pemerintahan desa'
            },
            
            # Correspondence/Surat Menyurat
            {
                'name': 'Layanan Surat Menyurat',
                'page': 'correspondence',
                'description': 'Gambar untuk halaman surat menyurat'
            },
            
            # Gallery/Galeri
            {
                'name': 'Galeri Foto Desa',
                'page': 'gallery',
                'description': 'Gambar untuk halaman galeri'
            },
            {
                'name': 'Momen Terbaik Desa',
                'page': 'gallery',
                'description': 'Gambar momen-momen terbaik desa'
            },
            
            # Complaints/Keluhan
            {
                'name': 'Layanan Keluhan',
                'page': 'complaints',
                'description': 'Gambar untuk halaman layanan keluhan'
            },
            
            # Layanan
            {
                'name': 'Layanan Publik',
                'page': 'layanan',
                'description': 'Gambar untuk halaman layanan publik'
            },
            {
                'name': 'Pelayanan Prima',
                'page': 'layanan',
                'description': 'Gambar pelayanan prima kepada masyarakat'
            },
            
            # Letter Services
            {
                'name': 'Layanan Surat - Daftar',
                'page': 'letter_services',
                'description': 'Gambar untuk halaman daftar layanan surat'
            },
            {
                'name': 'Layanan Surat - Permintaan',
                'page': 'letter_request',
                'description': 'Gambar untuk halaman permintaan surat'
            },
            {
                'name': 'Layanan Surat - Status',
                'page': 'letter_status',
                'description': 'Gambar untuk halaman status surat'
            },
            
            # Posyandu
            {
                'name': 'Kegiatan Posyandu',
                'page': 'posyandu',
                'description': 'Gambar kegiatan posyandu desa'
            },
            {
                'name': 'Kesehatan Ibu dan Anak',
                'page': 'posyandu',
                'description': 'Gambar program kesehatan ibu dan anak'
            },
            
            # Bantuna
            {
                'name': 'Program Bantuna',
                'page': 'bantuna',
                'description': 'Gambar program bantuna desa'
            },
            
            # Business/Bisnis
            {
                'name': 'Kegiatan Bisnis Desa',
                'page': 'business',
                'description': 'Gambar kegiatan bisnis dan ekonomi desa'
            },
            {
                'name': 'Pasar Tradisional',
                'page': 'business',
                'description': 'Gambar pasar tradisional desa'
            },
            
            # Koperasi
            {
                'name': 'Koperasi Desa',
                'page': 'koperasi',
                'description': 'Gambar koperasi desa'
            },
            
            # BUMG
            {
                'name': 'BUMG Desa',
                'page': 'bumg',
                'description': 'Gambar Badan Usaha Milik Gampong'
            },
            
            # Layanan Jasa
            {
                'name': 'Layanan Jasa Desa',
                'page': 'layanan_jasa',
                'description': 'Gambar layanan jasa yang disediakan desa'
            },
        ]

        created_count = 0
        for data in hero_data:
            hero_image, created = HeroImage.objects.get_or_create(
                name=data['name'],
                defaults={
                    'page': data['page'],
                    'is_active': True,
                    'created_at': timezone.now(),
                    'updated_at': timezone.now(),
                }
            )
            
            if created:
                created_count += 1
                self.stdout.write(
                    self.style.SUCCESS(f'✓ Hero image "{data["name"]}" untuk halaman {data["page"]} berhasil dibuat')
                )
            else:
                self.stdout.write(
                    self.style.WARNING(f'⚠ Hero image "{data["name"]}" untuk halaman {data["page"]} sudah ada')
                )

        self.stdout.write(
            self.style.SUCCESS(f'\n🎉 Berhasil membuat {created_count} data dummy hero images!')
        )
        
        # Tampilkan ringkasan per halaman
        self.stdout.write('\n📊 Ringkasan Hero Images per Halaman:')
        for page_choice, page_display in HeroImage.PAGE_CHOICES:
            count = HeroImage.objects.filter(page=page_choice).count()
            self.stdout.write(f'  • {page_display}: {count} gambar')
        
        self.stdout.write(
            self.style.SUCCESS(f'\n💡 Total: {HeroImage.objects.count()} hero images tersedia')
        )
        
        self.stdout.write(
            self.style.WARNING('\n📝 Catatan: Silakan upload gambar manual melalui admin panel atau media folder.')
        )
