# api.v1.network ### *class* api.v1.network.ContainerPositionManager Bases: `object` Класс для управления позициями и состоянием контейнеров. Хранит и обновляет координаты (x, y) и состояние (isOpen) для контейнеров активации и деактивации. #### get_position_and_state(container_name: str, translations: Translations = Depends(translations_dependency)) → Tuple[int, int, bool] Получает текущие координаты и состояние указанного контейнера. * **Parameters:** * **container_name** (*str*) – Имя контейнера (“activation” или “deactivation”). * **translations** – Объект переводов для текущего языка. * **Returns:** Кортеж с координатами (x, y) и состоянием (isOpen). * **Return type:** Tuple[int, int, bool] * **Raises:** **ValueError** – Если указан неверный идентификатор контейнера. #### update_position(container_id: int, x: int, y: int, isOpen: bool) → None Обновляет позицию и состояние контейнера по его идентификатору. * **Parameters:** * **container_id** (*int*) – Идентификатор контейнера (1 для “activation”, 2 для “deactivation”). * **x** (*int*) – Новая координата X. * **y** (*int*) – Новая координата Y. * **isOpen** (*bool*) – Новое состояние контейнера (открыт/закрыт). * **Raises:** **ValueError** – Если container_id не соответствует ни одному контейнеру. ### *async* api.v1.network.get_hostname(translations: Translations = Depends(translations_dependency)) Возвращает имя хоста системы. Выполняет запрос к сервису для получения имени хоста. * **Parameters:** **translations** – Объект переводов для текущего языка. * **Returns:** Словарь с ключом “hostname” и значением имени хоста. * **Return type:** dict * **Raises:** **HTTPException** – Если произошла ошибка при получении имени хоста (status_code=500). ### *async* api.v1.network.get_network_data(translations: Translations = Depends(translations_dependency)) → Dict[str, Dict] Возвращает текущие сетевые данные в виде словаря. Получает данные о сетевых интерфейсах, разделяет их на активные и неактивные, и возвращает их в формате Activation и Deactivation с учётом позиций и состояний контейнеров. * **Parameters:** **translations** – Объект переводов для текущего языка. * **Returns:** Словарь с ключами “activation” и “deactivation”, содержащими : данные о соответствующих контейнерах. * **Return type:** Dict[str, Dict] * **Raises:** **HTTPException** – Если произошла ошибка при получении данных (status_code=500). ### *async* api.v1.network.update_container_position(data: Dict[str, int | bool] = Body(PydanticUndefined), translations: Translations = Depends(translations_dependency)) Обновляет позицию и состояние контейнера. Принимает данные о новом положении и состоянии контейнера и обновляет их в менеджере позиций. * **Parameters:** * **data** (*Dict* *[**str* *,* *Union* *[**int* *,* *bool* *]* *]*) – Словарь с ключами: - “container_id” (int): Идентификатор контейнера (1 или 2). - “container_x” (int): Новая координата X. - “container_y” (int): Новая координата Y. - “isOpen” (bool): Новое состояние контейнера (открыт/закрыт). * **translations** – Объект переводов для текущего языка. * **Returns:** Словарь с ключами: : - ”success” (bool): Успешность операции. - ”message” (str): Сообщение об успешном обновлении. * **Return type:** dict * **Raises:** **HTTPException** – Если отсутствуют обязательные поля (status_code=400) или типы данных неверны.