from django.core.management.base import BaseCommand
from django.contrib.auth.hashers import make_password
from anggota.models import User
from django.utils import timezone
from datetime import timedelta

class Command(BaseCommand):
    help = 'Create demo user for testing'

    def handle(self, *args, **options):
        # Create demo user
        demo_user, created = User.objects.get_or_create(
            username='demo_anggota',
            defaults={
                'email': 'demo@hmi.com',
                'nama_lengkap': 'Demo Anggota',
                'nim': '123456789',
                'password': make_password('demo123'),
                'is_approved': True,
                'status': 'aktif',
                'tanggal_bergabung': timezone.now() - timedelta(days=30),
                'no_telepon': '081234567890',
                'alamat': 'Jl. Demo No. 123, Medan',
                'tanggal_lahir': timezone.now().date() - timedelta(days=365*20),
                'bio': 'Demo user untuk testing sistem HMI',
                'is_active': True,
            }
        )
        
        if created:
            self.stdout.write(
                self.style.SUCCESS('Demo user created successfully!')
            )
            self.stdout.write(f'Username: demo_anggota')
            self.stdout.write(f'Password: demo123')
        else:
            self.stdout.write(
                self.style.WARNING('Demo user already exists!')
            )
            # Update existing user to ensure it's approved
            demo_user.is_approved = True
            demo_user.status = 'aktif'
            demo_user.is_active = True
            demo_user.save()
            self.stdout.write(
                self.style.SUCCESS('Demo user updated successfully!')
            )
