fix: backend code review fixes for network diagrams

- Replace legacy Optional imports with modern str | None syntax
- Type JSONB columns as Mapped[list[dict[str, Any]]]
- Escape SQL LIKE wildcards (%, _) in diagram search
- Type DiagramNode.position as Position(x, y) Pydantic model
- Wrap AI response parsing in KeyError handler for clean 422 errors
- Remove unused Optional/TYPE_CHECKING imports from schemas/models
- Extract _get_available_slugs helper to DRY duplicate queries

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
chihlasm
2026-04-04 19:11:44 +00:00
parent 2ea56f2563
commit 663a96c8a5
6 changed files with 61 additions and 61 deletions

View File

@@ -1,6 +1,5 @@
"""Pydantic schemas for device types."""
from datetime import datetime
from typing import Optional
from uuid import UUID
from pydantic import BaseModel, Field

View File

@@ -1,11 +1,15 @@
"""Pydantic schemas for network diagrams."""
from datetime import datetime
from typing import Optional
from uuid import UUID
from pydantic import BaseModel, Field
class Position(BaseModel):
x: float
y: float
class DeviceProperties(BaseModel):
hostname: str | None = None
ip: str | None = None
@@ -22,7 +26,7 @@ class DiagramNode(BaseModel):
id: str
type: str
label: str
position: dict
position: Position
properties: DeviceProperties = Field(default_factory=DeviceProperties)