import os
import sys
import shutil

def run_checks():
    print("=" * 60)
    print("       TG AUTO REPLY PRO - INSTALLATION COMPATIBILITY CHECK       ")
    print("=" * 60)
    
    # 1. Check Python Version
    py_version = sys.version_info
    print(f"[*] Python Version: {py_version.major}.{py_version.minor}.{py_version.micro}", end="")
    if py_version.major == 3 and py_version.minor >= 10:
        print(" -> [PASS]")
    else:
        print(" -> [WARNING] (Python 3.10+ recommended)")
        
    # 2. Check Directory Write Permissions
    dirs = ['config', 'database', 'logs', 'sessions']
    print("[*] Verifying write permissions for application folders:")
    for d in dirs:
        path = os.path.join(os.path.dirname(os.path.abspath(__file__)), d)
        if not os.path.exists(path):
            try:
                os.makedirs(path, exist_ok=True)
            except Exception:
                pass
                
        if os.path.exists(path) and os.access(path, os.W_OK):
            print(f"    - {d}/: [PASS]")
        else:
            print(f"    - {d}/: [FAIL] (Make sure you have write permissions)")

    # 3. Check Database Engine
    print("[*] Verifying SQLite availability: ", end="")
    try:
        import sqlite3
        print("[PASS]")
    except ImportError:
        print("[FAIL] (sqlite3 module not found in Python core)")

    # 4. Check dependencies
    print("[*] Verifying required pip dependencies: ")
    deps = ['telethon', 'flask', 'apscheduler', 'pytz', 'psutil', 'passlib', 'bcrypt', 'cryptography']
    missing_deps = []
    for dep in deps:
        try:
            __import__(dep)
            print(f"    - {dep}: [INSTALLED]")
        except ImportError:
            print(f"    - {dep}: [MISSING]")
            missing_deps.append(dep)
            
    print("=" * 60)
    if missing_deps:
        print("[!] Warning: Some dependencies are missing. Run the installation script:")
        print("    pip install -r requirements.txt")
    else:
        print("[+] Environment is fully compatible and production ready.")
        print("[+] Please launch 'python main.py' and visit http://127.0.0.1:5000/install")
    print("=" * 60)

if __name__ == '__main__':
    run_checks()
