diff --git a/backend/app/schemas/device.py b/backend/app/schemas/device.py index adc8878..f11f141 100644 --- a/backend/app/schemas/device.py +++ b/backend/app/schemas/device.py @@ -88,6 +88,8 @@ class DeviceResponse(BaseModel): tls_mode: str = "auto" tags: list[DeviceTagRef] = [] groups: list[DeviceGroupRef] = [] + site_id: Optional[uuid.UUID] = None + site_name: Optional[str] = None created_at: datetime model_config = {"from_attributes": True} diff --git a/backend/app/services/device.py b/backend/app/services/device.py index 0aef536..27b71a5 100644 --- a/backend/app/services/device.py +++ b/backend/app/services/device.py @@ -109,15 +109,20 @@ def _build_device_response(device: Device) -> DeviceResponse: tls_mode=device.tls_mode, tags=tags, groups=groups, + site_id=device.site_id, + site_name=device.site.name if device.site else None, created_at=device.created_at, ) def _device_with_relations(): """Return a select() for Device with tags and groups eagerly loaded.""" + from app.models.site import Site # noqa: F811 + return select(Device).options( selectinload(Device.tag_assignments).selectinload(DeviceTagAssignment.tag), selectinload(Device.group_memberships).selectinload(DeviceGroupMembership.group), + selectinload(Device.site), ) diff --git a/frontend/src/lib/api.ts b/frontend/src/lib/api.ts index 077acef..484078c 100644 --- a/frontend/src/lib/api.ts +++ b/frontend/src/lib/api.ts @@ -306,6 +306,8 @@ export interface DeviceResponse { tls_mode: string tags: DeviceTagRef[] groups: DeviceGroupRef[] + site_id: string | null + site_name: string | null created_at: string }