from __future__ import annotations import uuid from datetime import datetime, timezone from bom_assistant.ingestion.column_mapper import map_columns from bom_assistant.ingestion.normalizer import normalize from bom_assistant.ingestion.parser import parse_bom from bom_assistant.session.models import BomSession def build_session(content: bytes, filename: str) -> BomSession: raw = parse_bom(content, filename) mapped = map_columns(raw) rows = normalize(mapped) return BomSession( session_id=str(uuid.uuid4()), created_at=datetime.now(timezone.utc).isoformat(), filename=filename, rows=rows, )