feat(usage-stats): add usage stats backend apis
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
"""系统使用统计 - 登录事件模型。"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
from datetime import datetime
|
||||
|
||||
from sqlalchemy import BigInteger, DateTime, String
|
||||
from sqlalchemy.dialects.postgresql import JSONB
|
||||
from sqlalchemy.orm import Mapped, mapped_column
|
||||
|
||||
from fastapi_common.fastapi_common_web.models import BaseModel
|
||||
|
||||
|
||||
class UsageLoginEvent(BaseModel):
|
||||
"""登录事件明细表。"""
|
||||
|
||||
__tablename__ = "usage_login_events"
|
||||
|
||||
Id: Mapped[int] = mapped_column("id", BigInteger, primary_key=True, autoincrement=True)
|
||||
userId: Mapped[int | None] = mapped_column("user_id", BigInteger)
|
||||
sub: Mapped[str | None] = mapped_column(String(128))
|
||||
usernameSnapshot: Mapped[str | None] = mapped_column("username_snapshot", String(128))
|
||||
nickNameSnapshot: Mapped[str | None] = mapped_column("nick_name_snapshot", String(128))
|
||||
departmentNameSnapshot: Mapped[str | None] = mapped_column("department_name_snapshot", String(255))
|
||||
ouIdSnapshot: Mapped[str | None] = mapped_column("ou_id_snapshot", String(128))
|
||||
ouNameSnapshot: Mapped[str | None] = mapped_column("ou_name_snapshot", String(255))
|
||||
areaSnapshot: Mapped[str | None] = mapped_column("area_snapshot", String(64))
|
||||
loginTime: Mapped[datetime] = mapped_column("login_time", DateTime(timezone=True))
|
||||
loginResult: Mapped[str] = mapped_column("login_result", String(16))
|
||||
loginType: Mapped[str] = mapped_column("login_type", String(32))
|
||||
ipAddress: Mapped[str | None] = mapped_column("ip_address", String(64))
|
||||
userAgent: Mapped[str | None] = mapped_column("user_agent", String(1024))
|
||||
clientType: Mapped[str | None] = mapped_column("client_type", String(32))
|
||||
tokenJti: Mapped[str | None] = mapped_column("token_jti", String(128))
|
||||
failureReason: Mapped[str | None] = mapped_column("failure_reason", String(255))
|
||||
extra: Mapped[dict | None] = mapped_column(JSONB)
|
||||
Reference in New Issue
Block a user