Start integrating the onboarding flow with backend 2
This commit is contained in:
@@ -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",
|
||||
|
||||
Reference in New Issue
Block a user