From 876b26e1acd5f01c2cf4eacbbca92837f6284241 Mon Sep 17 00:00:00 2001 From: italojohnny Date: Mon, 10 Jun 2024 16:04:38 -0300 Subject: [PATCH] Add class with custom JSON serialization --- .../base/langflow/services/monitor/schema.py | 21 ++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/src/backend/base/langflow/services/monitor/schema.py b/src/backend/base/langflow/services/monitor/schema.py index ca267ac2b..f3261c559 100644 --- a/src/backend/base/langflow/services/monitor/schema.py +++ b/src/backend/base/langflow/services/monitor/schema.py @@ -7,7 +7,26 @@ from pydantic import BaseModel, Field, field_serializer, field_validator from langflow.schema.message import Message -class TransactionModel(BaseModel): +class DefaultModel(BaseModel): + class Config: + from_attributes = True + populate_by_name = True + json_encoders = { + datetime: lambda v: v.isoformat(), + } + + def json(self, **kwargs): + # Usa a função de serialização personalizada + return super().json(**kwargs, encoder=self.custom_encoder) + + @staticmethod + def custom_encoder(obj): + if isinstance(obj, datetime): + return obj.isoformat() + raise TypeError(f"Object of type {obj.__class__.__name__} is not JSON serializable") + + +class TransactionModel(DefaultModel): index: Optional[int] = Field(default=None) timestamp: Optional[datetime] = Field(default_factory=datetime.now, alias="timestamp") vertex_id: str