fina autoamtiona adn billing and credits

This commit is contained in:
IGNY8 VPS (Salman)
2025-12-04 15:54:15 +00:00
parent f8a9293196
commit 40dfe20ead
40 changed files with 5680 additions and 18 deletions

View File

@@ -595,6 +595,7 @@ class KeywordViewSet(SiteSectorModelViewSet):
def auto_cluster(self, request):
"""Auto-cluster keywords using ClusteringService"""
import logging
from igny8_core.ai.validators.cluster_validators import validate_minimum_keywords
logger = logging.getLogger(__name__)
@@ -611,6 +612,32 @@ class KeywordViewSet(SiteSectorModelViewSet):
request=request
)
# NEW: Validate minimum keywords BEFORE queuing task
if not keyword_ids:
return error_response(
error='No keyword IDs provided',
status_code=status.HTTP_400_BAD_REQUEST,
request=request
)
validation = validate_minimum_keywords(
keyword_ids=keyword_ids,
account=account,
min_required=5
)
if not validation['valid']:
return error_response(
error=validation['error'],
status_code=status.HTTP_400_BAD_REQUEST,
request=request,
extra_data={
'count': validation.get('count'),
'required': validation.get('required')
}
)
# Validation passed - proceed with clustering
# Use service to cluster keywords
service = ClusteringService()
try:
@@ -621,7 +648,7 @@ class KeywordViewSet(SiteSectorModelViewSet):
# Async task queued
return success_response(
data={'task_id': result['task_id']},
message=result.get('message', 'Clustering started'),
message=f'Clustering started with {validation["count"]} keywords',
request=request
)
else: