> ## Documentation Index
> Fetch the complete documentation index at: https://faq.exode.biz/llms.txt
> Use this file to discover all available pages before exploring further.

# Статусы функций и открытые вопросы

> Честная карта готовности возможностей платформы: что реализовано, что частично, что skeleton и что под вопросом

Эта страница отражает реальное состояние функций в коде, а не только планы. Она помогает понять, на что
можно опираться в продакшене прямо сейчас, а что ещё дорабатывается. Ниже — легенда статусов, таблица по
разделам и список открытых вопросов к продукту.

<Note>
  Статусы описывают состояние клиентского приложения (`exode-app`) на момент подготовки документации.
  Отдельные возможности могут быть недоступны в конкретной школе из-за тарифа (`SchoolFeatures`) или
  сегмента (`Commerce` / `Corporate`), даже если функция реализована.
</Note>

## Легенда статусов

| Статус           | Что означает                                                                                |
| ---------------- | ------------------------------------------------------------------------------------------- |
| **Готово**       | Реализовано и работает в интерфейсе                                                         |
| **Частично**     | Основной сценарий работает, но часть возможностей помечена «Скоро» / ограничена             |
| **Skeleton**     | Интерфейс присутствует, но не подключён к боевому backend или заглушён                      |
| **Под вопросом** | В коде нет реализующего интерфейса (только флаг тарифа или тип в схеме) — требует уточнения |

## Школа и настройки

| Функция                                   | Статус | Примечание                                                    |
| ----------------------------------------- | :----: | ------------------------------------------------------------- |
| Создание школы                            | Готово | `pages.School.Create`, мутация `schoolManageCreateWithSeller` |
| Основная информация, логотип, темы, языки | Готово | Раздел настроек школы, auto-save                              |
| Домен и собственный домен                 | Готово | Зависит от возможности `customDomain`                         |
| Сегмент Commerce / Corporate              | Готово | Меняется на стороне платформы, не в UI                        |
| Кастомный код (CSS/JS)                    | Готово | Зависит от `customCode` / `customDesign`                      |

## Курсы и обучение

| Функция                                         |  Статус  | Примечание                                                                          |
| ----------------------------------------------- | :------: | ----------------------------------------------------------------------------------- |
| Создание курсов, типы курсов                    |  Готово  | 6 типов `CourseType`, тип неизменяем после создания                                 |
| Модули и уроки, порядок                         |  Готово  | Раздел «Содержание», drag-and-drop                                                  |
| Практика и варианты                             |  Готово  | `CourseLessonPracticeEntity`, порог и попытки                                       |
| Показ заданий «Последовательность» (`Sequence`) | Частично | В интерфейсе помечен «Скоро», выбрать нельзя — практика показывает задания списком  |
| База заданий, 10 типов ответа                   |  Готово  | `/manage/tasks`, `TaskAnswerType`                                                   |
| AI-генерация практики                           | Частично | Сгенерированные задания (`GeneratedAiTask`) требуют ручного подтверждения куратором |
| Проверка практики (авто + ручная)               |  Готово  | Диалог проверки (PracticeChat), статусы попыток                                     |
| Пакеты курсов (`Bundle`)                        |  Готово  | Вложенные курсы вместо уроков                                                       |

## Продажи и оплаты

| Функция                                  |  Статус  | Примечание                                                                                         |
| ---------------------------------------- | :------: | -------------------------------------------------------------------------------------------------- |
| Эквайринг (подключение провайдеров)      |  Готово  | `/manage/school/acquiring`, `PaymentProviderType`                                                  |
| Запуски и тарифы                         |  Готово  | `ProductLaunch`, `ProductPrice`                                                                    |
| Оплата картой (ExodePay), корзина, счета |  Готово  | Invoice → Payment, статусы `PaymentStatus`                                                         |
| Промокоды и скидки                       |  Готово  | `DiscountEntity`, `Amount` / `Percent`                                                             |
| Рассрочка и автосписания                 |  Готово  | `/manage/installments`, график `ProductAccessBilling`                                              |
| Подписки (рекуррентные списания)         |  Готово  | Тип биллинга `Subscription`                                                                        |
| Фильтр по UTM-меткам в счетах            |  Готово  | `UtmFilter` на `/manage/invoices` (аналитическая размётка)                                         |
| Возвраты (`/manage/refunds`)             | Skeleton | Страница-заготовка: заголовок и описание есть, интерфейс создания/отправки возвратов не реализован |

## Команда и доступ

| Функция                                   |  Статус  | Примечание                                                                         |
| ----------------------------------------- | :------: | ---------------------------------------------------------------------------------- |
| RBAC, права и менеджеры                   |  Готово  | Перечисление `Permission`, `Middleware.Auth`, `Rbac.Permission`                    |
| Глобальные менеджеры и менеджеры продукта |  Готово  | `SellerManagerType`                                                                |
| Пользователи школы и доступы к курсам     |  Готово  | `/manage/school/users`                                                             |
| Группы (учебные потоки)                   |  Готово  | Привязка к продукту, массовое добавление до 250                                    |
| Управление персоналом (Staff)             | Частично | Права `StaffManage` / `StaffView` только в корпоративном сегменте (`IS_CORPORATE`) |

## Сертификаты (ITD-158)

| Функция                               |      Статус     | Примечание                                                                                                                                |
| ------------------------------------- | :-------------: | ----------------------------------------------------------------------------------------------------------------------------------------- |
| Настройка сертификата на курсе        |     Skeleton    | `ManageCourseCertificatesPage` присутствует, но сохранение = заглушка (`TODO(codegen)`); список шаблонов подставляется временными данными |
| Раздел «Мои сертификаты» ученика      |     Skeleton    | `/certificates` реализован, но `certificateFindMany` заглушён — список пустой до публикации схемы                                         |
| Публичная проверка `verify.exode.biz` | Готово (worker) | Отдельный сервис-worker реализован; требует инфраструктурных шагов (seed шаблонов в R2, DNS)                                              |
| Пункт меню на «Мои сертификаты»       |     Частично    | Контекстный пункт `MyCertificatesContextItem` есть; интеграция в основную навигацию — вне текущей задачи                                  |

<Warning>
  Раздел сертификатов **нельзя считать боевым**: и админская форма, и студенческий список работают на
  заглушках и не подключены к серверной схеме (в `schema.gql` пока нет cert-типов). Подключение произойдёт
  после публикации backend-схемы и `yarn graphql:build`. Не обещайте ученикам выдачу сертификатов до этого.
</Warning>

## Маркетинг и интеграции

| Функция                                      |    Статус    | Примечание                                                                                        |
| -------------------------------------------- | :----------: | ------------------------------------------------------------------------------------------------- |
| Вебхуки школы                                |    Готово    | Раздел `Manage/School/Webhooks`, модалка создания/редактирования endpoint'а                       |
| Подключение Telegram                         |    Готово    | Модалка `UserConnectTg`, кнопка привязки Telegram                                                 |
| UTM как размётка ссылок                      |   Частично   | В приложении UTM используется для **фильтрации** счетов; полноценного конструктора UTM-ссылок нет |
| Автоворонки (`autoFunnels`)                  | Под вопросом | В коде клиента есть только флаг тарифа `autoFunnels`; реализующего интерфейса воронок не найдено  |
| Маркетинговые инструменты (`marketingTools`) | Под вопросом | Флаг тарифа присутствует, но отдельного раздела маркетинга в страницах не обнаружено              |

## Открытые вопросы к продукту

Ниже — вопросы, которые стоит уточнить, чтобы документация не вводила в заблуждение.

<Steps>
  <Step title="Сертификаты: сроки запуска">
    Когда будет опубликована серверная схема сертификатов и подключены реальные хуки (`courseUpdate` с
    `settings.certificate`, `certificateTemplateFindMany`, `certificateFindMany`)? До этого раздел остаётся
    в статусе Skeleton.
  </Step>

  <Step title="Автоворонки и маркетинг">
    Флаги `autoFunnels` и `marketingTools` объявлены в тарифах, но UI не найден. Это будущая функция,
    внешняя интеграция или устаревший флаг? Нужно решить, упоминать ли их в документации для владельцев.
  </Step>

  <Step title="UTM: конструктор ссылок">
    Сейчас UTM — только фильтр в счетах. Планируется ли конструктор UTM-ссылок / привязка к рекламным
    кампаниям, или размётка полностью на стороне владельца?
  </Step>

  <Step title="Возвраты">
    Раздел `/manage/refunds` — заглушка. Каков целевой процесс возврата и когда появится рабочий интерфейс?
  </Step>

  <Step title="Telegram: назначение">
    Привязка Telegram реализована для входа/уведомлений. Нужно уточнить полный набор сценариев (логин,
    оповещения, чаты групп), чтобы описать возможность корректно.
  </Step>

  <Step title="Показ заданий «Последовательность»">
    Режим `Sequence` помечен «Скоро». Есть ли план по срокам, или его стоит убрать из пользовательской
    документации до готовности?
  </Step>
</Steps>

<Tip>
  Если вы дорабатываете этот раздел — сверяйтесь с кодом, а не только с планами: проверяйте наличие реальной
  страницы/модалки/хука, а не только флага в тарифе или типа в `schema.gql`. Флаг возможности не означает
  наличие интерфейса.
</Tip>
