mirror of
https://github.com/fawney19/Aether.git
synced 2026-09-02 01:10:23 +08:00
feat(provider): 新增 keep_priority_on_conversion 字段,支持格式转换时保持调度优先级
This commit is contained in:
@@ -39,6 +39,7 @@ export async function updateProvider(
|
||||
description: string | null
|
||||
website: string
|
||||
provider_priority: number
|
||||
keep_priority_on_conversion: boolean
|
||||
billing_type: 'monthly_quota' | 'pay_as_you_go' | 'free_tier'
|
||||
monthly_quota_usd: number
|
||||
quota_reset_day: number
|
||||
|
||||
@@ -470,6 +470,7 @@ class AdminCreateProviderAdapter(AdminApiAdapter):
|
||||
quota_last_reset_at=validated_data.quota_last_reset_at,
|
||||
quota_expires_at=validated_data.quota_expires_at,
|
||||
provider_priority=validated_data.provider_priority,
|
||||
keep_priority_on_conversion=validated_data.keep_priority_on_conversion,
|
||||
is_active=validated_data.is_active,
|
||||
concurrent_limit=validated_data.concurrent_limit,
|
||||
max_retries=validated_data.max_retries,
|
||||
|
||||
@@ -396,6 +396,10 @@ class CreateProviderRequest(BaseModel):
|
||||
provider_priority: int | None = Field(
|
||||
100, ge=0, le=10000, description="提供商优先级(数字越小越优先)"
|
||||
)
|
||||
keep_priority_on_conversion: bool = Field(
|
||||
False,
|
||||
description="格式转换时是否保持优先级(True=保持原优先级,False=需要转换时降级)",
|
||||
)
|
||||
is_active: bool | None = Field(True, description="是否启用")
|
||||
concurrent_limit: int | None = Field(None, ge=0, description="并发限制")
|
||||
# 请求配置(从 Endpoint 迁移)
|
||||
@@ -506,6 +510,10 @@ class UpdateProviderRequest(BaseModel):
|
||||
quota_last_reset_at: datetime | None = None
|
||||
quota_expires_at: datetime | None = None
|
||||
provider_priority: int | None = Field(None, ge=0, le=10000)
|
||||
keep_priority_on_conversion: bool | None = Field(
|
||||
None,
|
||||
description="格式转换时是否保持优先级(True=保持原优先级,False=需要转换时降级)",
|
||||
)
|
||||
is_active: bool | None = None
|
||||
concurrent_limit: int | None = Field(None, ge=0)
|
||||
# 请求配置(从 Endpoint 迁移)
|
||||
|
||||
14
tests/unit/test_provider_request_keep_priority.py
Normal file
14
tests/unit/test_provider_request_keep_priority.py
Normal file
@@ -0,0 +1,14 @@
|
||||
from src.models.admin_requests import CreateProviderRequest, UpdateProviderRequest
|
||||
|
||||
|
||||
def test_create_provider_request_accepts_keep_priority_on_conversion() -> None:
|
||||
req = CreateProviderRequest.model_validate(
|
||||
{"name": "Provider Keep Priority", "keep_priority_on_conversion": True}
|
||||
)
|
||||
assert req.keep_priority_on_conversion is True
|
||||
|
||||
|
||||
def test_update_provider_request_preserves_keep_priority_on_conversion() -> None:
|
||||
req = UpdateProviderRequest.model_validate({"keep_priority_on_conversion": True})
|
||||
data = req.model_dump(exclude_unset=True)
|
||||
assert data["keep_priority_on_conversion"] is True
|
||||
Reference in New Issue
Block a user