from django.core.management.base import BaseCommand
from django.utils import timezone
from datetime import datetime, timedelta
from news.models import News, NewsComment
from core.models import CustomUser
import random

class Command(BaseCommand):
    help = 'Create dummy comments for news articles'

    def handle(self, *args, **options):
        self.stdout.write('Creating dummy comments for news articles...')
        
        # Get all published news
        news_articles = News.objects.filter(status='published')
        
        if not news_articles.exists():
            self.stdout.write(self.style.WARNING('No published news found. Please create news articles first.'))
            return
        
        # Sample comments data
        comments_data = [
            {
                'content': 'Alhamdulillah, kegiatan gotong royong seperti ini sangat bermanfaat untuk menjaga kebersihan lingkungan. Semoga bisa dilakukan secara rutin.',
                'author_name': 'Ahmad Fauzi',
                'author_email': 'ahmad.fauzi@email.com',
                'status': 'approved'
            },
            {
                'content': 'Program desa budaya ini sangat bagus untuk melestarikan warisan budaya leluhur kita. Mari kita dukung bersama.',
                'author_name': 'Siti Aminah',
                'author_email': 'siti.aminah@email.com',
                'status': 'approved'
            },
            {
                'content': 'Semoga pembangunan jembatan bisa segera selesai dan tidak mengganggu aktivitas masyarakat lagi.',
                'author_name': 'Muhammad Ali',
                'author_email': 'muhammad.ali@email.com',
                'status': 'approved'
            },
            {
                'content': 'Program Desa Cantik ini sangat membantu dalam pengelolaan data desa. Terima kasih atas bantuannya.',
                'author_name': 'Hasan Basri',
                'author_email': 'hasan.basri@email.com',
                'status': 'approved'
            },
            {
                'content': 'Kebakaran hutan ini sangat meresahkan. Mari kita jaga lingkungan kita bersama-sama.',
                'author_name': 'Bustami',
                'author_email': 'bustami@email.com',
                'status': 'approved'
            },
            {
                'content': 'Program ketahanan pangan ini sangat bagus untuk meningkatkan produksi pangan lokal.',
                'author_name': 'Drs. Ahmad Yani',
                'author_email': 'ahmad.yani@email.com',
                'status': 'approved'
            },
            {
                'content': 'Bantuan rumah layak huni ini sangat membantu keluarga kami. Terima kasih pemerintah.',
                'author_name': 'Siti Nurhaliza',
                'author_email': 'siti.nurhaliza@email.com',
                'status': 'approved'
            },
            {
                'content': 'Program beasiswa ini sangat membantu anak-anak yang kurang mampu untuk melanjutkan pendidikan.',
                'author_name': 'Dr. Muhammad Ali',
                'author_email': 'muhammad.ali2@email.com',
                'status': 'approved'
            },
            {
                'content': 'Selamat atas penghargaan yang diraih Posyandu Desa Pulo Sarok. Ini adalah prestasi yang membanggakan.',
                'author_name': 'Ir. Siti Aminah',
                'author_email': 'siti.aminah2@email.com',
                'status': 'approved'
            },
            {
                'content': 'Kegiatan seperti ini harus sering dilakukan untuk menjaga kebersihan dan keindahan desa kita.',
                'author_name': 'Warga Desa',
                'author_email': 'warga@email.com',
                'status': 'pending'
            },
            {
                'content': 'Semoga dengan menjadi desa budaya, warisan budaya kita bisa lebih dikenal oleh masyarakat luas.',
                'author_name': 'Budayawan Lokal',
                'author_email': 'budayawan@email.com',
                'status': 'approved'
            },
            {
                'content': 'Pembangunan infrastruktur memang penting, tapi harus mempertimbangkan kepentingan masyarakat juga.',
                'author_name': 'Aktivis Masyarakat',
                'author_email': 'aktivis@email.com',
                'status': 'approved'
            },
            {
                'content': 'Program statistik ini akan sangat membantu dalam perencanaan pembangunan desa yang lebih baik.',
                'author_name': 'Perencana Desa',
                'author_email': 'perencana@email.com',
                'status': 'approved'
            },
            {
                'content': 'Kebakaran hutan harus menjadi perhatian serius. Mari kita tingkatkan kesadaran lingkungan.',
                'author_name': 'Pecinta Lingkungan',
                'author_email': 'lingkungan@email.com',
                'status': 'approved'
            },
            {
                'content': 'Ketahanan pangan adalah hal yang sangat penting untuk kemandirian desa.',
                'author_name': 'Petani Lokal',
                'author_email': 'petani@email.com',
                'status': 'approved'
            },
            {
                'content': 'Bantuan pemerintah seperti ini sangat berarti bagi masyarakat yang membutuhkan.',
                'author_name': 'Tokoh Masyarakat',
                'author_email': 'tokoh@email.com',
                'status': 'approved'
            },
            {
                'content': 'Pendidikan adalah investasi terbaik untuk masa depan anak-anak kita.',
                'author_name': 'Guru SD',
                'author_email': 'guru@email.com',
                'status': 'approved'
            },
            {
                'content': 'Pelayanan kesehatan yang berkualitas sangat penting untuk kesejahteraan masyarakat.',
                'author_name': 'Bidan Desa',
                'author_email': 'bidan@email.com',
                'status': 'approved'
            },
            {
                'content': 'Semoga desa kita semakin maju dan sejahtera dengan berbagai program yang ada.',
                'author_name': 'Ketua RT',
                'author_email': 'ketuart@email.com',
                'status': 'approved'
            },
            {
                'content': 'Gotong royong adalah nilai luhur yang harus terus kita pertahankan.',
                'author_name': 'Pemuda Desa',
                'author_email': 'pemuda@email.com',
                'status': 'approved'
            }
        ]
        
        created_count = 0
        
        # Create comments for each news article
        for news in news_articles:
            # Randomly select 2-5 comments per news article
            num_comments = random.randint(2, 5)
            selected_comments = random.sample(comments_data, num_comments)
            
            for comment_data in selected_comments:
                # Check if comment already exists for this news
                existing_comment = NewsComment.objects.filter(
                    news=news,
                    author_name=comment_data['author_name'],
                    content=comment_data['content']
                ).exists()
                
                if not existing_comment:
                    # Random date within last 30 days
                    random_days = random.randint(1, 30)
                    comment_date = timezone.now() - timedelta(days=random_days)
                    
                    comment = NewsComment.objects.create(
                        news=news,
                        content=comment_data['content'],
                        author_name=comment_data['author_name'],
                        author_email=comment_data['author_email'],
                        status=comment_data['status'],
                        created_at=comment_date
                    )
                    
                    created_count += 1
                    self.stdout.write(f'Created comment by {comment.author_name} for news: {news.title[:50]}...')
        
        self.stdout.write(
            self.style.SUCCESS(f'Successfully created {created_count} comments for news articles')
        )
