from typing import Optional, Dict, Any from pydantic import BaseModel, Field class StartNodeData(BaseModel): """ Pydantic модель для валидации данных узла start """ ps_id: Optional[int] = Field(default=None, description="ID процесса") node_type: Optional[str] = Field(default=None, description="Тип узла") class StartNodeLinks(BaseModel): """ Pydantic модель для валидации связей узла start """ # Start узел не имеет родительских связей, только исходящие class StartNodeCoreSchemaData(BaseModel): """ Pydantic модель для данных портов узла start """ node_port_number: Optional[int] = Field(default=0, description="Номер порта для перехода по Связи Then (LINK)") class StartNodeCoreSchema(BaseModel): """ Pydantic модель для схемы узла start """ ps_id: Optional[int] = Field(default=None, description="ID процесса") node_type: Optional[str] = Field(default=None, description="Тип узла") data: Optional[StartNodeCoreSchemaData] = Field(default=None, description="Данные узла") class StartNodeDescriptor(BaseModel): """ Pydantic модель для дескриптора узла start """ # Start узел не имеет дополнительных параметров, это точка входа в процесс