#!/usr/bin/env python3
# Test script to find the exact error
import os
import sys

# Change to backend directory
os.chdir(r'/var/www/html/timesheet/backend')
sys.path.insert(0, r'/var/www/html/timesheet/backend')

print("Starting diagnostic...")
print(f"Current directory: {os.getcwd()}")
print(f"Python path: {sys.path}")

try:
    print("\n1. Testing basic imports...")
    import fastapi
    print("   ✓ FastAPI imported")
    
    print("\n2. Testing main.py imports...")
    # Import line by line to find the exact error
    from fastapi import FastAPI, Depends, HTTPException, status, Request
    print("   ✓ FastAPI components imported")
    
    import json
    from fastapi.security import OAuth2PasswordBearer, OAuth2PasswordRequestForm
    from sqlalchemy.orm import Session
    from datetime import datetime, timedelta, timezone
    from typing import List, Optional
    print("   ✓ Standard library imports OK")
    
    print("\n3. Testing local module imports...")
    try:
        from stateless_webhook import router as stateless_router
        print("   ✓ stateless_webhook imported")
    except Exception as e:
        print(f"   ✗ stateless_webhook error: {e}")
        import traceback
        traceback.print_exc()
    
    print("\n4. Testing other imports...")
    import uvicorn
    import models, schemas, crud, auth, database
    print("   ✓ Local modules imported")
    
    print("\n5. Testing FastAPI app creation...")
    app = FastAPI(title="Timesheet API", version="1.0.0")
    print("   ✓ FastAPI app created")
    
    print("\nAll tests passed! The issue might be in runtime, not syntax.")
    print("\nTry running with: python3 -m uvicorn main:app --reload --port 8090 --log-level debug")
    
except SyntaxError as e:
    print(f"\n✗ SYNTAX ERROR FOUND!")
    print(f"   File: {e.filename}")
    print(f"   Line: {e.lineno}")
    print(f"   Text: {e.text}")
    print(f"   Error: {e.msg}")
    import traceback
    traceback.print_exc()
    
except Exception as e:
    print(f"\n✗ ERROR: {type(e).__name__}: {e}")
    import traceback
    traceback.print_exc()
