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