implemented assets scaner

This commit is contained in:
bigcat88
2025-08-24 18:27:08 +03:00
parent a82577f64a
commit d7464e9e73
5 changed files with 393 additions and 5 deletions

View File

@@ -146,3 +146,29 @@ class TagsAdd(BaseModel):
class TagsRemove(TagsAdd):
pass
class ScheduleAssetScanBody(BaseModel):
roots: list[Literal["models","input","output"]] = Field(default_factory=list)
@field_validator("roots", mode="before")
@classmethod
def _normalize_roots(cls, v):
if v is None:
return []
if isinstance(v, str):
items = [x.strip().lower() for x in v.split(",")]
elif isinstance(v, list):
items = []
for x in v:
if isinstance(x, str):
items.extend([p.strip().lower() for p in x.split(",")])
else:
return []
out = []
seen = set()
for r in items:
if r in {"models","input","output"} and r not in seen:
out.append(r)
seen.add(r)
return out