41 lines
1.5 KiB
Python
41 lines
1.5 KiB
Python
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 узел не имеет дополнительных параметров, это точка входа в процесс
|