2025-04-09 23:53:05 -04:00

40 lines
848 B
Python

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