Refactor keyword handling: Replace 'intent' with 'country' across backend and frontend

- Updated AutomationService to include estimated_word_count.
- Increased stage_1_batch_size from 20 to 50 in AutomationViewSet.
- Changed Keywords model to replace 'intent' property with 'country'.
- Adjusted ClusteringService to allow a maximum of 50 keywords for clustering.
- Modified admin and management commands to remove 'intent' and use 'country' instead.
- Updated serializers to reflect the change from 'intent' to 'country'.
- Adjusted views and filters to use 'country' instead of 'intent'.
- Updated frontend forms, filters, and pages to replace 'intent' with 'country'.
- Added migration to remove 'intent' field and add 'country' field to SeedKeyword model.
This commit is contained in:
IGNY8 VPS (Salman)
2025-12-17 07:37:36 +00:00
parent 9f826c92f8
commit 7ad06c6227
30 changed files with 240 additions and 205 deletions

View File

@@ -39,7 +39,7 @@ interface DashboardStats {
mapped: number;
unmapped: number;
byStatus: Record<string, number>;
byIntent: Record<string, number>;
byCountry: Record<string, number>;
};
clusters: {
total: number;
@@ -90,11 +90,11 @@ export default function PlannerDashboard() {
const unmappedKeywords = keywords.filter(k => !k.cluster || k.cluster.length === 0);
const keywordsByStatus: Record<string, number> = {};
const keywordsByIntent: Record<string, number> = {};
const keywordsByCountry: Record<string, number> = {};
keywords.forEach(k => {
keywordsByStatus[k.status || 'unknown'] = (keywordsByStatus[k.status || 'unknown'] || 0) + 1;
if (k.intent) {
keywordsByIntent[k.intent] = (keywordsByIntent[k.intent] || 0) + 1;
if (k.country) {
keywordsByCountry[k.country] = (keywordsByCountry[k.country] || 0) + 1;
}
});
@@ -135,7 +135,7 @@ export default function PlannerDashboard() {
mapped: mappedKeywords.length,
unmapped: unmappedKeywords.length,
byStatus: keywordsByStatus,
byIntent: keywordsByIntent
byCountry: keywordsByCountry
},
clusters: {
total: clusters.length,