Start integrating the onboarding flow with backend 2

This commit is contained in:
Urtzi Alfaro
2025-09-04 18:59:56 +02:00
parent a11fdfba24
commit 9eedc2e5f2
30 changed files with 3432 additions and 4735 deletions

View File

@@ -26,7 +26,7 @@ logger = structlog.get_logger()
# Import result schemas (dataclass definitions)
from dataclasses import dataclass
from dataclasses import dataclass, field
from typing import List, Dict, Any
@dataclass
@@ -38,6 +38,8 @@ class SalesValidationResult:
errors: List[Dict[str, Any]]
warnings: List[Dict[str, Any]]
summary: Dict[str, Any]
unique_products: int = 0
product_list: List[str] = field(default_factory=list)
@dataclass
class SalesImportResult:
@@ -99,7 +101,9 @@ class DataImportService:
invalid_records=0,
errors=[],
warnings=[],
summary={}
summary={},
unique_products=0,
product_list=[]
)
errors = []
@@ -216,6 +220,22 @@ class DataImportService:
"code": "MISSING_PRODUCT_COLUMN"
})
# Extract unique products for AI suggestions
if column_mapping.get('product') and not errors:
product_column = column_mapping['product']
unique_products_set = set()
for row in rows:
product_name = row.get(product_column, '').strip()
if product_name and len(product_name) > 0:
unique_products_set.add(product_name)
validation_result.product_list = list(unique_products_set)
validation_result.unique_products = len(unique_products_set)
logger.info(f"Extracted {validation_result.unique_products} unique products from CSV",
tenant_id=data.get("tenant_id"))
if not column_mapping.get('quantity'):
warnings.append({
"type": "missing_column",