Files
backend/backend/app/admin/schema/audit_log.py
2026-01-27 19:58:37 +08:00

72 lines
3.2 KiB
Python
Executable File

from datetime import datetime
from typing import Optional, List
from pydantic import ConfigDict, Field
from backend.common.schema import SchemaBase
class AuditLogSchemaBase(SchemaBase):
""" Audit Log Schema """
api_type: str = Field(description="API类型: recognition/embedding/assessment")
model_name: str = Field(description="模型名称")
request_data: Optional[dict] = Field(None, description="请求数据")
response_data: Optional[dict] = Field(None, description="响应数据")
token_usage: Optional[dict] = Field(0, description="消耗的token数量")
cost: Optional[float] = Field(0.0, description="API调用成本")
duration: float = Field(description="调用耗时(秒)")
status_code: int = Field(description="HTTP状态码")
error_message: Optional[str] = Field("", description="错误信息")
called_at: Optional[datetime] = Field(None, description="调用时间")
image_id: Optional[int] = Field(None, description="关联的图片ID")
user_id: int = Field(description="调用用户ID")
api_version: str = Field(description="API版本")
dict_level: Optional[str] = Field(None, description="词典等级")
ref_type: Optional[str] = Field(None, description="通用引用类型")
ref_id: Optional[int] = Field(None, description="通用引用ID")
class CreateAuditLogParam(AuditLogSchemaBase):
"""创建操作日志参数"""
class AuditLogHistorySchema(SchemaBase):
""" Audit Log History Schema for user history records """
image_id: Optional[str] = Field(None, description="图ID")
file_id: Optional[str] = Field(None, description="原图ID")
thumbnail_id: Optional[str] = Field(None, description="缩略图ID")
created_time: Optional[str] = Field(description="图片创建时间")
dict_level: Optional[str] = Field(None, description="词典等级")
class AuditLogStatisticsSchema(SchemaBase):
""" Audit Log Statistics Schema """
total_count: int = Field(description="历史总量")
today_count: int = Field(description="当天总量")
image_count: int = Field(description="图片总量")
class CreateDailySummaryParam(SchemaBase):
"""创建每日总结参数"""
user_id: int = Field(description="调用用户ID")
image_ids: Optional[List[str]] = Field(None, description="图ID")
thumbnail_ids: Optional[List[str]] = Field(None, description="缩略图ID")
summary_time: Optional[datetime] = Field(None, description="调用时间")
class DailySummarySchema(SchemaBase):
""" Daily Summary Schema """
# id: int = Field(description="记录ID")
# user_id: int = Field(description="用户ID")
image_ids: List[str] = Field(description="图片ID列表")
thumbnail_ids: List[str] = Field(description="图片缩略图列表")
summary_time: str = Field(description="创建时间")
class DailySummaryPageSchema(SchemaBase):
""" Daily Summary Page Schema """
items: List[DailySummarySchema] = Field(description="每日汇总记录列表")
total: int = Field(description="总记录数")
page: int = Field(description="当前页码")
size: int = Field(description="每页记录数")