39 lines
1.0 KiB
Python
39 lines
1.0 KiB
Python
from __future__ import annotations
|
|
|
|
from pydantic import BaseModel, Field
|
|
|
|
|
|
class LobsterConfigUpdate(BaseModel):
|
|
"""所有字段可选;传值则覆盖 DB(空串 = 清除回落 .env);不传 = 保持不变。"""
|
|
|
|
api_base: str | None = None
|
|
api_key: str | None = None
|
|
callback_secret: str | None = None
|
|
timeout_seconds: int | None = Field(default=None, ge=1, le=600)
|
|
poll_interval_seconds: int | None = Field(default=None, ge=1, le=60)
|
|
note: str | None = None
|
|
|
|
|
|
class LobsterConfigRead(BaseModel):
|
|
"""回读。api_key / callback_secret 只返回掩码与是否配置标记;原文永不出口。"""
|
|
|
|
api_base: str
|
|
api_base_source: str # "db" | "env" | "unset"
|
|
|
|
api_key_mask: str
|
|
api_key_source: str
|
|
has_api_key: bool
|
|
|
|
callback_secret_mask: str
|
|
callback_secret_source: str
|
|
has_callback_secret: bool
|
|
|
|
timeout_seconds: int
|
|
timeout_source: str
|
|
|
|
poll_interval_seconds: int
|
|
poll_interval_source: str
|
|
|
|
mode: str # "real" / "mock"
|
|
note: str | None = None
|