From 4707ffcdb0ebfd8fcf77cbcb13e03850eb3fa5e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D0=BD=D1=82=D0=BE=D0=BD?= Date: Sun, 23 Nov 2025 09:59:25 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20UseCase'=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 75 ++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 72 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 0a6f9bd..ba3ad97 100644 --- a/README.md +++ b/README.md @@ -30,7 +30,7 @@ ## UseCase №1 ### 1.Название: Зарегистрировать пользователя -### 2.Актор: Пользователь +### 2.Актор: Пользователь-пациент ### 3.Цель: Внести данные о новом пользователе в систему ### 4.Предусловия: * Пользователь не авторизован в системе @@ -86,7 +86,7 @@ ## UseCase №2 ### 1.Название: Авторизация пользователя -### 2.Актор: Пользователь +### 2.Актор: Пользователь-пациент ### 3.Цель: Предоставить пользователю возможность получить его данные в виде дневника болезни ### 4.Предусловия: * Пользователь должен быть зарегистрирован в системе @@ -156,7 +156,7 @@ null ## UseCase №3 ### 1.Название: Переход на главную страницу -### 2.Актор: Пользователь +### 2.Актор: Пользователь-пациент ### 3.Цель: Предоставить пользователю поверхностный вывод данных о нем и инструменты для глубокого просмотра данных и их модификации ### 4.Предусловия: * Пользователь имеет актуальный токен, подтверждающий его авторизацию в системе @@ -268,3 +268,72 @@ null * medications(uuid(PK), name, dose, unit, is_urgent) +## UseCase №4 +### 1.Название: Добавление новой записи в дневник +### 2.Актор: Пользователь-пациент +### 3.Цель: Ведение дневника болезни для врача +### 4.Предусловия: +* Пользователь авторизован в системе +* Пользователь находится на главной странице +### 5.Основной поток: +#### А1.Пользователь создает новую запись в дневнике +* Если отсутствуют, то подключаются идентификаторы мании, депрессии, настроения, активности, аппетита, сна, тревоги +* Пользователь кликает по соответствующей кнопке добавления записи в дневник +* Вызывается модальное окно с формой заполнения записи +* Пользователь описывает свое текущее состояние на модальном окне и указывает используемую схему лечения +### 6.Потоки исключений: +#### B1.В приложении отсутствуют схемы лечений +* Выполнение добавления записи невозможно, поэтому кнопка вызова модального окна блокируется +#### B2.Пользователь оставил пустым любое из полей, кроме comment +* Запись о неполном состоянии нельзя создать. Кнопка создания записи заблокирована +#### B3. Идентификаторы состояний не подгрузились +* На поле вводаставится заглушка, делающая невозможным его заполнение. +### 7.Постусловия +* Пользователь добавил запись с указанной датой и прочими состояниями в БД +### 8.API-Маршруты +* `POST /api/v1/Auth/Diaries` - Создание записи в дневнике +### 9.Контракт +#### Diaries-Request +``` +{ + `user_uuid`: "51351bb1-7563-479d-a8e9-201d0ff934c2", + `time`: "172493000", + `mania_level`: "6", + `depression_level`: "6", + `mood_level`: "7", + `activity_level`: "4", + `appetite_level`: "5", + `dream_level`: "5", + `anxiety_level`: "9", + `comment`: "Сильная тревога. Пришлось выпить аминазин", + `user_treatment_schemes_uuid`: "51351bb1-7563-479d-a8e9-201d0ff934c2", +} +``` +##### Требования к валидации: +* Все поля, кроме `comment` обязательны к заполнению +* `user_treatment_schemes_uuid` должен указывать на существующую схему лечения + +##### Response - 201 - Created +``` +{ + `uuid`: "61351bb1-7563-479d-a8e9-201d0ff934c2", + `user_uuid`: "71351bb1-7563-479d-a8e9-201d0ff934c2", + `time` "172493000", + `mania_level`: "6", + `depression_level`: "6", + `mood_level`: "7", + `activity_level`: "4", + `appetite_level`: "5", + `dream_level`: "5", + `anxiety_level`: "9", + `comment`: "Сильная тревога. Пришлось выпить аминазин", + `user_treatment_schemes_uuid`: "51351bb1-7563-479d-a8e9-201d0ff934c2", +} +``` + +##### Errors +* `400 USER_EXISTS` — отсутствуют обязательные поля +* `400 BAD_REQUEST` — сервер не смог десереализовать JSON + +### 10. Используемые сущности ДБ +* diaries()