> ## 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.

# Тип школы (сегмент)

> Сегменты школы Commerce и Corporate: чем отличаются, что меняется в интерфейсе для корпоративного режима.

## Сегменты школы

У каждой школы есть **сегмент** (`SchoolSegment`) — это фундаментальный тип школы, который
определяет её бизнес-модель и то, какие возможности доступны в интерфейсе. Сегмент — это
под-режим платформы школ (`SchoolPlatform`).

```typescript theme={null}
export enum SchoolSegment {
    Commerce = 'Commerce',
    Corporate = 'Corporate'
}
```

| Сегмент     | Назначение                                         | Модель                                  |
| ----------- | -------------------------------------------------- | --------------------------------------- |
| `Commerce`  | Коммерческая онлайн-школа: продажа курсов ученикам | Монетизация, продажи, витрина, оплаты   |
| `Corporate` | Корпоративное обучение внутри организации          | Обучение сотрудников без продаж и оплат |

По умолчанию новая школа создаётся в сегменте **Commerce** — форма регистрации не спрашивает
тип, коммерческий режим включён «из коробки». Корпоративный сегмент подключается отдельно.

<Note>
  Сегмент — это неизменяемая через обычный интерфейс характеристика школы. Переключить школу
  между Commerce и Corporate самостоятельно в настройках нельзя: сегмент задаётся при подготовке
  школы и меняется только на стороне платформы (по запросу в поддержку). В UI переключателя
  сегмента нет.
</Note>

## Как сегмент влияет на интерфейс

Признак корпоративной школы вычисляется по сегменту и используется по всему приложению для
скрытия/показа элементов:

```typescript theme={null}
export const IS_CORPORATE: boolean = SCHOOL?.segment === SchoolSegment.Corporate;
```

Также сегменту соответствует отдельное «пространство» интерфейса
(`CURRENT_SCHOOL_SEGMENT`): `SchoolCorporateSegment` или `SchoolCommerceSegment`.

В сторе школы (`SchoolStore`) доступен удобный геттер:

```javascript theme={null}
SchoolStore.isCorporate // true, если segment === Corporate
```

### Что скрывается в корпоративном режиме

Поскольку корпоративная школа не продаёт курсы, из интерфейса убирается всё, что связано с
монетизацией и оплатами:

| Элемент интерфейса                                            | Commerce |      Corporate     |
| ------------------------------------------------------------- | :------: | :----------------: |
| Раздел «Продажи и финансы» (закупки, вывод средств)           |   Есть   |        Скрыт       |
| Цены и статусы «Бесплатно» на карточках курсов                |   Есть   |       Скрыты       |
| Баннер записи с ценой на странице курса                       |   Есть   | Упрощён (без цены) |
| Статус подписки школы в настройках (`SubscriptionStatusView`) |  Показан |        Скрыт       |
| Права `SellerSales` (история платежей и отчёты)               |   Есть   |       Скрыты       |
| Права `SellerRefunds` (возвраты)                              |   Есть   |       Скрыты       |

### Что появляется в корпоративном режиме

| Элемент интерфейса                          |   Commerce  |         Corporate        |
| ------------------------------------------- | :---------: | :----------------------: |
| Права `StaffManage` (управление персоналом) |      —      |           Есть           |
| Права `StaffView` (просмотр персонала)      |      —      |           Есть           |
| Название раздела администрирования          | «Моя школа» |       «Организация»      |
| Терминология прав/продуктов                 |  «продукты» | «корпоративные продукты» |

<Tip>
  Проще всего запомнить так: **Commerce** — это школа, которая продаёт курсы (есть цены,
  продажи, финансы, витрина). **Corporate** — внутреннее обучение организации: цен и продаж
  нет, зато есть управление персоналом (staff).
</Tip>

## Пример гейтинга в коде

Скрытие/показ элементов строится на флаге `IS_CORPORATE`. Например, раздел «Продажи и финансы»
в меню управления добавляется только для не-корпоративных школ:

```javascript theme={null}
...IS_CORPORATE
    ? null
    : {
        salesAndFinances: {
            title: IS_SCHOOL ? tStatic('sales') : tStatic('finance'),
            description: tStatic('purchases&WithdrawalOfFunds'),
            // ...
        },
    }
```

А права персонала (staff) — наоборот, только для корпоративных:

```javascript theme={null}
...(IS_CORPORATE ? [
    { value: Permission.StaffManage, /* ... */ },
    { value: Permission.StaffView,   /* ... */ },
] : [])
```

<Warning>
  Так как сегмент меняет набор доступных разделов, прав и терминологию, определиться с типом
  школы стоит **до** начала наполнения. Смена сегмента у действующей школы — операция на стороне
  платформы, а не самостоятельная настройка.
</Warning>
