diff --git a/models/schema/media.py b/models/schema/media.py index d6be5569..0f106bcb 100644 --- a/models/schema/media.py +++ b/models/schema/media.py @@ -37,6 +37,7 @@ class MediaItemResponse(BaseModel): filename: str original_filename: str | None = None file_url: str + url: str | None = None # Alias for file_url for JS compatibility thumbnail_url: str | None = None media_type: str # image, video, document mime_type: str | None = None @@ -52,6 +53,11 @@ class MediaItemResponse(BaseModel): model_config = {"from_attributes": True} + def model_post_init(self, __context: Any) -> None: + """Set url from file_url if not provided.""" + if self.url is None: + object.__setattr__(self, "url", self.file_url) + class MediaListResponse(BaseModel): """Paginated list of media items.""" @@ -71,13 +77,16 @@ class MediaListResponse(BaseModel): class MediaUploadResponse(BaseModel): """Response for single file upload.""" + success: bool = True + message: str | None = None + media: MediaItemResponse | None = None + # Legacy fields for backwards compatibility id: int | None = None file_url: str | None = None thumbnail_url: str | None = None filename: str | None = None file_size: int | None = None media_type: str | None = None - message: str | None = None class UploadedFileInfo(BaseModel):