Source code for pylocal_akuvox.models.groups

# SPDX-FileCopyrightText: 2026 Andrew Grimberg <tykeal@bardicgrove.org>
# SPDX-License-Identifier: Apache-2.0

"""Organizational-group data model."""

from __future__ import annotations

from dataclasses import dataclass
from typing import Any

from pylocal_akuvox.exceptions import AkuvoxParseError


[docs] @dataclass(frozen=True, kw_only=True) class Group: """Organizational group stored on the device.""" name: str id: str | None = None
[docs] @classmethod def from_api_response(cls, data: dict[str, Any]) -> Group: """Create Group from API response data.""" try: return cls( name=data["Name"], id=data.get("ID"), ) except KeyError as exc: msg = f"Missing required field {exc} in group data" raise AkuvoxParseError(msg) from exc
[docs] def to_api_payload(self) -> dict[str, str]: """Convert to PascalCase dict for add/set API calls.""" payload: dict[str, str] = {"Name": self.name} if self.id is not None: payload["ID"] = self.id return payload