Files
erp-nutzfahrzeuge/backend/app/schemas/file.py
T

58 lines
1.3 KiB
Python

"""Pydantic schemas for file upload, download, and list responses."""
import uuid
from datetime import datetime
from typing import Optional
from pydantic import BaseModel, ConfigDict
class FileUploadResponse(BaseModel):
"""Response after a successful file upload."""
model_config = ConfigDict(from_attributes=True)
id: uuid.UUID
vehicle_id: uuid.UUID
original_filename: str
stored_filename: str
file_path: str
mime_type: str
file_size: int
thumbnail_path: Optional[str] = None
created_at: Optional[datetime] = None
updated_at: Optional[datetime] = None
class FileResponse(BaseModel):
"""Full file metadata response."""
model_config = ConfigDict(from_attributes=True)
id: uuid.UUID
vehicle_id: uuid.UUID
original_filename: str
stored_filename: str
file_path: str
mime_type: str
file_size: int
thumbnail_path: Optional[str] = None
created_at: Optional[datetime] = None
updated_at: Optional[datetime] = None
class FileListResponse(BaseModel):
"""Paginated file list response."""
items: list[FileResponse]
total: int
page: int
page_size: int
class FileDeleteResponse(BaseModel):
"""Response after deleting a file."""
message: str = "File deleted"
id: uuid.UUID