feat: node if, node start, node link
This commit is contained in:
41
model_nodes/__init__.py
Normal file
41
model_nodes/__init__.py
Normal file
@@ -0,0 +1,41 @@
|
||||
# Экспорты для моделей узла listen
|
||||
# from .node_listen_models import (
|
||||
# ListenNodeData,
|
||||
# ListenNodeLinks,
|
||||
# ListenNodePSNodeCore,
|
||||
# ListenNodeSettingsDataCore
|
||||
# )
|
||||
|
||||
# Экспорты для моделей узла if
|
||||
from .node_if_models import (
|
||||
IfNodeData,
|
||||
IfNodeLinks,
|
||||
IfNodeCoreSchema,
|
||||
IfNodeCoreSchemaData,
|
||||
IfNodeDescriptor
|
||||
)
|
||||
|
||||
# Экспорты для моделей связей между узлами
|
||||
from .node_link_models import (
|
||||
VorkNodeLinkData,
|
||||
VorkNodeLinkSchema
|
||||
)
|
||||
|
||||
__all__ = [
|
||||
# Listen node models
|
||||
# "ListenNodeData",
|
||||
# "ListenNodeLinks",
|
||||
# "ListenNodePSNodeCore",
|
||||
# "ListenNodeSettingsDataCore",
|
||||
|
||||
# If node models
|
||||
"IfNodeData",
|
||||
"IfNodeLinks",
|
||||
"IfNodeCoreSchema",
|
||||
"IfNodeCoreSchemaData",
|
||||
"IfNodeDescriptor",
|
||||
|
||||
# Node link models
|
||||
"VorkNodeLinkData",
|
||||
"VorkNodeLinkSchema"
|
||||
]
|
44
model_nodes/node_if_models.py
Normal file
44
model_nodes/node_if_models.py
Normal file
@@ -0,0 +1,44 @@
|
||||
from typing import Optional, Dict, Any
|
||||
from pydantic import BaseModel, Field
|
||||
|
||||
|
||||
class IfNodeData(BaseModel):
|
||||
"""
|
||||
Pydantic модель для валидации данных узла if
|
||||
"""
|
||||
ps_id: Optional[int] = Field(default=None, description="ID процесса")
|
||||
node_type: Optional[str] = Field(default=None, description="Тип узла")
|
||||
|
||||
|
||||
class IfNodeLinks(BaseModel):
|
||||
"""
|
||||
Pydantic модель для валидации связей узла if
|
||||
"""
|
||||
parent_id: Optional[int] = Field(default=None, description="ID родительского узла")
|
||||
parent_port_number: Optional[int] = Field(default=None, description="Номер порта родительского узла")
|
||||
|
||||
|
||||
class IfNodeCoreSchemaData(BaseModel):
|
||||
"""
|
||||
Pydantic модель для данных портов узла if
|
||||
"""
|
||||
then_port_number: Optional[int] = Field(default=0, description="Номер порта для перехода по Связи Then (LINK)")
|
||||
else_port_number: Optional[int] = Field(default=1, description="Номер порта для перехода по Связи Else (LINK)")
|
||||
|
||||
|
||||
class IfNodeCoreSchema(BaseModel):
|
||||
"""
|
||||
Pydantic модель для схемы узла if
|
||||
"""
|
||||
ps_id: Optional[int] = Field(default=None, description="ID процесса")
|
||||
node_type: Optional[str] = Field(default=None, description="Тип узла")
|
||||
parent_id: Optional[int] = Field(default=None, description="ID родительского узла")
|
||||
parent_port_number: Optional[int] = Field(default=None, description="Номер порта родительского узла")
|
||||
data: Optional[IfNodeCoreSchemaData] = Field(default=None, description="Данные узла")
|
||||
|
||||
|
||||
class IfNodeDescriptor(BaseModel):
|
||||
"""
|
||||
Pydantic модель для дескриптора узла if
|
||||
"""
|
||||
condition: Optional[str] = Field(default=None, description="Условие для проверки (PREDICATE)")
|
22
model_nodes/node_link_models.py
Normal file
22
model_nodes/node_link_models.py
Normal file
@@ -0,0 +1,22 @@
|
||||
from typing import Optional, Dict, Any
|
||||
from pydantic import BaseModel, Field
|
||||
|
||||
|
||||
class VorkNodeLinkData(BaseModel):
|
||||
"""
|
||||
Pydantic модель для валидации данных VorkNodeLink
|
||||
"""
|
||||
parent_port_number: Optional[int] = Field(default=None, description="Номер выхода родительского узла")
|
||||
to_id: Optional[int] = Field(default=None, description="ID целевого узла")
|
||||
from_id: Optional[int] = Field(default=None, description="ID исходного узла")
|
||||
last_link_name: Optional[str] = Field(default=None, description="Название последней связи")
|
||||
|
||||
|
||||
class VorkNodeLinkSchema(BaseModel):
|
||||
"""
|
||||
Pydantic модель для схемы VorkNodeLink
|
||||
"""
|
||||
link_name: Optional[str] = Field(default=None, description="Название связи")
|
||||
parent_port_number: Optional[int] = Field(default=None, description="Номер выхода родительского узла")
|
||||
to_id: Optional[int] = Field(default=None, description="ID целевого узла")
|
||||
from_id: Optional[int] = Field(default=None, description="ID исходного узла")
|
33
model_nodes/node_listen_models.py
Normal file
33
model_nodes/node_listen_models.py
Normal file
@@ -0,0 +1,33 @@
|
||||
# from multiprocessing import process
|
||||
# from typing import Optional, Dict, Any
|
||||
# from pydantic import BaseModel, Field
|
||||
# from orm.schemas.base import Base
|
||||
|
||||
|
||||
# class ListenNodeData(Base):
|
||||
# """
|
||||
# Поле Data для Core
|
||||
# """
|
||||
# process_schema_id: Optional[int] = Field(default=None, description="ID процесса")
|
||||
# node_type: str = Field(description="Тип узла")
|
||||
|
||||
|
||||
# class ListenNodeLinks(Base):
|
||||
# """
|
||||
# Поле Links для Core
|
||||
# """
|
||||
# node_port_number: Optional[int] = Field(default=0, description="Источник данных")
|
||||
|
||||
|
||||
# class ListenNodePSNodeCore(Base):
|
||||
# """
|
||||
# Данные для PS_Node которые уходят из Core
|
||||
# """
|
||||
# process_schema_id: Optional[int] = Field(default=None, description="ID процесса")
|
||||
# node_type: str = Field(description="Тип узла")
|
||||
|
||||
# class ListenNodeSettingsDataCore(Base):
|
||||
# """
|
||||
# Данные для process_schema Settings которые уходят из Core
|
||||
# """
|
||||
# node_port_number: Optional[int] = Field(default=0, description="Источник данных")
|
40
model_nodes/node_start_models.py
Normal file
40
model_nodes/node_start_models.py
Normal file
@@ -0,0 +1,40 @@
|
||||
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 узел не имеет дополнительных параметров, это точка входа в процесс
|
Reference in New Issue
Block a user