[add] Separate the definitions of end_user and user_alias
This commit is contained in:
@@ -23,7 +23,7 @@ from app.services.memory_entity_relationship_service import MemoryEntityService,
|
||||
from app.schemas.response_schema import ApiResponse
|
||||
from app.schemas.memory_storage_schema import GenerateCacheRequest
|
||||
from app.repositories.workspace_repository import WorkspaceRepository
|
||||
from app.schemas.end_user_schema import (
|
||||
from app.schemas.user_alias_schema import (
|
||||
UserAliasResponse,
|
||||
UserAliasCreate,
|
||||
UserAliasUpdate,
|
||||
|
||||
@@ -19,33 +19,4 @@ class EndUser(BaseModel):
|
||||
|
||||
# 用户摘要和洞察更新时间
|
||||
user_summary_updated_at: Optional[datetime.datetime] = Field(description="用户摘要最后更新时间", default=None)
|
||||
memory_insight_updated_at: Optional[datetime.datetime] = Field(description="洞察报告最后更新时间", default=None)
|
||||
|
||||
|
||||
class UserAliasResponse(BaseModel):
|
||||
"""用户别名响应模型"""
|
||||
model_config = ConfigDict(from_attributes=True)
|
||||
|
||||
user_alias_id: uuid.UUID = Field(description="用户别名记录ID")
|
||||
end_user_id: uuid.UUID = Field(description="终端用户ID")
|
||||
other_name: str = Field(description="用户名称")
|
||||
aliases: Optional[List[str]] = Field(description="别名列表", default=None)
|
||||
meta_data: Optional[dict] = Field(description="扩展信息", default=None)
|
||||
created_at: datetime.datetime = Field(description="创建时间")
|
||||
updated_at: datetime.datetime = Field(description="更新时间")
|
||||
|
||||
|
||||
class UserAliasCreate(BaseModel):
|
||||
"""创建用户别名请求模型"""
|
||||
end_user_id: str = Field(description="终端用户ID")
|
||||
other_name: str = Field(description="用户名称")
|
||||
aliases: Optional[List[str]] = Field(description="别名列表", default=None)
|
||||
meta_data: Optional[dict] = Field(description="扩展信息", default=None)
|
||||
|
||||
|
||||
class UserAliasUpdate(BaseModel):
|
||||
"""更新用户别名请求模型"""
|
||||
user_alias_id: str = Field(description="用户别名记录ID")
|
||||
other_name: Optional[str] = Field(description="用户名称", default=None)
|
||||
aliases: Optional[List[str]] = Field(description="别名列表", default=None)
|
||||
meta_data: Optional[dict] = Field(description="扩展信息", default=None)
|
||||
memory_insight_updated_at: Optional[datetime.datetime] = Field(description="洞察报告最后更新时间", default=None)
|
||||
@@ -1,6 +1,6 @@
|
||||
import uuid
|
||||
import datetime
|
||||
from typing import Optional, Dict, Any
|
||||
from typing import Optional, Dict, Any, List
|
||||
from pydantic import BaseModel, Field
|
||||
from pydantic import ConfigDict
|
||||
|
||||
@@ -8,18 +8,20 @@ from pydantic import ConfigDict
|
||||
class UserAliasBase(BaseModel):
|
||||
"""用户别名基础模型"""
|
||||
other_name: str = Field(description="关联的用户名称")
|
||||
alias: Optional[str] = Field(description="用户别名", default=None)
|
||||
aliases: Optional[List[str]] = Field(description="用户别名列表", default=None)
|
||||
meta_data: Optional[Dict[str, Any]] = Field(description="用户相关的扩展信息", default=None)
|
||||
|
||||
|
||||
class UserAliasCreate(UserAliasBase):
|
||||
"""创建用户别名请求模型"""
|
||||
end_user_id: uuid.UUID = Field(description="关联的终端用户ID")
|
||||
end_user_id: str = Field(description="关联的终端用户ID")
|
||||
|
||||
|
||||
class UserAliasUpdate(BaseModel):
|
||||
"""更新用户别名请求模型"""
|
||||
alias: Optional[str] = Field(description="用户别名", default=None)
|
||||
user_alias_id: str = Field(description="用户别名记录ID")
|
||||
other_name: Optional[str] = Field(description="用户名称", default=None)
|
||||
aliases: Optional[List[str]] = Field(description="用户别名列表", default=None)
|
||||
meta_data: Optional[Dict[str, Any]] = Field(description="用户相关的扩展信息", default=None)
|
||||
|
||||
|
||||
@@ -27,7 +29,7 @@ class UserAliasResponse(UserAliasBase):
|
||||
"""用户别名响应模型"""
|
||||
model_config = ConfigDict(from_attributes=True)
|
||||
|
||||
id: uuid.UUID = Field(description="别名ID")
|
||||
user_alias_id: uuid.UUID = Field(description="用户别名记录ID")
|
||||
end_user_id: uuid.UUID = Field(description="关联的终端用户ID")
|
||||
created_at: datetime.datetime = Field(description="创建时间")
|
||||
updated_at: datetime.datetime = Field(description="更新时间")
|
||||
|
||||
@@ -397,7 +397,7 @@ class UserMemoryService:
|
||||
}
|
||||
|
||||
# 构建响应数据
|
||||
from app.schemas.end_user_schema import UserAliasResponse
|
||||
from app.schemas.user_alias_schema import UserAliasResponse
|
||||
response_data = UserAliasResponse(
|
||||
user_alias_id=user_alias_record.id,
|
||||
end_user_id=user_alias_record.end_user_id,
|
||||
@@ -485,7 +485,7 @@ class UserMemoryService:
|
||||
db.refresh(new_alias)
|
||||
|
||||
# 构建响应数据
|
||||
from app.schemas.end_user_schema import UserAliasResponse
|
||||
from app.schemas.user_alias_schema import UserAliasResponse
|
||||
response_data = UserAliasResponse(
|
||||
user_alias_id=new_alias.id,
|
||||
end_user_id=new_alias.end_user_id,
|
||||
@@ -556,9 +556,12 @@ class UserMemoryService:
|
||||
"error": "用户别名记录不存在"
|
||||
}
|
||||
|
||||
# 更新字段
|
||||
# 定义允许更新的字段白名单
|
||||
allowed_fields = {'other_name', 'aliases', 'meta_data'}
|
||||
|
||||
# 更新字段(仅允许白名单中的字段)
|
||||
for field, value in update_data.items():
|
||||
if hasattr(user_alias_record, field) and field != 'user_alias_id':
|
||||
if field in allowed_fields:
|
||||
setattr(user_alias_record, field, value)
|
||||
|
||||
# 更新时间戳
|
||||
@@ -569,7 +572,7 @@ class UserMemoryService:
|
||||
db.refresh(user_alias_record)
|
||||
|
||||
# 构建响应数据
|
||||
from app.schemas.end_user_schema import UserAliasResponse
|
||||
from app.schemas.user_alias_schema import UserAliasResponse
|
||||
response_data = UserAliasResponse(
|
||||
user_alias_id=user_alias_record.id,
|
||||
end_user_id=user_alias_record.end_user_id,
|
||||
|
||||
Reference in New Issue
Block a user