Spaces:
Running
Running
| """ | |
| Credit Service - Middleware-based credit management system. | |
| Provides automatic credit tracking via middleware with complete audit trail. | |
| Application layer is completely unaware of credit management. | |
| Components: | |
| - CreditServiceConfig: Route configuration with credit costs and types | |
| - CreditMiddleware: Request/response-based credit handling | |
| - CreditTransactionManager: Core credit transaction operations | |
| - ResponseInspector: Response analysis for credit decisions | |
| - credit_manager: Legacy refund logic (used by middleware) | |
| Usage in app.py: | |
| from services.credit_service import CreditServiceConfig | |
| CreditServiceConfig.register( | |
| route_configs={ | |
| "/gemini/analyze-image": {"cost": 1, "type": "sync"}, | |
| "/gemini/generate-video": {"cost": 10, "type": "async"}, | |
| } | |
| ) | |
| app.add_middleware(CreditServiceConfig.get_middleware()) | |
| """ | |
| from services.credit_service.config import CreditServiceConfig | |
| from services.credit_service.middleware import CreditMiddleware | |
| from services.credit_service.transaction_manager import ( | |
| CreditTransactionManager, | |
| InsufficientCreditsError, | |
| TransactionNotFoundError, | |
| UserNotFoundError | |
| ) | |
| from services.credit_service.response_inspector import ResponseInspector | |
| from services.credit_service.credit_manager import ( | |
| is_refundable_error, | |
| REFUNDABLE_ERROR_PATTERNS, | |
| NON_REFUNDABLE_ERROR_PATTERNS, | |
| ) | |
| __all__ = [ | |
| # Configuration | |
| 'CreditServiceConfig', | |
| # Middleware | |
| 'CreditMiddleware', | |
| # Transaction Manager | |
| 'CreditTransactionManager', | |
| 'InsufficientCreditsError', | |
| 'TransactionNotFoundError', | |
| 'UserNotFoundError', | |
| # Response Inspector | |
| 'ResponseInspector', | |
| # Refund logic helpers | |
| 'is_refundable_error', | |
| 'REFUNDABLE_ERROR_PATTERNS', | |
| 'NON_REFUNDABLE_ERROR_PATTERNS', | |
| ] | |