From 76ef312267ee66f8f23b698332ff1dc5351f0fca Mon Sep 17 00:00:00 2001 From: Robert Date: Sun, 25 Feb 2024 10:42:38 +0700 Subject: [PATCH] chain model --- chain_service/database/models/chain.py | 29 ++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 chain_service/database/models/chain.py diff --git a/chain_service/database/models/chain.py b/chain_service/database/models/chain.py new file mode 100644 index 0000000..b0daf97 --- /dev/null +++ b/chain_service/database/models/chain.py @@ -0,0 +1,29 @@ +from .base import BaseMongoModel + +from datetime import datetime +from pydantic import BaseModel, Field +from typing import Literal, Union, Annotated, Optional, List + + +class WaitAction(BaseModel): + action_type: Literal["wait"] + wait_for: int + + +class TextCommentAction(BaseModel): + action_type: Literal["text_comment"] + text: str + + +Action = Annotated[ + Union[WaitAction, TextCommentAction], Field(description="action_type") +] + + +class Chain(BaseMongoModel): + name: Annotated[Optional[str], Field(default=None)] + actions: Annotated[Optional[List[Action]], Field(default=[])] + created_at: Annotated[datetime, Field(default_factory=datetime.utcnow)] + + class Config(BaseMongoModel.Config): + pass