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

@@ -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="Данные узла")