From 9a8894bd5ab2c5e42a98aa6f2e8b286bc6b80d63 Mon Sep 17 00:00:00 2001 From: Samir Boulahtit Date: Thu, 8 Jan 2026 02:33:32 +0100 Subject: [PATCH] fix: add success/media fields to MediaUploadResponse schema MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add success and media fields to MediaUploadResponse - Add url alias field to MediaItemResponse for JS compatibility - JS expects response.success and response.media.url 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- models/schema/media.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) 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):