Files
Aether/_deprecated_py_src/models/status_snapshot.py
fawney19 1d9c77522a refactor: 移除 Python 后端源码,全面迁移至 Rust gateway 架构
- 删除全部 Python 源码 (src/) 及 Alembic 迁移脚本,归档至 _deprecated_py_src/
- 重构 Rust gateway ai_pipeline: 拆分 planner/finalize 模块,新增 contracts/adaptation 层
- 重组 handlers 模块为 admin/public/proxy/internal/shared 子模块结构
- 新增 executor 模块,引入 Rust 原生数据库迁移 (aether-data/migrations)
- 简化 CI/Docker 构建流程,移除 base image 二级构建,统一为单一 app image
- 移除 Python 相关基础设施文件 (entrypoint.sh, gunicorn_conf.py, Dockerfile.base)
2026-04-03 16:26:16 +08:00

41 lines
2.3 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
from __future__ import annotations
from pydantic import BaseModel, Field
class OAuthStatusSnapshotResponse(BaseModel):
code: str = Field(default="none", description="OAuth 状态代码")
label: str | None = Field(default=None, description="OAuth 状态标签")
reason: str | None = Field(default=None, description="OAuth 状态原因")
expires_at: int | None = Field(default=None, description="OAuth 过期时间Unix 时间戳)")
invalid_at: int | None = Field(default=None, description="OAuth 失效时间Unix 时间戳)")
source: str | None = Field(default=None, description="OAuth 状态来源")
requires_reauth: bool = Field(default=False, description="是否需要重新授权")
expiring_soon: bool = Field(default=False, description="是否即将过期")
class AccountStatusSnapshotResponse(BaseModel):
code: str = Field(default="ok", description="账号状态代码")
label: str | None = Field(default=None, description="账号状态标签")
reason: str | None = Field(default=None, description="账号状态原因")
blocked: bool = Field(default=False, description="是否为账号级阻塞")
source: str | None = Field(default=None, description="账号状态来源")
recoverable: bool = Field(default=False, description="是否为可恢复状态")
class QuotaStatusSnapshotResponse(BaseModel):
code: str = Field(default="unknown", description="额度状态代码")
label: str | None = Field(default=None, description="额度状态标签")
reason: str | None = Field(default=None, description="额度状态原因")
exhausted: bool = Field(default=False, description="额度是否耗尽")
usage_ratio: float | None = Field(default=None, description="额度使用比例 [0, 1]")
updated_at: int | None = Field(default=None, description="额度刷新时间Unix 时间戳)")
reset_seconds: float | None = Field(default=None, description="距离重置剩余秒数")
plan_type: str | None = Field(default=None, description="额度读取到的套餐类型")
class ProviderKeyStatusSnapshotResponse(BaseModel):
oauth: OAuthStatusSnapshotResponse = Field(default_factory=OAuthStatusSnapshotResponse)
account: AccountStatusSnapshotResponse = Field(default_factory=AccountStatusSnapshotResponse)
quota: QuotaStatusSnapshotResponse = Field(default_factory=QuotaStatusSnapshotResponse)