[add] Separate the definitions of end_user and user_alias

This commit is contained in:
lanceyq
2026-03-24 16:10:23 +08:00
parent a7285e35ad
commit e8d575fd0b
4 changed files with 17 additions and 41 deletions

View File

@@ -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,

View File

@@ -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)

View File

@@ -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="更新时间")

View File

@@ -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,