from django.core.management.base import BaseCommand
from django.contrib.auth.hashers import make_password
from apps.accounts.models import User, Profile

class Command(BaseCommand):
    help = 'Create a test user for login testing'

    def handle(self, *args, **options):
        email = "test@adtlas.com"
        password = "testpass123"
        
        try:
            # Check if user already exists
            user = User.objects.get(email=email)
            user.set_password(password)
            user.is_verified = True
            user.is_active = True
            user.save()
            self.stdout.write(
                self.style.SUCCESS(f'✅ Updated existing user: {email} / {password}')
            )
            
        except User.DoesNotExist:
            # Create new user
            user = User.objects.create(
                email=email,
                username=email,
                first_name="Test",
                last_name="User",
                is_active=True,
                is_verified=True
            )
            user.set_password(password)
            user.save()
            
            # Create profile if it doesn't exist
            profile, created = Profile.objects.get_or_create(
                user=user,
                defaults={
                    'job_title': 'Test Developer',
                    'company': 'Adtlas Test'
                }
            )
            
            self.stdout.write(
                self.style.SUCCESS(f'✅ Created new user: {email} / {password}')
            )
        
        self.stdout.write(
            self.style.SUCCESS('🎯 User is ready for testing login messages!')
        )
