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