From 8a9ca60251e6e2e768ad26dcc3b7b761375d5b31 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D0=BD=D1=82=D0=BE=D0=BD?= Date: Tue, 15 Jul 2025 07:54:35 +0300 Subject: [PATCH] update --- Readme.md | 52 ++++++++++++++++ up_and_down.sql | 154 +++++++++++++++++++++++------------------------- 2 files changed, 126 insertions(+), 80 deletions(-) create mode 100644 Readme.md diff --git a/Readme.md b/Readme.md new file mode 100644 index 0000000..b48dd06 --- /dev/null +++ b/Readme.md @@ -0,0 +1,52 @@ +UseCase'ы для приложения: + +### 1. Пользователь имеет возможность зарегистрироваться в приложении + +#### POST /v1/api/Register + +Тело запроса: +``` +{ + string login; + string password +} +``` + +Тело ответа(успех): +``` +null +``` + +Тело ответа(неудача): +``` +{ + string error_message; +} +``` + +### 2. Уже зарегистрированный пользователь может создать сессию посещения приложения, отослав свои логин и пароль, получая токен для подтверждения сессии + +#### POST /v1/api/Authorization + +Тело запроса: + +``` +{ + string login; + string password +} +``` + +Тело ответа(успех): +``` +{ + string token; +} +``` + +Тело ответа(неудача): +``` +{ + string error_message; +} +``` diff --git a/up_and_down.sql b/up_and_down.sql index 018f7a4..a9738bd 100644 --- a/up_and_down.sql +++ b/up_and_down.sql @@ -4,12 +4,11 @@ CREATE SCHEMA `up_and_down` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin; -CREATE TABLE `up_and_down`.`user` ( - `id` INT8 AUTO_INCREMENT NOT NULL, +CREATE TABLE `up_and_down`.`users` ( `guid` CHAR(36) NOT NULL, `login` VARCHAR(128) NOT NULL, `hashed_password` TEXT NOT NULL, - PRIMARY KEY (`id`), + PRIMARY KEY (`guid`), UNIQUE INDEX `guid_UNIQUE` (`guid` ASC) ); @@ -19,31 +18,31 @@ CREATE TABLE `up_and_down`.`mania` ( PRIMARY KEY (`level`) ); -CREATE TABLE `up_and_down`.`depression` ( +CREATE TABLE `up_and_down`.`depressions` ( `level` INT1 NOT NULL, `description` TEXT NOT NULL, PRIMARY KEY (`level`) ); -CREATE TABLE `up_and_down`.`mood` ( +CREATE TABLE `up_and_down`.`moods` ( `level` INT1 NOT NULL, `description` TEXT NOT NULL, PRIMARY KEY (`level`) ); -CREATE TABLE `up_and_down`.`activity` ( +CREATE TABLE `up_and_down`.`activities` ( `level` INT1 NOT NULL, `description` TEXT NOT NULL, PRIMARY KEY (`level`) ); -CREATE TABLE `up_and_down`.`appetite` ( +CREATE TABLE `up_and_down`.`appetites` ( `level` INT1 NOT NULL, `description` TEXT NOT NULL, PRIMARY KEY (`level`) ); -CREATE TABLE `up_and_down`.`sleep` ( +CREATE TABLE `up_and_down`.`dreams` ( `level` INT1 NOT NULL, `description` TEXT NOT NULL, PRIMARY KEY (`level`) @@ -56,7 +55,7 @@ CREATE TABLE `up_and_down`.`anxiety` ( ); CREATE TABLE `up_and_down`.`diaries` ( - `id` INT8 NOT NULL, + `guid` CHAR(36) NOT NULL, `user_guid` CHAR(36) NOT NULL, `time` DATETIME NOT NULL, `mania_level` INT1 NOT NULL, @@ -64,37 +63,32 @@ CREATE TABLE `up_and_down`.`diaries` ( `mood_level` INT1 NOT NULL, `activity_level` INT1 NOT NULL, `appetite_level` INT1 NOT NULL, - `sleep_level` INT1 NOT NULL, + `dream_level` INT1 NOT NULL, `anxiety_level` INT1 NOT NULL, - PRIMARY KEY (`id`), - FOREIGN KEY (`user_guid`) REFERENCES `user`(`guid`), + PRIMARY KEY (`guid`), + FOREIGN KEY (`user_guid`) REFERENCES `users`(`guid`), FOREIGN KEY (`mania_level`) REFERENCES `mania`(`level`), - FOREIGN KEY (`depression_level`) REFERENCES `depression`(`level`), - FOREIGN KEY (`mood_level`) REFERENCES `mood`(`level`), - FOREIGN KEY (`activity_level`) REFERENCES `activity`(`level`), - FOREIGN KEY (`appetite_level`) REFERENCES `appetite`(`level`), - FOREIGN KEY (`sleep_level`) REFERENCES `sleep`(`level`), + FOREIGN KEY (`depression_level`) REFERENCES `depressions`(`level`), + FOREIGN KEY (`mood_level`) REFERENCES `moods`(`level`), + FOREIGN KEY (`activity_level`) REFERENCES `activities`(`level`), + FOREIGN KEY (`appetite_level`) REFERENCES `appetites`(`level`), + FOREIGN KEY (`dream_level`) REFERENCES `dreams`(`level`), FOREIGN KEY (`anxiety_level`) REFERENCES `anxiety`(`level`), UNIQUE INDEX `guid_UNIQUE` (`guid` ASC) ); --- 1, Name1, 200, мкг, да, 100 --- 2, Name2, 300, мл, нет, 100 --- 3, Name3, 50, мг, нет, 101 CREATE TABLE `up_and_down`.`medications` ( `guid` CHAR(36) NOT NULL, + `user_guid` CHAR(36) NOT NULL, `name` TEXT NOT NULL, `dose` int8 NOT NULL, `unit` CHAR(30), `is_urgent` BOOL NOT NULL, - `user_guid` CHAR(36) NOT NULL, - PRIMARY KEY (`guid`) + PRIMARY KEY (`guid`), + FOREIGN KEY (`user_guid`) REFERENCES `users`(`guid`) -- SCHEME_ID или GROUP_ID - посмотреть ); - --- 956, 101, 3, 30.06.2025 --- 957, 100, 2, 24.04.2024 -- Связать с diaries CREATE TABLE `up_and_down`.`set_of_medications` ( `guid` CHAR(36) NOT NULL, @@ -114,60 +108,60 @@ INSERT INTO `up_and_down`.`mania` (`level`, `description`) VALUES (8, 'Мани INSERT INTO `up_and_down`.`mania` (`level`, `description`) VALUES (9, 'Мания III - сопровождается бредом и галлюцинациями - неадекватное поведение'); INSERT INTO `up_and_down`.`mania` (`level`, `description`) VALUES (10, 'Мания IV - сопровождается бредом и галлюцинациями - человек опасен для себя и других'); -INSERT INTO `up_and_down`.`depression` (`level`, `description`) VALUES (1, 'Депрессия I'); -INSERT INTO `up_and_down`.`depression` (`level`, `description`) VALUES (2, 'Депрессия II'); -INSERT INTO `up_and_down`.`depression` (`level`, `description`) VALUES (3, 'Депрессия III'); -INSERT INTO `up_and_down`.`depression` (`level`, `description`) VALUES (4, 'Депрессия IV'); -INSERT INTO `up_and_down`.`depression` (`level`, `description`) VALUES (5, 'Депрессия V'); -INSERT INTO `up_and_down`.`depression` (`level`, `description`) VALUES (6, 'Депрессия VI'); -INSERT INTO `up_and_down`.`depression` (`level`, `description`) VALUES (7, 'Депрессия VII'); -INSERT INTO `up_and_down`.`depression` (`level`, `description`) VALUES (8, 'Депрессия VIII'); -INSERT INTO `up_and_down`.`depression` (`level`, `description`) VALUES (9, 'Депрессия IX'); -INSERT INTO `up_and_down`.`depression` (`level`, `description`) VALUES (10, 'Депрессия X'); +INSERT INTO `up_and_down`.`depressions` (`level`, `description`) VALUES (1, 'Депрессия I'); +INSERT INTO `up_and_down`.`depressions` (`level`, `description`) VALUES (2, 'Депрессия II'); +INSERT INTO `up_and_down`.`depressions` (`level`, `description`) VALUES (3, 'Депрессия III'); +INSERT INTO `up_and_down`.`depressions` (`level`, `description`) VALUES (4, 'Депрессия IV'); +INSERT INTO `up_and_down`.`depressions` (`level`, `description`) VALUES (5, 'Депрессия V'); +INSERT INTO `up_and_down`.`depressions` (`level`, `description`) VALUES (6, 'Депрессия VI'); +INSERT INTO `up_and_down`.`depressions` (`level`, `description`) VALUES (7, 'Депрессия VII'); +INSERT INTO `up_and_down`.`depressions` (`level`, `description`) VALUES (8, 'Депрессия VIII'); +INSERT INTO `up_and_down`.`depressions` (`level`, `description`) VALUES (9, 'Депрессия IX'); +INSERT INTO `up_and_down`.`depressions` (`level`, `description`) VALUES (10, 'Депрессия X'); -INSERT INTO `up_and_down`.`mood` (`level`, `description`) VALUES (1, 'Настроение I'); -INSERT INTO `up_and_down`.`mood` (`level`, `description`) VALUES (2, 'Настроение II'); -INSERT INTO `up_and_down`.`mood` (`level`, `description`) VALUES (3, 'Настроение III'); -INSERT INTO `up_and_down`.`mood` (`level`, `description`) VALUES (4, 'Настроение IV'); -INSERT INTO `up_and_down`.`mood` (`level`, `description`) VALUES (5, 'Настроение V'); -INSERT INTO `up_and_down`.`mood` (`level`, `description`) VALUES (6, 'Настроение VI'); -INSERT INTO `up_and_down`.`mood` (`level`, `description`) VALUES (7, 'Настроение VII'); -INSERT INTO `up_and_down`.`mood` (`level`, `description`) VALUES (8, 'Настроение VIII'); -INSERT INTO `up_and_down`.`mood` (`level`, `description`) VALUES (9, 'Настроение IX'); -INSERT INTO `up_and_down`.`mood` (`level`, `description`) VALUES (10, 'Настроение X'); +INSERT INTO `up_and_down`.`moods` (`level`, `description`) VALUES (1, 'Настроение I'); +INSERT INTO `up_and_down`.`moods` (`level`, `description`) VALUES (2, 'Настроение II'); +INSERT INTO `up_and_down`.`moods` (`level`, `description`) VALUES (3, 'Настроение III'); +INSERT INTO `up_and_down`.`moods` (`level`, `description`) VALUES (4, 'Настроение IV'); +INSERT INTO `up_and_down`.`moods` (`level`, `description`) VALUES (5, 'Настроение V'); +INSERT INTO `up_and_down`.`moods` (`level`, `description`) VALUES (6, 'Настроение VI'); +INSERT INTO `up_and_down`.`moods` (`level`, `description`) VALUES (7, 'Настроение VII'); +INSERT INTO `up_and_down`.`moods` (`level`, `description`) VALUES (8, 'Настроение VIII'); +INSERT INTO `up_and_down`.`moods` (`level`, `description`) VALUES (9, 'Настроение IX'); +INSERT INTO `up_and_down`.`moods` (`level`, `description`) VALUES (10, 'Настроение X'); -INSERT INTO `up_and_down`.`activity` (`level`, `description`) VALUES (1, 'Активность I'); -INSERT INTO `up_and_down`.`activity` (`level`, `description`) VALUES (2, 'Активность II'); -INSERT INTO `up_and_down`.`activity` (`level`, `description`) VALUES (3, 'Активность III'); -INSERT INTO `up_and_down`.`activity` (`level`, `description`) VALUES (4, 'Активность IV'); -INSERT INTO `up_and_down`.`activity` (`level`, `description`) VALUES (5, 'Активность V'); -INSERT INTO `up_and_down`.`activity` (`level`, `description`) VALUES (6, 'Активность VI'); -INSERT INTO `up_and_down`.`activity` (`level`, `description`) VALUES (7, 'Активность VII'); -INSERT INTO `up_and_down`.`activity` (`level`, `description`) VALUES (8, 'Активность VIII'); -INSERT INTO `up_and_down`.`activity` (`level`, `description`) VALUES (9, 'Активность IX'); -INSERT INTO `up_and_down`.`activity` (`level`, `description`) VALUES (10, 'Активность X'); +INSERT INTO `up_and_down`.`activities` (`level`, `description`) VALUES (1, 'Активность I'); +INSERT INTO `up_and_down`.`activities` (`level`, `description`) VALUES (2, 'Активность II'); +INSERT INTO `up_and_down`.`activities` (`level`, `description`) VALUES (3, 'Активность III'); +INSERT INTO `up_and_down`.`activities` (`level`, `description`) VALUES (4, 'Активность IV'); +INSERT INTO `up_and_down`.`activities` (`level`, `description`) VALUES (5, 'Активность V'); +INSERT INTO `up_and_down`.`activities` (`level`, `description`) VALUES (6, 'Активность VI'); +INSERT INTO `up_and_down`.`activities` (`level`, `description`) VALUES (7, 'Активность VII'); +INSERT INTO `up_and_down`.`activities` (`level`, `description`) VALUES (8, 'Активность VIII'); +INSERT INTO `up_and_down`.`activities` (`level`, `description`) VALUES (9, 'Активность IX'); +INSERT INTO `up_and_down`.`activities` (`level`, `description`) VALUES (10, 'Активность X'); -INSERT INTO `up_and_down`.`appetite` (`level`, `description`) VALUES (1, 'Аппетит I'); -INSERT INTO `up_and_down`.`appetite` (`level`, `description`) VALUES (2, 'Аппетит II'); -INSERT INTO `up_and_down`.`appetite` (`level`, `description`) VALUES (3, 'Аппетит III'); -INSERT INTO `up_and_down`.`appetite` (`level`, `description`) VALUES (4, 'Аппетит IV'); -INSERT INTO `up_and_down`.`appetite` (`level`, `description`) VALUES (5, 'Аппетит V'); -INSERT INTO `up_and_down`.`appetite` (`level`, `description`) VALUES (6, 'Аппетит VI'); -INSERT INTO `up_and_down`.`appetite` (`level`, `description`) VALUES (7, 'Аппетит VII'); -INSERT INTO `up_and_down`.`appetite` (`level`, `description`) VALUES (8, 'Аппетит VIII'); -INSERT INTO `up_and_down`.`appetite` (`level`, `description`) VALUES (9, 'Аппетит IX'); -INSERT INTO `up_and_down`.`appetite` (`level`, `description`) VALUES (10, 'Аппетит X'); +INSERT INTO `up_and_down`.`appetites` (`level`, `description`) VALUES (1, 'Аппетит I'); +INSERT INTO `up_and_down`.`appetites` (`level`, `description`) VALUES (2, 'Аппетит II'); +INSERT INTO `up_and_down`.`appetites` (`level`, `description`) VALUES (3, 'Аппетит III'); +INSERT INTO `up_and_down`.`appetites` (`level`, `description`) VALUES (4, 'Аппетит IV'); +INSERT INTO `up_and_down`.`appetites` (`level`, `description`) VALUES (5, 'Аппетит V'); +INSERT INTO `up_and_down`.`appetites` (`level`, `description`) VALUES (6, 'Аппетит VI'); +INSERT INTO `up_and_down`.`appetites` (`level`, `description`) VALUES (7, 'Аппетит VII'); +INSERT INTO `up_and_down`.`appetites` (`level`, `description`) VALUES (8, 'Аппетит VIII'); +INSERT INTO `up_and_down`.`appetites` (`level`, `description`) VALUES (9, 'Аппетит IX'); +INSERT INTO `up_and_down`.`appetites` (`level`, `description`) VALUES (10, 'Аппетит X'); -INSERT INTO `up_and_down`.`sleep` (`level`, `description`) VALUES (1, 'Сон I'); -INSERT INTO `up_and_down`.`sleep` (`level`, `description`) VALUES (2, 'Сон II'); -INSERT INTO `up_and_down`.`sleep` (`level`, `description`) VALUES (3, 'Сон III'); -INSERT INTO `up_and_down`.`sleep` (`level`, `description`) VALUES (4, 'Сон IV'); -INSERT INTO `up_and_down`.`sleep` (`level`, `description`) VALUES (5, 'Сон V'); -INSERT INTO `up_and_down`.`sleep` (`level`, `description`) VALUES (6, 'Сон VI'); -INSERT INTO `up_and_down`.`sleep` (`level`, `description`) VALUES (7, 'Сон VII'); -INSERT INTO `up_and_down`.`sleep` (`level`, `description`) VALUES (8, 'Сон VIII'); -INSERT INTO `up_and_down`.`sleep` (`level`, `description`) VALUES (9, 'Сон IX'); -INSERT INTO `up_and_down`.`sleep` (`level`, `description`) VALUES (10, 'Сон X'); +INSERT INTO `up_and_down`.`dreams` (`level`, `description`) VALUES (1, 'Сон I'); +INSERT INTO `up_and_down`.`dreams` (`level`, `description`) VALUES (2, 'Сон II'); +INSERT INTO `up_and_down`.`dreams` (`level`, `description`) VALUES (3, 'Сон III'); +INSERT INTO `up_and_down`.`dreams` (`level`, `description`) VALUES (4, 'Сон IV'); +INSERT INTO `up_and_down`.`dreams` (`level`, `description`) VALUES (5, 'Сон V'); +INSERT INTO `up_and_down`.`dreams` (`level`, `description`) VALUES (6, 'Сон VI'); +INSERT INTO `up_and_down`.`dreams` (`level`, `description`) VALUES (7, 'Сон VII'); +INSERT INTO `up_and_down`.`dreams` (`level`, `description`) VALUES (8, 'Сон VIII'); +INSERT INTO `up_and_down`.`dreams` (`level`, `description`) VALUES (9, 'Сон IX'); +INSERT INTO `up_and_down`.`dreams` (`level`, `description`) VALUES (10, 'Сон X'); INSERT INTO `up_and_down`.`anxiety` (`level`, `description`) VALUES (1, 'Тревога I'); INSERT INTO `up_and_down`.`anxiety` (`level`, `description`) VALUES (2, 'Тревога II'); @@ -181,8 +175,8 @@ INSERT INTO `up_and_down`.`anxiety` (`level`, `description`) VALUES (9, 'Тре INSERT INTO `up_and_down`.`anxiety` (`level`, `description`) VALUES (10, 'Тревога X'); -- Заполнение пользователями -INSERT INTO `up_and_down`.`user` (`guid`, `login`, `hashed_password`) VALUES ('ab555fcb-b9ee-45f4-9de8-8f16daa5d03b', 'login1', 'Qwerty12345'); -INSERT INTO `up_and_down`.`user` (`guid`, `login`, `hashed_password`) VALUES ('56b7c993-392f-41f8-adb1-9766842dc5fd', 'login2', 'AVALON123456'); -INSERT INTO `up_and_down`.`user` (`guid`, `login`, `hashed_password`) VALUES ('a243b5f2-e265-4c25-82a9-dde4cc70643f', 'login3', 'Zxcvb123456'); -INSERT INTO `up_and_down`.`user` (`guid`, `login`, `hashed_password`) VALUES ('51351bb1-7563-479d-a8e9-201d0ff934c2', 'login4', 'Sadly846612'); -INSERT INTO `up_and_down`.`user` (`guid`, `login`, `hashed_password`) VALUES ('c792bbe6-2bf2-4fe0-a781-ba96bfeaa3b6', 'login5', 'Qwerty12345'); +INSERT INTO `up_and_down`.`users` (`guid`, `login`, `hashed_password`) VALUES ('ab555fcb-b9ee-45f4-9de8-8f16daa5d03b', 'login1', 'Qwerty12345'); +INSERT INTO `up_and_down`.`users` (`guid`, `login`, `hashed_password`) VALUES ('56b7c993-392f-41f8-adb1-9766842dc5fd', 'login2', 'AVALON123456'); +INSERT INTO `up_and_down`.`users` (`guid`, `login`, `hashed_password`) VALUES ('a243b5f2-e265-4c25-82a9-dde4cc70643f', 'login3', 'Zxcvb123456'); +INSERT INTO `up_and_down`.`users` (`guid`, `login`, `hashed_password`) VALUES ('51351bb1-7563-479d-a8e9-201d0ff934c2', 'login4', 'Sadly846612'); +INSERT INTO `up_and_down`.`users` (`guid`, `login`, `hashed_password`) VALUES ('c792bbe6-2bf2-4fe0-a781-ba96bfeaa3b6', 'login5', 'Qwerty12345');