feat: 添加 points_audit_ledger 及 JSON 字段 Pydantic Schema 约束
This commit is contained in:
@@ -207,6 +207,22 @@ class AgentRuntimeSettings(BaseModel):
|
||||
attachment_content_cache_max_base64_bytes: int = 262144
|
||||
|
||||
|
||||
class PointsPolicySettings(BaseModel):
|
||||
register_bonus_points: int = Field(default=60, ge=0, le=1_000_000)
|
||||
register_bonus_hmac_key: SecretStr = SecretStr("")
|
||||
|
||||
@model_validator(mode="after")
|
||||
def validate_hmac_key(self) -> "PointsPolicySettings":
|
||||
key = self.register_bonus_hmac_key.get_secret_value().strip()
|
||||
if not key:
|
||||
raise ValueError("points_policy.register_bonus_hmac_key must not be empty")
|
||||
if key.upper() == "CHANGE_ME":
|
||||
raise ValueError(
|
||||
"points_policy.register_bonus_hmac_key must not be CHANGE_ME"
|
||||
)
|
||||
return self
|
||||
|
||||
|
||||
def _resolve_env_file() -> str:
|
||||
current = Path(__file__).resolve()
|
||||
for parent in [current, *current.parents]:
|
||||
@@ -233,6 +249,7 @@ class Settings(BaseSettings):
|
||||
test: TestSettings = Field(default_factory=TestSettings)
|
||||
taskiq: TaskiqSettings = Field(default_factory=TaskiqSettings)
|
||||
agent_runtime: AgentRuntimeSettings = Field(default_factory=AgentRuntimeSettings)
|
||||
points_policy: PointsPolicySettings = Field(default_factory=PointsPolicySettings)
|
||||
|
||||
@computed_field
|
||||
@property
|
||||
|
||||
Reference in New Issue
Block a user