feat: all models

This commit is contained in:
TheNoxium
2025-09-26 14:59:59 +05:00
parent 5bae8b41b2
commit 8e01072ff6
26 changed files with 1464 additions and 119 deletions

View File

@@ -1,18 +1,41 @@
# Экспорты для моделей узла listen
# from .node_listen_models import (
# ListenNodeData,
# ListenNodeLinks,
# ListenNodePSNodeCore,
# ListenNodeSettingsDataCore
# )
from .node_listen_models import (
ListenNodeData,
ListenNodeLinks,
ListenNodeCoreSchema,
ListenNodeCoreSchemaData
)
# Экспорты для моделей узла trigger
from .node_trigger_models import (
TriggerNodeData,
TriggerNodeLinks,
TriggerNodeCoreSchema,
TriggerNodeCoreSchemaData
)
# Экспорты для моделей узла run
from .node_run_models import (
RunNodeData,
RunNodeLinks,
RunNodeCoreSchema,
RunNodeCoreSchemaData
)
# Экспорты для моделей узла callback
from .node_callback_models import (
CallbackNodeData,
CallbackNodeLinks,
CallbackNodeCoreSchema,
CallbackNodeCoreSchemaData
)
# Экспорты для моделей узла if
from .node_if_models import (
IfNodeData,
IfNodeLinks,
IfNodeCoreSchema,
IfNodeCoreSchemaData,
IfNodeDescriptor
IfNodeCoreSchemaData
)
# Экспорты для моделей узла start
@@ -20,8 +43,47 @@ from .node_start_models import (
StartNodeData,
StartNodeLinks,
StartNodeCoreSchema,
StartNodeCoreSchemaData,
StartNodeDescriptor
StartNodeCoreSchemaData
)
# Экспорты для моделей узла switch
from .node_switch_models import (
SwitchNodeData,
SwitchNodeLinks,
SwitchNodeCoreSchema,
SwitchNodeCoreSchemaData
)
# Экспорты для моделей узла set
from .node_set_models import (
SetNodeData,
SetNodeLinks,
SetNodeCoreSchema,
SetNodeCoreSchemaData
)
# Экспорты для моделей узла wait
from .node_wait_models import (
WaitNodeData,
WaitNodeLinks,
WaitNodeCoreSchema,
WaitNodeCoreSchemaData
)
# Экспорты для моделей узла while
from .node_while_models import (
WhileNodeData,
WhileNodeLinks,
WhileNodeCoreSchema,
WhileNodeCoreSchemaData
)
# Экспорты для моделей узла each
from .node_each_models import (
EachNodeData,
EachNodeLinks,
EachNodeCoreSchema,
EachNodeCoreSchemaData
)
# Экспорты для моделей связей между узлами
@@ -32,24 +94,70 @@ from .node_link_models import (
__all__ = [
# Listen node models
# "ListenNodeData",
# "ListenNodeLinks",
# "ListenNodePSNodeCore",
# "ListenNodeSettingsDataCore",
"ListenNodeData",
"ListenNodeLinks",
"ListenNodeCoreSchema",
"ListenNodeCoreSchemaData",
# Trigger node models
"TriggerNodeData",
"TriggerNodeLinks",
"TriggerNodeCoreSchema",
"TriggerNodeCoreSchemaData",
# Run node models
"RunNodeData",
"RunNodeLinks",
"RunNodeCoreSchema",
"RunNodeCoreSchemaData",
# Callback node models
"CallbackNodeData",
"CallbackNodeLinks",
"CallbackNodeCoreSchema",
"CallbackNodeCoreSchemaData",
# If node models
"IfNodeData",
"IfNodeLinks",
"IfNodeCoreSchema",
"IfNodeCoreSchemaData",
"IfNodeDescriptor",
# Start node models
"StartNodeData",
"StartNodeLinks",
"StartNodeCoreSchema",
"StartNodeCoreSchemaData",
"StartNodeDescriptor",
# Switch node models
"SwitchNodeData",
"SwitchNodeLinks",
"SwitchNodeCoreSchema",
"SwitchNodeCoreSchemaData",
# Set node models
"SetNodeData",
"SetNodeLinks",
"SetNodeCoreSchema",
"SetNodeCoreSchemaData",
# Wait node models
"WaitNodeData",
"WaitNodeLinks",
"WaitNodeCoreSchema",
"WaitNodeCoreSchemaData",
# While node models
"WhileNodeData",
"WhileNodeLinks",
"WhileNodeCoreSchema",
"WhileNodeCoreSchemaData",
# Each node models
"EachNodeData",
"EachNodeLinks",
"EachNodeCoreSchema",
"EachNodeCoreSchemaData",
# Node link models
"VorkNodeLinkData",

View File

@@ -0,0 +1,36 @@
from typing import Optional
from pydantic import BaseModel, Field
class CallbackNodeData(BaseModel):
"""
Pydantic модель для валидации данных узла callback
"""
ps_id: Optional[int] = Field(default=None, description="ID процесса")
node_type: Optional[str] = Field(default=None, description="Тип узла")
class CallbackNodeLinks(BaseModel):
"""
Pydantic модель для валидации связей узла callback
"""
parent_id: Optional[int] = Field(default=None, description="ID родительского узла")
parent_port_number: Optional[int] = Field(default=None, description="Номер порта родительского узла")
class CallbackNodeCoreSchemaData(BaseModel):
"""
Pydantic модель для данных портов узла callback
"""
then_port_number: Optional[int] = Field(default=0, description="Номер порта для перехода по Связи Then (LINK)")
class CallbackNodeCoreSchema(BaseModel):
"""
Pydantic модель для схемы узла callback
"""
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[CallbackNodeCoreSchemaData] = Field(default=None, description="Данные узла")

View File

@@ -0,0 +1,37 @@
from typing import Optional
from pydantic import BaseModel, Field
class EachNodeData(BaseModel):
"""
Pydantic модель для валидации данных узла each
"""
ps_id: Optional[int] = Field(default=None, description="ID процесса")
node_type: Optional[str] = Field(default=None, description="Тип узла")
class EachNodeLinks(BaseModel):
"""
Pydantic модель для валидации связей узла each
"""
parent_id: Optional[int] = Field(default=None, description="ID родительского узла")
parent_port_number: Optional[int] = Field(default=None, description="Номер порта родительского узла")
class EachNodeCoreSchemaData(BaseModel):
"""
Pydantic модель для данных портов узла each
"""
then_port_number: Optional[int] = Field(default=0, description="Номер порта для перехода по Связи Then (LINK)")
else_port_number: Optional[int] = Field(default=1, description="Номер порта для перехода по Связи Else (LINK)")
class EachNodeCoreSchema(BaseModel):
"""
Pydantic модель для схемы узла each
"""
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[EachNodeCoreSchemaData] = Field(default=None, description="Данные узла")

View File

@@ -1,4 +1,4 @@
from typing import Optional, Dict, Any
from typing import Optional
from pydantic import BaseModel, Field
@@ -35,10 +35,3 @@ class IfNodeCoreSchema(BaseModel):
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)")

View File

@@ -1,33 +1,38 @@
# from multiprocessing import process
# from typing import Optional, Dict, Any
# from pydantic import BaseModel, Field
# from orm.schemas.base import Base
from typing import Optional
from pydantic import BaseModel, Field
# class ListenNodeData(Base):
# """
# Поле Data для Core
# """
# process_schema_id: Optional[int] = Field(default=None, description="ID процесса")
# node_type: str = Field(description="Тип узла")
class ListenNodeData(BaseModel):
"""
Pydantic модель для валидации данных узла listen
"""
ps_id: Optional[int] = Field(default=None, description="ID процесса")
node_type: Optional[str] = Field(default=None, description="Тип узла")
is_start: bool = Field(default=False, description="Является ли узел стартовым")
# class ListenNodeLinks(Base):
# """
# Поле Links для Core
# """
# node_port_number: Optional[int] = Field(default=0, description="Источник данных")
class ListenNodeLinks(BaseModel):
"""
Pydantic модель для валидации связей узла listen
"""
parent_id: Optional[int] = Field(default=None, description="ID родительского узла")
parent_port_number: Optional[int] = Field(default=None, description="Номер порта родительского узла")
# class ListenNodePSNodeCore(Base):
# """
# Данные для PS_Node которые уходят из Core
# """
# process_schema_id: Optional[int] = Field(default=None, description="ID процесса")
# node_type: str = Field(description="Тип узла")
class ListenNodeCoreSchemaData(BaseModel):
"""
Pydantic модель для данных портов узла listen
"""
then_port_number: Optional[int] = Field(default=0, description="Номер порта для перехода по Связи Then (LINK)")
is_start: bool = Field(default=False, description="Является ли узел стартовым")
# class ListenNodeSettingsDataCore(Base):
# """
# Данные для process_schema Settings которые уходят из Core
# """
# node_port_number: Optional[int] = Field(default=0, description="Источник данных")
class ListenNodeCoreSchema(BaseModel):
"""
Pydantic модель для схемы узла listen
"""
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[ListenNodeCoreSchemaData] = Field(default=None, description="Данные узла")

View File

@@ -0,0 +1,36 @@
from typing import Optional
from pydantic import BaseModel, Field
class RunNodeData(BaseModel):
"""
Pydantic модель для валидации данных узла run
"""
ps_id: Optional[int] = Field(default=None, description="ID процесса")
node_type: Optional[str] = Field(default=None, description="Тип узла")
class RunNodeLinks(BaseModel):
"""
Pydantic модель для валидации связей узла run
"""
parent_id: Optional[int] = Field(default=None, description="ID родительского узла")
parent_port_number: Optional[int] = Field(default=None, description="Номер порта родительского узла")
class RunNodeCoreSchemaData(BaseModel):
"""
Pydantic модель для данных портов узла run
"""
then_port_number: Optional[int] = Field(default=0, description="Номер порта для перехода по Связи Then (LINK)")
class RunNodeCoreSchema(BaseModel):
"""
Pydantic модель для схемы узла run
"""
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[RunNodeCoreSchemaData] = Field(default=None, description="Данные узла")

View File

@@ -0,0 +1,36 @@
from typing import Optional
from pydantic import BaseModel, Field
class SetNodeData(BaseModel):
"""
Pydantic модель для валидации данных узла set
"""
ps_id: Optional[int] = Field(default=None, description="ID процесса")
node_type: Optional[str] = Field(default=None, description="Тип узла")
class SetNodeLinks(BaseModel):
"""
Pydantic модель для валидации связей узла set
"""
parent_id: Optional[int] = Field(default=None, description="ID родительского узла")
parent_port_number: Optional[int] = Field(default=None, description="Номер порта родительского узла")
class SetNodeCoreSchemaData(BaseModel):
"""
Pydantic модель для данных портов узла set
"""
then_port_number: Optional[int] = Field(default=0, description="Номер порта для перехода по Связи then (LINK)")
class SetNodeCoreSchema(BaseModel):
"""
Pydantic модель для схемы узла set
"""
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[SetNodeCoreSchemaData] = Field(default=None, description="Данные узла")

View File

@@ -31,10 +31,3 @@ class StartNodeCoreSchema(BaseModel):
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 узел не имеет дополнительных параметров, это точка входа в процесс

View File

@@ -0,0 +1,37 @@
from typing import Optional
from pydantic import BaseModel, Field
class SwitchNodeData(BaseModel):
"""
Pydantic модель для валидации данных узла switch
"""
ps_id: Optional[int] = Field(default=None, description="ID процесса")
node_type: Optional[str] = Field(default=None, description="Тип узла")
class SwitchNodeLinks(BaseModel):
"""
Pydantic модель для валидации связей узла switch
"""
parent_id: Optional[int] = Field(default=None, description="ID родительского узла")
parent_port_number: Optional[int] = Field(default=None, description="Номер порта родительского узла")
class SwitchNodeCoreSchemaData(BaseModel):
"""
Pydantic модель для данных портов узла switch
"""
default_port_number: Optional[int] = Field(default=0, description="Номер порта для перехода по Связи default (LINK)")
case_1_port_number: Optional[int] = Field(default=1, description="Номер порта для перехода по Связи case_1 (LINK)")
class SwitchNodeCoreSchema(BaseModel):
"""
Pydantic модель для схемы узла switch
"""
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[SwitchNodeCoreSchemaData] = Field(default=None, description="Данные узла")

View File

@@ -0,0 +1,36 @@
from typing import Optional
from pydantic import BaseModel, Field
class TriggerNodeData(BaseModel):
"""
Pydantic модель для валидации данных узла trigger
"""
ps_id: Optional[int] = Field(default=None, description="ID процесса")
node_type: Optional[str] = Field(default=None, description="Тип узла")
class TriggerNodeLinks(BaseModel):
"""
Pydantic модель для валидации связей узла trigger
"""
parent_id: Optional[int] = Field(default=None, description="ID родительского узла")
parent_port_number: Optional[int] = Field(default=None, description="Номер порта родительского узла")
class TriggerNodeCoreSchemaData(BaseModel):
"""
Pydantic модель для данных портов узла trigger
"""
then_port_number: Optional[int] = Field(default=0, description="Номер порта для перехода по Связи Then (LINK)")
class TriggerNodeCoreSchema(BaseModel):
"""
Pydantic модель для схемы узла trigger
"""
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[TriggerNodeCoreSchemaData] = Field(default=None, description="Данные узла")

View File

@@ -0,0 +1,36 @@
from typing import Optional
from pydantic import BaseModel, Field
class WaitNodeData(BaseModel):
"""
Pydantic модель для валидации данных узла wait
"""
ps_id: Optional[int] = Field(default=None, description="ID процесса")
node_type: Optional[str] = Field(default=None, description="Тип узла")
class WaitNodeLinks(BaseModel):
"""
Pydantic модель для валидации связей узла wait
"""
parent_id: Optional[int] = Field(default=None, description="ID родительского узла")
parent_port_number: Optional[int] = Field(default=None, description="Номер порта родительского узла")
class WaitNodeCoreSchemaData(BaseModel):
"""
Pydantic модель для данных портов узла wait
"""
then_port_number: Optional[int] = Field(default=0, description="Номер порта для перехода по Связи then (LINK)")
class WaitNodeCoreSchema(BaseModel):
"""
Pydantic модель для схемы узла wait
"""
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[WaitNodeCoreSchemaData] = Field(default=None, description="Данные узла")

View File

@@ -0,0 +1,37 @@
from typing import Optional
from pydantic import BaseModel, Field
class WhileNodeData(BaseModel):
"""
Pydantic модель для валидации данных узла while
"""
ps_id: Optional[int] = Field(default=None, description="ID процесса")
node_type: Optional[str] = Field(default=None, description="Тип узла")
class WhileNodeLinks(BaseModel):
"""
Pydantic модель для валидации связей узла while
"""
parent_id: Optional[int] = Field(default=None, description="ID родительского узла")
parent_port_number: Optional[int] = Field(default=None, description="Номер порта родительского узла")
class WhileNodeCoreSchemaData(BaseModel):
"""
Pydantic модель для данных портов узла while
"""
then_port_number: Optional[int] = Field(default=0, description="Номер порта для перехода по Связи Then (LINK)")
else_port_number: Optional[int] = Field(default=1, description="Номер порта для перехода по Связи Else (LINK)")
class WhileNodeCoreSchema(BaseModel):
"""
Pydantic модель для схемы узла while
"""
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[WhileNodeCoreSchemaData] = Field(default=None, description="Данные узла")