from datetime import datetime from pydantic import BaseModel, Field from app.core.base_schema import SessionInfoSchema class OnlineOutSchema(SessionInfoSchema): """在线用户响应模型 — ``SessionInfoSchema`` 的公开子集。""" class OnlineQueryParam(BaseModel): """在线用户查询参数""" name: str | None = Field(None, description="登录名称") ipaddr: str | None = Field(None, description="登陆IP地址") login_location: str | None = Field(None, description="登录所属地") class RecentLoginItem(BaseModel): """最近登录记录""" username: str status: int login_time: datetime login_ip: str | None = None login_location: str | None = None class DashboardStatsSchema(BaseModel): """仪表盘统计数据""" online_users: int = 0 total_users: int = 0 today_login_count: int = 0 today_unique_users: int = 0 week_user_created: int = 0 recent_logins: list[RecentLoginItem] = []