#!/usr/bin/env python3
"""
Create test users for RateRight authentication testing
"""

from werkzeug.security import generate_password_hash
from app import create_app
from app.extensions import db
from app.models.user import User

def create_test_users():
    """Create test users for authentication testing"""
    
    app = create_app()
    with app.app_context():
        print("👥 Creating RateRight Test Users")
        print("=" * 40)
        
        # Check if test users already exist
        contractor = User.query.filter_by(email='contractor@test.com').first()
        worker = User.query.filter_by(email='worker@test.com').first()
        
        if contractor and worker:
            print("✅ Test users already exist!")
            print("   Contractor: contractor@test.com")
            print("   Worker: worker@test.com")
            return
            
        # Create contractor user
        if not contractor:
            contractor = User(
                email='contractor@test.com',
                password_hash=generate_password_hash('test123'),
                first_name='John',
                last_name='Contractor',
                role='contractor',
                phone_number='0412345678',
                location='Sydney, NSW',
                abn_number='12345678901',
                public_liability_insurance=True,
                workers_comp_insurance=True,
                privacy_consent=True,
                terms_accepted=True,
                is_active=True
            )
            db.session.add(contractor)
            print("✅ Created contractor user: contractor@test.com")
            
        # Create worker user
        if not worker:
            worker = User(
                email='worker@test.com',
                password_hash=generate_password_hash('test123'),
                first_name='Rocky',
                last_name='Worker',
                role='worker',
                phone_number='0487654321',
                location='Melbourne, VIC',
                abn_number='98765432109',
                public_liability_insurance=True,
                workers_comp_insurance=True,
                white_card_number='WC123456',
                privacy_consent=True,
                terms_accepted=True,
                is_active=True
            )
            db.session.add(worker)
            print("✅ Created worker user: worker@test.com")
            
        # Commit changes
        db.session.commit()
        
        print("\n🎉 Test users created successfully!")
        print("=" * 40)
        print("🔑 LOGIN CREDENTIALS:")
        print("   Contractor: contractor@test.com / test123")
        print("   Worker: worker@test.com / test123")
        print("\n💡 Ready for authentication testing!")

if __name__ == "__main__":
    create_test_users()
