Spaces:
Paused
Paused
Update config_models.py
Browse files- config_models.py +15 -6
config_models.py
CHANGED
|
@@ -6,12 +6,21 @@ from datetime import datetime
|
|
| 6 |
from pydantic import BaseModel, Field
|
| 7 |
|
| 8 |
class BaseModelWithDatetime(BaseModel):
|
| 9 |
-
"""Base model with datetime serialization
|
| 10 |
-
|
| 11 |
-
|
| 12 |
-
|
| 13 |
-
|
| 14 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 15 |
# ===================== User & Auth =====================
|
| 16 |
class UserConfig(BaseModelWithDatetime):
|
| 17 |
username: str
|
|
|
|
| 6 |
from pydantic import BaseModel, Field
|
| 7 |
|
| 8 |
class BaseModelWithDatetime(BaseModel):
|
| 9 |
+
"""Base model with consistent datetime serialization"""
|
| 10 |
+
|
| 11 |
+
@field_serializer('created_date', 'last_update_date', 'publish_date', 'timestamp')
|
| 12 |
+
def serialize_datetime(self, dt: Optional[datetime], _info) -> Optional[str]:
|
| 13 |
+
"""Serialize datetime fields to consistent ISO format"""
|
| 14 |
+
if dt is None:
|
| 15 |
+
return None
|
| 16 |
+
if isinstance(dt, str):
|
| 17 |
+
# String ise normalize et
|
| 18 |
+
return dt.replace(' ', 'T')
|
| 19 |
+
if isinstance(dt, datetime):
|
| 20 |
+
# Datetime objesi ise ISO formatına çevir
|
| 21 |
+
return dt.isoformat()
|
| 22 |
+
return str(dt)
|
| 23 |
+
|
| 24 |
# ===================== User & Auth =====================
|
| 25 |
class UserConfig(BaseModelWithDatetime):
|
| 26 |
username: str
|