jebin2's picture
credi layer
a650e63
"""
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',
]