# -*- coding: utf-8 -*- # gui/components/model_view/_mv_zones.py # Управление зонами — тонкая композиция подмиксинов from gui.components.model_view._mv_zones_crud import ZoneCrudMixin from gui.components.model_view._mv_zones_visual import ZoneVisualMixin from gui.components.model_view._mv_zones_highlight import ZoneHighlightMixin class ZoneManagementMixin(ZoneCrudMixin, ZoneVisualMixin, ZoneHighlightMixin): """Добавление/обновление/удаление зон в 3D-сцене.""" pass # --------------------------------------------------------------------------- # Module workflow notes # --------------------------------------------------------------------------- # 1) Задача модуля: # Композиционный фасад подсистемы зон. # # 2) Последовательность действий и вызовов: # A. Композиционный класс ZoneManagementMixin: # Назначение: объединяет поведение через ZoneCrudMixin, ZoneVisualMixin, ZoneHighlightMixin. # Собственная вычислительная логика отсутствует; маршрутизация идёт в родительские миксины. # # 3) Важные ограничения и инварианты: # - Модуль выполняется в составе ModelViewWidget и использует согласованные поля состояния self._... . # - Межмодульная связность: только через фасад model_view; прямые обращения между zone, rack, shelf, cell запрещены. # - Очистка состояния должна быть идемпотентной: повторный вызов не меняет корректное состояние в ошибочное. # # 4) Правило сопровождения: # - Любое изменение сценария должно сопровождаться обновлением этого блока с сохранением фактического порядка вызовов. # - При добавлении метода указывать его место в цепочке сценария (запуск, основной шаг, завершение, вспомогательная логика).