#!/usr/bin/env python3
import sys
import os

# Add parent directory to path
sys.path.insert(0, '/var/www/lawbot')

from app import app
from models import User, Subscription, db
from datetime import datetime

def reset_user_limit(email):
    with app.app_context():
        user = User.query.filter_by(email=email).first()
        if not user:
            print(f"❌ User '{email}' not found")
            return False
        
        sub = user.get_subscription()
        if not sub:
            print(f"❌ No subscription for '{email}'")
            return False
        
        old_usage = sub.monthly_analyses_used
        sub.reset_monthly_usage()
        
        print(f"✅ Reset successful for {email}")
        print(f"   Usage: {old_usage} → {sub.monthly_analyses_used}")
        print(f"   Plan: {sub.plan.name}")
        print(f"   Limit: {sub.plan.features.get('monthly_analyses', 'unlimited')}")
        return True

def show_user_info(email):
    with app.app_context():
        user = User.query.filter_by(email=email).first()
        if not user:
            print(f"❌ User '{email}' not found")
            return
        
        sub = user.get_subscription()
        if sub:
            print(f"📊 {email}:")
            print(f"   Plan: {sub.plan.name}")
            print(f"   Used: {sub.monthly_analyses_used}")
            print(f"   Limit: {sub.plan.features.get('monthly_analyses', 'unlimited')}")
            print(f"   Can analyze: {'Yes' if sub.can_analyze_document() else 'No'}")
        else:
            print(f"❌ No subscription for {email}")

if __name__ == "__main__":
    if len(sys.argv) < 2:
        print("Usage:")
        print("  python scripts/reset_analysis_limit.py <email>")
        print("  python scripts/reset_analysis_limit.py <email> --info")
        print("\nExample:")
        print("  python scripts/reset_analysis_limit.py akresila@troycapital.com")
        sys.exit(1)
    
    email = sys.argv[1]
    
    if len(sys.argv) > 2 and sys.argv[2] == '--info':
        show_user_info(email)
    else:
        reset_user_limit(email)
