from django.core.management.base import BaseCommand
from django.contrib.auth import get_user_model
from django.utils import timezone
from news.models import News, NewsCategory, NewsTag
import random
from datetime import datetime, timedelta

User = get_user_model()


class Command(BaseCommand):
    help = 'Membuat 15 task untuk news'

    def handle(self, *args, **kwargs):
        # Buat user admin jika belum ada
        admin_user, created = User.objects.get_or_create(
            username='admin',
            defaults={
                'email': 'admin@pulosarok.com',
                'first_name': 'Admin',
                'last_name': 'Pulosarok',
                'is_staff': True,
                'is_superuser': True
            }
        )
        if created:
            admin_user.set_password('admin123')
            admin_user.save()

        # Buat kategori berita jika belum ada
        category, created = NewsCategory.objects.get_or_create(
            name='Pemerintahan',
            defaults={
                'description': 'Berita tentang pemerintahan desa',
                'color': '#007bff',
                'icon': 'fas fa-landmark'
            }
        )

        # Data 15 task untuk news
        tasks_data = [
            {
                'title': 'Menulis artikel tentang peresmian jembatan baru di Pulosarok',
                'content': '''<div style="font-family: 'Poppins', sans-serif; line-height: 1.8;">
                    <h2 style="color: #2c3e50; margin-bottom: 1.5rem;">📝 Task: Artikel Peresmian Jembatan Baru</h2>
                    
                    <p style="font-size: 1.1rem; margin-bottom: 1.5rem; color: #34495e;">
                        <strong>Deskripsi Task:</strong> Menulis artikel lengkap tentang peresmian jembatan baru yang menghubungkan Desa Pulosarok dengan desa tetangga. Artikel harus mencakup detail pembangunan, manfaat, dan dampak positif bagi masyarakat.
                    </p>
                    
                    <div style="background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white; padding: 2rem; border-radius: 15px; margin: 2rem 0;">
                        <h3 style="margin: 0 0 1rem 0; font-size: 1.5rem;">📋 Poin yang Harus Dicakup</h3>
                        <ul style="margin: 0; padding-left: 1.5rem;">
                            <li>Detail teknis pembangunan jembatan</li>
                            <li>Biaya dan sumber pendanaan</li>
                            <li>Manfaat bagi mobilitas warga</li>
                            <li>Dampak ekonomi dan sosial</li>
                            <li>Kutipan dari pejabat terkait</li>
                            <li>Foto dokumentasi peresmian</li>
                        </ul>
                    </div>
                    
                    <div style="background: #e8f5e8; padding: 1.5rem; border-radius: 10px; border-left: 5px solid #28a745; margin: 2rem 0;">
                        <h4 style="color: #28a745; margin: 0 0 1rem 0;">⏰ Timeline</h4>
                        <ul style="margin: 0; color: #495057;">
                            <li><strong>Deadline:</strong> 30 November 2025</li>
                            <li><strong>Status:</strong> In Progress</li>
                            <li><strong>Prioritas:</strong> High</li>
                        </ul>
                    </div>
                    
                    <p style="font-size: 1.1rem; color: #34495e;">
                        <strong>📞 Kontak:</strong> Kepala Desa Pulosarok - 0812-3456-7890<br>
                        <strong>📍 Lokasi:</strong> Jembatan Pulosarok, Desa Pulosarok<br>
                        <strong>📷 Dokumentasi:</strong> Siapkan kamera untuk foto peresmian
                    </p>
                </div>''',
                'priority': 'high',
                'is_featured': True,
                'is_breaking': False
            },
            {
                'title': 'Meliput Festival Budaya Pulosarok 2025',
                'content': '''<div style="font-family: 'Poppins', sans-serif; line-height: 1.8;">
                    <h2 style="color: #2c3e50; margin-bottom: 1.5rem;">📝 Task: Liputan Festival Budaya Pulosarok 2025</h2>
                    
                    <p style="font-size: 1.1rem; margin-bottom: 1.5rem; color: #34495e;">
                        <strong>Deskripsi Task:</strong> Meliput Festival Budaya Pulosarok 2025 yang akan digelar selama 3 hari. Liputan harus mencakup berbagai aspek festival termasuk pertunjukan, kuliner, dan kerajinan tangan.
                    </p>
                    
                    <div style="background: linear-gradient(135deg, #ff9a9e 0%, #fecfef 100%); color: #2c3e50; padding: 2rem; border-radius: 15px; margin: 2rem 0;">
                        <h3 style="margin: 0 0 1rem 0; font-size: 1.5rem;">🎭 Aspek yang Harus Diliput</h3>
                        <ul style="margin: 0; padding-left: 1.5rem;">
                            <li>Pertunjukan tarian tradisional</li>
                            <li>Kuliner khas Pulosarok</li>
                            <li>Kerajinan tangan lokal</li>
                            <li>Interaksi dengan pengunjung</li>
                            <li>Wawancara dengan panitia</li>
                            <li>Dokumentasi visual lengkap</li>
                        </ul>
                    </div>
                    
                    <div style="background: #fff3cd; padding: 1.5rem; border-radius: 10px; border-left: 5px solid #ffc107; margin: 2rem 0;">
                        <h4 style="color: #856404; margin: 0 0 1rem 0;">📅 Jadwal Liputan</h4>
                        <ul style="margin: 0; color: #495057;">
                            <li><strong>Hari 1:</strong> Pembukaan dan parade budaya</li>
                            <li><strong>Hari 2:</strong> Lomba dan pertunjukan</li>
                            <li><strong>Hari 3:</strong> Penutupan dan pengumuman pemenang</li>
                        </ul>
                    </div>
                    
                    <p style="font-size: 1.1rem; color: #34495e;">
                        <strong>📞 Kontak:</strong> Ketua Panitia Festival - 0813-4567-8901<br>
                        <strong>📍 Lokasi:</strong> Lapangan Desa Pulosarok<br>
                        <strong>📷 Peralatan:</strong> Kamera, tripod, microphone untuk wawancara
                    </p>
                </div>''',
                'priority': 'high',
                'is_featured': True,
                'is_breaking': False
            },
            {
                'title': 'Wawancara dengan kepala desa mengenai penghargaan Desa Wisata Terbaik',
                'content': '''<div style="font-family: 'Poppins', sans-serif; line-height: 1.8;">
                    <h2 style="color: #2c3e50; margin-bottom: 1.5rem;">📝 Task: Wawancara Kepala Desa - Penghargaan Desa Wisata</h2>
                    
                    <p style="font-size: 1.1rem; margin-bottom: 1.5rem; color: #34495e;">
                        <strong>Deskripsi Task:</strong> Melakukan wawancara mendalam dengan Kepala Desa Pulosarok mengenai penghargaan "Desa Wisata Terbaik 2025" yang baru saja diraih. Wawancara harus mengungkap strategi pengembangan wisata dan rencana ke depan.
                    </p>
                    
                    <div style="background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white; padding: 2rem; border-radius: 15px; margin: 2rem 0;">
                        <h3 style="margin: 0 0 1rem 0; font-size: 1.5rem;">❓ Pertanyaan Kunci</h3>
                        <ul style="margin: 0; padding-left: 1.5rem;">
                            <li>Bagaimana perasaan setelah mendapat penghargaan?</li>
                            <li>Strategi apa yang diterapkan untuk mengembangkan wisata?</li>
                            <li>Kendala apa yang dihadapi selama pengembangan?</li>
                            <li>Rencana ke depan untuk mempertahankan prestasi?</li>
                            <li>Dampak penghargaan bagi ekonomi desa?</li>
                            <li>Pesan untuk desa lain yang ingin mengembangkan wisata?</li>
                        </ul>
                    </div>
                    
                    <div style="background: #e8f5e8; padding: 1.5rem; border-radius: 10px; border-left: 5px solid #28a745; margin: 2rem 0;">
                        <h4 style="color: #28a745; margin: 0 0 1rem 0;">📋 Persiapan Wawancara</h4>
                        <ul style="margin: 0; color: #495057;">
                            <li>Riset latar belakang penghargaan</li>
                            <li>Persiapkan pertanyaan yang mendalam</li>
                            <li>Atur jadwal wawancara dengan kepala desa</li>
                            <li>Siapkan peralatan rekaman</li>
                            <li>Dokumentasi foto kepala desa</li>
                        </ul>
                    </div>
                    
                    <p style="font-size: 1.1rem; color: #34495e;">
                        <strong>📞 Kontak:</strong> Kepala Desa Pulosarok - 0812-3456-7890<br>
                        <strong>📍 Lokasi:</strong> Kantor Desa Pulosarok<br>
                        <strong>⏰ Durasi:</strong> 30-45 menit<br>
                        <strong>📷 Format:</strong> Video wawancara + foto
                    </p>
                </div>''',
                'priority': 'urgent',
                'is_featured': True,
                'is_breaking': True
            }
        ]

        # Buat berita task
        self.stdout.write('Membuat 15 task untuk news...')
        for i in range(15):
            if i < len(tasks_data):
                task_item = tasks_data[i]
            else:
                # Generate random task data
                task_item = self.generate_random_task(i)
            
            # Buat berita task
            news = News.objects.create(
                title=task_item['title'],
                content=task_item['content'],
                category=category,
                status='draft',
                priority=task_item.get('priority', 'normal'),
                is_featured=task_item.get('is_featured', False),
                is_breaking=task_item.get('is_breaking', False),
                author=admin_user,
                published_date=None,  # Task belum dipublikasi
                total_views=0,
                reading_time=random.randint(5, 20)
            )
            
            self.stdout.write(f'  ✓ Task "{news.title}" berhasil dibuat')

        self.stdout.write(
            self.style.SUCCESS(
                'Berhasil membuat 15 task untuk news!'
            )
        )

    def generate_random_task(self, index):
        """Generate random task data"""
        task_titles = [
            'Menulis laporan tentang pelatihan pertanian modern di Pulosarok',
            'Meliput lomba perahu tradisional di sungai Pulosarok',
            'Menulis artikel tentang pembangunan pusat kesehatan masyarakat baru',
            'Meliput seminar pendidikan untuk guru di Pulosarok',
            'Wawancara dengan penerima beasiswa Pulosarok',
            'Menulis laporan tentang pengembangan ekowisata mangrove di Pulosarok',
            'Meliput pelatihan kewirausahaan untuk pemuda Pulosarok',
            'Menulis artikel tentang lomba fotografi alam di Pulosarok',
            'Meliput kegiatan tim siaga bencana Pulosarok',
            'Menulis laporan tentang workshop kerajinan tangan tradisional',
            'Meliput peluncuran aplikasi informasi desa Pulosarok',
            'Menulis artikel tentang lomba masak kuliner tradisional di Pulosarok',
            'Meliput pembangunan taman bermain anak di Pulosarok',
            'Menulis laporan tentang festival musik tradisional Pulosarok',
            'Meliput pelatihan digital marketing untuk UMKM Pulosarok'
        ]
        
        task_contents = [
            'Meliput dan menulis laporan lengkap tentang program pelatihan pertanian modern yang diadakan untuk petani di Pulosarok.',
            'Meliput lomba perahu tradisional yang menjadi daya tarik wisata dan melestarikan budaya lokal.',
            'Menulis artikel tentang pembangunan pusat kesehatan masyarakat baru dengan fasilitas lengkap.',
            'Meliput seminar pendidikan yang bertujuan meningkatkan kualitas pengajaran di sekolah-sekolah Pulosarok.',
            'Melakukan wawancara dengan penerima beasiswa untuk mengetahui dampak program beasiswa bagi pendidikan.',
            'Menulis laporan tentang pengembangan ekowisata mangrove yang bertujuan menarik wisatawan dan menjaga lingkungan.',
            'Meliput pelatihan kewirausahaan yang membekali pemuda dengan keterampilan bisnis dan menciptakan lapangan kerja.',
            'Menulis artikel tentang lomba fotografi alam yang menarik partisipasi fotografer dari berbagai daerah.',
            'Meliput kegiatan tim siaga bencana yang diperkuat dengan pelatihan dan peralatan baru.',
            'Menulis laporan tentang workshop kerajinan tangan tradisional untuk melestarikan budaya dan meningkatkan ekonomi kreatif.',
            'Meliput peluncuran aplikasi mobile yang memudahkan warga mengakses informasi dan layanan desa secara digital.',
            'Menulis artikel tentang lomba memasak kuliner tradisional untuk mempromosikan makanan khas Pulosarok.',
            'Meliput pembangunan taman bermain anak dengan fasilitas lengkap untuk menyediakan ruang bermain yang aman.',
            'Menulis laporan tentang festival musik tradisional yang melestarikan seni musik lokal dan menarik wisatawan.',
            'Meliput pelatihan digital marketing yang membantu UMKM memasarkan produk secara online.'
        ]
        
        return {
            'title': task_titles[index % len(task_titles)],
            'content': f'<div style="font-family: \'Poppins\', sans-serif; line-height: 1.8;"><h2 style="color: #2c3e50; margin-bottom: 1.5rem;">📝 Task: {task_titles[index % len(task_titles)]}</h2><p style="font-size: 1.1rem; margin-bottom: 1.5rem; color: #34495e;"><strong>Deskripsi Task:</strong> {task_contents[index % len(task_contents)]}</p><div style="background: #e8f5e8; padding: 1.5rem; border-radius: 10px; border-left: 5px solid #28a745; margin: 2rem 0;"><h4 style="color: #28a745; margin: 0 0 1rem 0;">⏰ Timeline</h4><ul style="margin: 0; color: #495057;"><li><strong>Deadline:</strong> {random.choice(["30 November 2025", "5 Desember 2025", "10 Desember 2025", "15 Desember 2025"])}</li><li><strong>Status:</strong> {random.choice(["In Progress", "Pending", "Planning"])}</li><li><strong>Prioritas:</strong> {random.choice(["High", "Medium", "Low"])}</li></ul></div></div>',
            'priority': random.choice(['low', 'normal', 'high', 'urgent']),
            'is_featured': random.choice([True, False]),
            'is_breaking': random.choice([True, False])
        }
