import os
import sys
import django

# Setup Django environment
sys.path.append(os.path.dirname(os.path.abspath(__file__)))
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'hotelfinder.settings')
django.setup()

from users.models import User
from hotel.models import Hotel
from rest_framework_simplejwt.tokens import AccessToken

def seed_and_token():
    # 1. Create or get user
    user, created = User.objects.get_or_create(
        username='admin_ota',
        defaults={
            'role': 'HOTEL_OWNER',
            'is_staff': True,
            'is_superuser': True
        }
    )
    user.set_password('otapassword')
    user.save()
    if created:
        print(f"Created user: {user.username}")
    else:
        print(f"User already exists: {user.username}")

    # 2. Create or get hotel with ID 99 (matching our test connection)
    hotel, created_hotel = Hotel.objects.get_or_create(
        id=99,
        defaults={
            'owner': user,
            'name': 'Downtown HotelFinder',
            'city': 'Bilaspur',
            'address': 'Seepat Road',
            'description': 'Downtown Hotel mapped'
        }
    )
    if created_hotel:
        print(f"Created Hotel: {hotel.name} with ID 99")
    else:
        print(f"Hotel with ID 99 already exists: {hotel.name}")

    # 3. Generate SimpleJWT AccessToken
    token = AccessToken.for_user(user)
    print("\nJWT_ACCESS_TOKEN:")
    print(str(token))

if __name__ == '__main__':
    seed_and_token()
