fix(api): rename 'metadata' to 'response_metadata' to avoid Pydantic conflict

The field name 'metadata' conflicts with Pydantic's internal ClassVar.
Renamed to 'response_metadata' throughout:
- Backend: RoutineSuggestion, BatchSuggestion, ShoppingSuggestionResponse
- Frontend: TypeScript types and component usages

This fixes the AttributeError when setting metadata on SQLModel instances.
This commit is contained in:
Piotr Oleszczyk 2026-03-06 16:16:35 +01:00
parent d00e0afeec
commit c8fa80be99
20 changed files with 3802 additions and 23 deletions

View file

@ -270,7 +270,7 @@ class ShoppingSuggestionResponse(PydanticBase):
# Phase 3: Observability fields
validation_warnings: list[str] | None = None
auto_fixes_applied: list[str] | None = None
metadata: "ResponseMetadata | None" = None
response_metadata: "ResponseMetadata | None" = None
class _ProductSuggestionOut(PydanticBase):
@ -1120,6 +1120,6 @@ def suggest_shopping(session: Session = Depends(get_session)):
if validation_result.auto_fixes:
shopping_response.auto_fixes_applied = validation_result.auto_fixes
shopping_response.metadata = _build_response_metadata(session, log_id)
shopping_response.response_metadata = _build_response_metadata(session, log_id)
return shopping_response

View file

@ -160,7 +160,7 @@ class RoutineSuggestion(SQLModel):
# Phase 3: Observability fields
validation_warnings: Optional[list[str]] = None
auto_fixes_applied: Optional[list[str]] = None
metadata: Optional[ResponseMetadata] = None
response_metadata: Optional[ResponseMetadata] = None
class SuggestBatchRequest(SQLModel):
@ -184,7 +184,7 @@ class BatchSuggestion(SQLModel):
# Phase 3: Observability fields
validation_warnings: Optional[list[str]] = None
auto_fixes_applied: Optional[list[str]] = None
metadata: Optional[ResponseMetadata] = None
response_metadata: Optional[ResponseMetadata] = None
# ---------------------------------------------------------------------------
@ -855,7 +855,7 @@ def suggest_routine(
if validation_result.auto_fixes:
suggestion.auto_fixes_applied = validation_result.auto_fixes
suggestion.metadata = _build_response_metadata(session, log_id)
suggestion.response_metadata = _build_response_metadata(session, log_id)
return suggestion
@ -1033,7 +1033,7 @@ def suggest_batch(
if validation_result.auto_fixes:
batch_suggestion.auto_fixes_applied = validation_result.auto_fixes
batch_suggestion.metadata = _build_response_metadata(session, log_id)
batch_suggestion.response_metadata = _build_response_metadata(session, log_id)
return batch_suggestion