| """ | |
| ํ์ผ ๊ด๋ จ Pydantic ๋ชจ๋ธ | |
| """ | |
| from typing import Optional | |
| from pydantic import BaseModel, Field | |
| from datetime import datetime | |
| class FileUpload(BaseModel): | |
| """ํ์ผ ์ ๋ก๋ ์์ฒญ ๋ชจ๋ธ""" | |
| filename: str = Field(..., description="ํ์ผ๋ช ") | |
| file_size: int = Field(..., ge=0, description="ํ์ผ ํฌ๊ธฐ") | |
| model_name: Optional[str] = Field(None, description="์ฐ๊ฒฐ๋ ๋ชจ๋ธ ์ด๋ฆ") | |
| parent_file_id: Optional[int] = Field(None, description="๋ถ๋ชจ ํ์ผ ID") | |
| class FileResponse(BaseModel): | |
| """ํ์ผ ์๋ต ๋ชจ๋ธ""" | |
| id: int | |
| filename: str | |
| original_filename: str | |
| file_size: int | |
| model_name: Optional[str] = None | |
| uploaded_at: datetime | |
| uploaded_by: Optional[int] = None | |
| parent_file_id: Optional[int] = None | |
| chunk_count: int = 0 | |
| child_count: int = 0 | |
| class Config: | |
| """Pydantic ์ค์ """ | |
| from_attributes = True | |
| json_encoders = { | |
| datetime: lambda v: v.isoformat() | |
| } | |