feat: add Usage Limits Panel component with usage tracking and visual indicators for limits
style: implement custom color schemes and gradients for account section, enhancing visual hierarchy
This commit is contained in:
@@ -866,3 +866,44 @@ class AccountPaymentMethodViewSet(AccountModelViewSet):
|
||||
{'count': paginator.page.paginator.count, 'next': paginator.get_next_link(), 'previous': paginator.get_previous_link(), 'results': results},
|
||||
request=request
|
||||
)
|
||||
|
||||
|
||||
# ============================================================================
|
||||
# USAGE SUMMARY (Plan Limits) - User-facing endpoint
|
||||
# ============================================================================
|
||||
|
||||
from rest_framework.decorators import api_view, permission_classes
|
||||
|
||||
@api_view(['GET'])
|
||||
@permission_classes([IsAuthenticatedAndActive, HasTenantAccess])
|
||||
def get_usage_summary(request):
|
||||
"""
|
||||
Get comprehensive usage summary for current account.
|
||||
Includes hard limits (sites, users, keywords, clusters) and monthly limits (ideas, words, images).
|
||||
|
||||
GET /api/v1/billing/usage-summary/
|
||||
"""
|
||||
try:
|
||||
account = getattr(request, 'account', None)
|
||||
if not account:
|
||||
return error_response(
|
||||
error='Account not found.',
|
||||
status_code=status.HTTP_400_BAD_REQUEST,
|
||||
request=request
|
||||
)
|
||||
|
||||
from igny8_core.business.billing.services.limit_service import LimitService
|
||||
summary = LimitService.get_usage_summary(account)
|
||||
|
||||
return success_response(
|
||||
data=summary,
|
||||
message='Usage summary retrieved successfully.',
|
||||
request=request
|
||||
)
|
||||
except Exception as e:
|
||||
logger.error(f'Error getting usage summary: {str(e)}', exc_info=True)
|
||||
return error_response(
|
||||
error=f'Failed to retrieve usage summary: {str(e)}',
|
||||
status_code=status.HTTP_500_INTERNAL_SERVER_ERROR,
|
||||
request=request
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user