Refactor Flow model serialization and validation
This commit is contained in:
parent
103b497328
commit
d68c2b7879
1 changed files with 18 additions and 3 deletions
|
|
@ -4,10 +4,9 @@ from datetime import datetime
|
|||
from typing import TYPE_CHECKING, Dict, Optional
|
||||
from uuid import UUID, uuid4
|
||||
|
||||
from pydantic import field_validator
|
||||
from sqlmodel import JSON, Column, Field, Relationship
|
||||
|
||||
from langflow.services.database.models.base import SQLModelSerializable
|
||||
from pydantic import field_serializer, field_validator
|
||||
from sqlmodel import JSON, Column, Field, Relationship
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from langflow.services.database.models.user import User
|
||||
|
|
@ -36,6 +35,22 @@ class FlowBase(SQLModelSerializable):
|
|||
|
||||
return v
|
||||
|
||||
# updated_at can be serialized to JSON
|
||||
@field_serializer("updated_at")
|
||||
def serialize_dt(self, dt: datetime, _info):
|
||||
if dt is None:
|
||||
return None
|
||||
return dt.isoformat()
|
||||
|
||||
@field_validator("updated_at")
|
||||
def validate_dt(cls, v):
|
||||
if v is None:
|
||||
return datetime.utcnow()
|
||||
elif isinstance(v, datetime):
|
||||
return v
|
||||
|
||||
return datetime.fromisoformat(v)
|
||||
|
||||
|
||||
class Flow(FlowBase, table=True):
|
||||
id: UUID = Field(default_factory=uuid4, primary_key=True, unique=True)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue