""" Usage limit enforcement functions. Extracted from usage_tracking_service.py for better maintainability. """ from typing import Tuple, Dict, Any from datetime import datetime, timedelta from sqlalchemy.orm import Session from loguru import logger from models.subscription_models import APIProvider from services.subscription.pricing_service import PricingService def enforce_usage_limits(user_id: str, provider: APIProvider, tokens_requested: int, db: Session, pricing_service: PricingService) -> Tuple[bool, str, Dict[str, Any]]: """Enforce usage limits before making an API call.""" # Check short-lived cache first (30s) cache_key = f"{user_id}:{provider.value}" now = datetime.utcnow() # This would need access to self._enforce_cache # For now, keeping the structure result = pricing_service.check_usage_limits( user_id=user_id, provider=provider, tokens_requested=tokens_requested ) # Cache the result # self._enforce_cache[cache_key] = { # 'result': result, # 'expires_at': now + timedelta(seconds=30) # } return tuple(result)