#!/usr/bin/env python3
"""
Script to reset a user's monthly analysis usage for testing
"""

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

def reset_user_usage(email):
    """Reset user's monthly usage to 0"""

    with app.app_context():
        # Find the user
        user = User.query.filter_by(email=email).first()

        if not user:
            print(f"❌ User with email {email} not found")
            return False

        print(f"✅ Found user: {user.username} (ID: {user.id})")

        # Get user's subscription
        subscription = Subscription.query.filter_by(
            user_id=user.id,
            status='active'
        ).first()

        if not subscription:
            print("❌ No active subscription found")
            return False

        # Get the monthly limit
        limit = subscription.plan.features.get('monthly_analyses', 5)

        print(f"📊 Current subscription:")
        print(f"   - Plan: {subscription.plan.display_name}")
        print(f"   - Monthly limit: {limit}")
        print(f"   - Current usage: {subscription.monthly_analyses_used}")

        # Reset usage to 0
        old_usage = subscription.monthly_analyses_used
        subscription.monthly_analyses_used = 0

        try:
            db.session.commit()
            print(f"\n✅ Reset usage successfully!")
            print(f"   - Usage was: {old_usage}/{limit}")
            print(f"   - Usage now: 0/{limit}")
            print(f"   - User can now perform {limit} analyses")
            return True
        except Exception as e:
            db.session.rollback()
            print(f"❌ Error resetting usage: {str(e)}")
            return False

if __name__ == "__main__":
    email = "scott.barbour@yahoo.com"
    reset_user_usage(email)