feat: 增强日历功能并集成 AgentScope 代理服务
This commit is contained in:
@@ -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,
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user