#!/usr/bin/env python3
"""
Script to set a user's analysis usage to their limit for testing
"""

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

def set_user_at_limit(email):
    """Set user's monthly usage to their plan limit"""

    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}")

        # Set usage to limit
        subscription.monthly_analyses_used = limit

        try:
            db.session.commit()
            print(f"\n✅ Set usage to limit!")
            print(f"   - Usage now: {subscription.monthly_analyses_used}/{limit}")
            print(f"   - User will see upgrade/purchase options on next analysis attempt")
            return True
        except Exception as e:
            db.session.rollback()
            print(f"❌ Error updating usage: {str(e)}")
            return False

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