feat: 增强日历功能并集成 AgentScope 代理服务

This commit is contained in:
qzl
2026-03-11 15:28:29 +08:00
parent e55e445906
commit e20e7d2a02
85 changed files with 5175 additions and 885 deletions
+18 -4
View File
@@ -87,7 +87,7 @@ class ScheduleItemService(BaseService):
"start_at": request.start_at,
"end_at": request.end_at,
"timezone": request.timezone,
"metadata": request.metadata.model_dump() if request.metadata else {},
"extra_metadata": request.metadata.model_dump() if request.metadata else {},
"source_type": source_type,
"status": ScheduleItemStatus.ACTIVE,
"created_by": user_id,
@@ -136,7 +136,13 @@ class ScheduleItemService(BaseService):
# Handle metadata separately (model_dump returns dict)
if "metadata" in update_data and update_data["metadata"] is not None:
update_data["metadata"] = update_data["metadata"].model_dump()
metadata_value = update_data["metadata"]
update_data["extra_metadata"] = (
metadata_value.model_dump()
if hasattr(metadata_value, "model_dump")
else metadata_value
)
del update_data["metadata"]
# Validate time range
next_start = update_data.get("start_at", existing.start_at)
@@ -275,6 +281,14 @@ class ScheduleItemService(BaseService):
return ScheduleItemShareResponse(message="Calendar invitation sent")
def _to_response(self, item: ScheduleItem) -> ScheduleItemResponse:
status_value = (
item.status.value if hasattr(item.status, "value") else item.status
)
source_type_value = (
item.source_type.value
if hasattr(item.source_type, "value")
else item.source_type
)
return ScheduleItemResponse(
id=item.id,
title=item.title,
@@ -285,8 +299,8 @@ class ScheduleItemService(BaseService):
metadata=ScheduleItemMetadata.model_validate(item.extra_metadata)
if item.extra_metadata
else None,
status=ScheduleItemStatus(item.status.value),
source_type=ScheduleItemSourceType(item.source_type.value),
status=ScheduleItemStatus(str(status_value)),
source_type=ScheduleItemSourceType(str(source_type_value)),
created_at=item.created_at,
updated_at=item.updated_at,
)