From 486ab834de8d9a7a20c41947b1ce328cb7bd0774 Mon Sep 17 00:00:00 2001 From: giles Date: Wed, 4 Mar 2026 08:28:47 +0000 Subject: [PATCH] Fix datetime serialization in _dto_to_dict Use dto_to_dict() from shared/contracts/dtos.py for dataclass serialization instead of raw dataclasses.asdict(). This ensures datetimes are converted to ISO format strings (not RFC 2822 from jsonify), matching what dto_from_dict() expects on the receiving end. Co-Authored-By: Claude Opus 4.6 --- shared/sx/primitives_io.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/shared/sx/primitives_io.py b/shared/sx/primitives_io.py index bb9e65a..dc066f7 100644 --- a/shared/sx/primitives_io.py +++ b/shared/sx/primitives_io.py @@ -226,8 +226,8 @@ def _dto_to_dict(obj: Any) -> dict[str, Any]: without parsing date strings. """ if hasattr(obj, "__dataclass_fields__"): - import dataclasses - d = dataclasses.asdict(obj) + from shared.contracts.dtos import dto_to_dict + return dto_to_dict(obj) elif hasattr(obj, "_asdict"): d = dict(obj._asdict()) elif hasattr(obj, "__dict__"):