Files
FastapiAdmin/backend/app/common/dataclasses.py
T
zhangtao b0ae6af3b1 chore: update .gitignore and enhance docstrings across multiple files
- Added *.pyc and *.pyo to .gitignore to prevent compiled Python files from being tracked.
- Improved docstrings in various modules, providing clearer descriptions of functions, parameters, and return values to enhance code readability and maintainability.
2026-04-04 01:21:59 +08:00

90 lines
1.7 KiB
Python

import dataclasses
from datetime import datetime
from fastapi import Response
@dataclasses.dataclass
class IpInfo:
"""IP 归属地解析结果。"""
ip: str
country: str | None
region: str | None
city: str | None
@dataclasses.dataclass
class UserAgentInfo:
"""User-Agent 解析结果(操作系统、浏览器、设备)。"""
user_agent: str
os: str | None
browser: str | None
device: str | None
@dataclasses.dataclass
class RequestCallNext:
"""请求链路 call_next 封装结果(状态码、消息、异常、响应)。"""
code: str
msg: str
err: Exception | None
response: Response
@dataclasses.dataclass
class AccessToken:
"""访问令牌及过期时间、会话 UUID。"""
access_token: str
access_token_expire_time: datetime
session_uuid: str
@dataclasses.dataclass
class RefreshToken:
"""刷新令牌及过期时间。"""
refresh_token: str
refresh_token_expire_time: datetime
@dataclasses.dataclass
class NewToken:
"""刷新后的一对访问/刷新令牌及会话 UUID。"""
new_access_token: str
new_access_token_expire_time: datetime
new_refresh_token: str
new_refresh_token_expire_time: datetime
session_uuid: str
@dataclasses.dataclass
class TokenPayload:
"""JWT/会话载荷中的用户与会话标识。"""
id: int
session_uuid: str
expire_time: datetime
@dataclasses.dataclass
class UploadUrl:
"""上传完成后的访问 URL。"""
url: str
@dataclasses.dataclass
class SnowflakeInfo:
"""雪花 ID 拆解后的各段信息。"""
timestamp: int
datetime: str
cluster_id: int
node_id: int
sequence: int