Files
leaudit-platform-backend/fastapi_modules/fastapi_leaudit/domian/vo/usageStatsVo.py
T

120 lines
3.5 KiB
Python

"""系统使用统计 VO。"""
from __future__ import annotations
from pydantic import BaseModel, Field
class UsageStatsOverviewVO(BaseModel):
loginUserCount: int = Field(0)
loginCount: int = Field(0)
activeUserCount: int = Field(0)
uploadDocumentCount: int = Field(0)
uploadAttachmentCount: int = Field(0)
auditRunCount: int = Field(0)
auditCompletedCount: int = Field(0)
auditFailedCount: int = Field(0)
lastUpdatedAt: str = Field("")
class UsageStatsTrendItemVO(BaseModel):
label: str = Field("")
value: int = Field(0)
class UsageStatsTrendVO(BaseModel):
granularity: str = Field("day")
metric: str = Field("audit")
items: list[UsageStatsTrendItemVO] = Field(default_factory=list)
class UsageStatsUserItemVO(BaseModel):
userId: int = Field(...)
username: str = Field("")
nickName: str = Field("")
departmentName: str | None = Field(None)
area: str | None = Field(None)
tenantCode: str | None = Field(None)
tenantName: str | None = Field(None)
loginCount: int = Field(0)
uploadDocumentCount: int = Field(0)
uploadAttachmentCount: int = Field(0)
auditRunCount: int = Field(0)
auditCompletedCount: int = Field(0)
auditFailedCount: int = Field(0)
lastLoginTime: str | None = Field(None)
class UsageStatsUserPageVO(BaseModel):
total: int = Field(0)
page: int = Field(1)
pageSize: int = Field(20)
items: list[UsageStatsUserItemVO] = Field(default_factory=list)
class UsageStatsDepartmentItemVO(BaseModel):
departmentName: str = Field("")
userCount: int = Field(0)
loginUserCount: int = Field(0)
loginCount: int = Field(0)
uploadDocumentCount: int = Field(0)
uploadAttachmentCount: int = Field(0)
auditRunCount: int = Field(0)
auditCompletedCount: int = Field(0)
auditFailedCount: int = Field(0)
class UsageStatsDepartmentPageVO(BaseModel):
total: int = Field(0)
page: int = Field(1)
pageSize: int = Field(20)
items: list[UsageStatsDepartmentItemVO] = Field(default_factory=list)
class UsageStatsAreaItemVO(BaseModel):
area: str = Field("")
tenantCode: str | None = Field(None)
tenantName: str | None = Field(None)
loginUserCount: int = Field(0)
loginCount: int = Field(0)
uploadDocumentCount: int = Field(0)
uploadAttachmentCount: int = Field(0)
auditRunCount: int = Field(0)
auditCompletedCount: int = Field(0)
auditFailedCount: int = Field(0)
class UsageStatsAreaPageVO(BaseModel):
total: int = Field(0)
page: int = Field(1)
pageSize: int = Field(20)
areaScope: str = Field("user")
items: list[UsageStatsAreaItemVO] = Field(default_factory=list)
class UsageStatsDetailItemVO(BaseModel):
time: str = Field("")
dataType: str = Field("")
userId: int | None = Field(None)
username: str = Field("")
nickName: str = Field("")
departmentName: str | None = Field(None)
area: str | None = Field(None)
tenantCode: str | None = Field(None)
tenantName: str | None = Field(None)
documentId: int | None = Field(None)
documentName: str | None = Field(None)
documentTypeId: int | None = Field(None)
documentTypeName: str | None = Field(None)
entryModuleId: int | None = Field(None)
entryModuleName: str | None = Field(None)
status: str | None = Field(None)
extra: dict = Field(default_factory=dict)
class UsageStatsDetailPageVO(BaseModel):
total: int = Field(0)
page: int = Field(1)
pageSize: int = Field(20)
items: list[UsageStatsDetailItemVO] = Field(default_factory=list)