fix: add UTC timezone indicator to all datetime serialization
Database stores times in UTC but serialized without timezone info, causing frontend to misinterpret as local time. Now all datetime fields include 'Z' suffix to indicate UTC, enabling proper timezone conversion in the browser. - Add UTCDatetimeBaseModel base class for Pydantic schemas - Update model to_dict() methods to append 'Z' suffix - Affects: tasks, users, sessions, audit logs, translations 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -7,6 +7,8 @@ from datetime import datetime
|
||||
from pydantic import BaseModel, Field
|
||||
from enum import Enum
|
||||
|
||||
from app.schemas.base import UTCDatetimeBaseModel
|
||||
|
||||
|
||||
class TaskStatusEnum(str, Enum):
|
||||
"""Task status enumeration"""
|
||||
@@ -146,7 +148,7 @@ class TaskUpdate(BaseModel):
|
||||
result_pdf_path: Optional[str] = None
|
||||
|
||||
|
||||
class TaskFileResponse(BaseModel):
|
||||
class TaskFileResponse(UTCDatetimeBaseModel):
|
||||
"""Task file response schema"""
|
||||
id: int
|
||||
original_name: Optional[str] = None
|
||||
@@ -156,11 +158,8 @@ class TaskFileResponse(BaseModel):
|
||||
file_hash: Optional[str] = None
|
||||
created_at: datetime
|
||||
|
||||
class Config:
|
||||
from_attributes = True
|
||||
|
||||
|
||||
class TaskResponse(BaseModel):
|
||||
class TaskResponse(UTCDatetimeBaseModel):
|
||||
"""Task response schema"""
|
||||
id: int
|
||||
user_id: int
|
||||
@@ -178,9 +177,6 @@ class TaskResponse(BaseModel):
|
||||
completed_at: Optional[datetime] = None
|
||||
file_deleted: bool = False
|
||||
|
||||
class Config:
|
||||
from_attributes = True
|
||||
|
||||
|
||||
class TaskDetailResponse(TaskResponse):
|
||||
"""Detailed task response with files"""
|
||||
|
||||
Reference in New Issue
Block a user