24 行
553 B
Python
24 行
553 B
Python
from __future__ import annotations
|
|
from pydantic import BaseModel, field_validator
|
|
|
|
|
|
class SelectorConfigSchema(BaseModel):
|
|
questions: list = []
|
|
rules: list = []
|
|
|
|
@field_validator('questions', 'rules', mode='before')
|
|
@classmethod
|
|
def coerce_to_list(cls, v):
|
|
if v is None:
|
|
return []
|
|
if isinstance(v, list):
|
|
return v
|
|
return [] # dict等旧格式数据降级为空列表
|
|
|
|
|
|
class SelectorConfigResponse(SelectorConfigSchema):
|
|
id: int
|
|
|
|
class Config:
|
|
from_attributes = True
|