UC (Варианты использования)
Варианты использования для создания заявки на досрочное расторжение договора
UC.01. Создание заявки на досрочное расторжение договора
Краткое описание
Клиент создает заявку на досрочное расторжение активного договора через личный кабинет.
Участники
| Участник | Описание |
|---|---|
| Клиент | Авторизованный пользователь личного кабинета |
| Личный кабинет | UI, через который клиент создает заявку |
| API Gateway | Принимает REST-запрос и вызывает backend |
| Contract Termination Service | Создает заявку |
Предусловия
| ID | Предусловие |
|---|---|
| PRE.01 | Клиент авторизован |
| PRE.02 | У клиента есть договор |
| PRE.03 | Договор находится в статусе ACTIVE |
| PRE.04 | По договору нет активной заявки на расторжение |
Постусловия успешного сценария
| ID | Постусловие |
|---|---|
| POST.01 | Заявка создана |
| POST.02 | Заявке присвоен уникальный номер |
| POST.03 | Заявка находится в статусе SUBMITTED |
| POST.04 | Клиенту показано сообщение об успешной отправке |
| POST.05 | Инициирована отправка уведомления клиенту |
Основной сценарий
| Шаг | Действие пользователя | Действие системы |
|---|---|---|
| 1 | Клиент открывает личный кабинет | Система отображает главную страницу |
| 2 | Клиент переходит в раздел “Договоры” | Система отображает список договоров |
| 3 | Клиент открывает карточку активного договора | Система отображает данные договора |
| 4 | Клиент нажимает “Расторгнуть договор” | Система открывает форму создания заявки |
| 5 | Клиент выбирает причину расторжения | Система сохраняет выбранное значение на форме |
| 6 | Клиент указывает желаемую дату расторжения | Система выполняет фронтовую проверку даты |
| 7 | Клиент указывает банковские реквизиты | Система выполняет фронтовую проверку формата |
| 8 | Клиент при необходимости прикладывает документы | Система отображает список приложенных документов |
| 9 | Клиент нажимает “Отправить заявку” | Frontend отправляет REST-запрос в API Gateway |
| 10 | - | API Gateway валидирует запрос |
| 11 | - | API Gateway маппит REST-запрос в gRPC-запрос |
| 12 | - | Backend-сервис выполняет бизнес-проверки |
| 13 | - | Backend-сервис создает заявку |
| 14 | - | API Gateway возвращает результат на Frontend |
| 15 | Клиент видит результат | Система показывает номер заявки и статус |
Альтернативные сценарии
UC.01.A1. Договор не активен
| Шаг | Описание |
|---|---|
| 1 | Клиент открывает карточку договора |
| 2 | Система определяет, что договор не в статусе ACTIVE |
| 3 | Кнопка “Расторгнуть договор” не отображается или заблокирована |
| 4 | Клиент не может создать заявку |
UC.01.A2. По договору уже есть активная заявка
| Шаг | Описание |
|---|---|
| 1 | Клиент нажимает “Расторгнуть договор” |
| 2 | Система определяет, что по договору уже есть активная заявка |
| 3 | Система не создает новую заявку |
| 4 | Клиент видит сообщение: “По договору уже создана заявка на расторжение” |
UC.01.A3. Не заполнены обязательные поля
| Шаг | Описание |
|---|---|
| 1 | Клиент нажимает “Отправить заявку” |
| 2 | Frontend проверяет форму |
| 3 | Система подсвечивает незаполненные обязательные поля |
| 4 | REST-запрос не отправляется |
UC.01.A4. Ошибка backend-валидации
| Шаг | Описание |
|---|---|
| 1 | Клиент отправляет форму |
| 2 | API Gateway вызывает backend-сервис |
| 3 | Backend-сервис обнаруживает бизнес-ошибку |
| 4 | API Gateway возвращает ошибку на Frontend |
| 5 | Frontend отображает понятный текст ошибки клиенту |
UC.01.A5. Повторная отправка запроса
| Шаг | Описание |
|---|---|
| 1 | Клиент повторно нажимает “Отправить заявку” или происходит повтор запроса |
| 2 | API Gateway передает тот же Idempotency-Key |
| 3 | Backend-сервис находит ранее созданную заявку |
| 4 | Backend-сервис возвращает данные ранее созданной заявки |
| 5 | Дубль заявки не создается |
Исключительные сценарии
UC.01.E1. Backend-сервис недоступен
| Шаг | Описание |
|---|---|
| 1 | API Gateway вызывает gRPC-метод |
| 2 | Backend-сервис не отвечает в рамках timeout |
| 3 | API Gateway возвращает HTTP 503 Service Unavailable |
| 4 | Frontend показывает сообщение: “Сервис временно недоступен. Попробуйте позже” |
UC.01.E2. Ошибка сохранения заявки
| Шаг | Описание |
|---|---|
| 1 | Backend-сервис выполняет проверки |
| 2 | При сохранении заявки возникает ошибка БД |
| 3 | Заявка не создается |
| 4 | API Gateway возвращает HTTP 500 Internal Server Error |
| 5 | Ошибка логируется с correlationId |