export interface ManualCheck {
  id: string;
  instruction: string;
  expectedResult: string;
  url?: string;
}

export interface ManualSection {
  id: string;
  name: string;
  url?: string;
  checks: ManualCheck[];
}

export interface ManualService {
  id: string;
  name: string;
  url: string;
  sections: ManualSection[];
}

export const manualServices: ManualService[] = [
  {
    id: 'lp',
    name: 'Лендинг (myfitcrm.ru)',
    url: 'https://myfitcrm.ru',
    sections: [
      {
        id: 'lp-hero', name: 'Hero-секция', url: 'https://myfitcrm.ru',
        checks: [
          { id: 'lp-hero-1', instruction: 'Открыть myfitcrm.ru — проверить загрузку Hero-секции', expectedResult: 'Заголовок, подзаголовок, CTA-кнопка «Попробовать бесплатно»', url: 'https://myfitcrm.ru' },
          { id: 'lp-hero-2', instruction: 'Нажать кнопку «Попробовать бесплатно»', expectedResult: 'Скролл к форме демо-запроса', url: 'https://myfitcrm.ru' },
          { id: 'lp-hero-3', instruction: 'Нажать кнопку «Войти» в хедере', expectedResult: 'Переход на app.myfitcrm.ru/login', url: 'https://myfitcrm.ru' },
        ],
      },
      {
        id: 'lp-nav', name: 'Навигация', url: 'https://myfitcrm.ru',
        checks: [
          { id: 'lp-nav-1', instruction: 'Нажать ссылки в хедере (Возможности, Роли, Тарифы, FAQ)', expectedResult: 'Плавный скролл к соответствующей секции', url: 'https://myfitcrm.ru' },
          { id: 'lp-nav-2', instruction: 'Уменьшить окно до мобильного размера (< 768px)', expectedResult: 'Хедер адаптирован, бургер-меню', url: 'https://myfitcrm.ru' },
        ],
      },
      {
        id: 'lp-features', name: 'Возможности', url: 'https://myfitcrm.ru#features',
        checks: [
          { id: 'lp-feat-1', instruction: 'Проскроллить до секции «Возможности»', expectedResult: '6 карточек с иконками и описаниями', url: 'https://myfitcrm.ru#features' },
        ],
      },
      {
        id: 'lp-pricing', name: 'Тарифы', url: 'https://myfitcrm.ru#pricing',
        checks: [
          { id: 'lp-price-1', instruction: 'Проскроллить до секции «Тарифы»', expectedResult: '3 тарифа: Стартовая, Стандартная, Премиум с ценами', url: 'https://myfitcrm.ru#pricing' },
          { id: 'lp-price-2', instruction: 'Проверить выделение рекомендуемого тарифа', expectedResult: 'Тариф «Стандартная» выделен цветом', url: 'https://myfitcrm.ru#pricing' },
        ],
      },
      {
        id: 'lp-faq', name: 'FAQ', url: 'https://myfitcrm.ru#faq',
        checks: [
          { id: 'lp-faq-1', instruction: 'Нажать на вопрос в FAQ-аккордеоне', expectedResult: 'Ответ раскрывается/сворачивается плавно', url: 'https://myfitcrm.ru#faq' },
        ],
      },
      {
        id: 'lp-footer', name: 'Футер', url: 'https://myfitcrm.ru',
        checks: [
          { id: 'lp-footer-1', instruction: 'Проверить футер страницы', expectedResult: 'Логотип, ссылки, копирайт', url: 'https://myfitcrm.ru' },
        ],
      },
    ],
  },
  {
    id: 'reception',
    name: 'Панель рецепции (app.myfitcrm.ru)',
    url: 'https://app.myfitcrm.ru',
    sections: [
      {
        id: 'rec-auth', name: 'Авторизация', url: 'https://app.myfitcrm.ru/login',
        checks: [
          { id: 'rec-auth-1', instruction: 'Открыть app.myfitcrm.ru — редирект на /login', expectedResult: 'Форма входа с полями телефон и пароль', url: 'https://app.myfitcrm.ru/login' },
          { id: 'rec-auth-2', instruction: 'Ввести валидные данные рецепциониста и нажать «Войти»', expectedResult: 'Переход на дашборд', url: 'https://app.myfitcrm.ru/login' },
          { id: 'rec-auth-3', instruction: 'Ввести неверный пароль и нажать «Войти»', expectedResult: 'Сообщение об ошибке, остаёмся на /login', url: 'https://app.myfitcrm.ru/login' },
        ],
      },
      {
        id: 'rec-dashboard', name: 'Дашборд', url: 'https://app.myfitcrm.ru/dashboard',
        checks: [
          { id: 'rec-dash-1', instruction: 'После входа проверить загрузку дашборда', expectedResult: 'Карточки со статистикой, список ближайших записей', url: 'https://app.myfitcrm.ru/dashboard' },
        ],
      },
      {
        id: 'rec-clients', name: 'Рецепция / Клиенты', url: 'https://app.myfitcrm.ru/reception',
        checks: [
          { id: 'rec-cli-1', instruction: 'Перейти в раздел «Рецепция» → поиск клиента', expectedResult: 'Поле поиска, результаты по имени/телефону', url: 'https://app.myfitcrm.ru/reception' },
          { id: 'rec-cli-2', instruction: 'Открыть карточку клиента', expectedResult: 'ФИО, телефон, история визитов, абонемент', url: 'https://app.myfitcrm.ru/reception' },
        ],
      },
      {
        id: 'rec-schedule', name: 'Распределение', url: 'https://app.myfitcrm.ru/distribution',
        checks: [
          { id: 'rec-sch-1', instruction: 'Перейти в раздел «Распределение»', expectedResult: 'Список нераспределённых клиентов', url: 'https://app.myfitcrm.ru/distribution' },
          { id: 'rec-sch-2', instruction: 'Назначить тренера клиенту', expectedResult: 'Клиент перемещён, статус обновлён', url: 'https://app.myfitcrm.ru/distribution' },
        ],
      },
      {
        id: 'rec-trainers', name: 'Тренеры', url: 'https://app.myfitcrm.ru/trainers',
        checks: [
          { id: 'rec-tr-1', instruction: 'Перейти в раздел «Тренеры»', expectedResult: 'Список тренеров с фото, статистикой', url: 'https://app.myfitcrm.ru/trainers' },
        ],
      },
      {
        id: 'rec-nav', name: 'Навигация',
        checks: [
          { id: 'rec-nav-1', instruction: 'Проверить все пункты бокового меню', expectedResult: 'Все разделы открываются без ошибок', url: 'https://app.myfitcrm.ru' },
          { id: 'rec-nav-2', instruction: 'Нажать кнопку выхода', expectedResult: 'Редирект на /login, токен удалён', url: 'https://app.myfitcrm.ru' },
        ],
      },
    ],
  },
  {
    id: 'club',
    name: 'Панель администратора клуба (club.myfitcrm.ru)',
    url: 'https://club.myfitcrm.ru',
    sections: [
      {
        id: 'club-auth', name: 'Авторизация', url: 'https://club.myfitcrm.ru/login',
        checks: [
          { id: 'club-auth-1', instruction: 'Открыть club.myfitcrm.ru — редирект на /login', expectedResult: 'Форма входа', url: 'https://club.myfitcrm.ru/login' },
          { id: 'club-auth-2', instruction: 'Войти под club_admin', expectedResult: 'Переход на дашборд клуба', url: 'https://club.myfitcrm.ru/login' },
        ],
      },
      {
        id: 'club-dash', name: 'Дашборд', url: 'https://club.myfitcrm.ru/dashboard',
        checks: [
          { id: 'club-dash-1', instruction: 'Проверить загрузку дашборда', expectedResult: 'Сводная информация: сотрудники, клиенты, тренировки', url: 'https://club.myfitcrm.ru/dashboard' },
        ],
      },
      {
        id: 'club-staff', name: 'Сотрудники', url: 'https://club.myfitcrm.ru/staff',
        checks: [
          { id: 'club-staff-1', instruction: 'Перейти в «Сотрудники» → просмотр списка', expectedResult: 'Таблица сотрудников с ролями', url: 'https://club.myfitcrm.ru/staff' },
          { id: 'club-staff-2', instruction: 'Нажать «Добавить сотрудника» → заполнить форму', expectedResult: 'Диалог создания, валидация полей', url: 'https://club.myfitcrm.ru/staff' },
          { id: 'club-staff-3', instruction: 'Отредактировать существующего сотрудника', expectedResult: 'Данные обновлены', url: 'https://club.myfitcrm.ru/staff' },
        ],
      },
      {
        id: 'club-dept', name: 'Департаменты', url: 'https://club.myfitcrm.ru/departments',
        checks: [
          { id: 'club-dept-1', instruction: 'Перейти в «Департаменты» → просмотр списка', expectedResult: 'Список департаментов с руководителями', url: 'https://club.myfitcrm.ru/departments' },
          { id: 'club-dept-2', instruction: 'Создать новый департамент', expectedResult: 'Департамент добавлен в список', url: 'https://club.myfitcrm.ru/departments' },
        ],
      },
      {
        id: 'club-rooms', name: 'Залы', url: 'https://club.myfitcrm.ru/rooms',
        checks: [
          { id: 'club-rooms-1', instruction: 'Перейти в «Залы» → просмотр', expectedResult: 'Список залов с вместимостью', url: 'https://club.myfitcrm.ru/rooms' },
        ],
      },
      {
        id: 'club-catalog', name: 'Каталог услуг', url: 'https://club.myfitcrm.ru/catalog',
        checks: [
          { id: 'club-cat-1', instruction: 'Перейти в «Каталог» → просмотр услуг', expectedResult: 'Список услуг с ценами и длительностью', url: 'https://club.myfitcrm.ru/catalog' },
          { id: 'club-cat-2', instruction: 'Создать новую услугу', expectedResult: 'Услуга добавлена', url: 'https://club.myfitcrm.ru/catalog' },
        ],
      },
      {
        id: 'club-license', name: 'Лицензия', url: 'https://club.myfitcrm.ru/license',
        checks: [
          { id: 'club-lic-1', instruction: 'Перейти в «Лицензия»', expectedResult: 'Тип лицензии, срок, лимиты, текущее использование', url: 'https://club.myfitcrm.ru/license' },
        ],
      },
      {
        id: 'club-settings', name: 'Настройки', url: 'https://club.myfitcrm.ru/settings',
        checks: [
          { id: 'club-set-1', instruction: 'Перейти в «Настройки» → проверить отображение', expectedResult: 'Название клуба, адрес, часовой пояс', url: 'https://club.myfitcrm.ru/settings' },
        ],
      },
    ],
  },
  {
    id: 'platform',
    name: 'Панель суперадминистратора (platform.myfitcrm.ru)',
    url: 'https://platform.myfitcrm.ru',
    sections: [
      {
        id: 'plat-auth', name: 'Авторизация + 2FA', url: 'https://platform.myfitcrm.ru/login',
        checks: [
          { id: 'plat-auth-1', instruction: 'Открыть platform.myfitcrm.ru → форма входа', expectedResult: 'Форма с полями телефон, пароль', url: 'https://platform.myfitcrm.ru/login' },
          { id: 'plat-auth-2', instruction: 'Войти с правильными данными суперадмина', expectedResult: 'Запрос 2FA кода (TOTP), затем переход на дашборд', url: 'https://platform.myfitcrm.ru/login' },
          { id: 'plat-auth-3', instruction: 'Ввести неверный 2FA код', expectedResult: 'Ошибка, повторный ввод', url: 'https://platform.myfitcrm.ru/login' },
        ],
      },
      {
        id: 'plat-dash', name: 'Дашборд', url: 'https://platform.myfitcrm.ru/dashboard',
        checks: [
          { id: 'plat-dash-1', instruction: 'Проверить загрузку дашборда', expectedResult: '6 карточек статистики, оповещения, недавние клубы', url: 'https://platform.myfitcrm.ru/dashboard' },
          { id: 'plat-dash-2', instruction: 'Проверить что данные загрузились (не показывает 0 везде)', expectedResult: 'Числовые значения > 0', url: 'https://platform.myfitcrm.ru/dashboard' },
        ],
      },
      {
        id: 'plat-clubs', name: 'Клубы', url: 'https://platform.myfitcrm.ru/clubs',
        checks: [
          { id: 'plat-clubs-1', instruction: 'Перейти в «Клубы» → список клубов', expectedResult: 'Таблица с названиями, лицензиями, кол-вом пользователей', url: 'https://platform.myfitcrm.ru/clubs' },
          { id: 'plat-clubs-2', instruction: 'Использовать поиск по названию', expectedResult: 'Фильтрация работает', url: 'https://platform.myfitcrm.ru/clubs' },
          { id: 'plat-clubs-3', instruction: 'Нажать «Создать клуб» → заполнить форму', expectedResult: 'Диалог с валидацией, клуб создан', url: 'https://platform.myfitcrm.ru/clubs' },
        ],
      },
      {
        id: 'plat-lic', name: 'Лицензии', url: 'https://platform.myfitcrm.ru/licenses',
        checks: [
          { id: 'plat-lic-1', instruction: 'Перейти в «Лицензии» → список', expectedResult: 'Таблица лицензий с типами и сроками', url: 'https://platform.myfitcrm.ru/licenses' },
          { id: 'plat-lic-2', instruction: 'Выдать лицензию клубу', expectedResult: 'Диалог выдачи, лицензия назначена', url: 'https://platform.myfitcrm.ru/licenses' },
        ],
      },
      {
        id: 'plat-mon', name: 'Мониторинг', url: 'https://platform.myfitcrm.ru/monitoring',
        checks: [
          { id: 'plat-mon-1', instruction: 'Перейти в «Мониторинг» → статус сервисов', expectedResult: 'Статусы сервисов, метрики', url: 'https://platform.myfitcrm.ru/monitoring' },
        ],
      },
      {
        id: 'plat-audit', name: 'Журнал действий', url: 'https://platform.myfitcrm.ru/audit',
        checks: [
          { id: 'plat-audit-1', instruction: 'Перейти в «Журнал действий» → список логов', expectedResult: 'Таблица с действиями, пользователями, датами', url: 'https://platform.myfitcrm.ru/audit' },
          { id: 'plat-audit-2', instruction: 'Использовать поиск и фильтры', expectedResult: 'Фильтрация по типу и тексту работает', url: 'https://platform.myfitcrm.ru/audit' },
        ],
      },
      {
        id: 'plat-docs', name: 'Документы', url: 'https://platform.myfitcrm.ru/documents',
        checks: [
          { id: 'plat-docs-1', instruction: 'Перейти в «Документы» → проверить список', expectedResult: 'Список документов или пустое состояние', url: 'https://platform.myfitcrm.ru/documents' },
          { id: 'plat-docs-2', instruction: 'Открыть документ «Состояние разработки»', expectedResult: 'Страница с таблицами, прогрессом, кнопками PDF/Excel/Печать', url: 'https://platform.myfitcrm.ru/document/dev-status' },
          { id: 'plat-docs-3', instruction: 'Нажать «Скачать PDF» на документе', expectedResult: 'Файл PDF скачивается', url: 'https://platform.myfitcrm.ru/document/dev-status' },
          { id: 'plat-docs-4', instruction: 'Нажать «Скачать Excel» на документе', expectedResult: 'Файл Excel скачивается', url: 'https://platform.myfitcrm.ru/document/dev-status' },
        ],
      },
      {
        id: 'plat-dev', name: 'Разработка', url: 'https://platform.myfitcrm.ru/development',
        checks: [
          { id: 'plat-dev-1', instruction: 'Перейти в «Разработка» → вкладка Прогресс', expectedResult: 'Диаграмма Ганта, спринты, TODO, выполнено', url: 'https://platform.myfitcrm.ru/development' },
          { id: 'plat-dev-2', instruction: 'Переключиться на вкладку «Тестирование»', expectedResult: 'E2E тесты, ручные проверки, замечания', url: 'https://platform.myfitcrm.ru/development?tab=testing' },
        ],
      },
    ],
  },
  {
    id: 'mobile',
    name: 'Мобильное приложение (Expo / React Native)',
    url: 'https://expo.dev',
    sections: [
      {
        id: 'mob-auth', name: 'Авторизация',
        checks: [
          { id: 'mob-auth-1', instruction: 'Открыть приложение — экран входа', expectedResult: 'Форма: поле телефон, пароль, кнопка «Войти»' },
          { id: 'mob-auth-2', instruction: 'Ввести валидные данные тренера и нажать «Войти»', expectedResult: 'Переход на главный экран' },
          { id: 'mob-auth-3', instruction: 'Ввести неверный пароль и нажать «Войти»', expectedResult: 'Сообщение об ошибке, остаёмся на экране входа' },
          { id: 'mob-auth-4', instruction: 'Закрыть приложение и открыть снова', expectedResult: 'Автоматический вход (refresh token)' },
        ],
      },
      {
        id: 'mob-home', name: 'Главная',
        checks: [
          { id: 'mob-home-1', instruction: 'Проверить загрузку главного экрана', expectedResult: 'Статистика дня, ближайшие тренировки, рейтинг' },
          { id: 'mob-home-2', instruction: 'Потянуть экран вниз (pull-to-refresh)', expectedResult: 'Данные обновлены' },
          { id: 'mob-home-3', instruction: 'Проверить карточки долгов клиентов', expectedResult: 'Красные карточки с суммами (если есть)' },
        ],
      },
      {
        id: 'mob-clients', name: 'Клиенты',
        checks: [
          { id: 'mob-cli-1', instruction: 'Перейти на вкладку «Клиенты»', expectedResult: 'Список клиентов с аватарами и именами' },
          { id: 'mob-cli-2', instruction: 'Использовать строку поиска', expectedResult: 'Фильтрация по имени/телефону' },
          { id: 'mob-cli-3', instruction: 'Нажать на клиента → карточка', expectedResult: 'ФИО, телефон, цели, травмы, история визитов' },
          { id: 'mob-cli-4', instruction: 'Записать клиента на тренировку из карточки', expectedResult: 'Переход к созданию тренировки с предзаполненным клиентом' },
        ],
      },
      {
        id: 'mob-schedule', name: 'Расписание',
        checks: [
          { id: 'mob-sch-1', instruction: 'Перейти на вкладку «Расписание»', expectedResult: 'Календарь с тренировками по дням' },
          { id: 'mob-sch-2', instruction: 'Нажать «+» → создать тренировку', expectedResult: 'Форма: клиент, тип, дата/время, зал' },
          { id: 'mob-sch-3', instruction: 'Заполнить форму и создать тренировку', expectedResult: 'Тренировка появилась в расписании' },
          { id: 'mob-sch-4', instruction: 'Нажать на тренировку → детали', expectedResult: 'Информация, кнопки: отменить, перенести' },
          { id: 'mob-sch-5', instruction: 'Отменить тренировку', expectedResult: 'Выбор причины отмены, тренировка удалена' },
          { id: 'mob-sch-6', instruction: 'Переключить день в календаре', expectedResult: 'Отображаются тренировки выбранного дня' },
        ],
      },
      {
        id: 'mob-funnel', name: 'Воронка',
        checks: [
          { id: 'mob-fun-1', instruction: 'Перейти на вкладку «Воронка»', expectedResult: 'Три колонки: Новые, Назначено, Проведено' },
          { id: 'mob-fun-2', instruction: 'Нажать на запись в колонке «Новые»', expectedResult: 'Карточка клиента с кнопками действий' },
          { id: 'mob-fun-3', instruction: 'Назначить стартовую тренировку', expectedResult: 'Клиент перемещён в «Назначено»' },
          { id: 'mob-fun-4', instruction: 'Проверить конверсию (вверху экрана)', expectedResult: 'Проценты: Новые→Назначено, Назначено→Проведено' },
        ],
      },
      {
        id: 'mob-stats', name: 'Статистика',
        checks: [
          { id: 'mob-stat-1', instruction: 'Перейти в раздел «Статистика»', expectedResult: 'Графики конверсии воронки, показатели за период' },
          { id: 'mob-stat-2', instruction: 'Переключить период (неделя/месяц)', expectedResult: 'Данные обновляются' },
        ],
      },
      {
        id: 'mob-rating', name: 'Рейтинг тренеров',
        checks: [
          { id: 'mob-rat-1', instruction: 'Перейти в раздел «Рейтинг»', expectedResult: 'Список тренеров с позициями и метриками' },
          { id: 'mob-rat-2', instruction: 'Проверить свою позицию в рейтинге', expectedResult: 'Своя строка выделена' },
        ],
      },
      {
        id: 'mob-sales', name: 'Продажи',
        checks: [
          { id: 'mob-sale-1', instruction: 'Перейти в раздел «Продажи»', expectedResult: 'Список продаж и реализаций' },
          { id: 'mob-sale-2', instruction: 'Нажать «Выставить продажу» → заполнить форму', expectedResult: 'Выбор клиента, услуги, суммы' },
          { id: 'mob-sale-3', instruction: 'Подтвердить продажу', expectedResult: 'Продажа появилась в списке' },
        ],
      },
      {
        id: 'mob-sleeping', name: 'Спящие клиенты',
        checks: [
          { id: 'mob-sleep-1', instruction: 'Перейти в «Ещё» → «Спящие клиенты»', expectedResult: 'Список клиентов без активности > 30 дней' },
          { id: 'mob-sleep-2', instruction: 'Нажать на спящего клиента', expectedResult: 'Карточка с датой последней активности' },
        ],
      },
      {
        id: 'mob-sip', name: 'SIP-звонки',
        checks: [
          { id: 'mob-sip-1', instruction: 'Нажать кнопку звонка в карточке клиента', expectedResult: 'Экран звонка: имя, аватар, кнопки мьют/громкая/DTMF' },
          { id: 'mob-sip-2', instruction: 'Перейти в «Ещё» → «Журнал звонков»', expectedResult: 'Список исходящих звонков с датами' },
        ],
      },
      {
        id: 'mob-coordinator', name: 'Координатор (роль)',
        checks: [
          { id: 'mob-coord-1', instruction: 'Войти под координатором', expectedResult: 'Главный экран: статистика департамента' },
          { id: 'mob-coord-2', instruction: 'Распределить клиента тренеру', expectedResult: 'Клиент назначен, тренер получил уведомление' },
          { id: 'mob-coord-3', instruction: 'Посмотреть расписание всех тренеров', expectedResult: 'Все тренировки департамента' },
        ],
      },
      {
        id: 'mob-nav', name: 'Навигация и общее',
        checks: [
          { id: 'mob-nav-1', instruction: 'Проверить все вкладки нижнего меню', expectedResult: '5 вкладок переключаются без ошибок' },
          { id: 'mob-nav-2', instruction: 'Проверить push-уведомления', expectedResult: 'Экран уведомлений с историей' },
          { id: 'mob-nav-3', instruction: 'Нажать кнопку выхода', expectedResult: 'Возврат на экран входа' },
          { id: 'mob-nav-4', instruction: 'Проверить работу в горизонтальной ориентации', expectedResult: 'Интерфейс адаптируется' },
        ],
      },
    ],
  },
  {
    id: 'api',
    name: 'API (api.myfitcrm.ru)',
    url: 'https://api.myfitcrm.ru',
    sections: [
      {
        id: 'api-docs', name: 'Swagger документация', url: 'https://api.myfitcrm.ru/api/docs',
        checks: [
          { id: 'api-docs-1', instruction: 'Открыть api.myfitcrm.ru/api/docs', expectedResult: 'Swagger UI с перечнем эндпоинтов', url: 'https://api.myfitcrm.ru/api/docs' },
        ],
      },
      {
        id: 'api-auth', name: 'Аутентификация', url: 'https://api.myfitcrm.ru/api/docs#/Auth',
        checks: [
          { id: 'api-auth-1', instruction: 'POST /v1/auth/login с правильными данными (через Swagger)', expectedResult: 'Ответ 200, accessToken + refreshToken', url: 'https://api.myfitcrm.ru/api/docs#/Auth' },
          { id: 'api-auth-2', instruction: 'POST /v1/auth/login с неверным паролем', expectedResult: 'Ответ 401', url: 'https://api.myfitcrm.ru/api/docs#/Auth' },
        ],
      },
      {
        id: 'api-clients', name: 'Клиенты', url: 'https://api.myfitcrm.ru/api/docs#/Clients',
        checks: [
          { id: 'api-cli-1', instruction: 'GET /v1/clients с Bearer-токеном координатора', expectedResult: 'Массив клиентов с пагинацией', url: 'https://api.myfitcrm.ru/api/docs#/Clients' },
          { id: 'api-cli-2', instruction: 'POST /v1/clients — создание клиента координатором', expectedResult: 'Ответ 200, новый клиент', url: 'https://api.myfitcrm.ru/api/docs#/Clients' },
        ],
      },
      {
        id: 'api-schedule', name: 'Расписание', url: 'https://api.myfitcrm.ru/api/docs#/Trainings',
        checks: [
          { id: 'api-sch-1', instruction: 'GET /v1/trainings с Bearer-токеном тренера', expectedResult: 'Список тренировок', url: 'https://api.myfitcrm.ru/api/docs#/Trainings' },
        ],
      },
      {
        id: 'api-funnel', name: 'Воронка', url: 'https://api.myfitcrm.ru/api/docs#/Funnel',
        checks: [
          { id: 'api-fun-1', instruction: 'GET /v1/funnel с Bearer-токеном тренера', expectedResult: 'Записи воронки', url: 'https://api.myfitcrm.ru/api/docs#/Funnel' },
          { id: 'api-fun-2', instruction: 'GET /v1/stats/funnel — конверсия', expectedResult: 'Числовые поля конверсии', url: 'https://api.myfitcrm.ru/api/docs#/Stats' },
        ],
      },
      {
        id: 'api-health', name: 'Здоровье', url: 'https://api.myfitcrm.ru/health',
        checks: [
          { id: 'api-health-1', instruction: 'GET /health', expectedResult: 'Ответ 200, статусы db и redis', url: 'https://api.myfitcrm.ru/health' },
        ],
      },
    ],
  },
];
