Skill (ru)
# Список consumer categories
## Что делает инструмент
Выводит loyalty customer categories, доступные для целевой организации настроенного клиента iiko.
## Входные параметры
- один клиент: `--client <slug>`
- несколько клиентов: `--clients <slug_one,slug_two>`
- все настроенные клиенты: `--all-clients`
- необязательное переопределение организации: `--organization-id <id>`
- необязательный режим всех организаций: `--all-organizations`
- необязательный JSON-вывод: `--json`
- источник конфига: `--use-local-env` / `--no-use-local-env` (MCP: `use_local_env`); по умолчанию `IIKO_DEFAULT_USE_LOCAL_ENV`
## Вывод
- формат по умолчанию: Markdown
- JSON доступен через `--json`
- каждый результат включает slug клиента, имя клиента и возвращенные consumer categories
- без `--all-organizations` команда по умолчанию использует первую найденную организацию
## Используемые общие части
- `IikoSettings`, `get_client_settings`, `get_client_settings_many`
- `get_access_token()`
- `resolve_organization_ids()`
- `get_customer_categories()`
- `IikoTransport`
## Инструкции по тестированию
- запустить фокусные тесты:
- `.venv/bin/python -m pytest tests/shared/test_customer_categories.py tests/commands/test_list_consumer_categories.py -q`
- вручную сделать smoke-test CLI:
- `.venv/bin/python -m iiko_api_mcp_server.commands.list_consumer_categories --client client_one --organization-id replace-with-organization-id`
- `.venv/bin/python -m iiko_api_mcp_server.commands.list_consumer_categories --client client_one --all-organizations`
- `.venv/bin/python -m iiko_api_mcp_server.commands.list_consumer_categories --all-clients --json`
## Качество тестирования
- unit-тесты покрывают shared helper для endpoint, нормализованный вывод команды, Markdown-рендеринг и CLI entrypoint
- тесты также покрывают поведение “первая организация по умолчанию” и opt-in сценарий с `--all-organizations`
- остаточный риск: реальные организации могут возвращать названия категорий и флаги, не представленные в текущих фикстурах, но поверхность разбора специально оставлена минимальной