"""仅接受用户可编辑字段;租户、上传人和存储对象由服务端生成。""" from typing import List from pydantic import BaseModel, ConfigDict, Field, field_validator class _Body(BaseModel): model_config = ConfigDict(extra='forbid') class FolderUpdateBody(_Body): name: str = Field(min_length=1, max_length=120) @field_validator('name') @classmethod def valid_name(cls, value): value = value.strip() if not value or value in ('.', '..') or any(ord(c) < 32 or c in '/\\' for c in value): raise ValueError('文件夹名称不能为空或包含路径分隔符/控制字符') return value class FolderCreateBody(FolderUpdateBody): parentId: str = Field(default='', max_length=64) class ShareBody(_Body): userIds: List[str] = Field(max_length=500) class DeleteFilesBody(_Body): ids: List[str] = Field(min_length=1, max_length=100)