File size: 1,045 Bytes
a7a1a26 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
"""
ํ์ผ ๊ด๋ จ 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()
}
|