Refactor schema.py to use timezone-aware datetime for timestamp field
This commit is contained in:
parent
89493a4700
commit
3ff0ac3a74
1 changed files with 9 additions and 3 deletions
|
|
@ -1,5 +1,5 @@
|
|||
import json
|
||||
from datetime import datetime
|
||||
from datetime import datetime, timezone
|
||||
from typing import Any, Optional
|
||||
|
||||
from pydantic import BaseModel, Field, field_serializer, field_validator
|
||||
|
|
@ -17,7 +17,7 @@ class DefaultModel(BaseModel):
|
|||
|
||||
def json(self, **kwargs):
|
||||
# Usa a função de serialização personalizada
|
||||
return super().json(**kwargs, encoder=self.custom_encoder)
|
||||
return super().model_dump_json(**kwargs, encoder=self.custom_encoder)
|
||||
|
||||
@staticmethod
|
||||
def custom_encoder(obj):
|
||||
|
|
@ -83,7 +83,7 @@ class TransactionModelResponse(DefaultModel):
|
|||
class MessageModel(DefaultModel):
|
||||
index: Optional[int] = Field(default=None)
|
||||
flow_id: Optional[str] = Field(default=None, alias="flow_id")
|
||||
timestamp: datetime = Field(default_factory=datetime.now)
|
||||
timestamp: datetime = Field(default_factory=lambda: datetime.now(timezone.utc))
|
||||
sender: str
|
||||
sender_name: str
|
||||
session_id: str
|
||||
|
|
@ -97,6 +97,12 @@ class MessageModel(DefaultModel):
|
|||
v = json.loads(v)
|
||||
return v
|
||||
|
||||
@field_serializer("timestamp")
|
||||
@classmethod
|
||||
def serialize_timestamp(cls, v):
|
||||
v = v.replace(microsecond=0)
|
||||
return v.strftime("%Y-%m-%d %H:%M:%S")
|
||||
|
||||
@field_serializer("files")
|
||||
@classmethod
|
||||
def serialize_files(cls, v):
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue