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