from pydantic import BaseModel, ConfigDict from typing import Optional, List from datetime import datetime # Base schema with common attributes class FileBase(BaseModel): name: str type: str path: str # Schema for creating a new file class FileCreate(FileBase): pass # Schema for updating a file class FileUpdate(BaseModel): name: Optional[str] = None type: Optional[str] = None path: Optional[str] = None # Schema for reading a file class File(FileBase): id: int created_at: datetime updated_at: datetime model_config = ConfigDict(from_attributes=True) # Schema for deleting a file class FileDelete(BaseModel): id: int # Schema for listing files class FileList(BaseModel): files: List[File] total: int page: int limit: int