### Android (Compose, упрощенная схема)
1. Из API получить фабрику создания виджета.
2. Создать модель данных, пришедшую с бэка.
3. Вызвать метод `CustomerSurvey` у фабрики, передав в него созданную модель данных.
4. Отобразить на экране полученную compose-функцию.
### Android (Compose, технические подробности)
1. В `build.gradle` подключить зависимость `EfsCustomerSurveyCommonLibApi`.
```kotlin
implementation project(':EfsCustomerSurveyCommonLibApi')
```
2. Создать модель данных - `CustomerSurveyStarsDataDomain`, конвертировав `CustomerSurveyDataBean`.
3. Получить фабрику создания compose-функции с помощью API.
```kotlin
val surveyFactory = remember { api<CustomerSurveyCommonApi>().customerSurveyStarsFactory }
```
4. Получить compose-функцию с помощью фабрики. При этом первым и единственным параметром (`data`) передать созданную доменную сущность.
```kotlin
surveyFactory.CustomerSurvey(data = surveyData)
```
5. Виджет опроса добавлен на экран.
### Доменная модель данных.
В качестве доменной модели данных используется класс `CustomerSurveyStarsDataDomain`. Данный класс состоит из следующих параметров:
* `type` - тип виджета, определяющий в каком процессе будет использоваться - WF или REST (необязательный параметр, по умолчанию - *"SurveyStarsRestEntryPoint"*).
* `title` - заголовок опроса (обязательный параметр).
* `deeplink` - диплинк, который будет обработан по нажатию на кнопке (обязательный параметр).
* `launcherFeatureName` - название фичи, для которой будет проверена доступность модуля опросов (обязательный параметр).
* `isMarginEnabled` - признак включения внешних отступов у виджета опросов (необязательный параметр, по умолчанию - *true*).
* `onChangeVisibilityAction` - слушатель виджета опроса (необязательный параметр, по умолчанию - *null*).
Таким образом, для создания доменной модели данных необходимо обязательно передать три параметра: заголовок опроса (`title`), диплинк (`deeplink`) и название фичи (`launcherFeatureName`).
### Доменная модель данных для процессов с кастомными виджетами.
В случае, если необходимо проверить политику коммуникации для запуска опроса без виджета, необходимо выполнить следующие действия:
1. В `build.gradle` подключить зависимость `EfsCustomerSurveyCommonLibApi`.
```kotlin
implementation project(':EfsCustomerSurveyCommonLibApi')
```
2. Получаем интерактор `CustomerSurveyCommonInteractor` с помощью API или DI. Пример:
```kotlin
val interactor = api<CustomerSurveyCommonApi>().customerSurveyCommonInteractor
```
3. Проверяем политику коммуникации с помощью метода `checkSurveyCommunicationPolicy()` у интерактора. Данный метод параметром принимает диплинк, который необходимо проверить, и `featureName`. Возвращает `deeplink` для опроса c актуальными query параметрами, если все ок, иначе `null`.